Часто при настройке обмена между программами 1С:Бухгалтерия предприятия 3.0 (БП) и 1С:Зарплата и управление персоналом 3.1 (ЗУП) возникает специфическая потребность. Например, пользователи хотят разделить потоки данных: справочники (физические лица, должности) выгружать автоматически каждые 5 минут, а зарплатные документы (например, ОтражениеЗарплатыВБухучете) передавать строго вручную, когда расчетчик все сведет и проверит. На первый взгляд, логичным решением кажется создание двух отдельных настроек синхронизации. Давайте разберем подробнее, возможно ли это реализовать, с какими ошибками мы столкнемся и как правильно решить данную задачу.
Если мы попытаемся создать вторую синхронизацию между теми же самыми информационными базами, система выдаст ошибку:
Значение префикса программы "Зарплата и управление персоналом, ред. 3" не уникально ("ДМ"). Уже существует настройка синхронизации с таким же префиксом...
Проанализируем ситуацию. Запрет на создание нескольких узлов обмена с одинаковыми базами (префиксами) заложен разработчиками не просто так. Это базовая защита от серьезных коллизий данных. Обе программы используют для синхронизации универсальный формат обмена EnterpriseData. При искусственном дублировании узлов обмена возникают следующие риски:
Некоторые специалисты предлагают обходной маневр: временно изменить префикс информационной базы, создать вторую настройку и затем вернуть префикс обратно. Мы настоятельно не рекомендуем так делать! Префикс автоматически добавляется к номерам всех новых документов. Изменение префикса «на лету» приведет к разрыву сквозной нумерации кадровых и расчетных документов, что с большой вероятностью вызовет путаницу во внутреннем документообороте и потенциальные проблемы при аудиторских проверках. Кроме того, на время такой настройки потребуется полностью блокировать работу пользователей в базе.
Если главная причина создания второй синхронизации — это страх, что документ ОтражениеЗарплатыВБухучете уйдет в бухгалтерию недоделанным или, наоборот, расчетчик изменит его в ЗУП после проверки бухгалтером, то изобретать ручные выгрузки не нужно. В типовых конфигурациях 1С уже заложен надежный механизм.
Разберем по шагам, как работает этот бизнес-процесс:
ОтражениеЗарплатыВБухучете автоматически блокируется для редактирования на стороне расчетчика.Этот простой типовой механизм полностью исключает необходимость создавать отдельную ручную выгрузку для зарплатных документов.
Посмотрим на другой сценарий. Иногда разные бухгалтеры ведут разные юридические лица (организации) в одной базе и хотят синхронизировать свои данные независимо друг от друга. В этом случае создавать несколько синхронизаций также не требуется.
В типовых настройках интеграции 1С (в составе отправляемых данных) можно настроить фильтр отправки данных по конкретным организациям. В рамках одного настроенного обмена программа будет выгружать только те документы и справочники, которые относятся к выбранным юрлицам. Если у вас несколько баз-приемников (разные базы БП для разных организаций), тогда создание нескольких синхронизаций с разными базами-приемниками абсолютно корректно и поддерживается системой.
Если внутренний регламент компании жестко требует разделить потоки (например, НСИ выгружать автоматически каждые 5 минут, а зарплатные документы — только вручную по готовности расчетчика), выясним, как это сделать безопасно.
Наиболее корректным вариантом будет следующая схема:
ОтражениеЗарплатыВБухучете используем типовую внешнюю обработку «Выгрузка загрузка EnterpriseData». Расчетчик по готовности открывает обработку, выбирает нужный документ и выгружает его через XML-файл или каталог обмена. Бухгалтер, в свою очередь, загружает его.Это полностью исключает конфликт узлов обмена, так как используется только одна активная настройка синхронизации.
Если мы хотим максимально автоматизировать процесс, но при этом запретить выгрузку не готовых документов отражения зарплаты, можно вмешаться в логику регистрации изменений. Сейчас для этого предпочтительнее использовать механизм «Расширений 1С», чтобы не снимать конфигурацию с поддержки.
Через расширение программист может точечно переопределить правила регистрации конкретных документов. Например, можно добавить в документ ОтражениеЗарплатыВБухучете дополнительный реквизит (галочку) ГотовКВыгрузке. И в обработчике подписки на событие перед записью проверять этот флаг:
Процедура Расш1_ПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения)
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ОтражениеЗарплатыВБухучете") Тогда
// Если документ не готов, очищаем его регистрацию на узле обмена
Если Не Источник.ГотовКВыгрузке Тогда
УзелОбмена = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("БП");
ОбменДанными.Получатели.Удалить(УзелОбмена);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Также для более глубокого изменения логики обмена EnterpriseData используется мощный инструмент «Конвертация данных 3.0». В нем можно создать кастомные правила, при которых определенные документы или справочники будут обрабатываться по вашей уникальной логике без риска задвоения.
Подведем итог: Создавать несколько параллельных настроек синхронизации между двумя одинаковыми информационными базами 1С нельзя — это приведет к критическим ошибкам учета и задвоению данных. Все задачи по разделению выгрузки НСИ и документов решаются штатными средствами фильтрации, использованием статуса «Отражено в бухучете», либо точечной доработкой правил регистрации через расширения.