Администрирование · 11 мин
Как создать правила регистрации объектов в 1С
Как создать правила регистрации объектов в 1С: настройка плана обмена, отбор по свойствам, проверка регистрации и типичные ошибки при синхронизации.
Правила регистрации объектов определяют, какие данные будут автоматически отслеживаться в плане обмена 1С и попадать в очередь выгрузки при синхронизации между базами. Без корректно настроенных правил обмен либо передаёт лишние данные, перегружая канал и замедляя работу, либо наоборот — теряет часть изменений, и базы расходятся.
Настройка выполняется в дереве конфигурации: у каждого плана обмена есть ветка «Правила регистрации объектов», где для каждого типа данных задаются условия отбора. Работать с этим механизмом могут администраторы и разработчики, имеющие доступ к конфигуратору и понимающие структуру обмена в конкретной базе.
Материал ориентирован на типовые конфигурации на управляемых формах (УТ, ERP, БП, ЗУП) и на самописные решения, где план обмена создаётся вручную. Принципы одинаковы, отличается только интерфейсный путь к настройкам.
Что такое регистрация изменений и зачем нужны правила
План обмена в 1С хранит таблицы регистрации изменений: когда пользователь записывает документ, справочник или регистр, платформа фиксирует этот факт для узлов обмена. При выгрузке в сообщение попадают только те объекты, которые зарегистрированы как изменённые для конкретного узла.
Правила регистрации — это фильтр, который срабатывает в момент записи объекта. Они решают, регистрировать ли изменение для узла или пропустить его. Типичный пример: из центральной базы в филиалы должны уходить только проведённые реализации по определённой организации, а внутренние документы — нет.
Без правил действует регистрация «всё для всех»: любое изменение любого объекта, входящего в состав плана обмена, регистрируется для каждого узла. На небольших объёмах это терпимо, но при интенсивной работе приводит к раздуванию сообщений обмена и конфликтам при загрузке.
Где находятся правила регистрации в конфигураторе
Откройте конфигуратор, в дереве конфигурации найдите ветку «Общие» → «Планы обмена» и выберите нужный план. В его структуре есть подчинённая ветка «Правила регистрации объектов». Если ветки нет, её можно добавить через контекстное меню плана обмена — пункт «Добавить» → «Правило регистрации объектов».
Правило создаётся для конкретного типа объекта метаданных: справочника, документа, регистра сведений и так далее. Один план обмена обычно содержит десятки правил — по одному или несколько на каждый тип данных, участвующий в обмене.
В типовых конфигурациях с обменом через «Конвертацию данных» или универсальный формат EnterpriseData правила регистрации часто хранятся не в конфигураторе, а в виде XML-файлов, загружаемых через настройку синхронизации в пользовательском режиме («Администрирование» → «Синхронизация данных»). Уточните, какой механизм используется в вашей базе, прежде чем что-то менять.
Пошаговое создание правила регистрации
Рассмотрим создание правила для документа «Реализация товаров и услуг», который должен регистрироваться только для одного узла-филиала и только при условии, что документ проведён.
- 1Откройте конфигуратор и найдите нужный план обмена в дереве конфигурации
- 2Добавьте правило регистрации объектов и выберите тип объекта — документ «Реализация товаров и услуг»
- 3Установите режим «Регистрация изменений» и задайте условие отбора по свойствам
- 4Напишите обработчик отбора, если стандартных условий недостаточно
- 5Обновите конфигурацию базы данных (F7)
- 6Выполните тестовую запись документа и проверьте регистрацию через пункт «Показать зарегистрированные изменения»
В свойствах правила выберите объект метаданных и режим работы. Доступны варианты: всегда регистрировать, регистрировать при выполнении условий отбора или не регистрировать вовсе. Наиболее гибкий вариант — отбор по свойствам объекта.
Условия задаются в табличной части правила: указывается реквизит объекта, вид сравнения (равно, не равно, в списке) и значение. Например: «Организация равно Филиал №2» и «Проведен равно Истина». Условия объединяются логическим «И», поэтому регистрация произойдёт только при выполнении всех условий одновременно.
Отбор по свойствам без кода
Для простых сценариев достаточно табличных условий: отбор по организации, складу, виду операции, признаку проведения. Это самый безопасный способ — он не требует программирования и легко проверяется. Ограничение: нельзя строить сложные условия с «ИЛИ» между разными реквизитами и обращаться к табличным частям документа.
Программный отбор через обработчики
Когда табличных условий не хватает, используется обработчик «При определении необходимости регистрации». В нём доступен объект, узел обмена и параметр «Отказ», установка которого в Истину отменяет регистрацию. Пример: регистрировать документ, только если в табличной части есть товары определённой номенклатурной группы.
Процедура ПриОпределенииНеобходимостиРегистрации(Объект, Узел, Отказ)
Для Каждого Строка Из Объект.Товары Цикл
Если Строка.Номенклатура.НоменклатурнаяГруппа = ГруппаДляОбмена Тогда
Возврат;
КонецЕсли;
КонецЦикла;
Отказ = Истина;
КонецПроцедурыКод в обработчиках выполняется при каждой записи объекта, поэтому он должен быть быстрым. Избегайте запросов к большим таблицам и обращений к другим базам внутри обработчика — это напрямую замедлит проведение документов для всех пользователей.
Настройка правил для разных узлов обмена
Частая задача — разные правила для разных узлов одного плана обмена. Например, узлу «Магазин» нужны только розничные продажи, а узлу «Бухгалтерия» — все документы. В обработчике правила доступен параметр узла, по которому можно ветвить логику: проверять код или наименование узла и применять разные условия.
Более надёжный подход — не зашивать конкретные узлы в код, а хранить соответствие условий и узлов в регистре сведений или в дополнительных свойствах узла. Тогда при добавлении нового магазина не придётся менять конфигурацию, достаточно завести запись в настройках.
Для обменов по расписанию через регламентные задания убедитесь, что правила регистрации согласованы с настройками выгрузки: если правило регистрирует объект, но правило конвертации его не выгружает, в таблицах регистрации будут копиться «мёртвые» записи, которые никогда не покинут базу.
Сравнение вариантов
Подходит для простых условий по реквизитам шапки. Ограничение: нет условий ИЛИ и нет доступа к табличным частям.
Подходит для сложной логики, проверки табличных частей и разных условий по узлам. Ограничение: требует аккуратности с производительностью.
Подходит для типовых обменов через Конвертацию данных — обновляются без изменения конфигурации. Ограничение: нужен навык работы с форматом правил.
Проверка результата: как убедиться, что правила работают
После обновления конфигурации выполните контрольную проверку на копии базы или в тестовом узле. Создайте документ, удовлетворяющий условиям, и документ, который условиям не соответствует. Затем откройте узел плана обмена и воспользуйтесь командой «Зарегистрированные изменения» (в пользовательском режиме — через настройку синхронизации, пункт «Показать зарегистрированные изменения»).
Первый документ должен присутствовать в списке зарегистрированных, второй — отсутствовать. Если регистрации нет вовсе, проверьте: входит ли тип объекта в состав плана обмена, обновлена ли конфигурация базы данных, не отключено ли правило. Если регистрируется всё подряд — вероятно, условие отбора не срабатывает из-за неверного вида сравнения или пустого значения реквизита.
Как проверить результат
Объект появился в списке зарегистрированных изменений узла
Объекта нет в списке — проверьте состав плана обмена и условия отбора
Объект не зарегистрирован
Объект зарегистрирован — условие отбора не срабатывает
Запись происходит с обычной скоростью
Запись заметно замедлилась — обработчик правила выполняет тяжёлые операции
Полезный приём — программная регистрация вручную для разовой догрузки данных: через обработку или консоль кода вызвать метод ПланыОбмена.ЗарегистрироватьИзменения для нужного узла и набора объектов. Это не заменяет правила, но помогает восстановить пропущенные данные без повторной записи документов.
Типичные ошибки и ограничения
Отдельно учитывайте ограничение механизма: правила регистрации срабатывают только при изменении объекта. Если вы добавили новое правило, ранее записанные объекты автоматически не зарегистрируются — их нужно зарегистрировать принудительно (в типовых обменах есть кнопка «Зарегистрировать изменения» / «Состав отправляемых данных»).
Ещё одна граница самостоятельной работы — типовые синхронизации, поставляемые вендором. Их правила обновляются вместе с релизами, и ручные правки будут затёрты при обновлении. Для таких случаев используйте предусмотренные механизмы расширения или ведите доработки через расширение конфигурации.
Что важно запомнить
Правила регистрации — это фильтр изменений в плане обмена. Создавайте их в конфигураторе или через внешние правила для типовых обменов, проверяйте тестовой записью и списком зарегистрированных изменений, следите за производительностью обработчиков и не забывайте про принудительную регистрацию старых данных.
Частые вопросы
Почему объект не регистрируется, хотя правило создано?
Чаще всего не обновлена конфигурация базы данных после изменения правила, либо тип объекта не включён в состав плана обмена. Также проверьте, что условие отбора действительно выполняется: выведите значения реквизитов объекта в момент записи через отладчик.
Как зарегистрировать уже существующие объекты после добавления правила?
Правила срабатывают только на новые изменения. Для существующих данных используйте принудительную регистрацию: в типовых синхронизациях — команду «Состав отправляемых данных» / «Зарегистрировать изменения», в самописных — метод ПланыОбмена.ЗарегистрироватьИзменения с отбором нужных объектов.
Можно ли задать условие «ИЛИ» между реквизитами?
В табличном отборе условия объединяются только по «И». Для логики «ИЛИ» используйте программный обработчик определения необходимости регистрации, где можно написать любое условие на встроенном языке.
Влияют ли правила регистрации на скорость работы пользователей?
Да, обработчики правил выполняются синхронно при каждой записи объекта. Табличный отбор почти не влияет на скорость, а вот запросы и циклы в программном обработчике могут заметно замедлить проведение документов. Держите код обработчика минимальным.
Чем правила регистрации отличаются от правил конвертации?
Правила регистрации решают, какие объекты попадут в очередь на отправку. Правила конвертации определяют, как объект будет преобразован в сообщение обмена и как загрузится на другой стороне. Это два независимых слоя обмена, и настраивать их нужно согласованно.
Что делать, если в таблицах регистрации накопились лишние записи?
Лишние записи можно удалить без повторной записи документов: в типовых обменах — через «Состав отправляемых данных» с удалением регистрации, программно — методом ПланыОбмена.УдалитьРегистрациюИзменений для узла и нужных объектов или типов метаданных.