Связка python + PostgreSQL + 1C 8.3

08.02.21

Интеграция - WEB-интеграция

Поступила задача от руководства сделать парсер сайтов с сохранением результатов в 1С. Парсер сайтов принял решение писать в python, благо его компоненты позволяют сделать парсер с минимальными затратами. Но нормальной связки python + 1С во всемирной сети я не нашел. Поэтому решил сделать через PostgreSQL, так как в postgres поддерживается python. Обработка тестировалась на платформе 1С 8.3.17.1549.

Файлы

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

Наименование Скачано Купить файл
Файл со скриптом на python
.py 0,08Kb
3 1 850 руб. Купить
Обработка для проверки связи
.epf 5,95Kb
2 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Итак, начнем.

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, как показано на принтскрине выше.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21849    31    24    

25

SALE! 15%

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4061    20    2    

21

WEB-интеграция Программист Руководитель проекта 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8936    7    5    

10

Оптовая торговля WEB-интеграция Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Государственные, бюджетные структуры Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен данными с "Порталом поставщиков" zakupki.mos.ru Москвы и Московской области с целью создания оферт для закупок государственными учреждениями. Модуль устраняет рутину, минимизирует ошибки и помогает выигрывать больше закупок. Работает строго по требованиям 44-ФЗ.

14400 руб.

13.12.2016    41372    54    39    

37

Обмен с ГосИС WEB-интеграция Бухгалтер Пользователь 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

5196 руб.

28.04.2016    98359    111    218    

359
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 994 08.02.21 10:43 Сейчас в теме
>>> "Поступила задача от руководства сделать парсер сайтов с сохранением результатов в 1С."
В статье нет решения основной задачи, кроме как запуск питонячего скрипта через постгрес. Можно скрипт запустить и через <КомандаСистемы()>
4. twerp 2 29.04.21 09:04 Сейчас в теме
(0)
Автор запутался :)

Пункт 3 данной инструкции не нужен. Шаманство какое то :)
Пункт 5 Добавить в переменные среды PATH путь к питону. В нашем случае C:\Python37 Перезагружаем компьютер.
Проверено на Windows 2008; postgresql12.5-3.1C; Python 3.7.9

Можно в ручную Питон не устанавливать. По окончании установки, предлагается запустить установщик дополнительных компонентов stackbuilder. Отмечаем "EDB Language Pack v1.0-5". Будет установлен Python 3.7.4 в каталог C:\edb\languagepack\v1\Python-3.7\ Прописываем этот путь в переменную среды PATH и поддержка языка включается без третьего "шаманского" пункта.
Проверено на Windows 2019; postgresql12.5-3.1C
Прикрепленные файлы:
2. klepser 21 08.02.21 21:34 Сейчас в теме
Не разу не спорю. В данной статье я показал вариант связки, как на мой взгляд более удобный. И скрипт скрипту рознь, загружать кодом обработку не очень хочется, а основной функционал вывести в хранимую функции как-то поинтересней. А про парсер будет отдельная статья.
13jaguar; +1 Ответить
3. aou1c 13 11.03.21 09:52 Сейчас в теме
Немного критики
1. MSSQL в python есть
2. Не проще ли сделать как тут https://infostart.ru/public/1399812/. Там можно любую интеграцию замутить, забыв про nativAPI и прочее.
Для отправки сообщения требуется регистрация/авторизация