Подключение к 1C 8.3 и 8.2 по COM

Подключение к другой базе 1С 8 по COM-соединению очень полезная вещь. В основном, эта функция необходимо для обмена данными между конфигурациями.

Но по каким то причинам у новичком часто возникает затруднения с этим не сложным процессом. Ниже я расскажу пример решения этой проблемы на примере простой задачки.

Поставлена задача:

Из конфигурации “Документооборот“, необходимо подключится к базе УПП:

  • найти документ по заранее известном коду, допустим “123”
  • получить статус документа
  • если статус изменился – то поменять и в соответствующем документе “документооборота

Реализация задачи:

Создание подключения к базе 1С по COM

Первым делом необходимо создать подключение к базе 1С 8.3, рассмотрим функцию, которая вернет подключение по ком-объекту к другой базе для файлового режима 1С:

Функция ПолучитьПодключениеКФайловойБД()

Параметры = "File=""C:\1CBase""";Usr=""login"";Pwd=""password"";";
V82COMConnector= Новый COMОбъект("V82.COMConnector");
Попытка
Возврат V82COMConnector.Connect(Параметры);
Исключение
Предупреждение ("Ошибка подключения!");
Возврат Неопределено;
КонецПопытки;

КонецФункции;

Функция вернет СОМ объект, с помощью которого можно производить действия с другой базой данных 1С 8.2.

Для клиент серверного режима, строка подключения будет немного отличаться:

Функция ПолучитьПодключениеКСервернойБД()

Параметры = "Srvr=""server"";Ref=""BaseName"";Usr=""login"";Pwd=""password"";";
V82COMConnector= Новый COMОбъект("V82.COMConnector");
Попытка
Base1С = V82COMConnector.Connect(Параметры);
Исключение
Предупреждение ("Ошибка подключения!");
КонецПопытки;

КонецФункции;

Если вы подключаетесь к базе на платформе 1C 8.1 – то вам необходимо использовать не  “V82.COMConnector”, а “V81.COMConnector”.

Найти документ 1С по COM

Для примера, пусть номер нужного документа будет “1234”, а наш Документ-объект – “ДокументОбъект”:

Соединение = ПолучитьПодключениеКСервернойБД();

СсылкаНаОбъект = Соединение.Документы.РеализацияТоваровУслуг.НайтиПоКоду("1234");

Если Не ЗначениеЗаполнено(СсылкаНаОбъект) Тогда
Сообщить("Не найден документ!");
Возврат;
КонецЕсли;

СтатусДокумента = СсылкаНаОбъект.Статус;

Если ДокументОбъект.Статус <> СтатусДокумента Тогда
ДокументОбъект.Статус = СтатусДокумента;
ДокументОбъект.Записать();
КонецЕсли;

Вот и все: мы подключились по COM, получили нужный документ прочитали его статус и если он отличается – установили статус нашему документу.

Видеоурок по подключению 1С 8.3  через COM:

Запись опубликована в рубрике Программирование и сопровождение 1с. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Solve : *
13 + 23 =