Метод восстановления битых ссылок в настройках СКД при консольно-конфигураторной разработке отчетов

16.08.20

Разработка - Инструментарий разработчика

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

Скачать исходный код

Наименование Файл Версия Размер
Восстановление ссылочных значений в настройках СКД. Пример отчета
.erf 14,39Kb
1
.erf 1.1 14,39Kb 1 Скачать

На практике удобно предоставлять пользователю отчеты с предустановленными настройками по умолчанию. Если в настройках используются параметры и отборы со ссылочным типом СправочникСсылка, ПланВидовХарактеристикСсылка, ДокументСсылка, ПеречислениеСсылка, можно использовать нижеизложенную методику восстановления ссылок по их строковым представлениям. Методика затрагивает Параметры настроек, Отборы в группировках и условиях настроек оформления схемы компоновки данных.

Возможны два способа восстановления:

Способ 1.
С использованием вспомогательных Пользовательских полей.

Способ 2.
Только с использованием Параметров с Ограничением доступности.

В обоих способах при использовании Отборов по списку значений, для надежности приходится использовать соответствующий заменяющий параметр СКД, т.к. при дальнейшей загрузке схемы в режиме конфигуратора без этого список может заменяться пустыми ссылками.
И в обоих способах для восстановления ссылок, сохраненных в Параметрах СКД с опцией Ограничение доступности, потребуется использовать вспомогательный реквизит отчета:  АдресХранилищаСКД.

Для указания конкретного Способа используем последний параметр функции УстановитьНастройкиПоУмолчаниюСервер: 1 или 2.
Способ 2 предлагается как предпочтительный, так как требует минимального количества дополнительных манипуляций.

В предложенном подходе Настройки по умолчанию применяются к варианту отчета "Основной".
 

Описание алгоритма применения методики.

Этап I.

  1. В любой Консоли СКД в режиме приложения создаем отчет.
  2. В конструкторе СКД в Параметрах создаем те параметры отчета, которые требуется заполнить ссылочными значениям по умолчанию.
  3. В случае когда используются и Отборы, сюда нужно будет добавить дополнительные параметры с тем же именем поля, которое используется в левой части настройки отбора. 
  4. (Только для Способа 1.) В Настройках на вкладке "Пользовательские поля" создаем специальные поля с наименованиями по формату "ТипПараметра_<имяпараметра>". В выражении детальных записей строкой указываем ссылочный тип параметра, например, "СправочникСсылка.Номенклатура".


Этап II.

  1. Выгружаем СКД в файл xml. (Либо формируем внешний отчет из вашей Консоли, если она это позволяет сделать)
  2. В режиме конфигуратора загружаем из файла схему в макет ОсновнаяСхемаКомпоновкиДанных.
  3. В Форме внешнего отчета, либо в модуле объекта, размещаем блоки дополнительных функций.
 
 Блок 1. Парсинг-постобработка схемы компоновки данных
 
 Блок 2. Загрузка настроек по умолчанию в Компоновщик настроек
 
 Блок 3. Применение настроек по умолчанию к варианту отчета "Основной"
 
Блок 4.  Нестандартная компоновка результата


На этом всё.

Сохраняем внешний отчет.

В пользовательском режиме проверяем правильность применения настроек.

Лайфхак: Блоки 1 и 2  можно разместить в каком-либо общем модуле конфигурации. В этом случае код модуля формы любого отчета, написанного по данной методике, будет выглядеть лаконично (только Блоки 3,4).

И напоследок.

Предлагаемый метод не претендует на универсальность.

Однако, практика показывает, что он во многом удобен как в части опыта написания отчетов на основе СКД программистом, так и в плане пользовательского опыта использования таких отчетов.

Отмечу, что при обратной выгрузке/загрузке схемы из отчета в Консоль строковые представления ссылок автоматически не восстанавливаются, требуя ручной корректировки.
Поэтому общий алгоритм использования данного механизма преимущественно односторонний: из Консоли в Отчет.

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

Во вложении для скачивания содержится шаблон-пример отчета, написанного по данной методике, который можно клонировать при написании новых отчетов.

Номер релиза, на котором тестировалась методика и отчет: 8.3.14.1779.

Успехов в разработке отчетов!

UPD:  Добавлен второй, более предпочтительный, способ восстановления битых ссылок.  Обновлено описание и отчет во вложении.

СКД отчеты настройки костыль умолчанию восстановление ссылка GUID УИД система компоновки данных битые

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125990    683    389    

735

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    8167    24    6    

43

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4555    12    2    

38

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178780    1084    0    

862

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15050    3    12    

37

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99723    239    97    

298

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28381    4    10    

16

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18467    6    8    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1800 30.04.20 20:59 Сейчас в теме
Отлично. Единственно, что мне непонятно, так это зачем создавать отчеты в консоли. Можно же сразу внешний отчет создать. И отлаживать удобнее, и с переносом настроек мороки нет. Имхо, конечно.
2. zaxarovsky 111 01.05.20 08:51 Сейчас в теме
(1) Создавать отчеты в консоли имеет ряд выгод, которые зависят от конкретной задачи.
Из преймуществ могу отметить эти:
1. Разработка "налету", когда сразу в режиме приложения можно видеть сформированный результат, выгружать его в другие инструменты - консоль запросов, например, генерировать из консоли внешний готовый отчет, быстро изменять Настройки СКД, предоставлять пользователю отчеты прямо в консоли (с отдельным пользовательским интерфейсом). И еще ряд других преймуществ.
Существет довольно много популярных Консолей СКД, и тому есть причины.
2. То, чему посвящена эта статья - Краткое описание жирным шрифтом - возможность задавать значения параметров с помощью ссылок в режиме приложения, а не НайтиПоКоду, НайтиПоНаименованию и прочего.

И кстати, это момент интересный: неужели здесь нет людей, которые используют в практике различные Консоли СКД? Отзовётесь?
axsebur; 04021976; +2 Ответить
3. ixijixi 1800 03.05.20 22:04 Сейчас в теме
(2) Вот Вы какой консолью пользуетесь? Тоже хочу попробовать, вдруг зайдет)
blindcat2006; +1 Ответить
4. zaxarovsky 111 04.05.20 22:09 Сейчас в теме
(3) Сейчас, так как на текущем месте работы установлена подсистема "Инструменты разработчика" (от Tormzit), использую консоль из этой подсистемы. Там она называется "Консоль компоновок данных (ИР)".
Ранее активно использовал "Универсальная консоль отчетов (UCR)" отсюда https://infostart.ru/public/16782/
Оставьте свое сообщение