Обмен ЗУП 3 - БП 3. Отражение зарплаты. ТЧ Удержания. Не создаются контрагенты по ссылке.
Здравствуйте.
Источник: ЗУП 3.1.10.50
Приемник: БП 3.0.70.39
В выгруженном документе "Отражение зарплаты в бух. учете", в табличной части "Удержания" в некоторых строках, в колонке "Контрагент" стоит "<Объект не найден> (105:afbc00259018da7d11e97b9f4ff9231c)". Обмен по штатному плану обмена, через синхронизацию. Мои действия:
1. В первую очередь посмотрел правила обмена. Убедился в отсутствии галки "При переносе объекта по ссылке НЕ создавать новый объект (переносить ссылку).
2. В отладчике:
- в функции "НайтиОбъектПоСсылке" параметр "НеСоздаватьОбъектЕслиНеНайден = ложь". Правильно. Но есть еще один параметр - "РежимПоискаОсновногоОбъекта", по умолчанию, если он не указан при вызове функции (а он не указан!), то принимает значение - Ложь. Ну и дальше: ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта. Приехали.
- далее
Получается все объекты не создаются??? Это что, прикол такой?
Источник: ЗУП 3.1.10.50
Приемник: БП 3.0.70.39
В выгруженном документе "Отражение зарплаты в бух. учете", в табличной части "Удержания" в некоторых строках, в колонке "Контрагент" стоит "<Объект не найден> (105:afbc00259018da7d11e97b9f4ff9231c)". Обмен по штатному плану обмена, через синхронизацию. Мои действия:
1. В первую очередь посмотрел правила обмена. Убедился в отсутствии галки "При переносе объекта по ссылке НЕ создавать новый объект (переносить ссылку).
2. В отладчике:
- в функции "НайтиОбъектПоСсылке" параметр "НеСоздаватьОбъектЕслиНеНайден = ложь". Правильно. Но есть еще один параметр - "РежимПоискаОсновногоОбъекта", по умолчанию, если он не указан при вызове функции (а он не указан!), то принимает значение - Ложь. Ну и дальше: ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта. Приехали.
- далее
// Создавать новый объект нужно не всегда.
Если (СсылкаНаОбъект = Неопределено
ИЛИ СсылкаНаОбъект.Пустая())
И СозданныйОбъект = Неопределено Тогда // Объект не найден по полям поиска.
Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда
СсылкаНаОбъект = СтруктураСвойств.Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(СвойствоУникальныйИдентификатор));
СсылкаНаОбъектФиктивная = Истина;
ИначеЕсли НЕ НеСоздаватьОбъектЕслиНеНайден Тогда
СсылкаНаОбъект = СоздатьНовыйОбъект(ТипОбъекта, СвойстваПоиска, СозданныйОбъект,
НЕ РежимПоискаОсновногоОбъекта, ИзвестнаяСсылкаУникальногоИдентификатора, УстанавливатьУОбъектаВсеСвойстваПоиска);
КонецЕсли;
ОбъектНайден = Ложь;
Иначе
// Объект найден по полям поиска.
ОбъектНайден = Истина;
КонецЕсли;
ПоказатьПолучается все объекты не создаются??? Это что, прикол такой?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ваша проблема вот здесь:
Откда вы взяли что сравнение идет Этих 2 переменных
значит
Если НеСоздаватьОбъектЕслиНеНайден = Ложь , то есть нужно создавать объект , то он прекрасно должен создаваться....
ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта. Приехали.
Откда вы взяли что сравнение идет Этих 2 переменных
ИначеЕсли НЕ НеСоздаватьОбъектЕслиНеНайден Тогда
Если НеСоздаватьОбъектЕслиНеНайден = Ложь , то есть нужно создавать объект , то он прекрасно должен создаваться....
(5)
1. Есть функция "ПрочитатьСвойство". Читает из файла узел свойства объекта, устанавливает значение свойства. Там идет вызов функции "НайтиОбъектПоСсылке". Назначение функции - производит поиск объекта в информационной базе, если не найден создает новый. Запомнили.
2. Внутри этой функции есть конструкция . Переменная "РежимПоискаОсновногоОбъекта" всегда принимает значение "Ложь", следовательно и "ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD" = Истина. Запомнили.
3. Поиск объекта по ссылке подразделяется не несколько этапов:
- Поиск объекта по регистру сопоставления объектов;
- Поиск объекта имени предопределенного элемента;
- Поиск объекта по уникальному идентификатору ссылки;
- Поиск объекта по произвольному алгоритму поиска;
- Поиск объекта по полям поиска (если нет произовольного алгоритма поиска).
4. Так вот после выполнения всех этапов поиска, если объект не найден, идет конструкция:
И в управляющей структуре сразу же проваливаемся в условие "Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда". Ну дальше, думаю, объяснять не нужно.
да вы взяли что сравнение идет Этих 2 переменных
1. Есть функция "ПрочитатьСвойство". Читает из файла узел свойства объекта, устанавливает значение свойства. Там идет вызов функции "НайтиОбъектПоСсылке". Назначение функции - производит поиск объекта в информационной базе, если не найден создает новый. Запомнили.
2. Внутри этой функции есть конструкция
ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD = НЕ РежимПоискаОсновногоОбъекта;
3. Поиск объекта по ссылке подразделяется не несколько этапов:
- Поиск объекта по регистру сопоставления объектов;
- Поиск объекта имени предопределенного элемента;
- Поиск объекта по уникальному идентификатору ссылки;
- Поиск объекта по произвольному алгоритму поиска;
- Поиск объекта по полям поиска (если нет произовольного алгоритма поиска).
4. Так вот после выполнения всех этапов поиска, если объект не найден, идет конструкция:
Если (СсылкаНаОбъект = Неопределено
ИЛИ СсылкаНаОбъект.Пустая())
И СозданныйОбъект = Неопределено Тогда // Объект не найден по полям поиска.
Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда
СсылкаНаОбъект = СтруктураСвойств.Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(СвойствоУникальныйИдентификатор));
СсылкаНаОбъектФиктивная = Истина;
ИначеЕсли НЕ НеСоздаватьОбъектЕслиНеНайден Тогда
СсылкаНаОбъект = СоздатьНовыйОбъект(ТипОбъекта, СвойстваПоиска, СозданныйОбъект,
НЕ РежимПоискаОсновногоОбъекта, ИзвестнаяСсылкаУникальногоИдентификатора, УстанавливатьУОбъектаВсеСвойстваПоиска);
КонецЕсли;
ОбъектНайден = Ложь;
Иначе
// Объект найден по полям поиска.
ОбъектНайден = Истина;
КонецЕсли;
ПоказатьИ в управляющей структуре сразу же проваливаемся в условие "Если ПриПереносеОбъектаПоСсылкеУстанавливатьТолькоGIUD Тогда". Ну дальше, думаю, объяснять не нужно.
Не пойму одного...правила нетиповые (изменено событие "после загрузки" ПКО документа "Отражение зарплаты в бух.учете". Правила были загружены только на источнике, тобишь в ЗУП, а в приемнике (БП) ничего не трогал, правила типовые. Все работало. Сейчас не работает, при загрузке как будто приемник стал реально использовать типовые правила) Что за ? Я теперь должен правила приемника также изменить и подгрузить?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот