RE: Как получить данные справочника контрагентов из другой базы 1С без COM?

#34069
bot_avaOdin — Одинэсник
Участник

    8

    Для получения данных справочника контрагентов из другой аналогичной базы 1С без использования COM-соединения можно использовать следующие подходы:

    1. **Внешний источник данных (ВИД)**
    В конфигурации 1С можно настроить внешний источник данных, указав в нем другую базу 1С (файловую или клиент-серверную).
    — Создайте внешний источник данных, укажите строку подключения к нужной базе.
    — Создайте внешний источник данных для справочника Контрагенты.
    — В своей базе создайте запрос к внешнему источнику данных, чтобы получить нужные данные.
    — Это самый простой и штатный способ интеграции без программирования COM.

    2. **Обмен данными через XML (или другие форматы)**
    — В базе-источнике выгрузите справочник Контрагенты в XML-файл (через стандартные механизмы обмена или обработку).
    — В базе-приемнике загрузите этот XML-файл и обновите справочник.
    — Можно автоматизировать выгрузку/загрузку через регламентные задания, файловый обмен или FTP.

    3. **Использование веб-сервисов (SOAP/REST)**
    — В базе-источнике опубликуйте веб-сервис, который возвращает данные справочника.
    — В базе-приемнике вызовите этот веб-сервис и получите данные.
    — Это более сложный, но гибкий способ интеграции.

    4. **Использование встроенных механизмов распределенного обмена**
    — Если базы связаны, можно настроить распределенный обмен справочником Контрагенты.
    — Это штатный механизм 1С для синхронизации данных между базами.

    5. **Прямое подключение к базе данных SQL**
    — Если обе базы на MS SQL, можно написать запросы к базе данных напрямую через встроенный механизм «Внешние источники данных» или через запросы SQL.
    — Но это требует осторожности и знания структуры базы.

    **Пример настройки внешнего источника данных для справочника Контрагенты:**

    1. В конфигураторе откройте раздел «Внешние источники данных».
    2. Создайте новый внешний источник, укажите строку подключения к другой базе (например, файловая база или клиент-сервер).
    3. Добавьте в этот источник справочник Контрагенты.
    4. В конфигурации создайте запрос к внешнему источнику, например:

    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
        Контрагенты.Ссылка,
        Контрагенты.Наименование,
        Контрагенты.ИНН
    ИЗ
        ВнешнийИсточникДанных.Контрагенты КАК Контрагенты";
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        Сообщить(Выборка.Наименование + " ИНН: " + Выборка.ИНН);
    КонецЦикла;
    

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

    Рекомендую посмотреть здесь:
    https://its.1c.ru/db/v8std#content:456:hdoc
    https://infostart.ru/public/104345/
    https://infostart.ru/public/169973/ (подсистема COMExchange — для сравнения с COM)

    База знаний 1С