DataReducer Console — R-консоль для «1С:Предприятия»

Программирование - Инструментарий

Программа для обработки, анализа и визуализации данных информационных баз «1С:Предприятия» с использованием возможностей языка программирования R.

R — это одно из наиболее популярных современных программных средств для работы с данными. Ко множеству областей применения R относятся статистика, эконометрика, финансовые исследования, машинное обучение. R обладает мощными графическими возможностями, с помощью которых можно строить сложные схемы и диаграммы. Функциональность базовой версии R может быть расширена при помощи дополнительных пакетов (на настоящий момент их насчитывается более 10 тысяч).

DataReducer Console предоставляет инструменты формирования наборов данных для их последующей передачи в вычислительную среду R. Данные для обработки импортируются из информационных баз «1С: Предприятия» и любых других источников, поддерживаемых R и его расширениями. К таким источникам относятся таблицы Excel, базы данных SQL, XML-документы, файлы множества других форматов.

Для доступа к данным информационных баз используется протокол OData. DataReducer Console позволяет конструировать HTTP-запросы к REST веб-сервису «1С:Предприятия» при помощи графических средств. Результаты выполнения каждого запроса можно просмотреть в отдельном окне.

Полученные ресурсы информационных баз сохраняются в кэше, реализованном с использованием документоориентированной СУБД OrientDB. Это значительно сокращает время повторного обращения к ресурсам и выполнения скриптов R.

Результаты выполнения кода интерпретатором R выводятся на экран в главном окне DataReducer Console или записываются в файлы стандартными средствами R.

Системные требования

  • Операционная система: Windows 7 x64 / Windows 10 x64 / DEB-based Linux x64.
  • 1C:Предприятие 8 - версия 8.3.9 или старше.

Общая схема развертывания

Процесс развертывания DataReducer Console состоит из следующих этапов:

  • Публикация интерфейса OData информационных баз на веб-сервере.
  • Запуск интерпретатора R и сервера Rserve в Docker-контейнере.
  • Установка и настройка приложения DataReducer Console.

Все этапы подробно описаны в Руководстве пользователя.

Для удобства развертывания среды R для работы с DataReducer Console подготовлен Docker-образ datareducer/rserve. Образ включает интерпретатор R, сервер Rserve, ряд других библиотек и пакетов.

Интерфейс главного окна программы

  1. Список информационных баз — можно работать с данными нескольких информационных баз одновременно.
  2. Дерево метаданных включает все сущности, доступные через интерфейс OData (справочники, регистры, виртуальные таблицы и пр.).
  3. Вкладка скрипта R — каждый скрипт открывается в отдельной вкладке.
  4. Наборы данных скрипта R — наборы данных можно открывать в отдельных окнах и загружать данные для просмотра.
  5. Область вывода сообщений о ходе выполнения, в том числе сформированные запросы REST-сервису «1С:Предприятия».
  6. Таблица данных — результат выполнения скрипта R.
  7. Область вывода графики — если R формирует изображение, DataReducer Console получает его и выводит в главном окне.

Пример использования DataReducer Console

Для демонстрации работы с программой DataReducer Console решим следующую задачу:

Требуется выполнить план-фактный анализ поступлений денежных средств компании за квартал. Компания состоит из двух юридических лиц — организаций «УноФарма» и «ПортоФарма». Бухгалтерский учёт организаций ведётся в двух разных информационных базах «1С:Бухгалтерия предприятия 3.0».

Запланированные значения поступлений необходимо получить из таблицы Excel, в которой отражены суммарные данные по всем организациям.

Шаги решения поставленной задачи в программе DataReducer Console:

  1. Добавляем настройки подключения к информационным базам «УноФарма» и «ПортоФарма». Интерфейс OData этих баз предварительно должен быть опубликован на веб-сервере и настроен в соответствии с документацией платформы «1С:Предприятие». С помощью DataReducer Console можно одновременно работать с данными любого количества информационных баз. Список подключенных баз отображается в главном окне программы.
  2. После подключения информационной базы, DataReducer Console выводит дерево её метаданных. Дерево метаданных включает все сущности, доступные через интерфейс OData (справочники, регистры, виртуальные таблицы и пр.). Для свойств сущностей выводится их тип. Для свойств с ссылочным типом выводится связанная сущность.
  3. Создаём новый скрипт R и открываем его. Каждый скрипт открывается в отдельной вкладке.
  4. Находим в дереве метаданных информационной базы «УноФарма» виртуальную таблицу оборотов регистра бухгалтерии «Хозрасчётный» и через контекстное меню добавляем её в наборы данных скрипта R. Повторяем для информационной базы «ПортоФарма». Любой набор данных можно открыть в отдельном окне и загрузить данные для просмотра.
  5. Поочерёдно открываем окна созданных наборов данных и вводим настройки запросов. Перечень доступных настроек зависит от типа объекта, которому соответствует набор данных. Начало и конец периода получения оборотов регистра бухгалтерии «Хозрасчетный» задаём в виде параметров «&periodBegin» и «&periodEnd». Значения этих параметров будут общими для всех наборов данных скрипта R.
  6. Пишем код на языке R (см. листинг ниже). Обращение к наборам данных осуществляется по их именам.
  7. Выполняем скрипт. На экран выводятся сообщения о ходе выполнения, в том числе сформированные запросы REST-сервису «1С:Предприятия». В области вывода графики выводится построенная диаграмма. Результаты выполнения скрипта (таблицу данных и диаграмму) можно сохранить в файлы, используя методы языка R. Некоторые методы языка R для выполнения типовых задач приведены в Руководстве пользователя.
Скрипт R для решения поставленной задачи

На данном примере были продемонстрированы основные инструменты программы DataReducer Console для импорта данных информационных баз «1С:Предприятия» и некоторые методы языка R для обработки этих данных. Были получены и агрегированы данные из трёх разных источников: двух информационных баз «1С: Бухгалтерия предприятия 3.0» и файла Excel. С помощью пакета ggplot2 была построена столбчатая диаграмма, отображающая отклонения фактических значений показателей от плановых.

Техническая поддержка и обновления

В течение 90 дней с момента приобретения Вами лицензионных прав на использование программы DataReducer Console Вам будет предоставляться бесплатная техническая поддержка.

После окончания срока бесплатной технической поддержки Вы можете продлить её на возмездной основе.

Техническая поддержка включает консультации по установке, настройке и эксплуатации программы DataReducer Console в пределах функциональности, описанной в Руководстве пользователя.

На время оказания услуг технической поддержки Вам будет предоставлен доступ к обновлениям программы DataReducer Console.

О логотипе

Логотип программы — это видоизмененное изображение логотипа R, автором которого является организация R Foundation. Изменение заключается в замене латинской буквы "R" на кириллическую "Р" и символизирует адаптацию программы под потребности пользователей "1С: Предприятия". Логотип R и логотип DataReducer Console распространяются на условиях лицензии CC-BY-SA 4.0.

Гарантия возврата денег

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

Все

Наименование Файл Версия Размер
Руководство пользователя DataReducer Console
.pdf 1,22Mb
02.07.17
9
.pdf 1.0 1,22Mb 9 Скачать бесплатно

Лицензии

Наименование Файл Версия Размер
DataReducer Console — версия для Windows 7/10 x64
10.07.2017
1.0 11500 руб.

Моментальная
доставка

DataReducer Console — версия для DEB-based Linux x64
10.07.2017
1.0 11500 руб.

Моментальная
доставка

Техническая поддержка

Наименование Файл Версия Размер
Продление технической поддержки на срок в 90 дней
10.07.2017
3000 руб.

См. также

Лучшие комментарии
6. Кирилл Михайлов (DataReducer) 24 12.07.17 19:39 Сейчас в теме
(5) Эффект от использования программы сильно зависит от решаемой задачи. В некоторых случаях (пожалуй, в большинстве) программисту проще обойтись привычными инструментами. Но есть области, в которых R может оказать неоценимую помощь. Сложно назвать метод обработки или визуализации данных, который не поддерживался бы R. Но есть и обратный эффект - считается, что у R высокий порог вхождения, если сравнивать его с тем же Python.

Я должен отметить, что существуют инструменты для работы с R, обладающие более развитым функционалом, чем DataReducer Console. Самый известный из них - RStudio. Способов интеграции с 1С (как и с другими платформами) у R тоже масса. Например, существует пакет OData (cran.r-project.org/web/packages/OData/), который позволяет обращаться из R к данным информационных баз по тому же протоколу, который использует DataReducer Console.

Но DataReducer Console работает с данными 1С в терминах, знакомых каждому 1С-специалисту. Программа призвана облегчить решение задачи, которая перед вами стоит, если вы разбираетесь в структуре метаданных 1С, но, возможно, ранее не сталкивались с R.

DataReducer Console поможет и в том случае, если вы не хотите работать с "сырыми" данными OData или строить HTTP-запросы вручную.

Аналогов DataReducer Console, использующих Python (впрочем, как и использующих R), я не встречал. Если кто-то знает аналоги, прошу написать об этом в комментариях. На тему сравнения R и Python есть хорошая статья, перевод которой доступен по адресу habrahabr.ru/company/piter/blog/263457/ .

Всем, кто заинтересовался программой DataReducer Console, я предлагаю описать в комментариях свой кейс, и я постараюсь разобраться - насколько R и DataReducer Console в частности подходят (или не подходят) для решения вашей задачи. Для наиболее интересных задач я, возможно, приведу решение полностью.
McSim_; shootnik; +2 Ответить 1
Остальные комментарии
1. Ildar Gabdrakhmanov (spezc) 307 10.07.17 13:23 Сейчас в теме
Интересная работа. Но мне кажется среди адинесников мало спецов по R будет. А в конторах где есть собственные R-спецы уже имеются инструменты для контакта с базой 1С. Но это только имхо. Желаю удачи найти своего покупателя)
2. Кирилл Михайлов (DataReducer) 24 10.07.17 14:02 Сейчас в теме
(1) Спасибо за пожелания! Я, в своё время, открыл для себя R, когда искал решение нестандартной задачи объединения и анализа данных из нескольких разных источников, среди которых были и базы 1С. Оказалось, что средствами 1С эту задачу было решить довольно затруднительно, в то время как в R решение было найдено сравнительно легко. Так R и оказался в копилке моих инструментов, как 1C-ника. Для тех, кто раньше не имел дела с R, я, конечно, рекомендую установить и начать использовать IDE RStudio. Если кому-то из 1С-разработчиков язык R понравится также, как и мне, то, возможно, и моя разработка окажется полезной.
3. Игорь Steelvan (Steelvan) 30 10.07.17 22:17 Сейчас в теме
Плюсанул чисто за "замене латинской буквы "R" на кириллическую "Р"".
Если бы логотип был с российским флагом, плюсанули бы еще несколько человек, уж постарался бы :)
4. Кирилл Михайлов (DataReducer) 24 10.07.17 22:26 Сейчас в теме
(3) Далее в предложении указано что символизирует это изменение, никакой политики. :) Кроме того, описание вносимых изменений требует лицензия Creative Commons.
5. Maksim Panfilov (McSim_) 12.07.17 17:54 Сейчас в теме
Взлетит?
Интересно, что на практике выйдет. Каков эффект.
На Питоне есть аналоги уже?
6. Кирилл Михайлов (DataReducer) 24 12.07.17 19:39 Сейчас в теме
(5) Эффект от использования программы сильно зависит от решаемой задачи. В некоторых случаях (пожалуй, в большинстве) программисту проще обойтись привычными инструментами. Но есть области, в которых R может оказать неоценимую помощь. Сложно назвать метод обработки или визуализации данных, который не поддерживался бы R. Но есть и обратный эффект - считается, что у R высокий порог вхождения, если сравнивать его с тем же Python.

Я должен отметить, что существуют инструменты для работы с R, обладающие более развитым функционалом, чем DataReducer Console. Самый известный из них - RStudio. Способов интеграции с 1С (как и с другими платформами) у R тоже масса. Например, существует пакет OData (cran.r-project.org/web/packages/OData/), который позволяет обращаться из R к данным информационных баз по тому же протоколу, который использует DataReducer Console.

Но DataReducer Console работает с данными 1С в терминах, знакомых каждому 1С-специалисту. Программа призвана облегчить решение задачи, которая перед вами стоит, если вы разбираетесь в структуре метаданных 1С, но, возможно, ранее не сталкивались с R.

DataReducer Console поможет и в том случае, если вы не хотите работать с "сырыми" данными OData или строить HTTP-запросы вручную.

Аналогов DataReducer Console, использующих Python (впрочем, как и использующих R), я не встречал. Если кто-то знает аналоги, прошу написать об этом в комментариях. На тему сравнения R и Python есть хорошая статья, перевод которой доступен по адресу habrahabr.ru/company/piter/blog/263457/ .

Всем, кто заинтересовался программой DataReducer Console, я предлагаю описать в комментариях свой кейс, и я постараюсь разобраться - насколько R и DataReducer Console в частности подходят (или не подходят) для решения вашей задачи. Для наиболее интересных задач я, возможно, приведу решение полностью.
McSim_; shootnik; +2 Ответить 1
7. Maksim Panfilov (McSim_) 13.07.17 00:07 Сейчас в теме
Сам я столкнулся с тем, что клиенты не могут сформулировать задачу, так как не знают, что может ML.
Всё заканчивается банальными прогнозами временных рядов, типа уровня продаж. Добавлял погоду, естественно.
А можно было бы хотя бы номенклатурные пары в покупательской корзине рассчитывать. Что ещё? Очевидно, что на данном этапе задачи придётся ставить самим себе.
DataReducer; +1 Ответить 1
8. Кирилл Михайлов (DataReducer) 24 13.07.17 15:01 Сейчас в теме
(7) К сожалению, это так. Формулировать задания программистам - это дело аналитиков и других специалистов предметной области. А они, привыкнув к доступным им методам анализа, обычно не ждут многого от программистов.

Иногда уже на этапе реализации удается отступить от технического задания и найти более удачное решение поставленной задачи. Тогда заказчик, вдохновившись промежуточным результатом, формулирует новые требования, уже с учетом продемонстрированных ему новых возможностей.

Но ситуации бывают, конечно, разные.
9. Artem Vorobjev (a.b.vorobjev) 14.07.17 15:16 Сейчас в теме
(6) Если честно, аналогов не встречал. Для целей анализа организовывал экспорт данных (в csv), с которыми потом работал традиционными средствами R и Python. Пока хватало. Причиной отсутствия аналогов, думаю является то, что люди которым требуется анализ, и которые умеют его проводить - они уже знакомы с языками, инструментальными средствами и имеют навыки и привычку работы с ними. И им требуется лишь поток данных из произвольной среды (1С в частности).

Функциональным аналогом можно было бы считать средства анализа данных предлагаемые собственно 1С, но они не получили какого либо широкого использования (насколько мне известно). Хотя они достаточно неплохи.
DataReducer; +1 Ответить 1
10. Кирилл Михайлов (DataReducer) 24 14.07.17 17:32 Сейчас в теме
(9) Спасибо за комментарий!

Штатные средства 1С не сравнятся с R, но если для решения конкретной задачи их хватает, и речь идёт об анализе данных одной информационной базы, действительно, проще и лучше ограничиться ими. Задача усложняется, если таких баз несколько и их данные не консолидированы.

Если требуется провести единоразовое исследование, то выгрузка данных в удобочитаемый формат - лучший выбор. Но что если это нужно выполнять регулярно? Конечно, экспорт данных тоже можно автоматизировать. Но на мой взгляд, DataReducer Console предоставляет более удобное решение, которое, к тому же, не требует снятия конфигурации с поддержки.

Аудитория DataReducer Console - это, пожалуй, не опытные специалисты по Data Mining, а рядовые 1С-разработчики и аналитики. Безусловно, среди них R - не самое популярное программное средство. Я сам познакомился с ним почти случайно, когда столкнулся с задачей, выходящей за рамки моей обычной практики.

Поэтому, в дальнейшем я планирую добавить к публикации готовые скрипты, которые не только бы продемонстрировали всю мощь R, но и оказались бы полезным подспорьем для аналитиков, работающих с типовыми конфигурациями 1С.

Также готовится клиент-серверная версия программы, позволяющая обращаться к результатам выполнения скриптов R по HTTP. После выхода этой версии цена на базовую версию будет снижена.
Оставьте свое сообщение