Обмен данными. ЗУП(3.1.14.555)->БП(3.0.95.24)
Добрый день. Я новичок в конвертациях, подскажите, пожалуйста, более сведущие коллеги, как решить следующую проблему:
В обмене (указан в теме) типовом не перегружаются физические лица. Регистрация объектов идет как нужно, но именно в выгрузку они не попадают.
Причем если перезаписать существующий прием на работу(физ лица регистрируются при записи приема на работу - дописка конфигурации зуп) с сотрудником, уже существующем в БП, то он попадает в файл обмена. Если это же проделать с новым физ лицом, то его в файле нет(хотя на обмен он регистрируется).
Раньше все работало нормально, сломался обмен после обновления(вел раньше и обновлял не я, ко мне пришли уже с проблемой)
Заранее большое спасибо всем кто сможет помочь.
Добавлю код регистрации объектов(добавленный). Может в нем что то не так
Это в файле обмена на месте, где должны быть данные по физ лицу. Если поискать по ГУИД, то это как раз то самое физ лицо, которое у меня должно перейти в БП. Почему он хочет его удалить?
В обмене (указан в теме) типовом не перегружаются физические лица. Регистрация объектов идет как нужно, но именно в выгрузку они не попадают.
Причем если перезаписать существующий прием на работу(физ лица регистрируются при записи приема на работу - дописка конфигурации зуп) с сотрудником, уже существующем в БП, то он попадает в файл обмена. Если это же проделать с новым физ лицом, то его в файле нет(хотя на обмен он регистрируется).
Раньше все работало нормально, сломался обмен после обновления(вел раньше и обновлял не я, ко мне пришли уже с проблемой)
Заранее большое спасибо всем кто сможет помочь.
Процедура ОбменЗарплата3Бухгалтерия3ПередЗаписью(Источник, Отказ) Экспорт
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПриемНаРаботу") Тогда
ФизическоеЛицо = ?(НЕ ЗначениеЗаполнено(Источник.ФизическоеЛицо), ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.Сотрудник, "ФизическоеЛицо"), Источник.ФизическоеЛицо);
Если НЕ ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Возврат;
КонецЕсли;
РегистрацияНаВсехУзлах(ФизическоеЛицо);
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(Источник) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура РегистрацияНаВсехУзлах(РегистрируемаяСсылка)
Если НЕ РегистрируемаяСсылка.Пустая() Тогда
Узлы = ОбменДаннымиСобытия.ВсеУзлыПланаОбмена("ОбменЗарплата3Бухгалтерия3");
ПланыОбмена.ЗарегистрироватьИзменения(Узлы, РегистрируемаяСсылка);
КонецЕсли;
КонецПроцедуры
ПоказатьДобавлю код регистрации объектов(добавленный). Может в нем что то не так
<ДанныеПоОбмену ВерсияОтправителя="3.1.14.555" УдалитьРегистрациюИзменений="true" НомерВходящегоСообщения="2567" НомерИсходящегоСообщения="1975" ОтКого="ЗК" Кому="БП" ПланОбмена="ОбменЗарплата3Бухгалтерия3"/>
<УдалениеОбъекта УникальныйИдентификатор="924cf338-ef8c-11eb-8d59-00090ffe0001" ТипИсточника="СправочникСсылка.ФизическиеЛица" ТипПриемника="СправочникСсылка.ФизическиеЛица"/>
<УдалениеОбъекта УникальныйИдентификатор="9e72dbe2-f515-11eb-95c0-1c1b0d3cc92a" ТипИсточника="СправочникСсылка.ФизическиеЛица" ТипПриемника="СправочникСсылка.ФизическиеЛица"/>
Это в файле обмена на месте, где должны быть данные по физ лицу. Если поискать по ГУИД, то это как раз то самое физ лицо, которое у меня должно перейти в БП. Почему он хочет его удалить?
Найденные решения
Процедура ОбменЗарплата3Бухгалтерия3ПередЗаписью(Источник, Отказ) Экспорт
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПриемНаРаботу") Тогда
ФизическоеЛицо = ?(НЕ ЗначениеЗаполнено(Источник.ФизическоеЛицо), ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.Сотрудник, "ФизическоеЛицо"), Источник.ФизическоеЛицо);
Если НЕ ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Возврат;
КонецЕсли;
РегистрацияНаВсехУзлах(ФизическоеЛицо);
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(Источник) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура РегистрацияНаВсехУзлах(РегистрируемаяСсылка)
Если НЕ РегистрируемаяСсылка.Пустая() Тогда
Узлы = ОбменДаннымиСобытия.ВсеУзлыПланаОбмена("ОбменЗарплата3Бухгалтерия3");
//ПланыОбмена.ЗарегистрироватьИзменения(Узлы, РегистрируемаяСсылка);
Для Каждого Узел Из Узлы Цикл
ОбменДаннымиСобытия.ЗарегистрироватьИзмененияДанных(Узел, РегистрируемаяСсылка, Ложь);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ПоказатьРешение!
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Насколько я помню, чтобы в БП выгружались физлица, должно быть соблюдено 2 условия:
1. В настройках обмена стоит выгрузка по физлицам, а не сводно.
2. Физлицо есть в документе Отражение зарплаты в бухучете.
1. В настройках обмена стоит выгрузка по физлицам, а не сводно.
2. Физлицо есть в документе Отражение зарплаты в бухучете.
(2)Да, оно перегружается из документа "Отражение зарплаты в бухучете". Но мне нужно, чтобы оно выгружалось и при записи "ПриемНаРаботу". Физ лицо регистрируется на обмен. И даже старые физ лица(которые переносились раньше) переносятся нормально, но вот новые ставятся на удаление в файл
Процедура ОбменЗарплата3Бухгалтерия3ПередЗаписью(Источник, Отказ) Экспорт
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПриемНаРаботу") Тогда
ФизическоеЛицо = ?(НЕ ЗначениеЗаполнено(Источник.ФизическоеЛицо), ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.Сотрудник, "ФизическоеЛицо"), Источник.ФизическоеЛицо);
Если НЕ ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Возврат;
КонецЕсли;
РегистрацияНаВсехУзлах(ФизическоеЛицо);
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(Источник) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура РегистрацияНаВсехУзлах(РегистрируемаяСсылка)
Если НЕ РегистрируемаяСсылка.Пустая() Тогда
Узлы = ОбменДаннымиСобытия.ВсеУзлыПланаОбмена("ОбменЗарплата3Бухгалтерия3");
//ПланыОбмена.ЗарегистрироватьИзменения(Узлы, РегистрируемаяСсылка);
Для Каждого Узел Из Узлы Цикл
ОбменДаннымиСобытия.ЗарегистрироватьИзмененияДанных(Узел, РегистрируемаяСсылка, Ложь);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ПоказатьРешение!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот