Как отключить выгрузку конкретных документов в обмене 1С:Бухгалтерия 3.0 без изменения конфигурации

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

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

Метод 1. Использование внешних правил регистрации данных

Большинство стандартных обменов в 1С (особенно в формате EnterpriseData или между идентичными конфигурациями) опираются на правила регистрации. Эти правила определяют, какие объекты при их записи должны попасть в очередь на выгрузку. По умолчанию они зашиты в конфигурацию, но система позволяет заменить их на внешние.

Разберем по шагам, как выгрузить, отредактировать и загрузить правила обратно:

  1. Перейдем в раздел Администрирование — Синхронизация данных. Откроем список настроенных синхронизаций и выберем нужный узел.
  2. В окне настроек найдем пункт «Загрузить правила обмена». Несмотря на название, в открывшейся форме обычно доступна кнопка «Сохранить правила в файл».
  3. Обратите внимание: система ожидает .zip архив, содержащий три файла:
    • ExchangeRules.xml — правила конвертации для текущей базы;
    • CorrespondentExchangeRules.xml — правила для базы-приемника;
    • RegistrationRules.xml — те самые правила регистрации, которые нам нужно поправить.
  4. Распакуем архив и откроем RegistrationRules.xml с помощью любого текстового редактора или специализированной обработки «Редактор правил регистрации».
  5. Найдем узел, отвечающий за нужный документ, например УведомлениеОбОстаткахПрослеживаемыхТоваров.
  6. Для того чтобы объект никогда не регистрировался к обмену, в обработчике Перед обработкой (или в соответствующем XML-теге) необходимо прописать жесткий отказ:

// В правилах регистрации для конкретного объекта
Отказ = Истина;

Важно понимать: если вы просто удалите упоминание документа из XML-файла, система может применить к нему правила «по умолчанию» (авторегистрацию), и документы все равно продолжат выгружаться. Явное указание Отказ = Истина; гарантирует блокировку.

После внесения изменений запакуйте все три файла обратно в ZIP-архив и загрузите их в 1С через ту же форму. Убедитесь, что в регистре сведений Правила обмена данными для вашей настройки синхронизации переключатель стоит в положении Использовать загруженные правила. Чтобы избежать ручной распаковки и запаковки архивов, можно применить расширение для редактирования правил обмена в режиме предприятия.

Метод 2. Использование расширения конфигурации (рекомендуемый способ)

Использование внешних файлов XML имеет существенный минус: при обновлении конфигурации типовые правила регистрации могут измениться (добавятся новые поля или логика), а ваши внешние правила останутся старыми, что может привести к ошибкам. Более надежный и современный метод — создание расширения.

Проанализируем ситуацию: регистрация изменений происходит в планах обмена. Мы можем создать расширение и перехватить событие регистрации. Рассмотрим пример кода в модуле расширения для плана обмена (например, СинхронизацияДанныхЧерезУниверсальныйФормат):


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

КонецПроцедуры

Этот метод хорош тем, что он «прозрачен» для обновлений и позволяет гибко управлять логикой (например, запретить выгрузку документов только за определенный период или по конкретной организации). Для настройки таких ограничений без собственной разработки можно использовать готовое расширение для выборочного запрета выгрузки документов.

Метод 3. Программная очистка очереди регистрации

Иногда возникают ситуации, когда документы уже зарегистрированы к обмену (в таблице регистрации изменений уже есть записи), и изменение правил не поможет удалить уже накопленные данные. Выясним, как очистить очередь регистрации.

Для этого воспользуемся типовой обработкой Регистрация изменений для обмена данными:

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

Если документов много и они регистрируются постоянно (например, из-за фоновых процессов), можно написать простую внешнюю обработку, которая будет очищать регистрацию по расписанию, используя метод ПланыОбмена.УдалитьРегистрациюИзменений().

Особенности работы с Универсальным форматом (EnterpriseData)

Рассмотрим важный нюанс: в современных версиях БП 3.0 обмен часто идет через МенеджерОбменаЧерезУниверсальныйФормат. Это общий модуль, в котором жестко прописаны правила формирования XML-сообщений. Если ваша задача — не просто остановить регистрацию, а сделать так, чтобы даже при случайной регистрации данные не попали в файл, можно использовать расширение для этого модуля.

В модуле менеджера обмена есть процедура ЗаполнитьПравилаОбработкиДанных. Переопределив её в расширении, можно закомментировать или удалить строки, отвечающие за отправку конкретных типов объектов. Однако это более сложный путь, требующий понимания структуры EnterpriseData.

Почему возникают ошибки при загрузке правил?

Если при попытке загрузки комплекта правил вы получаете сообщение «Неверный формат комплекта правил», проанализируйте состав вашего архива. Система 1С крайне требовательна к именованию файлов внутри ZIP. Их должно быть именно три, и называться они должны строго:

Если в вашей версии обмена какой-то из файлов не используется (например, правила конвертации встроены в код), вы всё равно должны положить в архив «пустой» файл с правильной структурой, чтобы прошел формальный контроль загрузки.

Подведем итог: для разового или быстрого отключения документов проще всего отредактировать RegistrationRules.xml, предварительно очистив текущую очередь регистрации через стандартную обработку. Для долгосрочного решения в базах на поддержке лучше всего использовать расширение с перехватом события ПриРегистрацииИзменения.

← На главную