Заполнение отбора СКД программно и запуск отчета на СКД программно

05.06.14

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

Нужно было из справочника "Номенклатура" запустить отчет на СКД с отбором по элементу справочника. В интернете много решений, часть не работает (нужно бродить по веткам форума и читать как в итоге все заработало), часть слишком заумные (для спец. задач). Нужно было быстрое решение... Сделал сам. Если есть что то проще - пишите.

Итак, есть в конфигурации отчет на СКД (у меня это ОтчетПоЦенамИНаценкам)

В нужном месте добавляем кнопку вызова отчета, где пишем:


 

тОтчет = Отчеты.ОтчетПоЦенамИНаценкам.Создать();

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

ПолеНоменклатура = тОтчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Номенклатура"); //поле отбора присутствует в СКД
ПолеНоменклатураСкидка = тОтчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("НоменклатураСкидка"); //поле отбора присутствует в СКД

НовыйОтбор = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйОтбор.ЛевоеЗначение = ПолеНоменклатура.Поле;
НовыйОтбор.ПравоеЗначение = ЭлементыФормы.Список.ТекущаяСтрока;
НовыйОтбор.Использование = Истина;

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

тОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);
тФорма = тОтчет.ПолучитьФорму("ФормаОтчета");
тОтчет.СкомпоноватьРезультат(тФорма.ЭлементыФормы.Результат); //таб док на форме
тФорма.Открыть();

 

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

Заполнение отбора СКД программно и запуск отчета на СКД программно

См. также

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

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

16500 руб.

02.09.2020    249790    1387    421    

1141

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

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

29.01.2026    5654    301    shapa_pro    25    

67

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

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

29.10.2025    16973    ovetgana    112    

107

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

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

01.07.2025    9821    krasnoshchekovpavel    5    

67

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

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

10.04.2025    9106    Neti    0    

41

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

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

27.02.2025    15904    ovetgana    50    

93

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

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

24.12.2024    13524    Akcium    17    

46

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

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

20.08.2024    10078    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1402 05.06.14 21:50 Сейчас в теме
2. Константин С. 679 06.06.14 11:32 Сейчас в теме
(1) отчасти прав, но примеры никак не относятся к СКД.
native-api; smilemanrus; +2 Ответить
3. Поручик 4607 06.06.14 21:47 Сейчас в теме
(0) Ваш код в управляемом приложении работать не будет. Кто-нибудь наткнётся, сделает по образцу, убедится в очередной раз "В интернете много решений, часть не работает" и всё заверте....
lic_avenger; SagittariusA; SadrA; top_1c; user811769; dj_serega; VachKirp; JohnyDeath; orfos; +9 Ответить
18. Светлый ум 503 30.09.19 05:50 Сейчас в теме
(3) Поддерживаю - не отработает данный блок при разделение на "клиент" и "сервер"
4. Yashazz 4902 08.06.14 16:22 Сейчас в теме
Ну или Хрусталёву почитайте, или просто код типовой конфы посмотрите.
5. andogskiy 11.06.14 15:43 Сейчас в теме
(4) Yashazz, не подскажете, где в типовых конфигурациях можно посмотреть? Интересует механизм для управляемого приложения.
6. alem 57 25.06.14 17:14 Сейчас в теме
Для управляемого приложения нужно видимо по предыдущим коментам ходить - это только для обычного, сам изучаю упр приложение.
К сожалению не осталось ссылки, но где то в предыдущей мой статье в коментах писали про встроенные механизмы ( как в 10.3 жмёшь свойства на форме и там где то настраиваешь - попробую поискаить статью снова
7. Tpakmop 11 29.07.14 06:41 Сейчас в теме
На клиенте сделал так:
	ФормаОтчета = ПолучитьФорму("Отчет.ПеремещенияНоменклатуры.Форма");
	КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек;
	Настройки = КомпоновщикНастроек.Настройки.Отбор;
	
	Для каждого ТекОтбор Из Настройки.Элементы Цикл
		
		Если Строка(ТекОтбор.ЛевоеЗначение) = "Номенклатура" Тогда
			Элемент = ФормаОтчета.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ТекОтбор.ИдентификаторПользовательскойНастройки);
			Если Элемент <> Неопределено Тогда
				Элемент.Использование = ЗначениеЗаполнено(спНом);
				Элемент.ВидСравнения = ?(ТипЗнч(спНом) = Тип("СписокЗначений"), ВидСравненияКомпоновкиДанных.ВСписке, ВидСравненияКомпоновкиДанных.Равно);
				Элемент.ПравоеЗначение = спНом;
			КонецЕсли;
		КонецЕсли;
		
		Если Строка(ТекОтбор.ЛевоеЗначение) = "Склад" Тогда
			Элемент = ФормаОтчета.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ТекОтбор.ИдентификаторПользовательскойНастройки);
			Если Элемент <> Неопределено Тогда
				Элемент.Использование = ЗначениеЗаполнено(спСклад);
				Элемент.ВидСравнения = ?(ТипЗнч(спСклад) = Тип("СписокЗначений"), ВидСравненияКомпоновкиДанных.ВСписке, ВидСравненияКомпоновкиДанных.Равно);
				Элемент.ПравоеЗначение = спСклад;
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла; 
Показать
adhocprog; Nik_Name; Светлый ум; eViLL; Shrike; mark_oilbass; limonas; +7 Ответить
8. juricher 6 22.05.16 16:19 Сейчас в теме
Работает в УТ но только в толстом клиенте. Приходится выбирать режим запуска. Некошерно как-то
9. starik-2005 3214 22.05.16 19:13 Сейчас в теме
(8) juricher, в управляемом отбор передаете в параметрах открываемой формы - и все. Читайте синтаксис-помощник - умные существа писали.
10. igor_gk 49 01.02.17 10:33 Сейчас в теме
Это называется: "Пока другие умничали и давали очень умные советы пришел мужик, взял молча молоток и вбил гвоздь".
Просто и практично.
Спасибо.
alex_zemlyansky; +1 Ответить
11. k.dm.v@mail.ru 16.02.17 13:07 Сейчас в теме
Как работает в упр. формах

&НаКлиенте
Процедура ВывестиВОтчете(Команда)
	
	Номенклатура = Объект.Ссылка;
	//структура отбора
	Отбор = Новый Структура("Номенклатура", Номенклатура);
	Отбор.Вставить("НачалоПериода", Дата(2016, 01, 01, 00, 00, 00));
	Отбор.Вставить("КонецПериода", ТекущаяДата());
	ПараметрыФормы = Новый Структура("СформироватьПриОткрытии, Отбор", Истина, Отбор);
	ФормаОтчета = ПолучитьФорму("Отчет.ВедомостьПоТоварамНаСкладах.ФормаОбъекта", ПараметрыФормы);
	//затираем пользовательские настройки
	НовыеПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
	ФормаОтчета.Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(НовыеПользовательскиеНастройки);
	ОткрытьФорму(ФормаОтчета);

КонецПроцедуры
Показать
kpp1c; fortorgpro; SagittariusA; SergeySol-82; link_l; tdml; eeeio; regstaer; FreeMaker; irrazum; DarkAn; vadimognev; VladC#; Sakh1CPRO; lenna1c; mark_oilbass; dj_serega; okami; Aero; GrafuH4uk; The Ded; victory; burni4; +23 Ответить
16. Sakh1CPRO 16.01.19 06:53 Сейчас в теме
(11) Круто сделал по вашему образцу все работает как надо
12. smirnova_a 05.09.17 18:15 Сейчас в теме
13. Shurik1C 27.11.17 18:28 Сейчас в теме
Добрый вечер!
Подскажите, а как передать параметр в отчет если в СКД в типовом отчете он идёт как "АналитикаНоменклатуры.Номенклатура", типа отбор через "."
Пробовал создавать и структуру в структуре и через точку - не помогает, или ругается или пишет что не видит поле :(
14. klod2000 17.05.18 12:10 Сейчас в теме
Автор, спасибо! Очень помогло!
15. user1022969 06.09.18 23:59 Сейчас в теме
Все конечно жутко умные, но только в простых формах вам автоматически дядя Пушкин отчет не запустит. Поэтому нормальное решение. Правда, без расшифровок почему то формирует. Приходится ещё раз нажимать "Сформировать"
17. help1s 64 22.05.19 09:00 Сейчас в теме
(15) В методе "СкомпоноватьРезультат" нужно указать вторым параметром "тФорма.ДанныеРасшифровки", тогда будет работать расшифровка.
тОтчет.СкомпоноватьРезультат(тФорма.ЭлементыФормы.Результат, тФорма.ДанныеРасшифровки);
belmaxim; +1 Ответить
20. belmaxim 52 10.01.21 18:29 Сейчас в теме
(17) Благодаря совету по расшифровкам, получилось именно то, что было нужно. Спасибо!
19. belmaxim 52 10.01.21 18:28 Сейчас в теме
Спасибо!
Простое и быстрое решение.
21. vika64 75 15.02.23 15:50 Сейчас в теме
Спасибо! очень помогло!
Для отправки сообщения требуется регистрация/авторизация