Описание


PG1C создает и обновляет в PostgreSQL таблицы максимально идентичные таблицам (объектам конфигурации) 1С. Простые SQL-запросы копируются из консоли запросов 1С без изменений, сложные - с минимальными изменениями.

Данные в таблице обновляются либо по расписанию, либо непосредствнно в SQL-запросе. Поддерживаются 4 режима обновления данных: полное и быстрое отдельной процедурой (например, в фоне по расписанию), полное и по первичному ключу в SQL-запросе (например, в важных отчетах). Обновление метаданных выполняется без пересоздания таблицы, данных - без перезаписи строк стаблицы, это позволяет настраивать права доступа к таблице, создавать внешние ключи и представления.


Простой пример

-- Устанавливаем расширение 
create extension pg1c;

-- Настраиваем доступ к серверу 1С
update pg1c.server_1c 
  set web_address='192.168.1.10',publication='УТ',user_1c='odata',password_1c='[пароль]';

-- Получаем URL к метаданным и проверяем его в WEB-браузере
select pg1c.build_http_url();

-- Создаем таблицу
select pg1c.create_table('Справочник.Контрагенты');

-- Выбираем данные из таблицы
select * from Справочник.Контрагенты;

-- Выбираем данные из табличной части 2 способами
select * from Справочник.Контрагенты_КонтактнаяИнформация;
select КонтактнаяИнформация from Справочник.Контрагенты;

-- Обновляем и выбираем данные
select * from Справочник.Контрагенты();


SQL-запросы в консоли запросов 1С


SQL-запросы в консоли запросов 1С

SQL-запросы в PostgreSQL, перенесены с минимальными изменениями


SQL-запросы в PostgreSQL

Устройство и принцип работы

Платформа 1С:Предприятие, включая бесплатную учебную версию, поддерживает "из коробки" доступ к данным по открытому протоколу OData - (автоматически формируемый REST интерфейс. Установка и настройка состоит из 3 частей: установка WEB-сервера, публикация информационной базы в конфигураторе и выдача прав пользователю. Протокол OData позволяет получать не только данные, но и их описание (метаданные) - список доступных таблиц, табличные части, столбцы с типами данных, первичные и внешние ключи. В отличие от прямого доступа к данным 1С, работа по протоколу OData не нарушает лицензионного соглашения. Использование клиентской лицензии на подключение оптимизировано.

PG1C - расширение PostgreSQL, которое обращается к платформe 1С через WEB-сервер по протоколу OData, на основе метаданных создает в PostgreSQL таблицы и хранимые процедуры для обновления данных. Созданные хранимые процедуры вызываются по расписанию или непосредственно в SQL-запросе. Поддерживаниется работа с несколькими серверами 1С в одной бд PostgreSQL: для каждого сервера можно настроить отдельные схемы (например, через префикс) или для каждой таблицы 1С явно указать схему и наименование в PostgreSQL. PostgreSQL имеет ограничение 63 байта на длину имен таблиц и столбцов. Длинные имена либо усекаются, либо сокращаются (настраивается). При усечении в SQL-запросе можно использовать и длинное имя (как в 1С), ошибки не будет.


Основные процедуры и функции


pg1с.create_table([таблица_1С]) -создание в PostgreSQL таблицы аналогичной таблице 1С
[таблица_1С]() -полностью обновить таблицу и вернуть ее
pg1c.refresh_data_all() -обновить данные всех созданных таблиц

Более подробно на странице Документация


Ключевые особенности


Ограничения