Страница 1 из 5
Java скрипт - связь спецификации накладной и плана снабжения
Добавлено: 27 янв 2014, 12:46
Serg7907
Добрый день! Начал изучать азы Java в Галактике. Нужно по определенному алгоритму вытаскивать в план снабжения (МТО) - вкладка "Входящие документы"- спецификацию приходной накладной, спецификация в плане снабжения уже есть, т.е. связка пойдет через nrec МЦ.
Кроме того, насколько я понимаю, связь накладной и плана снабжения пойдет по связке:
502==objacct.vidsopr
and 1==objacct.kindrec
and 4==objacct.typeobj
and MnPlan.nrec==objacct.cobject
and objacct.cowner==katsopr.nrec
Как бы это все увязать в скрипте, какие библиотеки и объекты использовать? В Java я еще новичок, так что если что сильно не ругайте)). Может быть у кого-то какой-то похожий пример уже имеется?
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 13:26
Zver
Serg7907, могу порекомендовать для начального ознакомления документацию по работе JS, которую можно скачать здесь:
ftp://ftp.galaktika.ru/pub/support/gala ... /baza/pdf/
Здесь много чего лежит, Вам сейчас нужен файл JS_usage.pdf.
Если будут проблемы с переходом на ftp - могу выслать на почту скачанный документ.
Успехов.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 13:47
Serg7907
Zver, спасибо за ссылку на документ. Я как раз его и изучил, поделал примеры, посмотрел документацию. Просто вдруг у кого-то похожие алгоритмы с объктами уже были где-то настроены, или кто-то подсказал, хотя бы в общих чертах, как этот скрипт в одно целое свести с учетом объектов и функций...
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 14:57
Zver
Попробую помочь. Представленные здесь рассуждения это моё понимание того, как работает JS в Галактике.
Надеюсь, что если я не прав, то более опытные коллеги поправят меня.
Грубо говоря, запись в какой-либо таблице на 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();
}
}
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 16:38
Serg7907
Zver, спасибо. Кое-что начинает проясняться))
А переменные, заданные в начале скрипта, они должны соответствовать определенным полям документа на вкладке "Объекты", как я понял?
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 16:47
Zver
Нет, это просто переменные, как и всегда. Тип всех переменных указан ниже.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 17:09
Serg7907
Немного обобщу по этому запросу:
- вкладка "Объекты" - "Свойства" : alex - Спецификация накладной
matc - МатЦенность
vhodecz - Заголовок накладной
- вкладка "Объекты" - "Экземпляры": alex - alex
matc - matc
vhodecz - vhodecz
Библиотеки я выбрал такие: Сообщения и визуализация, Сервисные функции для накладных, Системная функция для работы с датами.
Переменные описаны в скрипте, их тип указан.
Правильно ли я понимаю, что такого плана алгоритм запускается только из логистики, а не скажем из контура Производственной логистики?
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 17:25
Zver
Этот алгоритм потом можно использовать в любом месте. Как привязать запуск алгоритма JS к событию галактики - уже забыл. У нас этим занимается другой человек,
постановщик задачи, который будет болеть, как минимум, до конца недели.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 28 янв 2014, 17:30
Serg7907
Как привязать запуск алгоритма JS к событию галактики, я вроде разобрался. Однако вот в чем проблема: при запуске алгоритма отладчик ругается "Предполагается наличие объекта" и курсор стоит перед этим местом: asd1 = asd();
Не могу понять, из-за чего...
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 29 янв 2014, 13:39
Zver
Для того, чтобы заработал приведённый код необходимо сначала создать соответствующие объекты и их экземпляры.
Рекомендую Вам создать объект одной из таблиц, выбрать поля, которые будут нужны, затем создать экземпляр объекта и попробовать вывести в сообщении какое-либо
поле этого объекта.
Можно начать с того, чтобы вывести поле KAtSopr.nSopr. Как получится это сделать - остальное будет проще.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 29 янв 2014, 17:30
zna
Serg7907 писал(а):Как привязать запуск алгоритма JS к событию галактики, я вроде разобрался. Однако вот в чем проблема: при запуске алгоритма отладчик ругается "Предполагается наличие объекта" и курсор стоит перед этим местом: asd1 = asd();
Не могу понять, из-за чего...
asd()- это функция, которая объявлена в окне настройки JS алгоритма. По смыслу asd - это katsopr.nrec документа, их которого запускается алгоритм (накладной, акта)
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 29 янв 2014, 18:27
Serg7907
Спасибо за ответы. Итак:
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())), хотя объект и поля настроены и явно заданы(((
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 08:24
zna
А функцию 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)
}
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 13:28
Serg7907
Ок, с переменными и выводом номера документа я разобрался. Всем спасибо за помощь!
Следующий вопрос: если в скрипте будет описана связь 2 документов (спецификация плана и спецификация накладной), в настройке алгоритма какой документ указывать? Как я понял, функции (типа CurKatsopr, asd) задаются к конкретному документу.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 13:48
zna
Serg7907 писал(а):Ок, с переменными и выводом номера документа я разобрался. Всем спасибо за помощь!
Следующий вопрос: если в скрипте будет описана связь 2 документов (спецификация плана и спецификация накладной), в настройке алгоритма какой документ указывать? Как я понял, функции (типа CurKatsopr, asd) задаются к конкретному документу.
На вкладке "Настройка алгоритма" указывается только одна функция- текущего документа. Второй и последующий документы, которые Вы используете, связывайте с данным документом в соответствии с логикой Ваших действий. В данном случае делаете цикл по спецификации накладной и ищете соответствующую спецификацию плана по связям: табицы objacct, spobjacc, въюшку Вы почти правильно написали в первом посте.