Black Friday: Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU

СКД-отборы списков на обычных и управляемых формах

Публикация № 518583

Разработка - Практика программирования

83
Иногда требуется вывести на форму отбор списка элементов с произвольными СКД-подобными отборами. В статье рассматривается, как это сделать в управляемых и обычных формах.

Образец такого отбора:

 

Реализация в управляемых формах

Рассмотрим на примере отбора списка контрагентов в управляемой форме внешней обработки.

В форму добавляем реквизит "ОтборКонтрагентов" типа "КомпоновщикНастроекКомпоновкиДанных".

Размещаем созданный реквизит на форме перетаскиванием поля КомпоновщикНастроекКомпоновкиДанных.Отбор на форму:

Для красоты дополнительно:

  1. Указываем заголовок "Контрагенты"
  2. Указываем положение заголовка "Верх"
  3. Указываем положение командной панели "Нет"

В конструкторе поле выглядит так:

Добавляем в макеты внешней обработки новый макет с типом схема компоновки данных "СКД_Контрагенты":

Источником данных будет запрос:

 

ВЫБРАТЬ
       Контрагенты.Ссылка,
       Контрагенты.Наименование
ИЗ
       Справочник.Контрагенты КАК Контрагенты

 

Отборов на форме может быть несколько, поэтому для удобства программиста все они называются Ссылка, а вот для удобства пользователя нужно назначить для ссылки представление, для этого ставим галочку и вводим название поля для пользователя "Контрагент":

Больше ничего в схеме компоновки не заполняем.

Теперь нужно привязать компоновщик настроек к схеме компоновки:

 

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

 

После этого настройки отображаются на форме в требуемом виде:

 

Чтобы получить список выбранных пользователем контрагентов, используем следующий код, который можно вставить в какую-нибудь серверную процедуру обработки команды:

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

 

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

В итоге в МассивКонтрагентов будет искомый перечень контрагентов.

 

Код используемых функций:

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

Реализация в обычных формах

Рассмотрим на примере отбора магазинов.

Добавляем в реквизиты реквизит "Компоновщик_Магазины" с типом " КомпоновщикНастроекКомпоновкиДанных".

Аналогично УФ заполняем макет "СКД_Магазины" с запросом:

 

ВЫБРАТЬ
       Т.Ссылка
ИЗ
       Справочник.Магазины КАК Т

 

Размещаем на форме табличное поле с данными "Компоновщик_Магазины.Настройки.Отбор".

В модуле объекта добавляем глобальную переменную мСКД_Магазины.

В процедуру " ПередОткрытием" добавляем код:

 

       мСКД_Магазины = ПолучитьМакет("СКД_Магазины");
       Компоновщик_Магазины.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(мСКД_Магазины));
       Компоновщик_Магазины.ЗагрузитьНастройки(мСКД_Магазины.НастройкиПоУмолчанию);

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

 

       УстановитьСтруктуруНастроекДляВыводаВТаблицуСКолонкойСсылка(ОО.ОтборКонтрагентов.Настройки); 
       МассивМагазинов = СкомпоноватьВТаблицуЗначений(мСКД_Магазины, Компоновщик_Магазины).ВыгрузитьКолонку("Ссылка")

 

В итоге в МассивМагазинов будет искомый перечень магазинов.

83

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. fomix 26 28.04.16 14:49 Сейчас в теме
Описания явно не хватает! Рассчитано на подготовленного пользователя, уже умеющего работать с управляемыми формами.
Только сегодня на сайте " " вышли видеоуроки по применению СКД для реализация универсальных отборов . Привожу ссылку на страницу http:// /news/2016-04-28-skd-free-video/. Привожу здесь не в качестве рекламы, а для изучения...
2. fixin 3881 28.04.16 14:58 Сейчас в теме
(1) ну батенька это мастер-класс, для тех, кто уже знает СКД и хочет на ее основе крутить фортеля. Не для новисов, да.
Выстрадано на своей шкуре. В свое время делал на обычных формах, на СКД пришлось повозиться.
3. fomix 26 28.04.16 16:02 Сейчас в теме
8. rozer 261 09.06.16 15:23 Сейчас в теме
(2) небольшое замечание:

Судя по описанию "ОтборКонтрагентов" это "реквизит формы"


В форму добавляем реквизит "ОтборКонтрагентов" типа "КомпоновщикНастроекКомпоновкиДанных".


А не объекта. И тогда так не сработает ...

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
....
ОО.ОтборКонтрагентов.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСКД));
НастройкиПоУмолчанию = СКД.НастройкиПоУмолчанию;
ОО.ОтборКонтрагентов.ЗагрузитьНастройки(НастройкиПоУмолчанию);
...
КонецПроцедуры



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

Показать
5. Трактор 1191 05.05.16 12:17 Сейчас в теме
Ничего исправлять ненадо. Кратко, только суть. Видео, которое тут рекламируют занимает гораздо больше времени на просмотр, чем чтение этой статьи и обрывается на самом интересном месте.
fixin, если придут тебя бить - зови, помогу :-) Тебе помогу, не им.
6. Prometeus2011 90 15.05.16 14:37 Сейчас в теме
Взял на вооружение. Есть и другие способы, как использовать 1совские классы не очевидными и малоизвестными способами. Вот, например, иногда, использую построитель запросов:

ОтборСтрок = <ТабличнаяЧастьИсточник.ОтборСтрок>; 
ПостроительЗапроса = Новый ПостроительЗапроса; 
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличнаяЧастьИсточник); 
// Добавляются необходимые отборы, такие же как в отборы в табличной части. 
Для Каждого ЭлементОтбора Из ОтборСтрок Цикл 
    Если ЭлементОтбора.Использование Тогда 
        НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(ЭлементОтбора.Имя); 
        НовыйОтбор.Использование = Истина; 
        НовыйОтбор.ВидСравнения = ЭлементОтбора.ВидСравнения; // нужный вид сравнения 
        НовыйОтбор.ЗначениеС = ЭлементОтбора.ЗначениеС; 
        НовыйОтбор.ЗначениеПо = ЭлементОтбора.ЗначениеПо; 
        НовыйОтбор.Значение = ЭлементОтбора.Значение; 
    КонецЕсли; 
КонецЦикла; 

ПостроительЗапроса.Выполнить ();

Результат = ПостроительЗапроса.Результат; // отобранные строки типа РезультатЗапроса
Показать


Источник - не помню.
AnderWonder; json; +2 Ответить
7. Prometeus2011 90 15.05.16 16:54 Сейчас в теме
Да, вот то-же самое с построителем отчета.

1. Добавляем на форму реквизит с типом "ПостроительОтчета" и назовем его так-же "ПостроительОтчета".

2. На форму кладем ЭУ типа "Табличное поле", звать - как хотите. Источником данных у элемента управления назначаем наш реквизит формы "ПостроительОтчета".

В модуль формы:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	ЭтаФорма.ПостроительОтчета.Выполнить();
	тз = ЭтаФорма.ПостроительОтчета.Результат.Выгрузить();
КонецПроцедуры

Процедура ПриОткрытии()
	ЭтаФорма.ПостроительОтчета.Текст = "ВЫБРАТЬ
	                                   |	Номенклатура.Ссылка
	                                   |ИЗ
	                                   |	Справочник.Номенклатура КАК Номенклатура";
	ЭтаФорма.ПостроительОтчета.ЗаполнитьНастройки(); 
	ЭО = ЭтаФорма.ПостроительОтчета.Отбор.Добавить("Ссылка","Номенклатура","Номенклатура");
	ЭО.Использование = Истина;
	ЭтаФорма.ПостроительОтчета.ЗаполнитьНастройки(); 

	
	
КонецПроцедуры
Показать


Такое кунг-фу в групповой обработке на обычных формах юзалось эффективно достаточно.

Понятно, что работать будет только на обычном приложении.

p.s. Процедурку УстановитьСтруктуруНастроекДляВыводаВТаблицуСКолонкойСсылка(Настройки) можно не вызывать, а структуру вывода в ТЗ запаять прямо в схему макета СКД (это я про вариант автора).
Светлый ум; rozer; +2 Ответить
9. dusha0020 896 07.07.16 09:15 Сейчас в теме
Проделывал такое не раз, но вот заняться и построить универсальные процедуры "на каждый день" для всяких типов форм не сподобился. Спасибо автору! +
10. fixin 3881 07.07.16 11:51 Сейчас в теме
(9) я недавно делал клиенту задачку с отбором по сотрудникам, сам нашел в интернете эту свою статью и заюзал. крутой отбор получился, а то бы пришлось делать убожество со списком сотрудников, например.
15. _Enot_ 22.12.18 18:12 Сейчас в теме
(10)подскажи как выгрузить теперь значения из отбора на форму (УП)?
11. catlina 25.04.18 14:52 Сейчас в теме
Подскажите, а если в отборе должно быть два справочника по контрагентам и статьям затрат. Есть ли пример, когда в запросе не один справочник, а несколько?
12. fixin 3881 02.05.18 00:59 Сейчас в теме
(11) два отбора на форму можно. Или один отбор с несколькими полями. Тоже вариант.
13. German_Tagil 7 15.06.18 07:51 Сейчас в теме
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОО = РеквизитФормыВЗначение("Объект"); //Для внешних обработок реквизиты получаем так
    СКД = ОО.ПолучитьМакет("СКД");
    URLСКД = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор());
    ЭтотОбъект.ОтборКонтрагентов.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСКД));
    НастройкиПоУмолчанию = СКД.НастройкиПоУмолчанию;
    ЭтотОбъект.ОтборКонтрагентов.ЗагрузитьНастройки(НастройкиПоУмолчанию);
    //ЗначениеВРеквизитФормы(ОО, "Объект"); //Для внешних обработок реквизиты сохраняем так
КонецПроцедуры

Показать

не работает
{ВнешняяОбработка.РаботаСДеревом82_1.Форма.Форма.Форма(87,5)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ОтбиратьПроекту.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСКД)); (Проверка: Толстый клиент (обычное приложение))
14. German_Tagil 7 15.06.18 14:17 Сейчас в теме
16. _Enot_ 22.12.18 18:12 Сейчас в теме
подскажите как выгрузить теперь значения из отбора на форму (УП)?
17. koln 23.12.18 13:31 Сейчас в теме
В своей статье Вы пишите: "Размещаем созданный реквизит на форме перетаскиванием поля "КомпоновщикНастроекКомпоновкиДанных.Отбор" на форму". Объясните, пожалуйста, какое именно поле на скрине нужно перенести на форму?
Прикрепленные файлы:
18. _baa_ 25.12.18 07:01 Сейчас в теме
(17)
Отбор из ветки "Настройки"
19. koln 25.12.18 10:55 Сейчас в теме
(18) При добавлении данного поля на форму в виде таблицы и проведения корректировок, как указано в статье (заголовок и т.п.) получается форма следующего вида (в конфигураторе и пользовательском режиме, как показано на скринах). После добавления кода получения настроек из макета СКД ничего не меняется. В чем может быть проблема?
Прикрепленные файлы:
20. fixin 3881 25.12.18 14:25 Сейчас в теме
А получается по нажатиб insert добавить новый отбор в режиме 1с:предприятия?

Надеюсь, вы для добавленного отбора прописали скд, как в примере?
21. koln 26.12.18 15:28 Сейчас в теме
(20) Макет добавлен, код есть до того момента, чтоб вывести список настроек, как у Вас, но сам список не выводит. По кнопке Insert строку отбора добавляет и значение дает выбирать из справочника "Контрагенты".
22. fixin 3881 26.12.18 23:17 Сейчас в теме
(21) оформите в виде внешней обработки и прикрепите здесь, я посмотрю.
23. koln 27.12.18 10:19 Сейчас в теме
(22) Высылаю обработку
Прикрепленные файлы:
ОтборНаФорме.epf
24. fixin 3881 28.12.18 21:40 Сейчас в теме
(23) Вот, поправил.
В СКД_Контрагенты зайдите на закладку Настройки, затем Отбор и добавьте те условия, которые хотите видеть.
Прикрепленные файлы:
ОтборНаФорме.epf
25. koln 28.12.18 22:25 Сейчас в теме
(24) Да, так получилось. Просто в статье не сказано, что предварительно нужно в макете отборы настроить. Спасибо!
Светлый ум; +1 Ответить
26. fixin 3881 28.12.18 23:41 Сейчас в теме
(25) да, этот момент упущен в статье.
27. acanta 75 02.06.19 12:47 Сейчас в теме
Спасибо большое. А в тонком или веб клиенте работает?
28. fixin 3881 03.06.19 06:45 Сейчас в теме
(27) разумеется работает, механизмы то штатные.
29. Светлый ум 235 04.06.19 09:14 Сейчас в теме
Похожая реализация "Программная подстановка" СКД подбора (например из общей формы - ПодборСКД)

Алгоритм создания СКД кодом и вывода его в таблицу значений:

//1. создаем схему компоновки данных 
СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;

//1.1 определяем источник данных для схемы 
//для наших целей - текущая ИБ 
Источник = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
Источник.Имя = "ЛокальнаяБаза";
Источник.СтрокаСоединения = "";
Источник.ТипИсточникаДанных = "Local";

//1.2 определяем набор данных 
НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных";
НаборДанных.ИсточникДанных = "ЛокальнаяБаза";
НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
НаборДанных.Запрос = "ВЫБРАТЬ
|    РегистрОстатки.Счет,
|РегистрОстатки.Субконто1 КАК Номенклатура,
|РегистрОстатки.Субконто2 КАК Склады,
|РегистрОстатки.СуммаОстаток КАК Сумма,
|РегистрОстатки.ВалютнаяСуммаОстаток КАК ВалютнаяСумма,
|РегистрОстатки.КоличествоОстаток КАК Количество,
|РегистрОстатки.СуммаНУОстаток КАК СуммаНУ,
|РегистрОстатки.СуммаПРОстаток КАК СуммаПР,
|РегистрОстатки.СуммаВРОстаток КАК СуммаВР,
|РегистрОстатки.Организация,
|РегистрОстатки.Валюта,
|РегистрОстатки.Подразделение,
|РегистрОстатки.НаправлениеДеятельности
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Остатки КАК РегистрОстатки";    

//1.2.1 добавляем поля 

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

//2.1 определяем структуру 
//2.1.1 добавляем группировку "Детальные записи" 
ГруппировкаДетальныеЗаписи = НастройкиКомпоновкиДанных.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));

АвтоПоле = ГруппировкаДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоПоле.Использование = Истина;

//2.2 определим выбранные поля 

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

//2.3 определим отборы 

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


//3. готовим макет 
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

//4. исполняем макет 
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);
ПроцессорКомпоновки.Сбросить();

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

Показать
Оставьте свое сообщение

См. также

СКД. Лайфхак №2. Собираем отчет еще удобнее 63

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

В этой публикации я хочу вам описать еще один интересный и относительно новый подход к одному из довольно тривиальных методов работы с СКД для построения отчетов.

20.11.2019    4173    aximo    15       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Альтернативный способ задания расшифровки СКД-отчета 17

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

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

11.11.2019    2034    Serge R    9       

Некоторые редко используемые возможности СКД 74

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

11.11.2019    5133    kser87    39       

Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо

Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.

9000 рублей

Лайфхак работы с СКД. Собираем отчет. 69

Статья Программист Бизнес-аналитик Пользователь Стажер Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

25.10.2019    7167    aximo    23       

Изменение макета в карточке номенклатуры(УТ 11, КА 2) 3

Статья Программист Нет файла v8::УФ ERP2 УТ11 КА2 Бесплатно (free) Практика программирования Работа с интерфейсом

Краткая памятка по выведению добавленного реквизита в справочнике Номенклатура в стандартную карточку номенклатуры в УТ 11, КА 2, ERP 2.

24.10.2019    1363    darkultro37    0       

Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU с 27.11 по 04.12 Промо

Оформляете заказ на 1С лицензии или конфигурации. Получаете 35% от стоимости на счет в профиле INFOSTART.RU. Выбираете сервисы и продукты на сумму кэшбэка.

Немного про СКД. Характеристики и проверка пустого отчета 76

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    4366    YPermitin    7       

Полезняшки по СКД и построителям. Просто код 47

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Универсальные функции

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    4624    Yashazz    45       

Вакансия Автор новостных обзоров на тему 1С и бухучета, По совместительству Промо

Редакция Infostart.ru будет рада сотрудничеству с 1С-специалистом, умеющим и любящим излагать свои мысли в письменной форме. Если вы работали в IT-изданиях или имеете опыт ведения технологического блога/канала/группы, если сможете сделать обзор обработок из каталога infostart.ru/public/all/, то у вас большое преимущество.

Две схемы СКД в одном отчете с пользовательскими параметрами 18

Статья Программист Нет файла v8::СКД Россия Бесплатно (free) Практика программирования

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

10.10.2019    2889    evgeni-red    6       

Три способа создания одного отчета на СКД 82

Статья Программист Нет файла v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free) Практика программирования

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

08.10.2019    5940    ids79    23       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

СКД. Отчеты с картинками 189

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    6711    YPermitin    24       

"Вы всё сломали!". Разбираемся, кто прав, кто виноват 9

Статья Программист Нет файла v8::УФ ИТ-компания Россия Бесплатно (free) Практика программирования

О том, как "всё испортил" программист, а на самом деле виноват заказчик.

20.09.2019    3496    RomanCrow13    26       

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

СКД не только для отчетов 144

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

18.09.2019    9056    YPermitin    31       

Оповещения боту из 1С за 31 минуту 121

Статья Программист Нет файла v8::УФ 1cv8.cf Бесплатно (free) Практика программирования Интеграция

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    9974    4    feva    31       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Агрегатные функции СКД, о которых мало кто знает 353

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    15385    ids79    44       

EnterpriseData – часть 3. Загрузка данных, идентификация объектов 63

Статья Программист Нет файла v8 v8::УФ 1cv8.cf ОС Бесплатно (free) Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    4990    ids79    7       

Перенос данных КА 1.1 => ERP 2 (ЕРП) (обработка переноса документов, остатков и справочной информации из "1С:Комплексная автоматизация, ред. 1.1" в "1С:ERP Управление предприятием, ред 2"). Обновлен до КА 1.1.115.х и ERP 2.4.10.х Промо

Обработка позволяет переносить из КА 1.1 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления в случае выхода новых релизов конфигураций 1С.

29700 руб.

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 261

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    17757    ids79    31       

Кодовое создание документа на 8.3, управляемые формы (на примере) 11

Статья Программист Стажер Нет файла v8::УФ 1cv8.cf Бесплатно (free) Практика программирования Разработка

В своё время мне нужен был код создания документа через обработку, пол дня потерял пока нашёл гайд по решению данной задачи. Поэтому просто решил поделиться данным решением. Подойдёт только новичкам, опытные программисты могут даже не читать =)

07.08.2019    2655    Nefilimus    15       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 141

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    15911    ids79    8       

1С:Предприятие через Интернет. 1С:Fresh Промо

Ведение бухгалтерского и налогового учет, сдача отчетности, управление бизнесом из любой точки мира. Привычные программы «1С» через Интернет без приобретения коробочных программ.

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 155

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    13482    ids79    27       

Пользовательские настройки системы компоновки данных 88

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

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

09.07.2019    8953    ids79    0       

С 2020 года сервис «Продление поддержки конфигурации 1С:УПП» подорожает вдвое Промо

Успейте продлить поддержку УПП до повышения цен! Фирма «1С» предупредила об изменении цен на сервис «Продление поддержки конфигурации "1С:Управление производственным предприятием"». С 1 января 2020 года сервис подорожает в два раза.

"Меньше копипаста!", или как Вася универсальную процедуру писал 183

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    9287    SeiOkami    49       

Работа с настройками системы компоновки данных 108

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

02.07.2019    15174    ids79    8       

Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо

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

19700 руб.

Создание отчетов с помощью СКД - основные понятия и элементы 216

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    23600    ids79    17       

Не провоцируйте СКД, или пример "как не надо" 52

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

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

10.06.2019    8252    SeiOkami    91