Как подключиться к 1с из другой программы

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

Пользоваться этим методом можно как в клиент-серверных вариантах баз, так и в файловых базах.

Существует два вида COM объектов для приложения 1С:

Ole соединение V83.Application

Com соединение V83.COMConnector

В случае с V83.Application запускается практически полноценный экземпляр приложения 1С. В случае использования V83.COMConnector запускается небольшая серверная часть. Скорость работы в этом случае выше, но некоторые функции могут быть недоступны.

В частности работа с формами и с общими модулями для которых, не установлено свойство работы с внешними соединениями. По большей части нужно использовать V83.COMConnector и только в случае нехватки функционала V83.Application.

Особенно сильно разница в скорости работы может быть заметна на базах большого объема.

Для платформы 1С 8.2 используется V82.Application или V82.COMConnector

Как перенести базу 1С 8.3 на другой компьютер — урок для начинающих

Источник: okolokompa.com

Подключение к базе 1С через COM

Ниже представлены примеры подключения к серверной и файловой базам:

// Подключение к серверной базе
Соединение = Новый COMОбъект ( «V83.COMConnector» );
ПараметрыДоступа = «Srvr=»»Сервер»»;Ref=»»ИмяБазы»»;Usr=»»Пользователь»»;Pwd=»» ПарольПользователя «»;» ;
Попытка
База = Соединение . Connect ( ПараметрыДоступа );
Исключение
Сообщить ( «Проблемы при подключении: » + ОписаниеОшибки ());
Возврат;
КонецПопытки;

// Подключение к файловой базе
Соединение = Новый COMОбъект ( «V83.COMConnector» );
ПараметрыДоступа = «File=»» ПутьККаталогуБазы «»;Usr=»»Пользователь»»;Pwd=»» ПарольПользователя «»;» ;
Попытка
База = Соединение . Connect ( ПараметрыДоступа );
Исключение
Сообщить ( «Проблемы при подключении: » + ОписаниеОшибки ());
Возврат;
КонецПопытки;

Читайте также:
Astra linux установка программ

Примеры обращения к данным другой базы

// Поиск и изменение справочника
НайденныйСпр = База . Справочники . Номенклатура . НайтиПоКоду ( «12345» );
Если НайденныйСпр = База . Справочники . Номенклатура . ПустаяСсылка () Тогда
Сообщить ( «Справочник не найден» );
Иначе
СпрОбъект = НайденныйСпр . ПолучитьОбъект ();
СпрОбъект . Описание = «Описание» ;
СпрОбъект . Записать ();
КонецЕсли;

// Работа с запросом
Запрос = База . NewObject ( «Запрос» );
Запрос . Текст =
«ВЫБРАТЬ
| Контрагенты.Наименование

Как перенести 1С на другой компьютер?


|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ЮрФизЛицо = ;
Запрос . УстановитьПараметр ( «ЮрФизЛицо» , База . Перечисления . ЮрФизЛицо . ФизЛицо );

Выборка = Запрос . Выполнить (). Выбрать ();
Пока Выборка . Следующий () Цикл
Сообщить ( Выборка . Наименование );
КонецЦикла;

Методы БСП

В библиотеке стандартных подсистем(БСП) предусмотрены методы для работы с COM-подключениями. Вот некоторые из них:

  • ОбщегоНазначенияКлиентСервер . ИмяCOMСоединителя () — возвращает имя COM-класса для работы с 1С:Предприятием через COM-соединение (например, «v83.COMConnector»).
  • ОбщегоНазначения . ИдентификаторCOMСоединителя (Знач ИмяCOMСоединителя ) — возвращает CLSID COM-класса для работы с 1С:Предприятием 8 через COM-соединение (для v83.COMConnector — «181E893D-73A4-4722-B61D-D604B3D67D47»).
  • ОбщегоНазначенияКлиентСервер . УстановитьВнешнееСоединениеСБазой ( Параметры ) — устанавливает внешнее соединение с информационной базой по переданным параметрам подключения и возвращает указатель на это соединение.
  • СоединенияИБ . ИнформацияОСоединениях ( ПолучатьСтрокуСоединения = Ложь, СообщенияДляЖурналаРегистрации = Неопределено, ПортКластера = 0 ) — возвращает структуру, из которой можно узнать, есть ли в текущий момент COM-соединения с базой.

COMСоединитель = Новый COMОбъект ( ОбщегоНазначенияКлиентСервер . ИмяCOMСоединителя ());

CLSID = ОбщегоНазначения . ИдентификаторCOMСоединителя ( ОбщегоНазначенияКлиентСервер . ИмяCOMСоединителя ());

Результат = ОбщегоНазначенияКлиентСервер . УстановитьВнешнееСоединениеСБазой ( Параметры );

ТекущиеСоединения = СоединенияИБ . ИнформацияОСоединениях (Истина);

Лицензирование

Для каждого COM-соединения расходуется одна лицензия. Лицензии ищутся в следующем порядке:

  1. локальные клиентские лицензии;
  2. локальные серверные лицензии;
  3. сетевые клиентские лицензии;
  4. клиентские лицензии на сервере 1С:Предприятия или веб-сервере.

Источник: pro1c8.ru

COM соединение в 1С 8.3 на примере

Перенос данных из одной информационной базы в другую можно осуществить при помощи конвертации данных, либо типовой обработки по загрузке/выгрузке.

Читайте также:
Как с флешки удалить программу

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

схема работы с ком-соединением

Реализация COM-соединения

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

Обратите внимание, что способ подключения к файловым и клиент-серверным базам отличается. Мы будем применять «V83.COMConnector», так как работа идет с базами на платформе 8.3. Следовательно, для более низких версий будут использоваться COMConnector V81 и V82 соответственно.

File color: black;»>»D:BUH30″»; Usr color: black;»>»administrator»»;Pwd color: black;»>»123456″»»; // Данный формат используется для подключения к клиент-сервер.

ИБ // ПараметрыПодключенияИБ = «Srvr=»»НаименованиеСервера»»;Ref=»»ИмяИБ»»;Usr=»»ЛогинПользователя»»;Pwd=»»ПарольПользователя»»; V83COMCon= Новый COMОбъект(«V83.COMConnector»); Попытка Возврат V83COMCon.Connect(ПараметрыПодключенияИБ); Исключение Сообщить(ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; КонецФункции

Следующим нашим шагом будет добавление на форму табличной части, в которую будут выводиться данные. Так нужно указать поля для ввода периода, по которому будут отбираться документы. Сама процедура заполнения будет выполняться при нажатии соответствующей кнопки со следующим кодом:

Если ТипЗнч(СоединениеБУХ) > Тип(«Неопределено») Тогда ЗапросБП30 = СоединениеБУХ.NewObject(«Запрос»); ЗапросБП30.

Текст = «ВЫБРАТЬ | РеализацияТУ.Номер КАК Номер, | РеализацияТУ.СуммаДокумента КАК СуммаДокумента |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТУ |ГДЕ | РеализацияТУ.Проведен = ИСТИНА | И РеализацияТУ.Дата МЕЖДУ ДатаО»; ЗапросБП30.УстановитьПараметр(«ДатаН», Объект.

ДатаН); ЗапросБП30.УстановитьПараметр(«ДатаО», Объект.ДатаО); Объект.СписокДокументов = ЗапросБП30.Выполнить().

Выгрузить(); КонецЕсли; КонецПроцедуры

После выполнения наша обработка будет выглядеть так, как показано на рисунке ниже.

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!

Читайте также:
Вирус сам устанавливает программы Андроид

Источник: 1s83.info

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru