Инициализировать источник для обработчика ПередЗагрузкой ПКО
Пишу правила обмена.
Для переноса документа ЗаказКлиента настроил ПКС по всем необходимым свойствам и ТЧ.
(картинка 1).
В ПКО в обработчике ПередЗагрузкой, хочу проверять, если в базе Приемнике уже есть документ, с привязанным к нему ЗаказомНаПроизводство, с таким же номером как он есть и в базе Источнике, то док в Приемнике не создается и не заменятся.
Правила такие:
Сейчас понимаю, что объект Источник в данном обработчике не определился.
Собственно вопрос, как его определить, в каком обработчике и как передать в нужный мне ПередЗагрузкой?
Для переноса документа ЗаказКлиента настроил ПКС по всем необходимым свойствам и ТЧ.
(картинка 1).
В ПКО в обработчике ПередЗагрузкой, хочу проверять, если в базе Приемнике уже есть документ, с привязанным к нему ЗаказомНаПроизводство, с таким же номером как он есть и в базе Источнике, то док в Приемнике не создается и не заменятся.
Правила такие:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказНаПроизводство.ЗаказПокупателяОснование.Ссылка КАК ЗаказПокупателя,
| ЗаказНаПроизводство.Ссылка КАК ЗаказНаПроизводство,
| ЗаказНаПроизводство.ЗаказПокупателяОснование.НомерИзУТП КАК ЗаказПокупателяНомерИзУТП,
| ЗаказНаПроизводство.ЗаказПокупателяОснование.ЗагруженИзУТП КАК ЗаказПокупателяЗагруженИзУТП
|ИЗ
| Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство
|ГДЕ
| ЗаказНаПроизводство.ЗаказПокупателяОснование.Ссылка <> &ПустаяСсылка
| И ЗаказНаПроизводство.ЗаказПокупателяОснование.ЗагруженИзУТП";
Запрос.УстановитьПараметр("ПустаяСсылка", Документы.ЗаказПокупателя.ПустаяСсылка());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
//ИсточникТовары = Источник.Товары.Выгрузить();
//Объект = Выборка.ЗаказПокупателя.ПолучитьОбъект();
Если Выборка.ЗаказПокупателяНомерИзУТП = Источник.Номер Тогда
ТЧТовары = Выборка.ЗаказПокупателя.Товары.Выгрузить();
Для Каждого СтрокаТЧТовары Из ТЧТовары Цикл
ИсточникТовары = Источник.Товары.Выгрузить();
Для Каждого СтрокаИсточникТовары из ИсточникТовары Цикл
Если СтрокаТЧТовары.Номенклатура <> СтрокаИсточникТовары.Номенклатура ИЛИ СтрокаТЧТовары.ХарактеристикаНоменклатуры <> СтрокаИсточникТовары.ХарактеристикаНоменклатуры
ИЛИ СтрокаТЧТовары.Количество <> СтрокаИсточникТовары.Количество Тогда
ПометкаУдаления = Ложь;
Отказ = Истина;
Сообщить("Данный заказ № " + Выборка.ЗаказПокупателя.НомерИзУТП + " от " + Выборка.ЗаказПокупателя.Дата + " уже запущен в производство - заказ на производство № " + Выборка.ЗаказНаПроизводство.Номер + " от " + Выборка.ЗаказНаПроизводство.Дата + ", согласуйте изменение с начальником отдела по планированию производства!");
Иначе
ПометкаУдаления = Ложь;
Отказ = Ложь;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ПоказатьСейчас понимаю, что объект Источник в данном обработчике не определился.
Собственно вопрос, как его определить, в каком обработчике и как передать в нужный мне ПередЗагрузкой?
Прикрепленные файлы:
![](/upload/forum/upload/55a/55ab3b2abae51d93ebc36aee67b205b7.jpg)
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
С КД2 плотно не работал, так ... баловался. Работаю с КД3.
В КД3 это решается в обработчике "Перед записью полученных данных" ПКО следующим кодом:
Если ДанныеИБ <> Неопределено Тогда
ПолученныеДанные = Неопределено;
КонецЕсли;
И никто ничего не затирает уже созданное. Почитай справку к обработчикам, может там что найдешь.
В КД3 это решается в обработчике "Перед записью полученных данных" ПКО следующим кодом:
Если ДанныеИБ <> Неопределено Тогда
ПолученныеДанные = Неопределено;
КонецЕсли;
И никто ничего не затирает уже созданное. Почитай справку к обработчикам, может там что найдешь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот