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

16.08.20

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

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

Скачать файлы

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

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

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

Способ 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С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    101623    563    385    

608

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

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

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11477    3    2    

142

PowerTools

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

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

3600 руб.

14.01.2013    172914    1042    0    

815

Infostart PrintWizard

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

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

18000 руб.

06.10.2023    3482    3    0    

17

Управление данными и формами (УДиФ)

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

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

10000 руб.

10.11.2023    1376    3    1    

20

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

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

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

5000 руб.

07.02.2018    97568    237    97    

287

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    22372    14    15    

27

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

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

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13830    5    9    

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

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