Как выгрузить документ «Реализация товаров» из одной базы 1С:Бухгалтерия и загрузить как «Поступление товаров» в другую?

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

Зачастую перед специалистами 1С встает задача переноса данных между двумя конфигурациями Бухгалтерия предприятия. Когда необходимо передать конкретный документ Реализация товаров и услуг и превратить его в Поступление товаров и услуг в другой базе, требуется учитывать, что роли контрагентов и организаций меняются местами. Рассмотрим подробнее, как эффективно решить эту задачу.

Использование правил обмена «Конвертация данных 2.1»

Самым методически верным и гибким способом является разработка правил обмена с помощью конфигурации Конвертация данных 2.1. Этот инструмент позволяет задать логику трансформации объектов любой сложности.

  1. Создайте правила, в которых документ Реализация товаров и услуг является источником, а Поступление товаров и услуг — приемником.
  2. В правилах конвертации свойств настройте соответствие реквизитов. Поскольку организации и контрагенты меняются местами, в обработчиках событий ПослеЗагрузки или ПриКонвертацииДанных пропишите логику поиска нужных элементов справочников в базе-приемнике.
  3. Используйте обработку Универсальный обмен в формате XML для выполнения выгрузки.

Реализация через собственную внешнюю обработку

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

Разберем, как программно запустить обмен из кода:


// Пример программного вызова обработки обмена
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
ОбработкаОбмена.ИмяФайлаПравил = ПолучитьИмяФайлаПравилИзМакета();
ОбработкаОбмена.ИмяФайлаДанных = "C:\Data\Exchange.xml";
ОбработкаОбмена.РежимОбмена = "Выгрузка";
ОбработкаОбмена.ВыполнитьВыгрузку();

Таким образом, пользователь видит форму с кнопками «Выбрать период» и «Выбрать контрагента», а вся техническая часть обмена остается скрытой под капотом.

Вариант с использованием COM-соединения

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

Рассмотрим алгоритм действий:

  1. В коде внешней обработки создайте объект COMConnector.
  2. Подключитесь к базе-приемнику, указав параметры соединения: путь к базе, пользователя и пароль.
  3. Считайте данные из Реализации в базе-источнике (шапку и табличную часть).
  4. В базе-приемнике через COM-объект создайте новый документ Поступление товаров и услуг.
  5. Заполните реквизиты, выполнив поиск контрагента и номенклатуры по коду или артикулу.

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

Современные альтернативы

Для постоянного обмена рассмотрите возможность использования HTTP-сервисов. Вы можете опубликовать сервис на веб-сервере базы-приемника, который будет принимать JSON-структуру с данными документа. Также стоит обратить внимание на формат EnterpriseData (КД 3.0), который является стандартом для обмена в современных конфигурациях 1С, обеспечивая унифицированный подход к передаче бизнес-сущностей.

Выбор метода зависит от частоты обмена и квалификации пользователей. Для единоразовых задач прекрасно подходит КД 2.1, а для регулярных автоматизированных процессов — интеграция через HTTP-сервисы или COM-соединение.

← На главную