Как исключить отдельные документы из выгрузки из УТ 11 в БП 3.0

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

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

В этой статье мы подробно разберем, как решить задачу выборочной выгрузки документов из УТ 11 в БП 3.0. Мы проанализируем различные подходы — от стандартных настроек системы, не требующих изменения конфигурации, до тонкой программной настройки через расширения конфигурации.

Метод 1. Настройка фильтрации по управленческой или фиктивной организации

Самый простой и штатный способ разделения учета — это использование справочника Организации. Если документ предназначен исключительно для управленческого контура, его нужно оформлять на специально выделенную организацию.

Выясним, как настроить систему, чтобы такие документы не попадали в бухгалтерию:

  1. Создадим в справочнике Организации новый элемент. Чтобы пользователи не путались и понимали назначение этой сущности, назовем ее максимально понятно, например: «ООО Торговый Дом (не для БУ)» или «ИП Управленческий учет». Это исключит недопонимание со стороны менеджеров.
  2. Перейдем в раздел НСИ и администрирование, затем выберем пункт Синхронизация данных и откроем Настройки синхронизации данных.
  3. В параметрах действующего обмена перейдем по ссылке Правила отправки данных.
  4. В открывшемся окне настроим фильтр по организациям. Нам необходимо выбрать вариант «По выбранным организациям» и отметить галочками только те юридические лица, по которым ведется регламентированный учет. С нашей новой управленческой организации галочку нужно снять.

После сохранения настроек любые документы, оформленные по управленческой организации, будут полностью игнорироваться механизмом регистрации изменений. Они физически не смогут мигрировать в БП 3.0.

Метод 2. Интерактивная отмена регистрации перед обменом

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

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

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

Документ останется в УТ 11, но информация о его изменении будет стерта из плана обмена, и при следующем сеансе синхронизации он не отправится в БП.

Метод 3. Использование правил регистрации объектов (ПРО)

Если вам нужно автоматизировать процесс, но при этом сохранить конфигурацию полностью типовой и на замке, можно отредактировать Правила регистрации объектов (ПРО). Этот механизм работает в рамках Библиотеки стандартных подсистем (БСП) и позволяет задавать гибкие условия регистрации.

Проанализируем алгоритм настройки:

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

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

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

Для разработчиков существует два элегантных программных метода управления регистрацией объектов в планах обмена. Чтобы не снимать конфигурацию с поддержки, всю логику мы будем реализовывать через **Расширение конфигурации**, перехватывая события записи объектов.

Вариант А. Использование штатного свойства БСП

В Библиотеке стандартных подсистем заложен встроенный механизм отключения авторегистрации через заполнение структуры дополнительных свойств объекта. Если при записи документа поместить в его дополнительные свойства определенный маркер, БСП сама пропустит этот объект при регистрации изменений.

Посмотрим на пример реализации в обработчике события ПередЗаписью документа в расширении:


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

Этот способ является максимально безопасным и рекомендуемым фирмой 1С, так как он использует документированное свойство БСП и не вмешивается напрямую в таблицы планов обмена.

Вариант Б. Принудительное удаление узлов-получателей

Если по какой-то причине стандартное свойство не отрабатывает или в вашей версии БСП используются другие механизмы, можно принудительно очистить коллекцию получателей обмена непосредственно в объекте перед его записью в базу данных. За это отвечает табличная часть ОбменДанными.Получатели.

Разберем пример кода для расширения:


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

Если вам нужно исключить отправку не на все узлы, а только в конкретную базу БП 3.0, мы можем обойти коллекцию получателей в цикле и удалить только тот узел, который относится к бухгалтерии:


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

Использование расширений конфигурации совместно с данными методами позволяет гибко и безболезненно для будущих обновлений платформы и конфигурации решить проблему избирательной выгрузки документов в «1С:Бухгалтерия предприятия».

← На главную