Пример подключения к информационной базе через COMConnector

23.10.19

Интеграция - Внешние источники данных

Пример подключения создан для обычной и управляемой формы. Позволяет подключиться "На сервере 1С:Предприятия" и "На данном компьютере или на компьютере в локальной сети", подключение производится через логин/пароль или с помощью аутентификации Windows.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример подключения к информационной базе через com (COMConnector):
.epf 14,64Kb
11
11 Скачать (1 SM) Купить за 1 850 руб.

общий концепт подключения такой, если кому нужен только механизм

СтрокаПодключения = "";
Если Не АутентификацияWindows Тогда
	Если НЕ ПустаяСтрока(Пользователь) Тогда
		СтрокаПодключения = СтрокаПодключения + ";Usr = """ + Пользователь + """";
	КонецЕсли;
	Если НЕ ПустаяСтрока(Пароль) Тогда
		СтрокаПодключения = СтрокаПодключения + ";Pwd = """ + Пароль + """";
	КонецЕсли;
КонецЕсли;
СтрокаПодключения = СтрокаПодключения + ";";

//V8 или V81 или V83
ВерсияПлатформы = "V83";

Попытка
	ProgID = ВерсияПлатформы +".COMConnector";
	COMПодключение = Новый COMОбъект(ProgID);
	COMОбъект = COMПодключение.Connect(СтрокаПодключения);		
Исключение		
	СтрокаСообщенияОбОшибке = "При попытке соединения с COM-сервером произошла ошибка:" + Символы.ПС 
		+ ОписаниеОшибки();		
	Сообщить(СтрокаСообщенияОбОшибке);	
	Возврат Неопределено;		
КонецПопытки;

Возврат COMОбъект;

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

ОбъектПодключения = ПодключитсяКИнформационнойБазе();
	
Если НЕ ОбъектПодключения = Неопределено Тогда
	Сообщить("Подключение выполнено! " + ТекущаяДата());
	
	Для Каждого ЭлМетаданных ИЗ ОбъектПодключения.Метаданные.Документы Цикл		
		Запрос = ОбъектПодключения.NewObject("Запрос");
		Текст = "ВЫБРАТЬ
		|	КОЛИЧЕСТВО(*) КАК КоличествоДокументов
		|ИЗ
		|	Документ."+ЭлМетаданных.Имя+" КАК Документ";
		Запрос.Текст = Текст;
		Выборка = Запрос.Выполнить().Выбрать();
		Выборка.Следующий();
		ВсегоДокументов = Выборка.КоличествоДокументов;
		Сообщить(ЭлМетаданных.Имя + " - " + ВсегоДокументов);
		Прервать;
	КонецЦикла;
	
КонецЕсли;

при ошибке "Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3)" не забываем регистрировать библиотеку, через

regsvr32     bin\comcntr.dll

 

для БСП есть вот такой способ подключения.
БСП, Общий модуль, ОбщегоНазначенияКлиентСервер 

Функция УстановитьВнешнееСоединение(Параметры, СтрокаСообщенияОбОшибке = "", ОшибкаПодключенияКомпоненты = Ложь) Экспорт

ps: спасибо комментатору awk

См. также

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    145109    844    297    

436

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.20.x), также подходят для релиза 11.5 (11.5.19.x).

35000 руб.

23.07.2020    55329    253    73    

207

SALE! 10%

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    170080    354    281    

390

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    22717    24    49    

39

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    73841    196    154    

133

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    38005    106    69    

100

SALE! 10%

Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Правила переноса данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных) Воспользовались более 122 предприятий! |

55778 50200 руб.

31.10.2014    238357    105    338    

308

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.240.x) и БП 3.0 (3.0.169.x). Правила подходят для версии ПРОФ и КОРП.

35000 руб.

15.12.2021    25755    183    55    

139
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3793 23.10.19 11:48 Сейчас в теме
Похоже мамонт по имени COM еще долго не вымрет...
IncomeGroup; +1 Ответить
10. jaa_cool 24.10.19 09:53 Сейчас в теме
(1)Просто не вымрут те, у кого при слове WS/HS округляются глаза... зачем что-то новое, когда на коленке все работает
11. dsdred 3793 24.10.19 10:00 Сейчас в теме
(10)Линукс бы им в помощь ))
Для ускорения процесса изучения нормальных современных методик.
12. jaa_cool 24.10.19 10:15 Сейчас в теме
(11)Ага, Slackware, а не какой-то там халявный redhat подобный гыгы
2. zabaluev 465 23.10.19 11:51 Сейчас в теме
100500 раз об одном и том же. Что здесь нового?
mrChOP93; John_Dow; awk; wowik; +4 Ответить
3. awk 745 23.10.19 14:03 Сейчас в теме
БСП, Общий модуль, ОбщегоНазначенияКлиентСервер

// Устанавливает внешнее соединение с информационной базой по переданным параметрам подключения и возвращает указатель
// на это соединение.
// 
// Параметры:
//  Параметры - Структура - параметры для установки внешнего соединения с информационной базой.
//                          Свойства см. в функции
//                          ОбщегоНазначенияКлиентСервер.СтруктураПараметровДляУстановкиВнешнегоСоединения):
//
//    * ВариантРаботыИнформационнойБазы             - Число - Вариант работы информационной базы: 0 - файловый; 1 -
//                                                            клиент-серверный;
//    * КаталогИнформационнойБазы                   - Строка - Каталог информационной базы для файлового режима работы;
//    * ИмяСервера1СПредприятия                     - Строка - Имя сервера1С:Предприятия;
//    * ИмяИнформационнойБазыНаСервере1СПредприятия - Строка - Имя информационной базы на сервере1С:Предприятия;
//    * АутентификацияОперационнойСистемы           - Булево - Признак аутентификации операционной системы при создании
//                                                             внешнего подключения к информационной базе;
//    * ИмяПользователя                             - Строка - Имя пользователя информационной базы;
//    * ПарольПользователя                          - Строка - Пароль пользователя информационной базы.
// 
//  СтрокаСообщенияОбОшибке - Строка - если в процессе установки внешнего соединения возникает ошибка,
//                                     то подробное описание ошибки помещается в этот параметр.
//  ОшибкаПодключенияКомпоненты - Булево - (возвращаемый параметр) устанавливается Истина, если была ошибка при подключении.
//
// Возвращаемое значение:
//  COMОбъект, Неопределенно - в случае успешной установки внешнего соединения возвращается указатель на COM-объект соединения;
//    в случае ошибки возвращается Неопределенно.
//
Функция УстановитьВнешнееСоединение(Параметры, СтрокаСообщенияОбОшибке = "", ОшибкаПодключенияКомпоненты = Ложь) Экспорт
Показать
twiny; saggi0212; mrChOP93; login1020; IncomeGroup; user774630; +6 Ответить
6. IncomeGroup 38 23.10.19 17:50 Сейчас в теме
(3) о, это полезно, об этом я не знал, спасибо.
4. azhilichev 214 23.10.19 15:32 Сейчас в теме
ВсегоДокументов = Запрос.Выполнить().Выбрать().Количество();

Занавес...
jaa_cool; dsdred; erutan; awk; +4 Ответить
5. IncomeGroup 38 23.10.19 17:33 Сейчас в теме
7. azhilichev 214 24.10.19 05:15 Сейчас в теме
(5)Дело не в том, "подожгло" или "не подожгло". Вы выкладываете статью. Скорее всего позиционируете ее как обучающую. И скорее всего код, который в статье, используете в своей работе. Есть большая вероятность, что кто-то позаимствует код из вашего примера. Давайте я объясню, что меня "подожгло".

Вы используете очень неэффективную проверку количества объектов в таблице:
ВсегоДокументов = Запрос.Выполнить().Выбрать().Количество();


Предположим, что у вас SQL-база. Здесь вы выбираете все ссылки на документы из таблицы. Эти данные передаются с сервера БД на сервер 1С. Хорошо, если таблицы по размеру небольшие. Плохо, если в таблицах сотни миллионов или миллиарды записей. Все это кэшируется и память сервера 1С неслабо засирается. Далее вы берете этот дохулион записей и просите платформу посчитать количество.

Правильно будет делать так:
"ВЫБРАТЬ
    КОЛИЧЕСТВО(*) КАК КоличествоДокументов
ИЗ
    Документ.[Имя_Вашего_Документа] КАК [Псевдоним_Таблицы]"

Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();


И тогда Выборка.КоличествоДокументов как раз и будет содержать определяемое значение. При этом подходе мы просим СУБД посчитать для нас количество записей в таблице.
kaaasteeen; saggi0212; ArchLord42; levante90; jaa_cool; mrChOP93; dsdred; Denis_CFO; +8 Ответить
8. Denis_CFO 49 24.10.19 05:53 Сейчас в теме
(7) Спасибо, за простое разъяснение.
saggi0212; +1 Ответить
9. IncomeGroup 38 24.10.19 09:48 Сейчас в теме
(7) Все ж обучение не в этом, но да правильное замечание, учту.
13. awk 745 24.10.19 10:27 Сейчас в теме
(7) Эх... Махнув перо в г...но, накину и я на вентилятор... :))))

Правильно (а точнее безопастнее) будет:


Если Выборка.Следующий() Тогда

14. azhilichev 214 24.10.19 10:43 Сейчас в теме
(13) А в чем опасность?
Выборка.Следующий();

Запрос на получение количества без выборки каких-либо других данных и без соединений с другими таблицами всегда вернет 1 запись. Даже если строк в таблице нету, то в этой единственной записи будет значение 0.
15. IncomeGroup 38 24.10.19 11:07 Сейчас в теме
(14) в типовых кстати такое есть, от ситуации зависит.
16. awk 745 24.10.19 12:57 Сейчас в теме
(14) Все так, все так.... Пока так... А завтра? Добавили группировку, соединение и вуаля... Выборка.Следующий() = Ложь, а Выборка.КоличествоДокументов = Неопределено...
17. IncomeGroup 38 24.10.19 13:40 Сейчас в теме
(16) напишите письмо в фирму 1С, возможно вас послушают.
18. awk 745 24.10.19 13:52 Сейчас в теме
(17) Вот сейчас не совсем понял. Зачем? Что фирма 1С должна сделать? Если вы думаете, что пример надуман, то нет. Он из жизни... И ошибка: "преобразование к значению типа Число не может быть выполнено", правилась мной на этой неделе.
19. azhilichev 214 25.10.19 02:51 Сейчас в теме
(16) Это проблема не исходного решения. А того, кто доработал решение, даже не осмыслив, что он дорабатывает и какой объем правок надо сделать.
20. awk 745 25.10.19 09:35 Сейчас в теме
(19) Эту проблему можно избежать, просто проверив результат запроса. Обнаружить же такую ошибку, не имея модульных тестов , зачастую просто не реально. Но это уже перфекционизм, реакция на ваше:


позиционируете ее как обучающую


Сам такой... Прочитал ваш пост, как в зеркало посмотрел.
21. slavyan_arena 05.08.21 13:56 Сейчас в теме
Спасибо,
думаю многим будет полезно, кто пишет конфу с нуля
Оставьте свое сообщение