Проблема с обработчиком "После загрузки"
Всем привет. КД 2.1. Настраиваю обмен между базами через com-соединение. с помощью обработки Универсальный обмен данными в формате XML.
ИЗ ЗУП 2.5 в Розницу 2.2 выгружаются физические лица (настроено через ПКО Физические лица),. В обработчике ПКО Физические лица "После загрузки" написан алгоритм, который создает дисконтную карту для загруженного физлица, а также, создает для этой карты штрихкод (запись в регистр сведений). Так вот,при выгрузке через com-соединение в базе-источнике не создаются штрихкоды, как будто именно этот кусок кода не отрабатывает вовсе .(Весь алгоритм обработчика ниже) .При выгрузке в файл из источника и загрузке из файла в приемник интерактивно, все загружается отлично. Обе базы серверные. В чем может быть дело?
ИЗ ЗУП 2.5 в Розницу 2.2 выгружаются физические лица (настроено через ПКО Физические лица),. В обработчике ПКО Физические лица "После загрузки" написан алгоритм, который создает дисконтную карту для загруженного физлица, а также, создает для этой карты штрихкод (запись в регистр сведений). Так вот,при выгрузке через com-соединение в базе-источнике не создаются штрихкоды, как будто именно этот кусок кода не отрабатывает вовсе .(Весь алгоритм обработчика ниже) .При выгрузке в файл из источника и загрузке из файла в приемник интерактивно, все загружается отлично. Обе базы серверные. В чем может быть дело?
Если Объект.Сотрудник = Истина Тогда
ИмяКарты = Объект.ИдентификационныйКодЛичности; //оно же штрихкод
КартаСотрудника = Справочники.ИнформационныеКарты.НайтиПоНаименованию(ИмяКарты);
Если Не ЗначениеЗаполнено(КартаСотрудника) Тогда // Создаем новую карту
НоваяКарта = Справочники.ИнформационныеКарты.СоздатьЭлемент();
НоваяКарта.Наименование = СокрЛП(ИмяКарты);
НоваяКарта.ВладелецКарты = _Ссылка;
НоваяКарта.КартаСотрудника = Истина;
НоваяКарта.СМ_Действующая = Истина;
НоваяКарта.СМ_ФИО = Объект.Наименование;
НоваяКарта.ВидКарты = Перечисления.ВидыИнформационныхКарт.Штриховая;
НоваяКарта.ТипКарты = Перечисления.ТипыИнформационныхКарт.Дисконтная;
Если ПараметрыОбъекта <> Неопределено Тогда
ВидДисконтнойКарты = ПараметрыОбъекта.Получить("ВидДисконтнойКарты");
Если ВидДисконтнойКарты = 1 Тогда
НоваяКарта.ВидДисконтнойКарты = Справочники.ВидыДисконтныхКарт.НайтиПоНаименованию("Бэкофис");
ИначеЕсли ВидДисконтнойКарты = 2 Тогда
НоваяКарта.ВидДисконтнойКарты = Справочники.ВидыДисконтныхКарт.НайтиПоНаименованию("Магазин");
КонецЕсли;
КонецЕсли;
НоваяКарта.Записать();
//Создаем новый штихкод АЛГОРИТИМ СОЗДАНИЯ ШТРИХКОДА
ЗаписьШтрихкода = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
ЗаписьШтрихкода.Владелец = НоваяКарта.Ссылка;
ЗаписьШтрихкода.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
ЗаписьШтрихкода.Штрихкод = ИмяКарты;
Попытка
ЗаписьШтрихкода.Записать();
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
Иначе
.....
КонецЕсли
КонецЕсли
ПоказатьПо теме из базы знаний
- Выгрузка-загрузка любых данных (и измененных) между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Универсальная загрузка данных формата Excel
- Выгрузка / загрузка правил Конвертации данных 2.1 в файлы / из файлов (для Git, SonarQube, VS Code и т.д.)
- Робот-загрузчик и архив документов. Распознавание/загрузка сканов документов в 1С8(7.7), архив сканированных документов.
- Конфигурация для загрузки штрафов ГИБДД
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) Удивительно что ответа вам так и не выдали.
Ответ простой. Смотрим режим совместимости в правилах. Если выше 2.0 (а в рознице как раз 2.01 вроде бы), то код обработчиков после загрузки вызывается из правил, которые находятся в конф. приемнике - правила конфигурации корреспондента (CorrespondentExchangeRules.XML). Т.е. измененные правила загружать надо не только в конфигурацию источник, но и в конф. приемник в правила конвертации корреспондента (в вашем случае в розницу 2.2).
Ответ простой. Смотрим режим совместимости в правилах. Если выше 2.0 (а в рознице как раз 2.01 вроде бы), то код обработчиков после загрузки вызывается из правил, которые находятся в конф. приемнике - правила конфигурации корреспондента (CorrespondentExchangeRules.XML). Т.е. измененные правила загружать надо не только в конфигурацию источник, но и в конф. приемник в правила конвертации корреспондента (в вашем случае в розницу 2.2).
(5) если бы у вас все было в порядке, то и темы тут не было бы. Уточню, что для новый объектов до записи ссылки - не существует. Новый созданный и не записаный объект до записи будет иметь одно значение Объект.Ссылка и после записи значение Объект.Ссылка станет совсем другим.
(8) Это я знаю. Нет проблем с загрузкой физического лица и созданием дисконтной карты. владельцем которой является это физическое лицо, ссылка на физическое лицо есть 100%, не важно, новый это объект или нет, это прописано в коде,который я не стал приводить.. Отсюда и переменная _Ссылка. Проблема только в создании штрихкода, владельцем которого является дисконтная карта.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)