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