Внимание!
С 01.09.2025 повышение цены до 18 000 рублей.
При переходе с версий ниже чем 1.3.1 на более новую:
- Сохраните конфиг обработки в файл
- Очистите "ХранилищеОбщихНастроек" с параметрами: КлючОбъекта = Extractor_1C_Clickhouse, КлючНастроек = Обработка, ИмяПользователя = Фоновый
- Откройте сохраненный конфигурационный файл настроек и переименуйте:
- "ДополнительныеКлючиНомерСтроки" => "ТаблицаДополнительныеКлючиНомерСтроки"
- "ДополнительныеКлючиИмяКолонки" => "ТаблицаДополнительныеКлючиИмяКолонки"
- Запустите новую версию обработки и загрузите измененный конфигурационный файл.
Область применения
Чтобы вывести данные из информационных систем в облако так, чтобы оперативные данные всегда был под рукой и в одном месте, т.е. можно было открыть сразу графики на смартфоне.
Чтобы выгружать данные из информационной системы во внешнюю базу данных для дальнейшего анализа и создания BI дэшбордов, например в Yandex DataLens.
Совместимо с обычными формами (для фоновых заданий, требуется доработка вашей конфигурации) в старых конфигурациях и с базовыми версиями 1С.
Технические требования
Для работы с PostgreSQL требуется:
- Windows 7 / Linux Ubuntu 20. и старше
- Python 3.8 и старше (лучше устанавливать для всех пользователей)
- psycopg2 версии 2.8.4 и старше (pip install psycopg2==2.8.4)
Для работы с MySQL требуется:
- Windows 7 / Linux Ubuntu 20. и старше
- Python 3.8 и старше (лучше устанавливать для всех пользователей)
- mysql-connector-python-rf (pip install mysql-connector-python-rf
Для работы с REST API:
- Любая ваша ссылка на службу (endpoint) работающая по протоколу HTTP для приема сообщений в BODY и BINARY типа запроса POST. В тело запроса можно вложить разные форматы данных:
- CSV - через запятую с заголовками
- CSV_WH - тот же CSV, но с заголовками
- JSON - в виде массива объектов
- ClickHouseDB - готовый SQL запрос для исполнения / перенаправления / обхода ограничения портов на стороне базы данных / шины данных
- PostgreSQL - аналогично
- MySQL - аналогично
Решение протестировано на конфигурациях:
- 1С:Управление торговлей 11.5.17.122
- 1С:Бухгалтерия предприятия от 3.0.157.32
- 1С:Зарплата и управление персоналом 3.1.30.35
- 1С:Розница 3.0.10.178
- 1C:Комплексная автоматизация 2.5.20.91
- 1С:Управление производственным предприятием, редакция 1.3.122.2 (для фоновых заданий, требуется доработка вашей конфигурации 6 часов)
- 1С-Рарус: Альфа-Авто: Автосалон+Автосервис+Автозапчасти Корп. Редакция 6 (6.1.17.09) / АА6
Совместима и работает с базовыми конфигурациями 1С, проверено на:
- Управление торговлей (базовая), редакция 11 (11.5.23.59)
- Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.179.22)
В рамках внедрения (2 часа) после приобретения производится оценка возможности использования на вашей конфигурации. Если не укладываемся в 2 часа, то обговариваем стоимость дополнительных работ.
Код открыт.
Создание виртуальной машины с базой данных
Создаем свой виртуальный или физических сервер (#VM, #VDS, #VDI и др.)
Для своей VDS вам понадобиться 1-2 ядра, 4Gb RAM, 15-20 GB SSD/HDD.
У которого есть ай пи адрес и порт снаружи.
Адрес
<адрес вашей ВМ, где лежит база данных>
порт по умолчанию
8123
- Подготовить логин и пароль для пользователя БД.
<имя пользователя>
<пароль пользователя с правами на вставку данных и создание таблиц>
- Настроить свои фаерволлы, кому ходить можно, а кому нельзя
- Зайти на веб морду базы
Подготовка
-
Создать базу данных ClickHouseDB или PostgreSQL или MySQL
-
CREATE DATABASE db_1c_test COMMENT 'The 1C Test Metrics database';
-
-
выдать на нее права определенному пользователю
-
GRANT SELECT ON <db_name>.* TO <user_name>; (ClickHouseDB)
-
psql -c "GRANT ALL PRIVILEGES ON DATABASE <db_name> to <user_name>;" (PostgreSQL)
-
Проверка
- Для ClickHouseDB проверяем http:// <адрес вашей ВМ, где лежит база данных>:8123/play
- Для PostgreSQL проверяем через pgAdmin
- Для MySQL проверяем через phpMyAdmin
- Для обеих баз можно использовать утилиту DBeaver.
- Для REST API на стороне endpoint проверяем тело запроса BODY и BINARY.
Что нужно сделать в своей информационной базе
- Открыть обработку в информационной базе, например тестовую или демо базу
- Включите использование дополнительных и внешних обработок для своей конфигурации
- Предоставьте своего пользователю права на открытие внешних обработок
- Ввести все данные во вкладке параметры
- Указать имя таблицы, например «Test»
- Закрыть и открыть, убедиться, что параметры сохраняются
- Вставить запрос из конструктора, взять срез последних любого регистра
- Переименовать поле «Период» в «ПериодРегистратор»
- Выставить свои даты в поля стандартного периода
- Ограничить запрос датами «Дата1» и «Дата2»
- Выставить глубину смещения дат назад
- Отправить свой запрос
Чтобы ваша обработка запускалась в фоново в файловом варианте базы, то вам понадобиться создать еще одного пользователя, например «exchange» и создать задание в планировщике Windows или Cron на запуск программы без интерфейса.
Как проверить что отправилось в БД
Проверяем свой запрос в базе:
- select * from db_1c_test.Test;
Чтобы проверить какие ключи и типы полей создались используем:
- SHOW CREATE TABLE db_1c_test.Test;
Чтобы уничтожить таблицу, пишем:
- DROP TABLE db_1c_test.Test;
Чтобы просто очистить:
- TRUNCATE TABLE db_1c_test.Test;
или если хотите с условием что-то удалить:
- DELETE FROM db_1c_test.Test where date_record > '2023-11-24 12:00:00';
Какие тонкие настройки можно сделать через конфигуратор обработки
Чтобы более тонко настроить ключи, ресурсы и реквизиты, то открываем обработку через конфигуратор:
- Добавляем свой новый макет компоновки данных
- В своей СКД создаем свой запрос, а в полях, все что ключи не ставим никакой тип данных
- Все, что ресурсы указываем числовые
- Все, что ресурсы, строки или дата, или булево. Все остальное будет конвертироваться в строку или 0.
- В полях не допускается поле "Периода", поэтому переименовываем в «ПериодРегистратор».
- Или не указываем вовсе, поле "Период" подставится автоматически исходя из вашего запроса и параметров.
Можно не лезть в конфигуратор для нескольких выгрузок?
Да, можно. Пользуйтесь добавлением нового запроса во вкладке "Настройки запросов".
Можно и через конфигуратор, там больше настроек и возможностей.
Создание #BI дэшборда в #Yandex #DataLens и что может получится
На картинках представлены примеры из Демо базы 1С Управление торговлей 11.5.17.122.
Представлены картинки из мобильной версии DataLens.
Описание интерфейса
Описание интерфейса обработки
Параметры обработки
В момент установки обработки в вашу конфигурацию будут доступны команды:
- Синхронизация из 1С в ClickHouseDB, PostgreSQL, и MySQL ручное
- Фоновая выгрузка (все настройки)
- Фоновая выгрузка №1 ... №10
- Фоновая по умолчанию
Синхронизация из 1С в ClickHouseDB, PostgreSQL, и MySQL ручное Запустится основная форма обработки.
Фоновая выгрузка (все настройки) Задаются настройки расписания для фонового исполнения всех запросов из таблицы запросов в основной форме.
Фоновая выгрузка №1 ... №10 Параметры фонового исполнения по расписанию определенного номера запроса из таблицы запросов.
Фоновая по умолчанию Используется для запуска примера запроса, который можно переназначить через конфигуратор.
Основная форма обработки
Вкладка "Настройки" На этой вкладке задаются параметры подключения к базе данных (ClickhouseDB, PostgreSQL, MySQL) или к сервису приема сообщение API REST и шин данных (CSV, JSON, SQL).
- Имя базы - имя базы данных.
- Тип - тип подключения, какая база данных или REST. Подключение к ClickHouseDB осуществляется нативно. Подключение к PostgreSQL и MySQL происходит через Python. Требуется установка на сервер предприятия или на ПК, где запускается обработка версии не менее 3.8. Через консоль Python требуется установить библиотеку подключения к определенной базе данных.
- Формат - дополнительные опции помимо SQL есть в REST. Опция отвечает за то, в каком виде будут отправляться данные в REST API или шину данных: CSV, CSV с заголовками, JSON или форматы SQL запросов для ClickHouseDB, PostgreSQL или MySQL.
- SSL - используется ли защищенное соединение или нет.
- Порт - какой порт подключения к базе данных или REST.
- Путь до сертификата - сертификат CA который используется для подключения по SSL. Указывается абсолютный путь, куда есть доступ у службы приложений 1С на сервере или на клиенте, если файловый вариант.
- Пароль - пароль для авторизации.
- Включить параметры запроса REST - вложить ли в строку подключения ? и & параметры исполнения обработки: индекс запроса, индекс итерации, индекс строки итераций, количество передаваемых строк.
- Абсолютный путь Python - задается путь, где исполняемый файл Python для запуска скриптов. Можно задать значение python, если задан корректно параметр операционной системы PATH / sbin
- Путь к файлу настройки - абсолютный путь для сохранения конфигурационного файла обработки. Путь задается вместе с расширением.
- Сохранить настройки обработки в файл - Кнопка сохранения настроек обработки в формате JSON.
- Загрузить настройки обработки из файла - Кнопка загрузки настроек из сохраненного файла настроек в формате JSON.
Вкладка "Текущий запрос"
- Имя таблицы - наименование таблицы на русском или латинице в подключаемой базе данных или REST. Наименование на кириллице будет переведено в латиницу через транслит.
- Проверять? - выводит сообщение пользователю, каких полей в базе приемнике нет.
- Создавать несуществующие поля в БД - обработка создаст несуществующие поля в базе приемнике в случаи их отсутствия.
- Период - период за который требуется выгрузка данных.
- Эта текущая дата - опция, если включено, то заданный "Период" игнорируется, а рассчитывается с помощью "Количество дней назад": Дата начала = Текущая дата минус "Количество дней назад", Дата окончания = Текущая дата.
- Вызвать конструктор - кнопка вызова стандартного конструктора запросов на языке 1С.
- Отправить запрос - кнопка запускается процедуру отправки данных, которые доступны по заданному тексту запроса немедленно.
- Поле - Текст запроса
- Одним файлом - опция, если включено, то отправляется файлом состоящим из строк в портиции. Если выключена, то отправляется построчно.
- Количество в портиции - сколько строк из табличной части отправлять в базу данных или REST
- Каждая портиция в отдельном фоне - отправит каждую портицию данных в своем фоновом задании. Требуется разблокировка работы с внешними источниками.
- Использовать период в ключе - опция, если включено, то при создании таблицы в базе данных, добавится поле "Период" и будет использовано в качестве ключа в таблице базы данных. Если выключено, то поле "Период" не будет. В запросе нельзя использовать свое поле "Период", требуется переименовать в "ПериодРегистратор".
- Использовать дополнительные ключи - опция, использовать или нет дополнительные ключи в таблице базы данных. В данный момент используются предустановленные ключи: "База", "НомерГТД", "Серия", "НомерСтроки", "СсылкаGUID", "РасчетныйСчет", "Валюта".
- Количество дней назад - сколько дней вычесть из текущей даты для расчета Даты начала.
- Отключить? - опция отключает счетчик "по дням" и выполняет запрос с учетом сдвига в датах за один раз, а не по дням. При включенной опции, переопределите Период с помощью "ПериодРегистратор" и подставьте дату из документа.
- Периодичность - список опций: "День", "Месяц". Используется при формирования запроса и установке параметров Дата начала и Дата окончания. Если установлен "День", то при формировании запроса используется дневной интервал для всего запроса, т.е. выгрузка за каждый день и в поле Период подставляется Дата начала. Если "Месяц", то аналогично дню, только месячный интервал. Если поле "ПолеРегистратор" есть, то поле "Период" перезаписывается значением из поля "ПолеРегистратор".
Вкладка "Настройки запросов" Здесь отображается табличная часть всех запросов, которые были добавлены в обработку Переключение между настройками запросов осуществляется через клик по наименованию "Имя таблицы".
Форма "Конструктор запросов"
Стандартная форма конструктора запросов на языке 1С. Используется специалистами и программистами для создания своих схем компоновки данных на языке запросов 1С.
- Вкладка "Таблицы и поля" Метаданные объектов доступные для использования в запросе в качестве полей. Здесь также можно задать параметры для виртуальных таблиц: Дата начала и окончания.
- Вкладка "Группировка" Какие поля группировать, а какие суммировать или усреднять.
- Вкладка "Условия" Задаются условия отбора данных запроса.
- Вкладка "Дополнительно" Здесь можно задать имя для пакета запроса или установить сколько записей отбирать.
- Вкладка "Объединения/псевдонимы" Задаем наименование полей запроса. Также можно выполнить и объединить несколько однотипных запросов в одном пакете.
- Вкладка "Порядок" Задаются параметры сортировки данных по полям и их порядок.
- Вкладка "Пакет запросов" Создаются дополнительные запросы внутри одного пакета запросов.
1.1.3 - опубликована на ИНФОСТАРТ - 22.08.2024
14 версий выпущено на момент 06.08.25
1.3.6
- добавлена опция "Формат" (Формат данных для выгрузки). Данная опция нужна для гибкого взаимодействия с REST API и шинами данных. Можно выбрать: CSV (через запятую), CSV_WH (заголовки), JSON, ClickHouseDB, PostgreSQL и MySQL
- устранены найденные ошибки и улучшена работа кода
1.3.5
- добавлена опция "Отключить?" напротив количество дней назад, чтобы запрос исполнился и отправился за один раз "без счетчика по дням"
- сделаны подсказки для всех опций
- устранены найденные ошибки и улучшена работа кода
1.3.4
- обновление обычных форм
- поддержка выгрузки по одной записи
- фоновые задачи для портиций
- совместимость загрузки конфигурационного файла json между разными версиями
- устранены найденные ошибки и улучшена работа кода
1.3.3
- Разработан функционал добавления в базу данных отсутствуещих полей, те что есть в запросе, но нет в базе данных. Опция Создавать несуществующие поля в БД. Доработана опция "Проверить?" поиска несуществующих полей. Выводится сообщение пользователю.
1.3.2
- Добавлена возможность внесения дополнительных ключевых полей через таблицу "Дополнительные ключи".
1.3.1
- Отправка данных по REST API в шины данных
- Оптимизация кода
1.3.0
- Оптимизация кода
- Адаптация к форматам данных
1.2.9
- Импорт/экспорт конфигов
1.2.8
- Несколько запросов в одном интерфейсе
1.2.7
- Добавлены фиксированные дополнительные ключи
1.2.4
- Добавлена поддержка MySQL
1.2.1
- Добавлена поддержка PostgreSQL
1.1.9
- реализована поддержка обычных форм
- реализована механизм выгрузки данных в базу данных PostgreSQL
- улучшена работа с запросами
- разные фиксы
1.1.4
- добавлена возможность исключать Период из ключа
- добавлена возможность указывать путь до пользовательского корневого сертификата SSL для создания соединения
- добавлена функция экранизации специальных символов в строках
- разные фиксы
1.1.3 - опубликована в каталоге - 22.08.2024
- Добавлен минимальный пользовательский интерфейс со всеми возможностями консольного варианта (фоновые команды)
- Добавлена возможность сохранения пользовательских настроек и воспроизведения их в фоновом режиме
- Для много поточного режима по прежнему следует использовать добавление фоновых команд и своих схем компоновки данных через конфигуратор
Остались вопросы?
Для получения дополнительной информации или помощи в настройке под нужды вашего бизнеса — оставьте заявку

Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.157.32
- Управление торговлей, редакция 11, релизы 11.5.17.122
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.30.35
- Розница, редакция 3.0, релизы 3.0.10.178
- 1С:Комплексная автоматизация 2, релизы 2.5.20.91
- Управление производственным предприятием, редакция 1.3, релизы 1.3.122.2