КД 2.1 пустое имя при перекачке реквизита справочника в регистр сведений
В базе-источнике есть справочник "Номенклатура" с реквизитом "ШтрихКод" типа "Строка". В базе-приёмнике в справочнике "Номенклатура" реквизита "ШтрихКод" нет, зато есть независимый регистр сведений "НоменклатураПоШтрихКодам" с измерением "ШтрихКод" и ресурсом "Номенклатура" (см. вложение).
Делаю перекачку штрих-кода. Выгружает нормально, но при загрузке ругается:
Посмотрел в отладчике - пустое имя, заглянул в XML-файл выгрузки (Данные.xml) - действительно, кое-где имя пустое
В ПКО "НоменклатураПоШтрихКодам" действительно нет приёмника, но там берётся из входящих данных. Пробовал в ПКО "НоменклатураПоШтрихКодам" ставить правило конвертации "Номенклатура" (где формируется структура "ИсходящиеДанные") - для ПКС "Номенклатура" не помогает, для ПКС "ШтрихКод" начинает ругаться ужЕ при выгрузке
Что делать? Как всё-таки выгрузить этот несчастный штрих-код?
Делаю перекачку штрих-кода. Выгружает нормально, но при загрузке ругается:
Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6989)}: Поле объекта не обнаружено
Посмотрел в отладчике - пустое имя, заглянул в XML-файл выгрузки (Данные.xml) - действительно, кое-где имя пустое
Свойство Имя=""
В ПКО "НоменклатураПоШтрихКодам" действительно нет приёмника, но там берётся из входящих данных. Пробовал в ПКО "НоменклатураПоШтрихКодам" ставить правило конвертации "Номенклатура" (где формируется структура "ИсходящиеДанные") - для ПКС "Номенклатура" не помогает, для ПКС "ШтрихКод" начинает ругаться ужЕ при выгрузке
Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Номенклатура (Справочник: Номенклатура)
ПКС = 1 (Код --> Код)
Объект = К 2,5% (Строка)
СвойствоПриемника = Код (Строка)
ОписаниеОшибки = Получение элемента по индексу для значения не определено
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8286)
КодСообщения = 13
ПоказатьЧто делать? Как всё-таки выгрузить этот несчастный штрих-код?
Прикрепленные файлы:
Инфостарт.zip
Найденные решения
Нужно использовать ВыгрузитьПоПравилу в событии ПослеВыгрузки ПКО Номенклатура. Сейчас у Вас обработка пытается найти реквизит приемника, соответствующий реквизиту ШтрихКод источника.
Еще нужно в ПКС -> ВидНоменклатуры задать какое-нибудь значение, просто ИсходящиеДанные не выгружаются. Я обычно пишу Значение = 1;
Еще нужно в ПКС -> ВидНоменклатуры задать какое-нибудь значение, просто ИсходящиеДанные не выгружаются. Я обычно пишу Значение = 1;
Прикрепленные файлы:
ПравилаОбменаДанными.xml
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Нужно использовать ВыгрузитьПоПравилу в событии ПослеВыгрузки ПКО Номенклатура. Сейчас у Вас обработка пытается найти реквизит приемника, соответствующий реквизиту ШтрихКод источника.
Еще нужно в ПКС -> ВидНоменклатуры задать какое-нибудь значение, просто ИсходящиеДанные не выгружаются. Я обычно пишу Значение = 1;
Еще нужно в ПКС -> ВидНоменклатуры задать какое-нибудь значение, просто ИсходящиеДанные не выгружаются. Я обычно пишу Значение = 1;
Прикрепленные файлы:
ПравилаОбменаДанными.xml
(2)
Спасибо, всё работает!
А есть ли для ВыгрузитьПоПравилу() встроенный help?
У меня выгружаются. Более того, так делать НЕ рекомендуют потому, что будут выгружаться значения, даже если в базе-источнике поле пустое. Например, у меня, если прописать Значение, в справочнике "Единицы" создаются ненужные записи для услуг с пустыми ссылками на Классификатор.
Так будет ругаться
Поэтому я писал "Значение=ИсходящиеДанные;", а потОм оказалось, что вообще ничего не надо писать.
Спасибо, всё работает!
Нужно использовать ВыгрузитьПоПравилу
А есть ли для ВыгрузитьПоПравилу() встроенный help?
Еще нужно в ПКС -> ВидНоменклатуры задать какое-нибудь значение, просто ИсходящиеДанные не выгружаются
У меня выгружаются. Более того, так делать НЕ рекомендуют потому, что будут выгружаться значения, даже если в базе-источнике поле пустое. Например, у меня, если прописать Значение, в справочнике "Единицы" создаются ненужные записи для услуг с пустыми ссылками на Классификатор.
Я обычно пишу Значение = 1;
Так будет ругаться
Ошибка получения значения свойства объекта (по имени свойства источника)
Поэтому я писал "Значение=ИсходящиеДанные;", а потОм оказалось, что вообще ничего не надо писать.
(5)
Это экспортный метод из модуля обработки УниверсальныйОбменДаннымиXML, к нему есть описание (см. УОД_Описание.png)
Посмотрите повнимательнее, не должны. В прилагаемом архиве в файле Данные данных по ВидНоменклатуры нет.
Надо проверку заполненности делать.
Я в той конвертации, которую приложил, ошибся, не обратил внимания, что значения может быть 2.
Там проще в ПКС -> ВидыНоменклатуры
А в ПКО ВидыНоменклатуры в его ПКС прописать
Ну и галку Искать по внутреннему идентификатору убрать.
А есть ли для ВыгрузитьПоПравилу() встроенный help?
Это экспортный метод из модуля обработки УниверсальныйОбменДаннымиXML, к нему есть описание (см. УОД_Описание.png)
ПКС -> ВидНоменклатуры ... У меня выгружаются
Посмотрите повнимательнее, не должны. В прилагаемом архиве в файле Данные данных по ВидНоменклатуры нет.
Более того, так делать НЕ рекомендуют потому, что будут выгружаться значения, даже если в базе-источнике поле пустое.
Надо проверку заполненности делать.
Я в той конвертации, которую приложил, ошибся, не обратил внимания, что значения может быть 2.
Там проще в ПКС -> ВидыНоменклатуры
Если Источник.Услуга=Истина Тогда
Значение = "Услуга";
Иначе
Значение = "Товар";
КонецЕсли;
А в ПКО ВидыНоменклатуры в его ПКС прописать
Значение = Источник;
Ну и галку Искать по внутреннему идентификатору убрать.
Прикрепленные файлы:

Ругается на позиции номенклатуры, в которых не указан штрих-код. То есть для регистра сведений это и выглядит как Имя="".
Поставьте в ПКО "НоменклатураПоШтрихКодам" условие с отказом на пустую строку.
Или в ПКС "ШтрихКод" перед выгрузкой.
Или в группе где проверяете с отказом на группу добавьте проверку на пустую строку штрих кода. К примеру Отказ=Источник.ЭтоГруппа или ПустаяСтрока(Источник.ШтрихКод);
Поставьте в ПКО "НоменклатураПоШтрихКодам" условие с отказом на пустую строку.
Или в ПКС "ШтрихКод" перед выгрузкой.
Или в группе где проверяете с отказом на группу добавьте проверку на пустую строку штрих кода. К примеру Отказ=Источник.ЭтоГруппа или ПустаяСтрока(Источник.ШтрихКод);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот