При настройке синхронизации между конфигурациями на платформе 1С:Предприятие 8.2 (например, между «Управлением производственным предприятием 1.3» и «Управлением торговлей 10.3») специалисты часто сталкиваются с проблемой избыточной выгрузки данных. По умолчанию система может пытаться отправить весь справочник Номенклатура, даже если в текущем периоде обмена участвуют лишь несколько документов. Это приводит к неоправданному росту объема файла обмена (XML), увеличению времени синхронизации и возникновению лишних объектов в базе-приемнике.
В этой статье мы подробно разберем, как ограничить выгрузку номенклатуры таким образом, чтобы в базу-приемник попадали только те позиции, которые непосредственно задействованы в передаваемых документах. Мы проанализируем стандартные настройки интерфейса, механизмы регистрации изменений и возможности корректировки правил обмена.
Если вы используете типовой механизм обмена данными, в нем уже заложена возможность гибкого управления составом выгружаемых объектов. Разберем по шагам, где найти нужную опцию:
Настройки обмена данными (обычно он находится в меню «Сервис» или «Настройки»).Номенклатура.Что это означает на практике? Выбрав опцию «Только по ссылке», мы даем системе указание: «Не выгружай этот справочник самостоятельно. Выгружай информацию о товаре только в том случае, если этот товар выбран в табличной части документа (например, в Реализации товаров и услуг), который предназначен для отправки».
Проанализируем ситуацию: если в документе указано 5 позиций номенклатуры, система выгрузит сам документ и полные данные по этим 5 позициям. Остальные 10 000 наименований из вашего справочника останутся в базе-источнике и не будут загромождать обмен.
Часто бывает так, что настройка «Только по ссылке» уже установлена, но система всё равно упорно выгружает все товары. Выясним причину: скорее всего, объекты уже были зарегистрированы для обмена ранее (например, при первой выгрузке или случайном изменении группы товаров).
В 1С 8.2 для управления очередью выгрузки существует специализированный инструмент. Рассмотрим порядок работы с ним:
Сервис — Прочие обмены данными — Узлы обмена (или через меню «Операции» — Обработки — Регистрация изменений для обмена).Номенклатура. Скорее всего, вы увидите там число, соответствующее количеству всех записей в справочнике.Номенклатура и выберем пункт Отменить регистрацию (или «Снять с регистрации»).После этой операции очередь обмена для данного справочника очистится. Теперь, когда вы запустите синхронизацию, система будет обращаться к правилам, настроенным в Методе 1, и выгружать только те позиции, которые требуются документам.
Если вы заметили, что номенклатура снова и снова попадает в план обмена без видимых причин, стоит проверить свойство «Авторегистрация» в конфигураторе. Посмотрим, как это устроено технически:
В метаданных 1С каждый справочник включен в состав одного или нескольких планов обмена. Для каждого объекта в плане обмена определено свойство Авторегистрация:
Для оптимизации обмена в крупных базах рекомендуется устанавливать Запретить для справочника номенклатуры в плане обмена. В этом случае регистрация будет происходить только программно при записи документов, где эта номенклатура используется.
Если типовые средства не помогают (например, правила обмена были изменены или обмен идет через внешнюю обработку), придется заглянуть «под капот» правил (XML-файла). Рассмотрим, как изменить логику выгрузки в конфигурации «Конвертация данных 2.0»:
В правилах обмена за выгрузку объектов отвечают ПВД (Правила выгрузки данных). Если для номенклатуры создано отдельное ПВД, оно будет пытаться выгрузить справочник целиком. Чтобы подавить это поведение, мы можем прописать условие в обработчике ПередОбработкой:
// В правилах выгрузки данных (ПВД) для справочника Номенклатура
Отказ = Истина;
Этот код не позволит справочнику выгружаться самостоятельно. Однако благодаря связям в ПКО (Правила конвертации объектов), номенклатура всё равно будет выгружена, если на нее ссылается документ. Проанализируем настройки свойств документа (ПКС): если у свойства Номенклатура стоит флаг Выгружать объект полностью, то при выгрузке ссылки 1С автоматически найдет нужное правило для номенклатуры и передаст все ее реквизиты (наименование, артикул, единицы измерения).
Разберем ситуацию, которая может возникнуть при использовании режима «Только по ссылке». Если в базе-источнике вы создали новый товар и добавили его в документ, а в правилах обмена стоит жесткое ограничение на создание новых объектов, в базе-приемнике может возникнуть объект с надписью «Объект не найден».
Чтобы этого избежать, убедитесь, что в правилах конвертации (ПКО) для номенклатуры установлены правильные поля поиска (например, по Коду или Артикулу). Также проверьте, чтобы при выгрузке ссылки передавались минимально необходимые данные для создания объекта «на лету» в базе-приемнике.
Мы рассмотрели основные способы решения проблемы избыточной выгрузки номенклатуры в 1С 8.2. Подведем итог: наиболее эффективным и безопасным методом является сочетание изменения настроек выгрузки на «Только по ссылке» и ручной очистки регистрации изменений. Это позволяет сохранить целостность данных в обеих базах, при этом значительно ускорив процесс синхронизации и снизив нагрузку на каналы связи.