Переход на ведение кадрового учета и расчет заработной платы в конфигурации ЗУП 3.1 при сохранении регламентированного учета в УПП 1.3 — задача распространенная, но технически сложная. Поскольку типового механизма синхронизации между этими решениями не существует, разработчикам приходится использовать правила обмена, созданные в «Конвертации данных 2.0», или адаптировать существующие наработки. В процессе настройки возникают специфические проблемы: от «битых» ссылок в документах до блокировки работы самого механизма обмена со стороны системы. Рассмотрим наиболее острые вопросы и способы их решения.
Часто после загрузки данных (например, документа ПриемНаРаботуВОрганизацию) в УПП наблюдается странная ситуация: в табличной части реквизит Сотрудник отображается корректно, но при попытке открыть его («лупа» или F12) система выдает ошибку «Элемент не выбран». Проанализируем причину этой ситуации.
В архитектуре 1С справочник Сотрудники неразрывно связан со справочником ФизическиеЛица. В ЗУП 3.1 эта связь реализована иначе, чем в старой архитектуре УПП 1.3. Основная причина кроется в том, что при выгрузке данных были перенесены только элементы справочника Сотрудники, а связанные с ними записи ФизическиеЛица отсутствуют в базе-приемнике. Поскольку реквизит Физлицо в карточке сотрудника является обязательным для многих механизмов (включая открытие формы), ссылка становится «битой» или неполной.
Решение: При настройке правил выгрузки в «Конвертации данных» или при использовании универсальной обработки необходимо убедиться, что справочник ФизическиеЛица включен в состав выгружаемых объектов. Разберем по шагам:
Сотрудники должно быть настроено ПКС (Правило конвертации свойств) для реквизита ФизЛицо.V8Exchan83.epf, выберем справочник Физические лица в дереве объектов вместе с документами.При попытке запустить синхронизацию со стороны ЗУП 3.1 может возникнуть исключительная ситуация: ОбщийМодуль.ОбменДаннымиСервер.Модуль(5419): Выполнение обмена запрещено администратором. Выясним причину этого поведения.
ЗУП 3.1 построена на Библиотеке стандартных подсистем (БСП). В коде БСП существует жесткая проверка функциональной опции, которая отвечает за возможность синхронизации данных. Рассмотрим фрагмент кода, вызывающий ошибку:
Процедура ПроверитьИспользованиеОбменаДанными() Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") <> Истина Тогда
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,,
НСтр("ru = 'Выполнение обмена запрещено администратором.'"));
ВызватьИсключение НСтр("ru = 'Выполнение обмена запрещено администратором.'");
КонецЕсли;
КонецПроцедуры
Решение: Для устранения ошибки необходимо активировать возможность обмена в интерфейсе программы:
ИспользоватьСинхронизациюДанных примет значение Истина, и программный интерфейс обмена станет доступен.Если вы создаете собственный план обмена (например, ОбменЗУП_УПП) путем копирования типового, вы можете столкнуться с тем, что объекты (например, ВедомостьНаВыплатуЗарплатыВБанк) не регистрируются автоматически для выгрузки. Разберем, как работает механизм авторегистрации.
В настройках плана обмена для каждого входящего в него объекта есть свойство Авторегистрация. Она может принимать значения Разрешить или Запретить. Если установлено Запретить, то платформа 1С не будет автоматически записывать изменения в таблицу регистрации при записи объекта.
Почему типовые правила часто используют «Запретить»? Это делается для того, чтобы контролировать регистрацию программно. Например, нам не нужно выгружать каждую запись черновика документа, а нужно регистрировать его только при проведении или при выполнении определенных условий. В типовых конфигурациях за это отвечают Подписки на события.
Проанализируем ситуацию: если вы добавили свой план обмена, типовые подписки на события (такие как ПриЗаписиОбъектаДляОбмена) о нем «не знают», так как в их коде прописаны конкретные узлы или условия.
Варианты решения проблемы регистрации:
Авторегистрация = Разрешить. В этом случае любое сохранение объекта будет помещать его в очередь на выгрузку.ПриЗаписи для группы документов. В обработчике подписки пропишем код для регистрации изменений в вашем узле:
Процедура ПриЗаписиОбъектаДляОбменаУПП(Источник, Отказ) Экспорт
Если Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Получаем узел вашего плана обмена
УзелОбмена = ПланыОбмена.ОбменЗарплата3УПП1.НайтиПоКоду("001");
Если Не УзелОбмена.Пустая() Тогда
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Источник);
КонецЕсли;
КонецПроцедуры
Помимо технических ошибок, важно учитывать методику переноса данных, чтобы бухгалтерский учет в УПП оставался корректным:
Подразделения един. В УПП 1.3 есть Подразделения (управленческие) и ПодразделенияОрганизаций (регламентированные). В правилах обмена обязательно настройте сопоставление именно с Подразделениями организаций, иначе проводки в документе ОтражениеЗарплатыВРеглУчете не сформируются по нужным счетам затрат.Отражение зарплаты в бухучете в ЗУП 3.1 не содержит счетов учета. Он содержит «Способы отражения». В УПП при загрузке эти способы должны быть сопоставлены с конкретными счетами (20, 25, 26, 44), статьями затрат и номенклатурными группами. Рекомендуем реализовать таблицу соответствия (мэппинг) внутри правил обмена или создать в УПП регистр сведений для хранения этих настроек.comcntr.dll.Таким образом, успех обмена зависит не только от корректности написанных правил в «Конвертации данных», но и от правильной настройки функциональных опций БСП в ЗУП и понимания механизмов регистрации изменений в планах обмена.