К статье
Практический материал

Администрирование · 10 мин

Как открыть документ из другой базы 1С

Как открыть документ из другой базы 1С: COM-соединение, веб-сервисы, планы обмена и универсальная выгрузка. Пошаговые инструкции, код, типичные ошибки.

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

Выбор способа зависит от трёх условий: нужен ли однократный просмотр или постоянный обмен, есть ли сетевой доступ между базами и совпадают ли конфигурации. Ниже разобраны все рабочие варианты — от простого открытия обработкой до настройки COM-соединения и планов обмена, с указанием ограничений и рисков каждого.

Определите, что именно вам нужно: просмотр, копия или постоянный доступ

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

Если нужен разовый просмотр или перенос нескольких документов — достаточно выгрузки в XML-файл. Если требуется, чтобы документ появлялся во второй базе автоматически, — настраивайте план обмена. Если нужно из одной базы программно читать данные другой (например, в отчёте или обработке) — используйте COM-соединение или HTTP-сервисы.

Маршрут решения

Как выбрать способ

Нужно один раз посмотреть или перенести несколько документовИспользуйте обработку «Выгрузка и загрузка данных XML»
Документы должны регулярно попадать во вторую базуНастройте план обмена или типовую синхронизацию данных
Нужно программно читать данные другой базы из кодаИспользуйте COM-соединение (V83.COMConnector) или HTTP-сервис
Базы в разных сетях без прямого доступаОбмен через файлы (через каталог, FTP или электронную почту)

Способ 1: выгрузка документа в XML и загрузка в другую базу

Самый простой и безопасный вариант — стандартная обработка «Выгрузка и загрузка данных XML», которая входит в поставку большинства типовых конфигураций и доступна на диске ИТС. Она сериализует объект со всеми ссылками в XML-файл, который затем загружается в другую базу той же конфигурации.

Порядок действий. Откройте обработку в базе-источнике через меню «Файл → Открыть». На вкладке «Выгрузка» отметьте нужный вид документа, добавьте отбор по конкретному документу (по номеру, дате или ссылке) и включите опцию выгрузки «по ссылкам» — тогда вместе с документом выгрузятся связанные контрагенты, номенклатура и договоры. Укажите файл и нажмите «Выгрузить данные».

В базе-приёмнике откройте ту же обработку, перейдите на вкладку «Загрузка», выберите файл и выполните загрузку. После загрузки найдите документ в журнале и проверьте, что все ссылочные поля заполнены, а суммы и табличные части совпадают с оригиналом.

Порядок действий при выгрузке в XML
  1. 1
    Откройте в базе-источнике обработку «Выгрузка и загрузка данных XML»
  2. 2
    На вкладке «Выгрузка» отметьте вид документа и задайте отбор по конкретному документу
  3. 3
    Включите выгрузку объектов по ссылкам, чтобы перенести связанные справочники
  4. 4
    Укажите имя файла и выполните выгрузку
  5. 5
    В базе-приёмнике откройте ту же обработку, вкладка «Загрузка», выберите файл
  6. 6
    Проверьте загруженный документ: ссылки, суммы, табличные части

Важное ограничение: обработка корректно работает только между базами с одинаковой конфигурацией и близкими релизами. Если конфигурации разные (например, из «Управления торговлей» в «Бухгалтерию»), структура объектов не совпадёт, и загрузка либо завершится ошибкой, либо создаст битые ссылки. Для разных конфигураций используйте обмен по правилам — обработку «Универсальный обмен данными в формате XML» с правилами конвертации.

Способ 2: открытие документа через COM-соединение

COM-соединение позволяет из кода одной базы подключиться к другой и работать с её объектами напрямую — читать документы, получать ссылки, вызывать методы. Способ подходит для клиент-серверных и файловых баз в одной сети, но требует, чтобы на машине, где выполняется код, была установлена платформа 1С той же версии.

Типовой код подключения к файловой базе выглядит так:

Коннектор = Новый COMОбъект("V83.COMConnector");

СтрокаПодключения = "File=""D:\Bases\Trade"";Usr=""Администратор"";Pwd=""123"";";

Соединение = Коннектор.Connect(СтрокаПодключения);

Документы = Соединение.Документы.РеализацияТоваровУслуг;

Выборка = Документы.Выбрать(НачалоДня(ДатаНачала), КонецДня(ДатаОкончания));

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Номер + " от " + Выборка.Дата + " — " + Выборка.СуммаДокумента);

КонецЦикла;

Для серверной базы строка подключения другая: Srvr="Server1C";Ref="TradeBase";Usr="...";Pwd="...";. После получения ссылки на документ можно читать любые его реквизиты и табличные части, обходя их через точку, как в обычном коде.

Учтите ограничения: COM-соединение работает только под Windows, заметно медленнее прямого доступа и потребляет дополнительную лицензию на сеанс. Кроме того, внешняя компонента V83.COMConnector должна быть зарегистрирована на компьютере — если возникает ошибка «Класс не зарегистрирован», выполните регистрацию командой regsvr32 для библиотеки comcntr.dll из каталога платформы.

Способ 3: план обмена для постоянной синхронизации

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

Настройка в типовой конфигурации выполняется через раздел «Администрирование → Синхронизация данных»: включите синхронизацию, создайте настройку, укажите вторую базу (прямое подключение, файл через каталог, FTP или электронную почту), задайте состав передаваемых данных и расписание. После первоначальной выгрузки документы будут передаваться автоматически по расписанию или по событию записи.

План обмена работает по принципу регистрации изменений: платформа запоминает, какие объекты изменились с момента последней выгрузки, и передаёт только их. Это экономит трафик, но требует аккуратности: если удалить узел обмена и создать заново, потребуется повторная начальная выгрузка.

Способ 4: доступ через веб-сервисы и HTTP

Когда базы находятся в разных сетях или одна из них работает под Linux либо в веб-клиенте, COM не подходит. В этом случае в базе-источнике публикуют HTTP-сервис или веб-сервис, который по запросу возвращает данные документа в формате JSON или XML. База-потребитель выполняет HTTP-запрос и разбирает ответ.

Пример запроса из кода:

Соединение = Новый HTTPСоединение("server", 80, "user", "pass");

Запрос = Новый HTTPЗапрос("/base/hs/docs/get?number=00000123&date=20260115");

Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда

Данные = ПрочитатьJSONИзСтроки(Ответ.ПолучитьТелоКакСтроку());

КонецЕсли;

Для публикации HTTP-сервиса потребуется веб-сервер (IIS или Apache) и настройка публикации базы. Это самый гибкий, но и самый трудоёмкий вариант: нужно разработать сам сервис, продумать аутентификацию и защиту от несанкционированного доступа. Не публикуйте сервис без авторизации — иначе данные базы станут доступны любому, кто узнает адрес.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Ссылочные поля (контрагент, договор, номенклатура)
Норма

Все поля заполнены, элементы открываются

Тревожный признак

Поля пустые или показывают «Объект не найден»

Суммы и табличные части
Норма

Совпадают с оригиналом построчно

Тревожный признак

Расхождения в суммах или пропущенные строки

Статус проведения
Норма

Документ проведён, движения на месте

Тревожный признак

Документ записан, но не проведён, движений нет

Номер и дата
Норма

Совпадают с документом-источником

Тревожный признак

Номер переназначен автонумерацией, дата сбита

Частая проблема — «битые ссылки» вида «<Объект не найден>». Они появляются, когда документ загружен, а связанные справочники — нет. Решение: повторно выгрузить данные с включённой опцией выгрузки по ссылкам или дозагрузить недостающие элементы справочников.

Типичные ошибки
01
Выгрузка документа без связанных объектов — в приёмнике появляются битые ссылки
02
Попытка загрузить XML в базу с другой конфигурацией — ошибки формата или потеря данных
03
Использование COM-соединения на Linux-сервере — компонент недоступен, код падает с ошибкой
04
Изменение документов чужой базы через COM без транзакций — конфликты блокировок и простои пользователей
05
Публикация HTTP-сервиса без аутентификации — утечка данных наружу

Часто задаваемые вопросы

Можно ли открыть документ из другой базы просто двойным щелчком, как файл?

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

Как перенести документ между разными конфигурациями, например из УТ в БП?

Используйте типовую синхронизацию данных (в обеих конфигурациях есть встроенная настройка обмена) или обработку «Универсальный обмен данными в формате XML» с правилами конвертации. Прямая выгрузка-загрузка XML между разными конфигурациями не сработает из-за различий в структуре объектов.

Почему COM-подключение выдаёт ошибку «Класс не зарегистрирован»?

Компонента V83.COMConnector не зарегистрирована в системе или версия платформы на компьютере не совпадает с версией целевой базы. Зарегистрируйте библиотеку comcntr.dll из каталога нужной версии платформы командой regsvr32 с правами администратора.

Будет ли работать COM-соединение на сервере под Linux?

Нет, COM — технология Windows. На Linux используйте HTTP-сервисы, веб-сервисы или обмен через файлы и планы обмена.

Как открыть документ из архивной базы, которая больше не используется?

Проще всего запустить саму архивную базу (добавить её в список информационных баз) и найти документ в соответствующем журнале. Если нужно перенести документ в рабочую базу — используйте выгрузку в XML с последующей загрузкой.

Можно ли настроить автоматическую передачу документов без программирования?

Да. Типовая синхронизация данных в разделе «Администрирование → Синхронизация данных» настраивается полностью через интерфейс: выбирается вторая база, состав данных и расписание. Программирование требуется только для нестандартных сценариев.

Итог

Что важно запомнить

Документ из другой базы 1С не открывается как файл — его переносят или читают программно. Для разовой задачи используйте выгрузку в XML, для постоянной — план обмена, для доступа из кода — COM-соединение или HTTP-сервис. После любого переноса проверяйте ссылки, суммы и движения документа.