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

23.10.19

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Пример подключения к информационной базе через com (COMConnector):
.epf 14,64Kb
10
10 Скачать (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

См. также

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

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

15.11.2022    19027    17    SQV0    49    

37

Перенос данных 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 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

45650 руб.

04.08.2015    164548    378    275    

366

SALE! 10%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    139648    772    295    

407

Перенос данных 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 | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

45650 руб.

15.04.2019    71222    178    148    

120

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

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

28000 руб.

15.12.2021    22758    151    46    

110

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

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

45650 руб.

24.04.2015    193803    147    242    

278

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    24068    22    1    

24

Перенос данных 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 предприятий! |

45650 руб.

31.10.2014    235418    97    332    

303
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3522 23.10.19 11:48 Сейчас в теме
Похоже мамонт по имени COM еще долго не вымрет...
IncomeGroup; +1 Ответить
10. jaa_cool 24.10.19 09:53 Сейчас в теме
(1)Просто не вымрут те, у кого при слове WS/HS округляются глаза... зачем что-то новое, когда на коленке все работает
11. dsdred 3522 24.10.19 10:00 Сейчас в теме
(10)Линукс бы им в помощь ))
Для ускорения процесса изучения нормальных современных методик.
12. jaa_cool 24.10.19 10:15 Сейчас в теме
(11)Ага, Slackware, а не какой-то там халявный redhat подобный гыгы
2. zabaluev 463 23.10.19 11:51 Сейчас в теме
100500 раз об одном и том же. Что здесь нового?
mrChOP93; John_Dow; awk; wowik; +4 Ответить
3. awk 744 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 744 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 744 24.10.19 12:57 Сейчас в теме
(14) Все так, все так.... Пока так... А завтра? Добавили группировку, соединение и вуаля... Выборка.Следующий() = Ложь, а Выборка.КоличествоДокументов = Неопределено...
17. IncomeGroup 38 24.10.19 13:40 Сейчас в теме
(16) напишите письмо в фирму 1С, возможно вас послушают.
18. awk 744 24.10.19 13:52 Сейчас в теме
(17) Вот сейчас не совсем понял. Зачем? Что фирма 1С должна сделать? Если вы думаете, что пример надуман, то нет. Он из жизни... И ошибка: "преобразование к значению типа Число не может быть выполнено", правилась мной на этой неделе.
19. azhilichev 214 25.10.19 02:51 Сейчас в теме
(16) Это проблема не исходного решения. А того, кто доработал решение, даже не осмыслив, что он дорабатывает и какой объем правок надо сделать.
20. awk 744 25.10.19 09:35 Сейчас в теме
(19) Эту проблему можно избежать, просто проверив результат запроса. Обнаружить же такую ошибку, не имея модульных тестов , зачастую просто не реально. Но это уже перфекционизм, реакция на ваше:


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


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