1С 8.3 Чтение данных таблицы БД на PostgreSQL - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Чтение данных таблицы БД на PostgreSQL

Данные > Примеры кода 1С > 1С 8.3 Приложение, система, интерфейс
Чтобы подключиться к базе и увидеть её структуру, можно воспользоваться программой pgAdmin.

Есть два основных варианта, с помощью которых можно считать данные через 1С:
  • ADODB (COM объект)
  • Внешние источники данных (объект платформы)

Считать записи первым способом можно используя код из Примера №1.
На выходе у нас есть подключение к базе, и мы можем делать что нам требуется (на что хватит прав). Можно работать через sql запросы, либо с объектами напрямую.

Пример №2 позволяет сразу увидеть структуру самой базы данных.
Внешние источники данных - это обособленный объект конфигурации, который позволяет работать с данными различного формата и совместимыми программами. Под работой предполагается не только чтение данных, но и хранение и изменение.

При создании внешнего источника данных можно либо вручную задать структуру внешних таблиц, либо воспользоваться конструктором таблиц, в котором задаются параметры подключения и выполняется подключение к базе данных. После подключения к БД, появляется структура базы и можно выбрать нужные таблицы.

Важный нюанс!!! То подключение, которое мы выполнили в конфигураторе, не сохраняется.
Для того чтобы данный источник заработал в режиме 1С:Предприятие, необходимо либо в коде один раз задать параметры подключения (листинг 2), либо воспользоваться платформенной обработкой "Управление внешними источниками данных".

Особенности подключения ADODB:
  • Требуется драйвер OLEDB
  • Можем выполнять SQL запросы
  • Необходимо знать структуру базы данных
  • Работает медленнее чем второй способ (но есть исключения)

Особенности подключения через внешние источники данных:
  • Требуется драйвер ODBC
  • Можно использовать в динамических списках и СКД
  • Требуется выполнить подключение в режиме предприятия
  • Можно работать с объектом в привычном конструкторе запросов
  • Нельзя использовать временные таблицы после выборки данных из внешней базы. Необходимо предварительно выгрузить результат запроса в ТЗ.
  • Работает в разы быстрее, чем ADODB.
// by telegram
Пример №1
// Задаем параметры подключения
ADODBСоединение = Новый COMОбъект("ADODB.Connection");
ADODBСоединение.ConnectionString = "Driver={PostgreSQL Unicode};Server=192.168.0.1;Port=5432;  |Database=DBtest;Uid=user;Pwd=pass;STMT=utf8";

Попытка
   // Делаем попытку подключения
   ADODBСоединение.Open();
Исключение
   Возврат;
КонецПопытки;

// Определяем объекты набора записей и команды
НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
Команда = Новый COMОбъект("ADODB.Command");

Попытка
   // Заполняем команду текстов запроса
   Команда.ActiveConnection = ADODBСоединение;
   Команда.CommandText = "SELECT description
    |
    |FROM public.""TableNom"";";

   // Выполняем команду и помещаем результат в набор записей
   НаборЗаписей = Команда.Execute();
Исключение
   Возврат;
КонецПопытки;
Пример № 2
//Выполняется единожды
ПараметрыСоединения = ВнешниеИсточникиДанных.ВнИст.ПолучитьОбщиеПараметрыСоединения();

 ПараметрыСоединения.АутентификацияСтандартная = Истина;
 ПараметрыСоединения.ИмяПользователя = "user";
 ПараметрыСоединения.Пароль = "pass";
 ПараметрыСоединения.СтрокаСоединения = "Driver={PostgreSQL Unicode};"
 + "Server=192.168.0.1;Port=5432;Database=DBtest;Uid= user;Pwd= pass;STMT=utf8";
 ПараметрыСоединения.СУБД = "PostgreSQL";

 ВнешниеИсточникиДанных.ВнИст.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);

 ВнешниеИсточникиДанных.ВнИст.УстановитьСоединение();
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 27.09.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому