Подключение к другой базе 1С 8 по 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, получили нужный документ прочитали его статус и если он отличается — установили статус нашему документу.