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

30.09.15

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

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

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

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

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

Т.е.

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

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

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

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

 

INFOSTART TOOLKIT

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


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

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

16500 руб.

02.09.2020    278067    1564    423    

1206

СКД Разработчик 1С:Предприятие 8 Бесплатно (free)

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

16.06.2026    5646    sapervodichka    45    

53

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

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

29.01.2026    8844    426    shapa_pro    27    

73

СКД Разработчик 1С:Предприятие 8 Бесплатно (free)

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

29.10.2025    25505    ovetgana    112    

118

СКД Разработчик 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    14975    krasnoshchekovpavel    7    

68

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

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

10.04.2025    14387    Neti    0    

43

СКД Разработчик 1С:Предприятие 8 Бесплатно (free)

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

27.02.2025    19260    ovetgana    50    

94

СКД Разработчик 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    17154    Akcium    17    

48
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vadver 42 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 243 07.08.19 12:24 Сейчас в теме
У меня вариант ТС не прокатил. Возможно из-за наличия пользовательских настроек. Помогло так:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Параметр", Параметр);
	
	КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
	
КонецПроцедуры
Показать
NurComp; muzzombie; sanches; Nikola_N; Hammerbet; dsdred; baranchikov; Nikita_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 273 07.12.19 13:59 Сейчас в теме
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
Настройки = КомпоновщикНастроек.Настройки;
ЭлементНастройки = КомпоновщикНастроек.ФиксированныеНастройки.ПараметрыДанных.Элементы.Найти("Абонент");
ЭлементНастройки.Значение = АбонентыВызовСервера.ПолучитьТекущегоАбонента().ТекущийАбонент;
ЭлементНастройки.Использование = Истина;
9. Xershi 1565 17.06.21 14:15 Сейчас в теме
Настройки = КомпоновщикНастроек.ПолучитьНастройки();

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

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