Сопоставление реквизитов ТЧ по условию
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Добрый день. Подскажите, пожалуйста:
Задача: Есть ТЧ источника, в нём есть реквизит ДопПредставлениеНоменклатуры(тип строка), необходимо условие - если этот реквизит заполнен, искать в приемнике номенклатуру по реквизиту ДопПредставелниеНоменклатуры, если не заполнен - брать стандартный реквизит номенклатура из источника. Как можно реализовать данный функционал? Спасибо.
Задача: Есть ТЧ источника, в нём есть реквизит ДопПредставлениеНоменклатуры(тип строка), необходимо условие - если этот реквизит заполнен, искать в приемнике номенклатуру по реквизиту ДопПредставелниеНоменклатуры, если не заполнен - брать стандартный реквизит номенклатура из источника. Как можно реализовать данный функционал? Спасибо.
По теме из базы знаний
- SynchroWB — интеграция 1С и Wildberries: автоматизация заказов и остатков по API с УТ, КА, ERP, УНФ, Розница 3
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Универсальный обмен данными web или com (UDE ver.4.x.x)
- Универсальный редактор табличных частей документов РеСольДо
- КД 2: у выгружаемого свойства объекта заполняются только поля поиска и не отрабатывают обработчики ПКО
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Создал ПКС - пустой источник, приемник - номенклатура.
Если ЗначениеЗаполнено(ОбъектКоллекции.ДопПредставелниеНоменклатуры) Тогда
Значение = ОбъектКоллекции.ДопПредставелниеНоменклатуры;
Иначе
Значение = ОбъектКоллекции.Номенклатура;
КонецЕсли;
Сообщить(Значение);
В сообщалке вижу что выгружается корректно, в приемнике всё равно пустое значение :/
Если ЗначениеЗаполнено(ОбъектКоллекции.ДопПредставелниеНоменклатуры) Тогда
Значение = ОбъектКоллекции.ДопПредставелниеНоменклатуры;
Иначе
Значение = ОбъектКоллекции.Номенклатура;
КонецЕсли;
Сообщить(Значение);
В сообщалке вижу что выгружается корректно, в приемнике всё равно пустое значение :/
Смотрю XMLину, выгружает мое представление номенклатуры
-<Свойство Имя="Номенклатура">
<Значение>Бензин 95</Значение>
</Свойство>
Но приемник не заполняет....
На получение в приемнике может влияет не заполненное поле в ПКС - "Правило". Если его заполняю правилом Номенклатура, на выходе получаю ошибку:
ТипОбъекта = Документ объект: Реализация товаров и услуг
Объект = Реализация товаров и услуг СПб00000324 от 23.01.2016 16:58:41
ОписаниеОшибки = Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Номенклатура (Справочник: Номенклатура)
ПКС = 5 (Наименование --> Наименование)
Объект = Бензин 95 (Строка)
СвойствоПриемника = Наименование (Строка)
ОписаниеОшибки = Получение элемента по индексу для значения не определено
ПозицияМодуля = Обработка.ОбменДаннымиXML(8059)
КодСообщения = 13
ПозицияМодуля = Обработка.ОбменДаннымиXML(1635)
КодСообщения = 72
УзелПланаОбмена = Бухгалтерия предприятия
-<Свойство Имя="Номенклатура">
<Значение>Бензин 95</Значение>
</Свойство>
Но приемник не заполняет....
На получение в приемнике может влияет не заполненное поле в ПКС - "Правило". Если его заполняю правилом Номенклатура, на выходе получаю ошибку:
ТипОбъекта = Документ объект: Реализация товаров и услуг
Объект = Реализация товаров и услуг СПб00000324 от 23.01.2016 16:58:41
ОписаниеОшибки = Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Номенклатура (Справочник: Номенклатура)
ПКС = 5 (Наименование --> Наименование)
Объект = Бензин 95 (Строка)
СвойствоПриемника = Наименование (Строка)
ОписаниеОшибки = Получение элемента по индексу для значения не определено
ПозицияМодуля = Обработка.ОбменДаннымиXML(8059)
КодСообщения = 13
ПозицияМодуля = Обработка.ОбменДаннымиXML(1635)
КодСообщения = 72
УзелПланаОбмена = Бухгалтерия предприятия
тогда можно таким алгоритмом:
1) добавляем параметр (тип – таблица значений);
2) заполняем данными табличной части (до выгрузки) в ПКО;
3) после загрузки выполняем слияние табличной части объекта (приемника) и параметра.
1) добавляем параметр (тип – таблица значений);
2) заполняем данными табличной части (до выгрузки) в ПКО;
3) после загрузки выполняем слияние табличной части объекта (приемника) и параметра.
Разобрался... книга по КД Бояркин/Филатов, страница 135.
Решение:
Для табличной части, ПКС Номенклатура :
Источник: Пусто
Приемник: Номенклатура
Правило: обазтельно создаем новый ПКО (Источник - пусто, Приемник - Номенклатура). Для него создаем единсвтенное ПКС - Источник: Пусто, Приемник: Наименвание.
Добавляем в событие "Перед загрузкой" Значение = источник
---- Теперь доработаем ПКС табличной части. После того как заполнили источник, приемник, правило, добавляем:
Событие "Перед загрузкой":
Большое спасибо v3rter, Rinnous за подсказки.
Решение:
Для табличной части, ПКС Номенклатура :
Источник: Пусто
Приемник: Номенклатура
Правило: обазтельно создаем новый ПКО (Источник - пусто, Приемник - Номенклатура). Для него создаем единсвтенное ПКС - Источник: Пусто, Приемник: Наименвание.
Добавляем в событие "Перед загрузкой" Значение = источник
---- Теперь доработаем ПКС табличной части. После того как заполнили источник, приемник, правило, добавляем:
Событие "Перед загрузкой":
Если ЗначениеЗаполнено(ОбъектКоллекции.ДопПредставлениеНоменклатуры) Тогда
Значение = СокрЛП(ОбъектКоллекции.ДопПредставлениеНоменклатуры);
Иначе
Значение = СокрЛП(ОбъектКоллекции.Номенклатура);
КонецЕсли;
Большое спасибо v3rter, Rinnous за подсказки.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот