Отбор на форму (документа, справочника, обработки) с помощью СКД

09.02.21

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

Добавляем удобный отбор на форму документа с помощью СКД

Добавим на форму реквизит с типом КомпоновщикНастроекКомпоновкиДанных

 

 

Найдем отбор и перенесем его на форму

 

 

Чтобы отбор отображался компактно на форме у группы, в которой находится отбор, поставим поведение "Всплывающая"

 

 

Добавим в процедуру ПриСозданииНаСервере следующий код:

 

 

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

Создадим на форме команду "Загрузить" и добавим код:

 

 

&НаСервере
Процедура ЗагрузитьНаСервере()
	СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
	НастройкиКомпоновки = КомпоновщикНастроекКД.ПолучитьНастройки();
	
	КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
	
	ПроцессорВыводаРезультата = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ТЗ = Новый ТаблицаЗначений;
	ПроцессорВыводаРезультата.УстановитьОбъект(ТЗ);
	ПроцессорВыводаРезультата.Вывести(ПроцессорКомпоновки);
	
	Объект.Товары.Очистить();
	
	Для каждого СтрокаТЗ Из ТЗ Цикл
		
		НовСтр = Объект.Товары.Добавить();
		ЗаполнитьЗначенияСвойств(НовСтр,СтрокаТЗ);
		
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Загрузить(Команда)
	ЗагрузитьНаСервере();
КонецПроцедуры

Далее добавляем макет с типом "Схема компоновки данных". В набор данных добавим простенький запрос

 

 

 

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

 

 

в отбор добавим отборы по умолчанию

 

 

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

 

 

 

Тестировал: 

Платформа 1С:Предприятие 8.3 (8.3.18.1289).

Управление торговлей, редакция 11 (11.4.7.128).

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

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

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

См. также

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

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

16500 руб.

02.09.2020    258475    1428    421    

1165

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

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

29.01.2026    6793    353    shapa_pro    27    

69

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

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

29.10.2025    19672    ovetgana    112    

113

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

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

01.07.2025    11352    krasnoshchekovpavel    7    

68

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

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

10.04.2025    10879    Neti    0    

41

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

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

27.02.2025    16768    ovetgana    50    

93

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

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

24.12.2024    14453    Akcium    17    

46

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

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

20.08.2024    11365    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 83 09.02.21 10:36 Сейчас в теме
Классная штука.
Похожую делал ,что бы пользователи налаживали отбор на номенклатуру для отображения товаров на сайте из 1с .
2. echo77 1938 09.02.21 10:46 Сейчас в теме
А на сколько корректным будет так же всю дорогу хранить АдресВоВременномХранилище (адрес схемы) и использовать его вместо преобразования РеквизитФормыВЗначение().ПолучитьМакет() ?
Или это дело вкуса? Как методически правильнее?
12. John_d 6105 10.02.21 23:43 Сейчас в теме
(2) Если будет выигрыш в производительности, то думаю корректно
3. vandalsvq 1710 09.02.21 10:51 Сейчас в теме
Аналогичное решение делал с минимальным вмешательством, посмотри здесь, вдруг интересно будет - https://infostart.ru/public/846804/
user795029; RustIG; +2 Ответить
4. German_Tagil 43 09.02.21 11:22 Сейчас в теме
4.Делал подобное через отчет
5. solarstrike 73 09.02.21 12:09 Сейчас в теме
Красивое решение на тему "Ножовкой можно пилить, строгать, а в некоторых случаях даже рубить". Что мешало автору просто добавить форму выбора в документ и по кнопке "Настройка списка..." задать нужные отборы? Ставлю лайк за пытливость ума, трудолюбие, не иссякаемый оптимизм.
oleg-zubkov; Дмитрий74Чел; +2 Ответить
6. ivanov660 4970 09.02.21 13:19 Сейчас в теме
Не нашел описания о практических кейсах применения данного функционала. Можете привести примеры?
JohnyDeath; Дмитрий74Чел; +2 Ответить
7. Droonimus 09.02.21 13:45 Сейчас в теме
(6)Добавить возможность хранения вариантов отбора и можно быстро выявлять, например, ошибки в таб. частях документа. Например есть заказ покупателя с 1000 строк. Визуально выявить какие - то ошибки тяжело, да и жмякать каждый раз по кнопкам с целью сделать сложный отбор - вещь крайне нудная и трудоемкая.

Чисто гипотетически хочу быстро увидеть строки по определенному виду номенклатуры с ценой, ниже определенной границы при условии, что недостаточного количества по строке для её использования. Прикрутить сюда программную инициализацию механизма для масштабирования на другие объекты и вот уже можно полноценно применять.)
8. mcgoblin 3 09.02.21 18:32 Сейчас в теме
(6)Делал подобный механизм для отбора сотрудников. Этот отбор сотрудников использовался как фильтр. Т.е. только сотрудники из этого фильтра могли использовать тот или иной функционал внешней компоненты.
Фильтры автоматически обновляемые, и регулярно выгружаемые.

Сумбурно, но надеюсь понятна идея
13. John_d 6105 10.02.21 23:55 Сейчас в теме
(6) Используется там, где нужно загрузить данные в табличную часть с условием, что пользователь сам решает какие данные ему нужно загрузить.
Это механизм используется в типовой УТ 11 обработка "Выгрузка базы товаров в ТСД"
Прикрепленные файлы:
9. script 128 09.02.21 22:10 Сейчас в теме
Здравствуйте. Настройки отборов сохраняются после выхода из программы? При входе восстанавливаются? Такая штука реализована в конфе KBS для Украины в каждой форме списка документов. Но там настройки не сохраняются. После перезапуска сеанса отбор нужно каждый раз настраивать с нуля.
11. John_d 6105 10.02.21 23:38 Сейчас в теме
(9) нет, но думаю можно сделать
18. IVKuzmin 17.10.24 14:59 Сейчас в теме
(9) Здравствуйте! Как такое можно сделать?
10. practik1c 90 10.02.21 10:50 Сейчас в теме
В далеком 2015 году такое уже делали https://infostart.ru/1c/articles/400647/
14. leoner61 1 12.02.21 14:31 Сейчас в теме
Весьма интересно, упростит создание отчетов.
15. triviumfan 101 15.02.21 19:58 Сейчас в теме
Что, опять?:) Баян же
16. antonio_i 81 26.07.23 17:54 Сейчас в теме
Коротко, и по делу.
Взял как шаблон, и вставил к себе в форму.
Удобно же.
17. silly 9 21.11.23 12:23 Сейчас в теме
Статья супер, постоянно её использую как "шпаргалку", часто нужен этот функционал!) Спасибо !!!
user1631997; John_d; +2 Ответить
Для отправки сообщения требуется регистрация/авторизация