При работе с современными конфигурациями 1С, такими как «Управление торговлей 11» (УТ 11) и «Бухгалтерия предприятия 3.0» (БП 3.0), часто возникает необходимость передать не весь массив данных, а лишь конкретные документы или справочники по определенному условию. Например, выгрузить реализации только по одной организации или за конкретный период, когда штатная синхронизация уже настроена или, наоборот, не должна затрагивать другие данные. Разберем подробно, как это реализовать, используя различные инструменты платформы 1С:Предприятие 8.3.
Этот способ является наиболее корректным для типовых конфигураций. Вместо поиска внешних обработок, мы воспользуемся механизмом, который уже заложен в логику обмена между УТ и БП. Проанализируем, как работает регистрация объектов.
Для того чтобы выгрузить конкретные данные, нам нужно «объяснить» программе, что именно эти объекты изменены и готовы к отправке. Рассмотрим пошагово, как это сделать:
Организация Равно "Торговый дом" и Дата Больше или равно 01.01.2023.После регистрации выбранные объекты появятся в списке «к выгрузке». Теперь достаточно запустить обычную синхронизацию. Если прямое соединение между базами отсутствует, мы можем использовать вариант «Синхронизация через файл», и программа сформирует XML-пакет только с теми данными, которые мы зарегистрировали вручную.
Если нам нужно использовать внешнюю обработку УниверсальныйОбменДаннымиXML, главная сложность заключается в поиске правил обмена (файла .xml). Выясним, где они «прячутся» в современных конфигурациях.
В УТ 11 и БП 3.0 правила обмена часто хранятся внутри конфигурации в виде макетов. Проделаем следующие действия:
ПравилаОбмена_. Обычно они называются ПравилаОбмена_УТ_БП или ПравилаОбмена_УТ_БП_ED..xml.Теперь, имея файл правил, мы можем открыть обработку УниверсальныйОбменДаннымиXML на вкладке «Выгрузка», загрузить эти правила и на вкладке «Построение отбора» задать любые произвольные условия для выгружаемых метаданных. Важный нюанс: при таком способе обязательно следите за флагом «Выгружать объекты по ссылкам». Если его не установить, выгруженный документ реализации может прийти в Бухгалтерию без номенклатуры или контрагента, если их еще нет в базе-приемнике.
Поскольку современные конфигурации перешли на формат Enterprise Data, использование старых правил XML (Конвертация данных 2.0) становится менее актуальным. Рассмотрим более современный аналог — обработку «Выгрузка и загрузка данных Enterprise Data». Она входит в состав Библиотеки стандартных подсистем (БСП) и часто доступна в самой базе.
Разберем преимущества этого метода:
Чтобы воспользоваться этим методом, запустим обработку (ее можно найти на диске ИТС или в составе дистрибутива БСП), выберем направление выгрузки и установим фильтры в табличной части на нужные документы.
Проанализируем ситуацию, когда после загрузки в БП 3.0 мы видим пустые поля или надписи «Объект не найден». Это происходит из-за частичной выгрузки. Посмотрим, как этого избежать.
При использовании Универсального обмена в настройках есть параметры:
- Выгружать объекты по ссылкам: Истина
- Использовать оптимизированную выгрузку: Истина
Если вы регистрируете объекты вручную через план обмена (Метод 1), система 1С автоматически анализирует связанные данные. Например, при регистрации документа РеализацияТоваровУслуг, программа сама «подцепит» соответствующие элементы справочников Номенклатура, Контрагенты и ДоговорыКонтрагентов, чтобы обеспечить целостность данных в принимающей стороне.
Иногда типового конструктора отборов недостаточно. Предположим, нам нужно выгрузить все документы, в которых встречается товар из определенной ценовой группы. В этом случае мы рекомендуем использовать внешнюю обработку «Консоль регистрации объектов».
Она позволяет выполнить произвольный запрос к базе данных. Рассмотрим примерный алгоритм действий:
Пример кода, который мог бы использоваться внутри такой обработки для регистрации:
ПланОбменаСсылка = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("Обмен с БП 3.0");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг ГДЕ СуммаДокумента > 100000";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПланыОбмена.ЗарегистрироватьИзменения(ПланОбменаСсылка, Выборка.Ссылка);
КонецЦикла;
Резюмируем: для разовой выгрузки с простым отбором лучше всего подходит Метод 1 (через штатный состав отправляемых данных). Для сложных миграций данных между неидентичными базами используйте Метод 3 (Enterprise Data), так как он учитывает все особенности современных конфигураций и не требует ручного редактирования правил обмена.