На практике удобно предоставлять пользователю отчеты с предустановленными настройками по умолчанию. Если в настройках используются параметры и отборы со ссылочным типом СправочникСсылка, ПланВидовХарактеристикСсылка, ДокументСсылка, ПеречислениеСсылка, можно использовать нижеизложенную методику восстановления ссылок по их строковым представлениям. Методика затрагивает Параметры настроек, Отборы в группировках и условиях настроек оформления схемы компоновки данных.
Возможны два способа восстановления:
Способ 1.
С использованием вспомогательных Пользовательских полей.
Способ 2.
Только с использованием Параметров с Ограничением доступности.
В обоих способах при использовании Отборов по списку значений, для надежности приходится использовать соответствующий заменяющий параметр СКД, т.к. при дальнейшей загрузке схемы в режиме конфигуратора без этого список может заменяться пустыми ссылками.
И в обоих способах для восстановления ссылок, сохраненных в Параметрах СКД с опцией Ограничение доступности, потребуется использовать вспомогательный реквизит отчета: АдресХранилищаСКД.
Для указания конкретного Способа используем последний параметр функции УстановитьНастройкиПоУмолчаниюСервер: 1 или 2.
Способ 2 предлагается как предпочтительный, так как требует минимального количества дополнительных манипуляций.
В предложенном подходе Настройки по умолчанию применяются к варианту отчета "Основной".
Описание алгоритма применения методики.
Этап I.
- В любой Консоли СКД в режиме приложения создаем отчет.
- В конструкторе СКД в Параметрах создаем те параметры отчета, которые требуется заполнить ссылочными значениям по умолчанию.
- В случае когда используются и Отборы, сюда нужно будет добавить дополнительные параметры с тем же именем поля, которое используется в левой части настройки отбора.
- (Только для Способа 1.) В Настройках на вкладке "Пользовательские поля" создаем специальные поля с наименованиями по формату "ТипПараметра_<имяпараметра>". В выражении детальных записей строкой указываем ссылочный тип параметра, например, "СправочникСсылка.Номенклатура".
Этап II.
- Выгружаем СКД в файл xml. (Либо формируем внешний отчет из вашей Консоли, если она это позволяет сделать)
- В режиме конфигуратора загружаем из файла схему в макет ОсновнаяСхемаКомпоновкиДанных.
- В Форме внешнего отчета, либо в модуле объекта, размещаем блоки дополнительных функций.
На этом всё.
Сохраняем внешний отчет.
В пользовательском режиме проверяем правильность применения настроек.
Лайфхак: Блоки 1 и 2 можно разместить в каком-либо общем модуле конфигурации. В этом случае код модуля формы любого отчета, написанного по данной методике, будет выглядеть лаконично (только Блоки 3,4).
И напоследок.
Предлагаемый метод не претендует на универсальность.
Однако, практика показывает, что он во многом удобен как в части опыта написания отчетов на основе СКД программистом, так и в плане пользовательского опыта использования таких отчетов.
Отмечу, что при обратной выгрузке/загрузке схемы из отчета в Консоль строковые представления ссылок автоматически не восстанавливаются, требуя ручной корректировки.
Поэтому общий алгоритм использования данного механизма преимущественно односторонний: из Консоли в Отчет.
При разработке данной методики использовался опыт, описанный в статье Генерация внешнего отчета..., за что выражаю благодарность ее автору.
Во вложении для скачивания содержится шаблон-пример отчета, написанного по данной методике, который можно клонировать при написании новых отчетов.
Номер релиза, на котором тестировалась методика и отчет: 8.3.14.1779.
Успехов в разработке отчетов!
UPD: Добавлен второй, более предпочтительный, способ восстановления битых ссылок. Обновлено описание и отчет во вложении.