Связка python + PostgreSQL + 1C 8.3
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Итак, начнем.
1. Для того чтобы определить, какая версия python совместима с postgres, идем по пути «C:\Program Files\PostgreSQL\13\doc».

В папке нас интересует файлик installation-notes.html

В файле указана версия python, совместимая с сервером.
2. Собственно скачиваем и устанавливаем python.


Python устанавливаем в корень диска C
3. Для подключения python к postgresql нужно в папке «C:\Python37» взять dllку «python3.dll» скопировать ее в «C:\Program Files\PostgreSQL\13\lib» и переименовать ее в python37.dll.


4. Если вы только установили PostgreSQL и pgAdmin 4 не хочет открываться, pgadmin можно установить в python.
Для того чтобы установить pgAdmin4, нужно в командной строке ввести команду «pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.30/pip/pgadmin4-4.30-py3-none-any.whl»

Сервер админа запускается командой «pgadmin4»

Если не хочется вводить пароль и логин, то в файле config.py значение SERVER_MODE устанавливаем False.

5. Включаем поддержку языка python
В pgADmin запускаем редактор SQL


Вводим CREATE LANGUAGE plpython3u. Если все красиво стало, увидите сообщение о удачно выполненном запросе. Если появились ошибки, то тогда нужно прописать переменные среды как на скрине ниже.

В переменных PYTHONHOME и PYTHONPATH указываем путь до папки с python. Перезагружаем компьютер, пробуем опять выполнить запрос CREATE LANGUAGE plpython3u.
6. Создаем хранимую процедуру.



Sys.path.append() устанавливает рабочий каталог для скриптов python.
В рабочем каталоге создаем файл testy.py с функцией tests.

В SQL редакторе выполним запрос SELECT public.test()
Если все правильно сделали, то увидите в результате выполнения строку «Внешний скрипт»

7. Настраиваем драйвер ODBC


8. Создаем внешнюю обработку с процедурой на клиенте.
Connection = Новый COMОбъект("ADODB.CONNECTION");
АДОНаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
АДОКоманда = Новый COMОбъект("ADODB.Command");
Connection.ConnectionString = "Driver={PostgreSQL Unicode};data source=PostgreSQL35W;STMT="+"utf8";
Попытка
Connection.open();
Сообщить("База PostgreSQL подключена");
АДОКоманда.ActiveConnection = Connection;
АДОКоманда.CommandText = "SELECT public.test();";
АДОНаборЗаписей = АДОКоманда.Execute();
Сообщить(АДОНаборЗаписей.Fields("test").Value);
Connection.Close();
Исключение
Сообщить("Не могу подключиться к базе PostgreSQL ");
КонецПопытки;

И если нет ошибок, получаем строку (Внешний скрипт) из скрипта на python, как показано на принтскрине выше.
Вступайте в нашу телеграмм-группу Инфостарт