Формирование СКД отчетов в другой базе с возвратом результата через COM-соединение


Получение данных отчета из другой базы.

При наличии нескольких баз РБД существует проблема получения данных в подчиненной базе из отчетов СКД, т.к. далеко не все данные присутствуют в текущей базе. Например: есть центральная база и периферийная, в центральной работает регламент по расчету себестоиомости, вводятся доп. расходы и прочее, а в периферийной делаются только продажи, однако менеджерам нужно видеть актуальную себестоимость, мотивацию, рассчитанную на основании этих данных. Или руководитель хочет видеть продажи других магазинов, а документов в этой базе нет! (причем хотят видеть в динамике!). Какой выход из этой ситуации? Пускать их в основную базу будет неправильно, поэтому решено было сделать универсальный механизм для СКД отчетов.

Как он работает:

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

Расшифровка также работает в этом механизме, однако если какого-то ссылочного объекта не будет в нашей базе, при попытке открытия будет выдано сообщение «Объект не найден», но само представление этих объектов в отчете будет видно.

В файле присутствует отчет с разработанным механизмом, который выводит справочник валюты (отчет может быть любой сложности). Все функции для удобства находятся в модуле менеджера, но лучше их разместить в общих модулях конфигурации, тогда изменение отчета займет всего 3 строки кода. Также необходимо отметить, что схему компоновки у отчета не придется переделывать, здесь не используется внешний набор данных, только сериализация.

Параметры подключения находятся в функции «ПодключитьсяКБазе()», их нужно указать для центральной базы.

6 Comments

  1. 777Ferz777

    При запуске выдает «не установлена схема компоновки данных» что не так делаю? Обе конфы БП 3.0

    Reply
  2. winapi

    Возможно отчет построен не через СКД? Посмотрите в свойствах отчета должна быть установлена «Основная схема компоновки данных».

    Reply
  3. 777Ferz777

    (2) я ваш отчет использую не изменяя, отладчиком если идти, то ругается на Новый COMОбъект(«V83.COMConnector»)

    Reply
  4. pavel_pss

    Зачет, классное решение, хоть и есть недочеты 1с в таком решении

    Reply
  5. winapi

    (3)

    COMОбъект(«V83.COMConnector»)

    Значит dll не зарегистрирована — вот статья https://infostart.ru/public/97085/

    Reply
  6. wetsock

    (1) У пользователя 1с должна быть отключена галочка Защита от опасных действий.

    Данный параметр не позволяет пользователю инициализировать comобъекты.

    Подробнее можно прочесть здесь

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *