← На главную
При подготовке корпоративной отчетности в конфигурациях «1С:Консолидация» и «1С:Управление холдингом» регулярной задачей является загрузка фактических данных из учетных систем дочерних организаций. Разберем детально, какими способами можно организовать получение данных из внешней информационной базы (ВИБ), какие технические ограничения существуют у каждого метода и как избежать падения производительности системы.
Способ 1. Визуальная настройка через источники данных и операнды ячеек
Это базовый механизм конфигурации, не требующий написания программного кода. Он отлично подходит для небольших форм ввода и агрегированных отчетов с небольшим количеством показателей.
Рассмотрим по шагам процесс подготовки и связывания показателей:
- Регистрация внешней базы. Создаем элемент в справочнике внешних информационных баз, указываем параметры соединения (тип подключения — COM-соединение или Web-сервисы, путь к базе, аутентификационные данные).
- Сопоставление нормативно-справочной информации (НСИ). Настраиваем правила мэппинга справочников. Внешняя база содержит собственные планы счетов и аналитики (субконто, контрагенты, статьи движения денежных средств). Чтобы система понимала, куда относить данные, необходимо связать объекты ВИБ с локальными классификаторами. При отсутствии соответствия показатели попадут в категорию нераспределенных значений.
- Настройка формулы ячейки. В структуре вида отчета переходим к редактированию формулы конкретного показателя. В качестве источника данных для расчетов выбираем показатель внешней базы, указываем нужный регистр (например, регистр бухгалтерии) и задаем фильтры отбора по счетам и субконто.
- Копирование настроек. Чтобы не задавать параметры с нуля для каждой ячейки таблицы, используем механизм копирования настроек формул и операндов, после чего корректируем только индивидуальные параметры отбора (например, меняем счет или период).
Ограничение метода: система выполняет отдельный удаленный запрос на каждый операнд. Если в бланке отчета содержится несколько сотен ячеек, процедура расчета создаст сотни последовательных сетевых обращений к базе-донору, что вызовет серьезные просадки скорости и таймауты соединения.
Способ 2. Пакетная загрузка данных через события правил заполнения
Когда требуется заполнить объемный отчет (например, подробную оборотно-сальдовую ведомость или расшифровку затрат по множеству номенклатурных позиций), пооперандный сбор неэффективен. Оптимальным решением является использование обработчиков событий в правилах расчета и заполнения.
Проанализируем алгоритм реализации пакетного сбора:
- Подключение к источнику в точке входа. В правиле заполнения находим обработчик события (например, процедуру
ПередРасчетом). В этой точке один раз открывается сессия к внешней базе данных.
- Выполнение единого агрегированного запроса. Вместо сотен мелких обращений к регистру внешней базы передается один универсальный запрос на языке платформы 1С. Запрос сразу выбирает все необходимые обороты и остатки в разрезе нужных счетов, подразделений и аналитик за расчетный период.
- Кэширование выборки. Результат запроса с внешней стороны выгружается в локальную таблицу значений или структуру данных сеанса.
- Заполнение показателей отчета. В теле обработчика или через постобработку ячеек значения разносятся по показателям экземпляра отчета непосредственно из локальной таблицы значений. Обращений к сети больше не происходит.
Такой подход сокращает время расчета формы от десятков минут до нескольких секунд за счет исключения накладных расходов на открытие и закрытие сессий comcntr.
Архитектурные особенности и стабильность подключения
Выясним технические нюансы, с которыми сталкиваются разработчики при интеграции с внешними базами:
- Разрядность COM-соединителя. При использовании COM-коннектора часто возникает конфликт разрядностей. Если сервер «1С:Предприятия» 64-битный, а библиотека
comcntr.dll зарегистрирована как 32-битная, прямое подключение завершится системной ошибкой. В таких случаях требуется настройка системного пула приложений Component Services (DCOM) для изоляции разрядности или переход на 64-разрядную версию коннектора.
- Альтернатива через Web/HTTP-сервисы. Для удаленных и территориально распределенных филиалов COM-соединение нестабильно из-за сетевых задержек. В таких сценариях эффективнее использовать стандартный интерфейс OData или REST-сервисы, опубликованные на стороне базы-донора.
- Механизм трансляции данных. Если учетная модель филиала стандартизирована, вместо прямого заполнения экземпляров отчетов можно настроить механизм трансляции проводок. Данные из внешней базы регламентным заданием переносятся в локальный план счетов консолидации, после чего все экземпляры отчетов рассчитываются исключительно по локальным таблицам без зависимости от доступности филиальных серверов.
Таким образом, для простых форм отчетности достаточно стандартного визуального интерфейса привязки операндов. Для тяжелых аналитических таблиц рекомендуется использовать единый запрос в событиях правил заполнения, что обеспечивает максимальную производительность и надежность системы.