Расшифровка СКД. Управляемые формы

1с и web разработка

Отчеты СКД классные. Они значительно упрощают жизнь и позволяют пользователям меньше зависеть от программистов. Но иногда все же случаются проблемы при разработке таких отчетов. Сегодня обсудим как выводить отчет в произвольной форме или АРМ’е, а так же проблемы с которыми мы при этом встретимся

Платформа 1С предоставляет возможность расшифровки из коробки, но только в том случае, если мы используем объект «Отчет» и его форму. Если мы выводим отчет на форме обработки — нам придется добавить немного кода.

Для начала создадим обработку, форму обработки и создадим реквизиты формы:

  1. Результат (ТабличныйДокумент)
  2. АдресРасшифровки (Строка(0))
  3. АдресХранилищаСКД (Строка(0))

На форме сделаем два элемента:

  1. Поле табличного документа «Результат» (ПутьКДанным — «Результат»)
  2. Кнопка «Обновить»

Пойдем от очень простого к простому.

Код кнопки «Обновить» будет таким:

И добавим процедуру:

Это минимум кода, который нам необходим, чтобы вывести отчет.

Тут-то и появляется вопрос «Куда делась расшифровка?».

Для того, чтобы появилась расшифровка нам надо изменить нашу процедуру ОбновитьОтчетНаСервере:

Теперь мы добавили данные расшифровки в наш отчет.

Но и это еще не все. Если мы сформируем отчет у нас будет расшифровка. но вместо нее мы будем видеть цифры, как на скриншоте

Цифры вместо расшифровки

Цифры вместо расшифровки

 

Эту проблему я встречал достаточно часто на различных форумах. Но и это не проблема.

Достаточно создать событие «ОбработкаРасшифровки» для поля табличного документа со следующим кодом:

И передать данные расшифровки с сервера на клиент. Кстати именно для этого мы сделали два реквизита «АдресРасшифровки» и «АдресХранилищаСКД».

Для этого опять изменим процедуру ОбновитьОтчетНаСервере и приведем ее вот к такому виду:

Теперь добавим процедуру для обработки вышеуказанного оповещения:

Запускаем — смотрим.

Видим, что мы уже почти все сделали. Отчет работает, выводит меню расшифровки и даже открывает ссылки справочников и документов. Осталось два вопроса:

  1. Как добавить стандартные функции (расшифровку, оформление, фильтрацию) в контекстное меню расшифровки?
  2. Как добавить нестандартные функции?

В отличии от открытия значений расшифровка и фильтрация требует повторного формирования отчета с заданными настройками.

Эти настройки нам нужно получить и вывести отчет уже с новыми настройками.

Конечный результат модуля формы

Для этого приведем процедуру ОбновитьОтчетНаСервере к такому виду:

А процедуру РезультатОбработкаРасшифровки_Продолжение к такому:

 Подставляем параметры в отчет СКД

Если выводимый отчет имеет параметры — нам надо об этом тоже позаботиться.

Впрочем ничего сложно тут нет.

Предположим, что нам нужно установить параметр «Период» для отчета.

Перед тем как скомпановать результат нужно добавить одну строку:

ОбъектОтчета.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(«Период»,ТекущаяДата());

Таким образом наша процедура примет следующий вид:

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

Добавить комментарий

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