Java скрипт - связь спецификации накладной и плана снабжения
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Java скрипт - связь спецификации накладной и плана снабжения
Добрый день! Начал изучать азы Java в Галактике. Нужно по определенному алгоритму вытаскивать в план снабжения (МТО) - вкладка "Входящие документы"- спецификацию приходной накладной, спецификация в плане снабжения уже есть, т.е. связка пойдет через nrec МЦ.
Кроме того, насколько я понимаю, связь накладной и плана снабжения пойдет по связке:
502==objacct.vidsopr
and 1==objacct.kindrec
and 4==objacct.typeobj
and MnPlan.nrec==objacct.cobject
and objacct.cowner==katsopr.nrec
Как бы это все увязать в скрипте, какие библиотеки и объекты использовать? В Java я еще новичок, так что если что сильно не ругайте)). Может быть у кого-то какой-то похожий пример уже имеется?
Кроме того, насколько я понимаю, связь накладной и плана снабжения пойдет по связке:
502==objacct.vidsopr
and 1==objacct.kindrec
and 4==objacct.typeobj
and MnPlan.nrec==objacct.cobject
and objacct.cowner==katsopr.nrec
Как бы это все увязать в скрипте, какие библиотеки и объекты использовать? В Java я еще новичок, так что если что сильно не ругайте)). Может быть у кого-то какой-то похожий пример уже имеется?
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Serg7907, могу порекомендовать для начального ознакомления документацию по работе JS, которую можно скачать здесь: ftp://ftp.galaktika.ru/pub/support/gala ... /baza/pdf/
Здесь много чего лежит, Вам сейчас нужен файл JS_usage.pdf.
Если будут проблемы с переходом на ftp - могу выслать на почту скачанный документ.
Успехов.
Здесь много чего лежит, Вам сейчас нужен файл JS_usage.pdf.
Если будут проблемы с переходом на ftp - могу выслать на почту скачанный документ.
Успехов.
Программист-самоучка
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Zver, спасибо за ссылку на документ. Я как раз его и изучил, поделал примеры, посмотрел документацию. Просто вдруг у кого-то похожие алгоритмы с объктами уже были где-то настроены, или кто-то подсказал, хотя бы в общих чертах, как этот скрипт в одно целое свести с учетом объектов и функций...
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Попробую помочь. Представленные здесь рассуждения это моё понимание того, как работает JS в Галактике.
Надеюсь, что если я не прав, то более опытные коллеги поправят меня.
Грубо говоря, запись в какой-либо таблице на JS представляется объектом. Сначала описываем объект на вкладке Свойства. Аналог из С - класс.
Затем на вкладке Экземпляры создаём объекты - то есть конкретные экземпляры классов.
После этого обращаемся с ними как с обычными объектами в стиле C или Vip.
В приведённом коде:
alex - это объект таблицы SpSopr
matc - это объект таблицы KatMc
vhodecz - это объект таблицы KatSopr.
В целом обращение в БД в JS очень похоже на работу с БД на языке VIP. Надеюсь мой ответ поможет Вам разобраться.
Надеюсь, что если я не прав, то более опытные коллеги поправят меня.
Грубо говоря, запись в какой-либо таблице на JS представляется объектом. Сначала описываем объект на вкладке Свойства. Аналог из С - класс.
Затем на вкладке Экземпляры создаём объекты - то есть конкретные экземпляры классов.
После этого обращаемся с ними как с обычными объектами в стиле C или Vip.
В приведённом коде:
alex - это объект таблицы SpSopr
matc - это объект таблицы KatMc
vhodecz - это объект таблицы KatSopr.
В целом обращение в БД в JS очень похоже на работу с БД на языке VIP. Надеюсь мой ответ поможет Вам разобраться.
Код: Выделить всё
var name1;
var number;
var date1;
var gr1;
var date2;
var date3;
var nfact;
var name2;
var all1;
var name4;
var nrec1;
var vhodnal;
var asd1;
var group1;
var nalog1;
asd1 = asd();
vhodecz.setPosition(asd1);
vhodnal=vhodecz.vhod;
alex.met(asd()) ;
for(alex.getFirst(); ResultOfNavigation; alex.getNext())
{
if (alex.priznak != 1)
continue;
name1=alex.kol1;
name2=(alex.price1/1).toFixed(2);
name3=alex.name_nrec;
grl=alex.grnal;
nrec1=name3;
matc.setPosition(nrec1);
Name4 = matc.name;
group1=matc.group;
nalog1=matc.nalog;
switch (group1){
case '281474976710657': nalog1=18;
break
case '281474976710659': nalog1=10;
break
default : nalog1=0;
}
if (vhodnal != 2)
name2 = (name2/(1+0.01*nalog1) ).toFixed(2);
if( matc.newprice1.toFixed(2) != name2)
{
matc.newprice1 = name2;
matc.rewrite();
}
}
Программист-самоучка
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Zver, спасибо. Кое-что начинает проясняться))
А переменные, заданные в начале скрипта, они должны соответствовать определенным полям документа на вкладке "Объекты", как я понял?
А переменные, заданные в начале скрипта, они должны соответствовать определенным полям документа на вкладке "Объекты", как я понял?
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Нет, это просто переменные, как и всегда. Тип всех переменных указан ниже.
Программист-самоучка
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Немного обобщу по этому запросу:
- вкладка "Объекты" - "Свойства" : alex - Спецификация накладной
matc - МатЦенность
vhodecz - Заголовок накладной
- вкладка "Объекты" - "Экземпляры": alex - alex
matc - matc
vhodecz - vhodecz
Библиотеки я выбрал такие: Сообщения и визуализация, Сервисные функции для накладных, Системная функция для работы с датами.
Переменные описаны в скрипте, их тип указан.
Правильно ли я понимаю, что такого плана алгоритм запускается только из логистики, а не скажем из контура Производственной логистики?
- вкладка "Объекты" - "Свойства" : alex - Спецификация накладной
matc - МатЦенность
vhodecz - Заголовок накладной
- вкладка "Объекты" - "Экземпляры": alex - alex
matc - matc
vhodecz - vhodecz
Библиотеки я выбрал такие: Сообщения и визуализация, Сервисные функции для накладных, Системная функция для работы с датами.
Переменные описаны в скрипте, их тип указан.
Правильно ли я понимаю, что такого плана алгоритм запускается только из логистики, а не скажем из контура Производственной логистики?
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Этот алгоритм потом можно использовать в любом месте. Как привязать запуск алгоритма JS к событию галактики - уже забыл. У нас этим занимается другой человек,
постановщик задачи, который будет болеть, как минимум, до конца недели.
постановщик задачи, который будет болеть, как минимум, до конца недели.
Программист-самоучка
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Как привязать запуск алгоритма JS к событию галактики, я вроде разобрался. Однако вот в чем проблема: при запуске алгоритма отладчик ругается "Предполагается наличие объекта" и курсор стоит перед этим местом: asd1 = asd();
Не могу понять, из-за чего...
Не могу понять, из-за чего...
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Для того, чтобы заработал приведённый код необходимо сначала создать соответствующие объекты и их экземпляры.
Рекомендую Вам создать объект одной из таблиц, выбрать поля, которые будут нужны, затем создать экземпляр объекта и попробовать вывести в сообщении какое-либо
поле этого объекта.
Можно начать с того, чтобы вывести поле KAtSopr.nSopr. Как получится это сделать - остальное будет проще.
Рекомендую Вам создать объект одной из таблиц, выбрать поля, которые будут нужны, затем создать экземпляр объекта и попробовать вывести в сообщении какое-либо
поле этого объекта.
Можно начать с того, чтобы вывести поле KAtSopr.nSopr. Как получится это сделать - остальное будет проще.
Программист-самоучка
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
asd()- это функция, которая объявлена в окне настройки JS алгоритма. По смыслу asd - это katsopr.nrec документа, их которого запускается алгоритм (накладной, акта)Serg7907 писал(а):Как привязать запуск алгоритма JS к событию галактики, я вроде разобрался. Однако вот в чем проблема: при запуске алгоритма отладчик ругается "Предполагается наличие объекта" и курсор стоит перед этим местом: asd1 = asd();
Не могу понять, из-за чего...
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Спасибо за ответы. Итак:
1. Настроил объект: KatSopr - Заголовок накладной, выбрал для него 2 поля - number(Номер накладной), nrec (Уникальный номер записи)
2. Экземпляр назвал KatSopr
3. Вот скрипт, которым я пытаюсь вывести номер накладной (алгоритм запускаю из расширенной информации в накладной)
var number;
var nrec;
KatSopr.setPosition(curKatSopr());
for (KatSopr.getFirst(); ResultOfNavigation; KatSopr.getNext())
{
KatSopr.setPosition(KatSopr.nrec);
Message(KatSopr.number);
}
Все равно, выводит ошибку "Предполагает наличие объекта" (ругается на это KatSopr.setPosition(curKatSopr())), хотя объект и поля настроены и явно заданы(((
1. Настроил объект: KatSopr - Заголовок накладной, выбрал для него 2 поля - number(Номер накладной), nrec (Уникальный номер записи)
2. Экземпляр назвал KatSopr
3. Вот скрипт, которым я пытаюсь вывести номер накладной (алгоритм запускаю из расширенной информации в накладной)
var number;
var nrec;
KatSopr.setPosition(curKatSopr());
for (KatSopr.getFirst(); ResultOfNavigation; KatSopr.getNext())
{
KatSopr.setPosition(KatSopr.nrec);
Message(KatSopr.number);
}
Все равно, выводит ошибку "Предполагает наличие объекта" (ругается на это KatSopr.setPosition(curKatSopr())), хотя объект и поля настроены и явно заданы(((
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
А функцию curKatSopr() определили в окне настройки алгоритма? Вот пример настройки:
Код: Выделить всё
SpMnPlan.toMnPlan(CurPlan());
if(SpMnPlan.getFirst() == true)
{
do
{
SpMnPlan.Status = 281474976710658;
SpMnPlan.rewrite();
SpMnPl.toSpMnPlan(SpMnPlan.Nrec);
SpMnPl.getFirst();
SpMnPl.StatusS = 281474976710658;
SpMnPl.rewrite();
}
while(SpMnPlan.getNext() == true)
}
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
Ок, с переменными и выводом номера документа я разобрался. Всем спасибо за помощь!
Следующий вопрос: если в скрипте будет описана связь 2 документов (спецификация плана и спецификация накладной), в настройке алгоритма какой документ указывать? Как я понял, функции (типа CurKatsopr, asd) задаются к конкретному документу.
Следующий вопрос: если в скрипте будет описана связь 2 документов (спецификация плана и спецификация накладной), в настройке алгоритма какой документ указывать? Как я понял, функции (типа CurKatsopr, asd) задаются к конкретному документу.
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Java скрипт - связь спецификации накладной и плана снабж
На вкладке "Настройка алгоритма" указывается только одна функция- текущего документа. Второй и последующий документы, которые Вы используете, связывайте с данным документом в соответствии с логикой Ваших действий. В данном случае делаете цикл по спецификации накладной и ищете соответствующую спецификацию плана по связям: табицы objacct, spobjacc, въюшку Вы почти правильно написали в первом посте.Serg7907 писал(а):Ок, с переменными и выводом номера документа я разобрался. Всем спасибо за помощь!
Следующий вопрос: если в скрипте будет описана связь 2 документов (спецификация плана и спецификация накладной), в настройке алгоритма какой документ указывать? Как я понял, функции (типа CurKatsopr, asd) задаются к конкретному документу.