Довольно часто перед специалистами по платформе 1С:Предприятие встает задача консолидации данных из различных сторонних систем. В 2012 году фирма «1С» выпустила конфигурацию «Фабрика отчетов», которая позиционировалась как универсальный инструмент для аналитиков и ИТ-специалистов. Заявлялось, что она позволяет без программирования строить сложные отчеты по базам данных с произвольной структурой. Давайте разберем подробнее, что на самом деле представляет собой эта конфигурация, как она устроена изнутри и насколько пригодна для решения реальных задач.
Проанализируем структуру данного решения. Если открыть конфигурацию в режиме конфигуратора, становится понятно, что это не некий уникальный самостоятельный программный продукт с закрытым кодом, а скорее методический шаблон или заготовка, созданная силами разработчиков 1С.
Основу конфигурации составляют два ключевых компонента:
ODBC драйверы.Рассмотрим, какие именно подсистемы БСП были задействованы для обеспечения базового функционала «Фабрики». Сюда вошли механизмы администрирования (завершение работы пользователей, контроль динамического обновления), управление доступом, простейшая общая форма отчета, а также функции отправки сформированных отчетов по электронной почте. По сути, разработчики взяли пустую базу, внедрили в нее необходимый минимум БСП для обеспечения интерфейса администрирования и добавили механизм работы с внешними источниками.
Многих интересует вопрос: можно ли с помощью этой конфигурации легко подключаться к другим базам 1С (например, файловым .1CD)? Выясним причину, почему это не так просто.
Механизм внешних источников данных ориентирован на работу с СУБД напрямую. Для того чтобы подключиться к базе, необходимо использовать строку соединения ODBC.
Разберем специфику работы с разными форматами данных:
ЕСТЬNULL), запросы будут выполняться стабильно.Прочее и формировать правильную строку соединения ODBC.COM-соединение (что не реализовано в данной конфигурации штатно), веб-сервисы или настраивать правила обмена через «Конвертацию данных».При построении сложных аналитических отчетов, данные часто нужно объединять. Посмотрим на нюансы работы механизма внешних источников. Платформа 1С осуществляет трансляцию запросов встроенного языка (подобных SQL) в синтаксис конкретной СУБД. При этом могут возникать определенные шероховатости.
Некоторые специалисты рекомендуют следующий подход для обхода возможных ошибок трансляции левых и правых соединений (LEFT OUTER JOIN) при работе со сложными СУБД:
ВЫБРАТЬ * ИЗ ВнешнийИсточникДанных.Таблица.Пример логики запроса:
ВЫБРАТЬ
ВнешняяТаблица.Поле1,
ВнешняяТаблица.Поле2
ПОМЕСТИТЬ ВтВнешниеДанные
ИЗ
ВнешнийИсточникДанных.БазаSQL.Таблица.dbo_Table КАК ВнешняяТаблица;
// Далее работаем с ВтВнешниеДанные стандартными средствами 1С
ВЫБРАТЬ
Данные.Поле1,
Данные.Поле2
ИЗ
ВтВнешниеДанные КАК Данные
Однако, стоит отметить, что этот метод не панацея. Разберем по шагам его недостатки: во-первых, при огромных объемах данных во внешних VIEW (миллионы записей) перекачивание их во временные таблицы 1С приведет к колоссальной нагрузке на сервер и нехватке памяти. Во-вторых, существуют известные ограничения платформы, когда помещение данных, содержащих ссылочные поля на объекты внешнего источника, в менеджер временных таблиц вызывает ошибку совместимости типов.
Самое главное заблуждение, связанное с «Фабрикой отчетов», касается ее целевой аудитории. В официальных релизах упоминалось, что знание системы «1С:Предприятие 8» не является обязательным. На практике это совершенно не соответствует действительности.
Проанализируем ситуацию: чтобы пользователь мог нажать кнопку «Сформировать» и получить красивый отчет, предварительно технический специалист должен выполнить колоссальный объем работ:
ВнешниеИсточникиДанных.ODBC.Отчет.Ни один менеджер или рядовой аналитик без глубоких знаний Конфигуратора, языка запросов 1С и понимания принципов работы СКД с этим не справится. Конфигурация дает лишь интерфейсную оболочку (справочник пользователей, права, форму отчета), но вся техническая «магия» по-прежнему требует квалификации 1С-программиста.
Подводя итог, можно с уверенностью сказать, что «Фабрика отчетов» в том виде, в котором она поставлялась, является скорее демонстрационным концептом, чем готовым продуктом. Учитывая, что в ней использована устаревшая версия БСП (без современных удобных подсистем вроде «Рассылки отчетов»), ее внедрение «как есть» не имеет практического смысла.
Если перед вами стоит задача реализации аналитического центра или системы консолидированной отчетности по внешним базам, лучшим решением будет:
ВнешниеИсточникиДанных для интеграции с MS SQL или Oracle.Таким образом, мы выяснили, что весь функционал «Фабрики отчетов» — это базовые возможности самой платформы 1С. Использование современных инструментов и актуальных библиотек позволит вам создать гораздо более надежное, гибкое и масштабируемое решение для работы с корпоративными данными.