Обмен ЗУП 3 - БП 3. Отражение зарплаты. ТЧ Удержания. Не создаются контрагенты по ссылке.

1. Raskad 10 01.07.19 15:16 Сейчас в теме
Здравствуйте.
Источник: ЗУП 3.1.10.50
Приемник: БП 3.0.70.39

В выгруженном документе "Отражение зарплаты в бух. учете", в табличной части "Удержания" в некоторых строках, в колонке "Контрагент" стоит "<Объект не найден> (105:afbc00259018da7d11e97b9f4ff9231c)". Обмен по штатному плану обмена, через синхронизацию. Мои действия:

1. В первую очередь посмотрел правила обмена. Убедился в отсутствии галки "При переносе объекта по ссылке НЕ создавать новый объект (переносить ссылку).
2. В отладчике:
- в функции "НайтиОбъектПоСсылке" параметр "НеСоздаватьОбъектЕслиНеНайден = ложь". Правильно. Но есть еще один параметр - "РежимПоискаОсновногоОбъекта", по умолчанию, если он не указан при вызове функции (а он не указан!), то принимает значение - Ложь. Ну и дальше: ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта. Приехали.
- далее
	// Создавать новый объект нужно не всегда.
	Если (СсылкаНаОбъект = Неопределено
			ИЛИ СсылкаНаОбъект.Пустая())
		И СозданныйОбъект = Неопределено Тогда // Объект не найден по полям поиска.
		
		Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда
			
			СсылкаНаОбъект = СтруктураСвойств.Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(СвойствоУникальныйИдентификатор));
			СсылкаНаОбъектФиктивная = Истина;
			
		ИначеЕсли НЕ НеСоздаватьОбъектЕслиНеНайден Тогда
		
			СсылкаНаОбъект = СоздатьНовыйОбъект(ТипОбъекта, СвойстваПоиска, СозданныйОбъект, 
				НЕ РежимПоискаОсновногоОбъекта, ИзвестнаяСсылкаУникальногоИдентификатора, УстанавливатьУОбъектаВсеСвойстваПоиска);
				
		КонецЕсли;
			
		ОбъектНайден = Ложь;
		
	Иначе
		
		// Объект найден по полям поиска.
		ОбъектНайден = Истина;
			
	КонецЕсли;
Показать


Получается все объекты не создаются??? Это что, прикол такой?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user_2010 943 01.07.19 15:23 Сейчас в теме
по-моему контрагенты должны быть созданы в БУХ и переданые в ЗУП - могу ошибаться, но у меня такие ассоциации
3. Raskad 10 01.07.19 15:28 Сейчас в теме
Дело в том, что это алименщики, а исполнительные листы создаются в ЗУП, соответственно и контрагенты там же.
4. Raskad 10 01.07.19 15:52 Сейчас в теме
Что-то я запутался. А может быть, правда, логика такая заложена?
5. YannikAlx 27 02.07.19 10:05 Сейчас в теме
Ваша проблема вот здесь:
ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта. Приехали.

Откда вы взяли что сравнение идет Этих 2 переменных

 ИначеЕсли НЕ НеСоздаватьОбъектЕслиНеНайден Тогда
значит
Если НеСоздаватьОбъектЕслиНеНайден = Ложь , то есть нужно создавать объект , то он прекрасно должен создаваться....
6. Raskad 10 02.07.19 10:48 Сейчас в теме
(5)
да вы взяли что сравнение идет Этих 2 переменных


1. Есть функция "ПрочитатьСвойство". Читает из файла узел свойства объекта, устанавливает значение свойства. Там идет вызов функции "НайтиОбъектПоСсылке". Назначение функции - производит поиск объекта в информационной базе, если не найден создает новый. Запомнили.

2. Внутри этой функции есть конструкция
ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта;
. Переменная "РежимПоискаОсновногоОбъекта" всегда принимает значение "Ложь", следовательно и "ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD" = Истина. Запомнили.

3. Поиск объекта по ссылке подразделяется не несколько этапов:
- Поиск объекта по регистру сопоставления объектов;
- Поиск объекта имени предопределенного элемента;
- Поиск объекта по уникальному идентификатору ссылки;
- Поиск объекта по произвольному алгоритму поиска;
- Поиск объекта по полям поиска (если нет произовольного алгоритма поиска).

4. Так вот после выполнения всех этапов поиска, если объект не найден, идет конструкция:

	Если (СсылкаНаОбъект = Неопределено
			ИЛИ СсылкаНаОбъект.Пустая())
		И СозданныйОбъект = Неопределено Тогда // Объект не найден по полям поиска.
		
		Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда
			
			СсылкаНаОбъект = СтруктураСвойств.Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(СвойствоУникальныйИдентификатор));
			СсылкаНаОбъектФиктивная = Истина;
			
		ИначеЕсли НЕ НеСоздаватьОбъектЕслиНеНайден Тогда
		
			СсылкаНаОбъект = СоздатьНовыйОбъект(ТипОбъекта, СвойстваПоиска, СозданныйОбъект, 
				НЕ РежимПоискаОсновногоОбъекта, ИзвестнаяСсылкаУникальногоИдентификатора, УстанавливатьУОбъектаВсеСвойстваПоиска);
				
		КонецЕсли;
			
		ОбъектНайден = Ложь;
		
	Иначе
		
		// Объект найден по полям поиска.
		ОбъектНайден = Истина;
			
	КонецЕсли;
Показать


И в управляющей структуре сразу же проваливаемся в условие "Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда". Ну дальше, думаю, объяснять не нужно.
7. Raskad 10 02.07.19 15:36 Сейчас в теме
Не пойму одного...правила нетиповые (изменено событие "после загрузки" ПКО документа "Отражение зарплаты в бух.учете". Правила были загружены только на источнике, тобишь в ЗУП, а в приемнике (БП) ничего не трогал, правила типовые. Все работало. Сейчас не работает, при загрузке как будто приемник стал реально использовать типовые правила) Что за ? Я теперь должен правила приемника также изменить и подгрузить?
8. OldthiefXXX 153 10.03.20 00:24 Сейчас в теме
Проверь регистр сведений , соответствие объектов иб, реквизит Уникальный идентификатор источника Строкой (должен быть заполнен)
Оставьте свое сообщение

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