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

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 92 20.11.18 14:53 Сейчас в теме
Добавить:
ЗаписьШтрихкода.ОбменДанными.Загрузка = Истина;

Ну и вперёд в отладчик.
ЗЫ: вру, только у набора есть это свойство.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день