Дружелюбная система компоновки данных (СКД)

20.10.16

Разработка - СКД

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

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

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

Со стороны исполнителя отчет можно сделать более понятным пользователю, если в стандартном заголовке СКД вместо наименований и значений параметров, например:

"СрокХраненияДней = 20, СрокХраненияПроцент = 60"

выводить значения параметров в связный текст, например:

"Остатки товаров по партионному учету, со сроками хранения менее 60 процентов или менее 20 дней".

Предлагаю составлять такой текст в вычисляемом поле и потом выводить в отчет.

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

Поле «Заголовок» добавляем в структуру выводимых данных на закладке «Настройки» выше группировок основного отчета.

Вывод параметров можно отключить: закладка «Настройки» - закладка внизу «Другие настройки». Так выглядит результат. Блок параметров лучше убрать. Шрифт заголовка - на закладке "Вычисляемые поля", формат поля.

Этот комментарий мне больше всего понравился. Лучше не скажешь.

Надеюсь, эта заметка послужит улучшению взаимопонимания между нами, исполнителями и нашими заказчиками. А мне принесет несколько плюсов в карму ))).

Вступайте в нашу телеграмм-группу Инфостарт

Отчет СКД. Справочная информация. Параметры отчета. Формирование заголовка. Система компоновки.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    246516    1353    419    

1131

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    5091    288    shapa_pro    25    

66

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    15830    ovetgana    112    

105

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    9228    krasnoshchekovpavel    5    

67

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    8423    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

27.02.2025    15563    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    13136    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    9622    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. json 3418 20.10.16 20:53 Сейчас в теме
А чем не устраивает комментарий у отчета?
По моему скромному мнению, лишние поля в схеме - не есть гут. Все равно все отчеты, которые есть - не подпишешь. Обязательно найдутся пользователи, которым ваш заголовок будет мешать. Самый лучший способ - самодокументируемое название отчета в дереве метаданных. См. Рекомендации по именованию метаданных на ИТС
boln; Nelli_A86; Sheff; kuzyara; CSiER; papche; top_1c; +7 Ответить
2. vasilev2015 2840 21.10.16 09:07 Сейчас в теме
(1) yurii_host,
Про дерево метаданных наши заказчики даже не слышали )) и конечно, название там не может быть подробным, не может включать значения параметров в удобочитаемой форме.
3. Synoecium 793 21.10.16 10:59 Сейчас в теме
А как обстоят дела с производительностью такого подхода? Замечал, что если включать такие поля (без данных из набора данных, просто с служебной информацией), то время выполнения увеличивается, возможно запрос набора данных выполняется 2 раза.
4. papche 649 21.10.16 13:07 Сейчас в теме
Производительность не пострадает, а вот эстетика - да ))
Я бы формировал заголовок программно (ПриКомпоновкеРезультата).
5. vasilev2015 2840 21.10.16 13:30 Сейчас в теме
(4) papche,
Тоже хороший вариант. Но чуть сложнее.
6. Evil Beaver 8394 21.10.16 16:06 Сейчас в теме
(4) papche, если сбросить СтандартнуюОбработку, то фоновое выполнение отчета придется реализовывать руками.
9. papche 649 22.10.16 09:36 Сейчас в теме
(6) Evil Beaver, а и не надо сбрасывать флаг стандартной обработки без необходимости
7. Cyberhawk 137 21.10.16 16:32 Сейчас в теме
(4)
Я бы формировал заголовок программно (ПриКомпоновкеРезультата)
Увы, такое не прокатит для подключаемых к БСП отчетов, не имеющих собственной формы отчета
8. starik-2005 3213 21.10.16 17:59 Сейчас в теме
(7) Cyberhawk, кто сказал? На сколько я знаю, метод модуля отчета "ПриКомпоновкеРезультата" выполняется всегда.

С другой стороны, всегда можно вывести заголовок с помощью макета. Я обычно так и делаю: заголовок из макета, остальное из схемы.
11. papche 649 22.10.16 11:36 Сейчас в теме
(8) starik-2005, а это как, можно поподробнее?
14. starik-2005 3213 23.10.16 15:57 Сейчас в теме
(11) papche, если исходить из того, что некоторые вместо "Отчет.Сформировать()" используют процессор, то у них не работает. А вот если отчет формируется (можно и в фоне), то метод "ПриКомпоновке..." отрабатывает. В типовой через "Сформировать" все работает.

Но если вопрос касался макета для заголовка, то тут нужно показывать.

ЗЫ: вапсче, господа, если о чем-то спрашивайте, то детали иногда важны, Особенно если в сообщении два ответа.
10. papche 649 22.10.16 09:39 Сейчас в теме
(7) Cyberhawk, а Вы попробуйте, удивитесь, но работает и без собственной формы ))
Вот рабочий код, выводит заголовок с использованием параметра "Период" типа стандартный период
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

Настройки = КомпоновщикНастроек.ПолучитьНастройки();
ЗначениеПериода = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период")).Значение;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Заголовок")).Значение =
"Дата начала: "+Строка(ЗначениеПериода.ДатаНачала) + ". Дата окончания: "+Строка(ЗначениеПериода.ДатаОкончания);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных,);
КонецПроцедуры

12. SITR-utyos 1437 22.10.16 18:13 Сейчас в теме
(0)
Пара вопросов:
1. А что будет если параметр является необязательным и он не установлен?
2. Необходимо добавить вычисляемое поле в группировку? Думаю, будет не лишним указать, что в этой группировке надо отключить автополе, и выбрать только вычисляемое поле. Подобным образом надо сделать в разделе сортировка
18. vasilev2015 2840 24.10.16 15:36 Сейчас в теме
(12) SITR-utyos,
1. В вычисляемое поле можно добавлять любые условия, проверки заполнения.
2. Да. Спасибо за дополнение.
13. echo77 1937 23.10.16 07:20 Сейчас в теме
Добавьте еще скриншот как будет выглядеть отчет с этим заголовком
17. vasilev2015 2840 24.10.16 09:00 Сейчас в теме
15. zqzq 25 24.10.16 08:33 Сейчас в теме
Использовал данный подход. Имеет смысл, когда нужно программно формировать заголовок с учетом параметров и т.д.. Кстати, можно в настройках СКД шапку и рамку заголовка убрать, а также шрифт настроить.
vasilev2015; +1 Ответить
16. vasilev2015 2840 24.10.16 08:59 Сейчас в теме
(15) zqzq,
я рад, что кому-то пригодилось.
19. echo77 1937 24.10.16 17:47 Сейчас в теме
(0) Так же советую, рассказать про то, что группировку можно оформить макет оформления - Без оформления, а в самой схеме прописать, что данное поле оформляется минимальной шириной = х, максимальной шириной = х, чтобы не было переносов, так же можно поиграть со шрифтами
Прикрепленные файлы:
21. vasilev2015 2840 25.10.16 09:20 Сейчас в теме
20. Alien_job 193 25.10.16 07:44 Сейчас в теме
Как бы проблема поиска нужного отчета не решилась - все равно надо все отчеты перебирать пока подходящий не найдется
22. vasilev2015 2840 25.10.16 09:23 Сейчас в теме
(20) Alien_job, Такой заголовок сделает отчет понятнее пользователю. Количество вопросов уменьшится.
23. starik-2005 3213 25.10.16 11:40 Сейчас в теме
Вообще, в заголовке отчетов как минимум нужно указать название отчета, период, дату и время формирования, имя пользователя, который формировал отчет, отборы и параметры, которые использовались при его формировании. :Все это помогает решать массу вопросов даже по скриншоту.
Лучше период указывать отдельными полями, чтобы можно было его скопировать, например, в другой отчет (открыли отчет из письма, например, в Excel или ООо). Также и с некоторыми другими полями отбора - контрагент, склад, подразделение. Если каждый раз придется выдирать дату, контрагента или иной полезный параметр данных из центра строки, то это увеличит количество кликов, а количество кликов надо сокращать.
vasilev2015; +1 Ответить
24. Agapov_Stas 1 26.10.16 14:00 Сейчас в теме
(23) starik-2005, Это все можно запихнуть в стандартный "Заголовок отчета" - который находится на последней закладке в отчете
делается это все в процедуре "При компановке результата" - кода одна строка.
зачем изобретать велосипед ?
25. vasilev2015 2840 26.10.16 14:29 Сейчас в теме
(24) Agapov_Stas,
Использовать вычисляемое поле проще, чем кодировать процедуру "При компоновке результата".
Кроме этого, можно управлять размером шрифта и прочим оформлением, положением заголовка относительно отчета или его частей.
26. starik-2005 3213 27.10.16 14:13 Сейчас в теме
(24) в стандартный заголовок можно, но муторно. Если дети-программисты пилят отчет и тащат туда две даты (для начала периода и его окончания, а потом пилят КОНЕЦПЕРИОДА(ДатаКонца, День) ) - это одно, тут две даты в двух полях. А если это уже подростки, то они вполне способны вместо двух дат стандартный период юзать - и тут уже одна строка с двумя датами и до кучи временем, что совсем не гут при копировании - приходится выдирать. Ну и отборы в одну строку все падают, а хотелось бы в разные ячейки, чтобы проще выбрать и найти что-либо при анализе отчета. Это уже предполагает, что заголовок будет нарисован.

(25) по поводу "проще", то я бы лично так не сказал. Процедура в модуле создается одним кликом. Но изменить макет можно только после выполнения компоновки. Т.е. "стандартнаяОбработка = ложь; сформировать(); ...работать с макетом..." Этот момент уже не даст пользователю возможности помимо отчета делать что-то еще, ибо тут асинхронности формирования отчета не получается.
27. Vlad_2008 16 27.10.16 15:09 Сейчас в теме
Ой, не удержался ... добавлю "5 копеек" и от себя:

1) "элемент новизны"

Делал так, еще в 8.1, когда изучал компоновку. Отказался от такого способа, т.к. у него много недостатков: лишняя группировка, лишние заголовки, бестолковые пробелы и т.д.

Попробуйте сделать отчет с группировкой "Таблица", у которой 31 колонка и 1500 строк, думаю этот способ Вам быстро разонравится.

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

2) "велосипед"

Думаю да, особенно в этом примере, когда заголовок это одна строка. Ее надо "пихать" в родной заголовок программно или передавать в параметрах. А если кажется, что "Использовать вычисляемое поле проще", то это только кажется, т.к. параметры Вы же все равно устанавливаете ... гыы ... найдите два отличия:

- &Процент = 60 -> УстПар("Процент", Процент)
- &ЗаголовокПроцент = "Срок годности менее 60%" -> УстПар("ЗаголовокПроцент", "Срок ..." + Процент + "%")

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

Велосипед и потому, как указали выше, что Параметр, на то и параметр, чтобы видеть именно его, а не лирическое повествование в виде предложения Л.Н. Толстого.

3) как делаю я

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

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

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

Вот сделал небольшой примерчик с отчетом в виде таблицы. Таблица простая, одна группировка в строках и одна в колонках. В запросе всего два поля: Дата и Сумма.

На картинках вариант со стандартным оформлением от самой компоновки, и вариант с переделанными макетами полей и с добавлением оформления.

Видно, что из двух строк в шапке отчета, одну я занял под "свой" заголовок и могу с ним делать все что угодно, ни строчки кода, вот так!





smilemanrus; CratosX; PowerBoy; +3 Ответить
28. vasilev2015 2840 28.10.16 11:46 Сейчас в теме
(27) Vlad_2008,
Макеты - это стандартно, красиво.
Это лучший выбор, когда есть время.
29. starik-2005 3213 28.10.16 13:06 Сейчас в теме
(28) если нет времени на макет, но есть время на инфорстарт, то кто-то что-то делает не так.
30. МимохожийОднако 142 03.05.18 06:37 Сейчас в теме
Комментарии впечатлили больше, чем статья, сработавшая катализатором.
Для отправки сообщения требуется регистрация/авторизация