Как настроить выгрузку только определенных типов документов при стандартной синхронизации 1С

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При настройке стандартного обмена данными между конфигурациями «1С:Управление торговлей 11» (УТ) и «1С:Бухгалтерия предприятия 3.0» (БП) пользователи часто сталкиваются с проблемой избыточной регистрации данных. По умолчанию система регистрирует к отправке практически все документы, попадающие под общие правила обмена. Но что делать, если перед нами стоит задача передавать только строго определенные типы документов (например, только реализации и поступления, исключая внутренние перемещения, списания или кассовые ордера), причем делать это в полностью автоматическом режиме?

В этой статье мы подробно рассмотрим все возможные пути решения этой задачи: от классического редактирования правил регистрации до использования современных расширений конфигурации.

Решение 1. Изменение Правил регистрации объектов (ПРО) через «Конвертацию данных»

Основной механизм, управляющий автоматической регистрацией изменений в 1С, — это Правила регистрации объектов (ПРО). Именно они определяют, какие объекты при записи будут помещены в очередь обмена на узле плана обмена. Нам потребуется выгрузить эти правила, отредактировать их в специальной конфигурации и загрузить обратно.

Разберем этот процесс по шагам:

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

Важные нюансы при изменении правил регистрации

После загрузки новых правил регистрации необходимо выполнить обязательное действие по очистке «старого хвоста» обмена. Загрузка новых правил предотвратит автоматическую регистрацию новых изменений. Однако те документы отключенных нами типов, которые уже были зарегистрированы в системе до момента обновления правил, все равно будут отправлены при ближайшем сеансе синхронизации.

Чтобы этого избежать, выполним следующие действия:

  1. Перейдем в настройки синхронизации данных.
  2. Нажмем на кнопку с изображением монитора (Собавить отправляемые данные).
  3. В открывшемся дереве объектов найдем те типы документов, которые мы отключили.
  4. Кликнем по ним правой кнопкой мыши и выберем команду Отменить регистрацию всех объектов этого типа.

Также важно помнить о проблеме обновлений. При обновлении релиза УТ 11 фирма 1С часто обновляет типовые правила обмена и регистрации. Если в настройках синхронизации загружены ваши нетиповые правила из внешнего файла, система зафиксирует их и не будет обновлять автоматически. Это может со временем привести к ошибкам обмена, если в новых релизах изменятся реквизиты объектов. Придется регулярно повторять процедуру слияния ваших изменений со свежими типовыми правилами в КД 2.1.

Решение 2. Использование механизма Расширений (рекомендуемый современный способ)

Чтобы избежать сложностей с обновлением правил регистрации при каждом обновлении конфигурации 1С, мы рекомендуем использовать механизм Расширений конфигурации. Этот способ позволяет оставить типовые правила обмена нетронутыми, а фильтрацию документов производить программно «на лету».

Для реализации этого метода проанализируем, как БСП (Библиотека стандартных подсистем) регистрирует изменения. В БСП для этого используются специализированные общие модули и подписки на события. Мы можем создать расширение и перехватить процедуру регистрации изменений.

Рассмотрим пример кода в расширении для общего модуля, отвечающего за регистрацию изменений (например, перехватываем процедуру перед записью документов для планов обмена):


&После("ПриРегистрацииИзмененийПередЗаписью")
Процедура Расш_ПриРегистрацииИзмененийПередЗаписью(Источник, Отказ, Замещение)
    
    // Проверим, относится ли источник к плану обмена с Бухгалтерией
    ПланОбменаБП = ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30.НайтиПоРеквизиту("Код", "БП");
    
    Если ЗначениеЗаполнено(ПланОбменаБП) Тогда
        // Определим типы документов, которые мы ХОТИМ запретить к отправке
        Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПеремещениеТоваров") 
            Или ТипЗнч(Источник) = Тип("ДокументОбъект.СписаниеТоваров") Тогда
            
            // Удаляем регистрацию по нашему узлу обмена
            ПланыОбмена.УдалитьРегистрациюИзменений(ПланОбменаБП, Источник);
            
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Преимущество этого метода очевидно: конфигурация остается полностью типовой, правила обмена обновляются автоматически в штатном режиме, а логика фильтрации документов надежно изолирована внутри расширения.

Решение 3. Настройка фильтров в стандартном интерфейсе (без программирования)

Прежде чем приступать к программированию или изменению правил в КД, проверим, нельзя ли решить задачу стандартными средствами настройки обмена. В зависимости от того, какие разделы учета вы хотите исключить, 1С предоставляет встроенные интерактивные фильтры.

Выясним, как настроить это в интерфейсе:

  1. В настройках синхронизации выберем пункт Правила отправки данных.
  2. Обратим внимание на переключатели разделов. Во многих типовых обменах можно гибко ограничить выгрузку по организациям, складам или конкретным разделам учета (например, снять флаг отправки кассовых документов, зарплатных документов или складских актов).
  3. Если ваши требования укладываются в эти стандартные рамки, просто снимите флажки с ненужных разделов. Платформа сама перестанет регистрировать связанные с ними типы документов.

Таким образом, мы детально разобрали три различных способа ограничения типов документов для синхронизации в 1С. Выбор конкретного метода зависит от технических требований проекта и квалификации специалиста, однако для долгосрочной стабильной работы системы предпочтительным является использование штатных настроек или написание аккуратного расширения конфигурации.

← На главную