Проблема с обработчиком "После загрузки"

1. rybolovlev_ms 18.11.18 00:31 Сейчас в теме
Всем привет. КД 2.1. Настраиваю обмен между базами через com-соединение. с помощью обработки Универсальный обмен данными в формате XML.
ИЗ ЗУП 2.5 в Розницу 2.2 выгружаются физические лица (настроено через ПКО Физические лица),. В обработчике ПКО Физические лица "После загрузки" написан алгоритм, который создает дисконтную карту для загруженного физлица, а также, создает для этой карты штрихкод (запись в регистр сведений). Так вот,при выгрузке через com-соединение в базе-источнике не создаются штрихкоды, как будто именно этот кусок кода не отрабатывает вовсе .(Весь алгоритм обработчика ниже) .При выгрузке в файл из источника и загрузке из файла в приемник интерактивно, все загружается отлично. Обе базы серверные. В чем может быть дело?

Если Объект.Сотрудник = Истина Тогда
	
	ИмяКарты =  Объект.ИдентификационныйКодЛичности; //оно же штрихкод
	
	КартаСотрудника = Справочники.ИнформационныеКарты.НайтиПоНаименованию(ИмяКарты);
	
	Если Не ЗначениеЗаполнено(КартаСотрудника) Тогда  // Создаем новую карту
		
		НоваяКарта = Справочники.ИнформационныеКарты.СоздатьЭлемент();
		НоваяКарта.Наименование    = СокрЛП(ИмяКарты);
		НоваяКарта.ВладелецКарты   = _Ссылка;
		НоваяКарта.КартаСотрудника = Истина;	
		НоваяКарта.СМ_Действующая  = Истина;  
		НоваяКарта.СМ_ФИО          = Объект.Наименование;  
		НоваяКарта.ВидКарты        = Перечисления.ВидыИнформационныхКарт.Штриховая;
		НоваяКарта.ТипКарты        = Перечисления.ТипыИнформационныхКарт.Дисконтная;
		
		Если ПараметрыОбъекта <> Неопределено Тогда
			ВидДисконтнойКарты = ПараметрыОбъекта.Получить("ВидДисконтнойКарты"); 
			Если ВидДисконтнойКарты = 1 Тогда
				НоваяКарта.ВидДисконтнойКарты   = Справочники.ВидыДисконтныхКарт.НайтиПоНаименованию("Бэкофис");
			ИначеЕсли ВидДисконтнойКарты = 2 Тогда
				НоваяКарта.ВидДисконтнойКарты   = Справочники.ВидыДисконтныхКарт.НайтиПоНаименованию("Магазин");
			КонецЕсли;	
		КонецЕсли;

		НоваяКарта.Записать();
		
		//Создаем новый штихкод АЛГОРИТИМ СОЗДАНИЯ ШТРИХКОДА
		
		ЗаписьШтрихкода              = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
		ЗаписьШтрихкода.Владелец     = НоваяКарта.Ссылка;
		ЗаписьШтрихкода.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
		ЗаписьШтрихкода.Штрихкод     = ИмяКарты;
		
		Попытка
			ЗаписьШтрихкода.Записать();
		Исключение
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
		КонецПопытки;
		
				
	Иначе 
           .....
        КонецЕсли

КонецЕсли
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. alkl 30.11.20 19:55 Сейчас в теме
(1) Удивительно что ответа вам так и не выдали.
Ответ простой. Смотрим режим совместимости в правилах. Если выше 2.0 (а в рознице как раз 2.01 вроде бы), то код обработчиков после загрузки вызывается из правил, которые находятся в конф. приемнике - правила конфигурации корреспондента (CorrespondentExchangeRules.XML). Т.е. измененные правила загружать надо не только в конфигурацию источник, но и в конф. приемник в правила конвертации корреспондента (в вашем случае в розницу 2.2).
Igorro82IT; Users-1c; blackilidan; +3 Ответить
2. dyuha 49 18.11.18 06:04 Сейчас в теме
Смотри ошибки в журнале регистрации приемника. Скорее всего при записи чего-нибудь отрабатывает подписка, не доступная во внешнем соединении.
3. insurgut 207 18.11.18 07:46 Сейчас в теме
Перед любым созданием зависимых объектов (записей в регистры и т.п.) нужно перед этим
Попытка
Объект.Записать();
//+далее создаем записи регистров
...
//-
Исключение
КонецПопытки;
4. insurgut 207 18.11.18 07:47 Сейчас в теме
5. rybolovlev_ms 18.11.18 12:02 Сейчас в теме
(4)_Ссылка это ссылка на загруженный элемент Физические лица, с этим все в порядке.
8. insurgut 207 18.11.18 12:18 Сейчас в теме
(5) если бы у вас все было в порядке, то и темы тут не было бы. Уточню, что для новый объектов до записи ссылки - не существует. Новый созданный и не записаный объект до записи будет иметь одно значение Объект.Ссылка и после записи значение Объект.Ссылка станет совсем другим.
9. rybolovlev_ms 18.11.18 12:26 Сейчас в теме
(8) Это я знаю. Нет проблем с загрузкой физического лица и созданием дисконтной карты. владельцем которой является это физическое лицо, ссылка на физическое лицо есть 100%, не важно, новый это объект или нет, это прописано в коде,который я не стал приводить.. Отсюда и переменная _Ссылка. Проблема только в создании штрихкода, владельцем которого является дисконтная карта.
6. acanta 18.11.18 12:09 Сейчас в теме
Права в пользователе? Глобальные переменные, не созданные в модуле внешнего соединения?
7. rybolovlev_ms 18.11.18 12:16 Сейчас в теме
(6) Права полные везде, возможно действительно стоит курить внешнее соединение...
10. triviumfan 93 20.11.18 14:53 Сейчас в теме
Добавить:
ЗаписьШтрихкода.ОбменДанными.Загрузка = Истина;

Ну и вперёд в отладчик.
ЗЫ: вру, только у набора есть это свойство.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот