Благодарен за замечание. Нужно было просто добавить строчку в код "Если Списываем=0 Тогда Продолжить; КонецЕсли;" - избавиться от появления пустых движений.
Цитата (bilateral)
bilateral
обработке проведения расходной накладной:
1) у вас:
Движения.Продажи.Очистить(); Движения.Продажи.Записать();,
я думаю хватит только Движения.Продажи.Записать(); (т.к. в "Движения" незачем очищать, там и так пусто) (то же самое и для Движения.ОстаткиНоменклатуры)
2) в блокировках у вас:
ЭлементБлокировки.ИсточникДанных = Результат;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");
вот тут я не уверен, но написал бы вместо "ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");" -
"ЭлементБлокировки.УстановитьЗначение("Склад",Склад)" (у нас склад один и прописан он в шапке, если использовать как у вас, то если будет 100 строк номенклатур,
то в них будет 100 раз прописан один и тот же склад).
3) ну и немного "побурчу" по реализации аналогов.
Мне тяжело было понять у вас суть аналогов.
Как я понял вы создали отделый объект "справочник аналоги", у номенклатуры добавили реквизит "аналог". И вся номенклатура с одинаковым
значением реквизита "аналог" - друг друга взаимозаменяет?
Если так, то предположим, что есть номенклатура П1, П2, П3, у них одинаковый реквизит "аналог". Тогда получается, что П1,П2 и П3 взаимозаменяемы.
А если заказчик хочет, что бы П2 было аналогом для П1 и П3, но П1 не являлось аналогом для П3(и наоборот), как это реализуется в вашей схеме?
(можно было реализовать аналоги а) как табличные части номенклатуры или б) как у вас регистр сведений, только в измерении ГруппаАналогов тип данных номенклатура)
(прикрепляю свою базу)
Вложения:
8315775.dt