Страница 2 из 5
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 17:34
Serg7907
Спасибо! С эти вроде бы тоже стало понятнее. Только не могу понять, вот я запущу готовый алгоритм, а как у меня в Галактике в план снабжения спецификация из накладной попадет?
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 17:41
zna
Попадёт в результате модификации spmnpl. Вы делаете цикл по спецификации накладной, для текущей позиции spsopr находите соответствующую запись в spmnpl и модифицируете её. Посмотрите мой код- в нём пример модификации.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 18:06
Serg7907
Т.е. правильно ли я понимаю, что у Вас встаем на первую запись таблицы спецификации плана, затем в зависимости от статуса плана идет запись в БД, и так переходим от строки к строке...
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 30 янв 2014, 18:18
zna
Нет, неправильно. Никакой проверки статуса нет.
Комментарии:
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, 18:24
Serg7907
Спасибо большое за комментарий, вот сейчас наступает ясность...
Еще момент: SpMnPlan.Status = 281474976710658 - откуда такое значение?
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 31 янв 2014, 08:15
zna
Это nrec записи в каталоге статусов.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 31 янв 2014, 13:04
Serg7907
Спасибо! Ну что ж, будем теперь разбираться.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 31 янв 2014, 13:28
zna
Пож-та, спрашивайте ещё.
На то он и форум
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 31 янв 2014, 16:56
Serg7907
Вот такой еще вопрос. А если такой связи MnPlan.nrec==objacct.cobject нет, как тогда еще через план на накладную выйти?
И я так понимаю, что все равно таблицу objacct необходимо задействовать, без нее никак...
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 31 янв 2014, 17:30
zna
Serg7907 писал(а):Вот такой еще вопрос. А если такой связи MnPlan.nrec==objacct.cobject нет, как тогда еще через план на накладную выйти?
И я так понимаю, что все равно таблицу objacct необходимо задействовать, без нее никак...
Я не знаю логику связи Ваших документов. Наиболее естественно через objacct связать, но можно и по другому. Например, по совпадению спецификаций, дат, подразделений, аналитик.. да мало ли чего ещё.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 31 янв 2014, 17:41
Serg7907
Условно, есть накладная (факт) со спецификацией и план снабжения (план) со спецификацией. Нужно через запуск алгоритма в плане снабжения при статусе "К исполнению" сделать так, чтобы на вкладке "Входящие документы" в плане снабжения в окно "Позиция входящего документа" попала спецификация накладной. МЦ в накладной и плане одинаковые, будем сверять факт и план, т.е. связка по идее пойдет через МЦ.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 03 фев 2014, 09:24
zna
Насколько я понял, сначала накладная никак не связана с планом. Можно сделать так:
Запускаете цикл по spsopr по всем накладным с данным видом (например, 101);
Далее в цикле:
Для текущей позиции spsopr находите МЦ;
Устанавливаете ограничения на спецификацию плана spmnplan по заголовку и МЦ;
Если запись найдена- находите ячейку спецификации spmnpl и модифицируете поле "факт";
Создаёте запись в objacct (если её ещё нет для данной накладной);
Можно и связи по спецификациям создать- это будут две записи в spobjacc, но это сложно и необязательно;
Переходите к следующей записи в цикле.
Вообщем, несложный алгоритмик.
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 03 фев 2014, 12:26
Serg7907
Спасибо за ответ, Вы правильно все поняли.
Как запустить цикл по spsopr и найти для текущей позиции МЦ, это я понял. А дальше "темный лес"((:
1.Установка ограничений на спецификацию плана spmnplan по заголовку и МЦ - это задается в методах объекта?
2. Если запись найдена- находите ячейку спецификации spmnpl и модифицируете поле "факт" -в данном случае поле факт - это изменяем определенные значения полей таблицы spsopr?
3. Создаёте запись в objacct - вот тут можно поподробнее.
Зараннее извиняюсь за вопросы, просто только еще учусь с Java работать. Какие-то простые вещи получаются, а чуть посложнее, затык....
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 03 фев 2014, 14:11
zna
Да хватит Вам извиняться, понятно, что учитесь.. как и я. Здесь принято плюс ставить, если комментарии полезны.
1. spmnplan- объект, указанный как экземпляр. На вкладке свойств находите свойство что-то вроде "Установить ограничения по заголовку и изделию", называете его, ну пусть toSpMnPlanZagIzd.
В цикле по spsopr пишете SpMnPlan.toMnPlan(CurPlan(),spsopr.cmcusl,MC); //MC- это константа, её можно на вкладке "Константы" определить, для spmnplan- поищите
if (SpMnPlan.getFirst() == true)
{
SpMnPl.toSpMnPlan(SpMnPlan.Nrec); //Установили ограничение: выбрать все ячейки, относящиеся к текущей строке
SpMnPl.getFirst(); //Встали на первую ячейку
SpMnPl.PoleХ = 111; // Модификация ячейки к строке в буфере, PoleX- это "факт"
SpMnPl.rewrite(); //Запись ячейки из буфера в таблицу
.. см.п.2
}
2.Изменяете не spsopr- зачем его изменять, это же факт из накладной. Изменяете spmnplan.
3.Попозже..
Re: Java скрипт - связь спецификации накладной и плана снабж
Добавлено: 04 фев 2014, 11:30
Serg7907
Спасибо, жду продолжения)))