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