Установка параметров в простом отчете на СКД (без программного построения отчета)

30.09.15

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

Исходные условия:
1.    Есть форма отчета на СКД с вынесенными на нее полями редактирования параметров
2.    Сам отчет на СКД не содержит программной реализации компоновки (на форму просто вынесена стандартная команда формы «Сформировать»)
Как установить параметры СКД непосредственно перед формированием отчета?

Стандартных методов не нашел. Можно, конечно, реализовать установку параметров, например, в обработчиках «ПриИзменении» реквизитов, но хотелось в модуль формы вообще ничего не писать.

Простое решение: использовать обработчик модуля объекта отчета «ПриКомпоновкеРезультата» или «ОбработкаПроверкиЗаполнения».

Первый вариант, как справедливо было подмечено в комментариях, безусловно предпочтительней 

Т.е.

1. Необходимые параметры создаем как реквизиты отчета

2. На форму добавляем элементы управления для редактирования этих параметров.

3. В модуль объекта отчета добавляем код типа:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) 
    Настройки = КомпоновщикНастроек.Настройки;
    ЭД = Настройки.ПараметрыДанных.Элементы.Найти("ИмяПараметраСКД1");
    ЭД.Значение = ЗначениеПараметра1;
    ЭД.Использование = Истина;
КонецПроцедуры

 

INFOSTART TOOLKIT

Самый продвинутый набор инструментов для управляемых форм 1С:8.3


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

Программирование Отчет СКД

См. также

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

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

16500 руб.

02.09.2020    250972    1390    421    

1145

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

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

29.01.2026    5854    310    shapa_pro    25    

68

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

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

29.10.2025    17404    ovetgana    112    

107

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

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

01.07.2025    10155    krasnoshchekovpavel    5    

68

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

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

10.04.2025    9450    Neti    0    

41

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

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

27.02.2025    16029    ovetgana    50    

93

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

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

24.12.2024    13675    Akcium    17    

46

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

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

20.08.2024    10297    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vadver 41 30.09.15 11:09 Сейчас в теме
Использование обработчика "ПриКомпоновкеРезультата" предоставит более широкие возможности :)
fromtomike; JohnyDeath; echo77; wolfsoft; sergpogo; molodoi1sneg; quebracho; +7 Ответить
2. JohnyDeath 302 07.10.15 10:59 Сейчас в теме
Кто вообще плюсует данную "статью"?? Автор, хотя бы измени текст на то, что тебе в (1) посоветовали.

Напомнило http://infostart.ru/public/20190/
3. karapuzzzz 63 07.10.15 12:31 Сейчас в теме
Месье знает толк в извращениях
4. Hans 3 21.11.17 10:34 Сейчас в теме
5. It-developer 26 07.02.18 13:49 Сейчас в теме
Уже есть Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ИмяПараметраСКД1", ЗначениеПараметра1);
chemezov; HitGroove; ArchAhper; deletel; tsarenav; volex; wolfsoft; Dmitri93; +8 Ответить
6. nekit_rdx 240 07.08.19 12:24 Сейчас в теме
У меня вариант ТС не прокатил. Возможно из-за наличия пользовательских настроек. Помогло так:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Параметр", Параметр);
	
	КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
	
КонецПроцедуры
Показать
NurComp; muzzombie; sanches; Nikola_N; Hammerbet; dsdred; baranchikov; Nikitos_NSK; Stylo; chemezov; mikl79; shiaju; IVaN764u36567; starik-2005; Junior1C_37; Hogyoku; Iwan_Frank; tetraren; assa; marganochka; myoker; Swamt; Slypower; Merkalov; user1150141; Akuji; tsarenav; user1147832; triton_tver; teyana; Darlok; skalex; userUlyana; doggernaut; happyden; maxunov95; Sveta_Point; +37 Ответить
8. userUlyana 26.03.21 12:58 Сейчас в теме
(6) спасибо! Пригодилось
11. Hammerbet 17.04.25 16:50 Сейчас в теме
7. dour-dead 272 07.12.19 13:59 Сейчас в теме
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
Настройки = КомпоновщикНастроек.Настройки;
ЭлементНастройки = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти("Абонент");
ЭлементНастройки.Значение = АбонентыВызовСервера.ПолучитьТекущегоАбонента().ТекущийАбонент;
ЭлементНастройки.Использование = Истина;
9. Xershi 1549 17.06.21 14:15 Сейчас в теме
Настройки = КомпоновщикНастроек.ПолучитьНастройки();

ВидЦены = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВидЦены"));
	
Если Не ЗначениеЗаполнено(ВидЦены.Значение) Тогда	
	
	ИдентификаторВидаЦены = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ИдентификаторВидаЦены"));

	ВидЦены.Значение = Справочники.ВидыЦен.НайтиПоРеквизиту("Идентификатор", ИдентификаторВидаЦены.Значение);
	
КонецЕсли;
	
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанных"));
Показать
10. user1273498 13 22.04.22 17:17 Сейчас в теме
Еще хочу добавить, что процедуру нужно добавить не в модуль формы, а в модуль объекта. А так все работает, спасибо
Junior1C_37; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация