Программное заполнение пользовательских параметров и отборов СКД

Публикация № 941556 13.11.18

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

СКД пользовательский параметр программная установка параметра отбор отбора

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

1. Пользовательские настройки СКД


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

Проблема возникает в том, что не всегда эти параметры или отборы отображаются на форме так, как нам бы хотелось.

В общем случае, для того, чтобы открыть отчет с заполненными параметрами используется следующая конструкция:

ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОткрытия.Вставить("Вариант", КомпоновщикНастроек.Настройки);
ПараметрыОткрытия.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки);
ОткрытьФорму("Отчет.муОтчет.Форма.ФормаОтчета", ПараметрыОткрытия, ЭтаФорма, Истина);

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

1.1. Установка пользовательских параметров СКД

Для установки значения параметра обычно используется такая конструкция:

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

Данный код установит значение параметра, но при заполнении отчета переданными настройками значение параметра не отобразится на форме и реквизит будет пустым.

Для того, чтобы пользователь видел значение параметра на форме нужно добавить следующую конструкцию:

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

КонецЕсли;

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

1.2. Установка пользовательских отборов СКД

1.2.1. Пример открытия отчета с фиксированным отбором

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


Отбор.Вставить("Номенклатура", ОтборПоНоменклатуре);		
ПараметрыОткрытия = Новый Структура(); 	
ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОткрытия.Вставить("Отбор", Отбор);
ОткрытьФорму("Отчет.муОтчет.Форма.ФормаОтчета", ПараметрыОткрытия, ЭтаФорма, Истина);

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

1.2.2. Пример открытия отчета с пользовательским отбором

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

//Ищем пользовательский отбор
ПользовательскийОтбор = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(
   КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);

ЭлементОтбораПользовательский =  ПользовательскийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

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

В данном случае ненужно заполнять отбор обычных настроек компоновщика (так как в таком случае элементы формы будут задублированы), нужно взять из настроек идентификатор пользовательских настроек и по нему найти их.

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

Если пользовательские отборы нужно объединить в группу отборов ("И", "Или", "Не"), тогда нужно сначала добавить группу пользовательского отбора:

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

//Убрано для того, чтобы группа не показывалась на форме и в основных настройках, а была только на вкладке "Отбор"
//ГруппаОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();

У группы отборов есть свойство "Элементы", чтобы элемент отбора был подчинен данной группе (находился в этой группе) Отбор нужно добавлять именно в эту группу.

Т.е. вместо

ЭлементОтбораПользовательский =  ПользовательскийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

Будет

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

Обновлено 13.08.2020

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


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

КонецПроцедуры


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

КонецФункции


&НаКлиенте
Процедура ОткрытьОтчет(Команда)
	
	ИмяОтчета = "ЗадолженностьКлиентов";
	
	ПараметрыОткрытия = ПолучитьПараметрыОткрытияОтчета(ИмяОтчета, ЭтотОбъект.Партнер);
	ОткрытьФорму("Отчет." + ИмяОтчета + ".ФормаОбъекта", ПараметрыОткрытия, ЭтотОбъект);
	
КонецПроцедуры

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

1.2.3. Пример открытия отчета с пользовательским отбором (форма отчета из БСП)

Указанные выше способ не дает желаемого результата в конфигурациях, где используется не типовая форма отчета, а форма из БСП (Тестирование проводилось на конфигурации 1С:Комплексная автоматизация 2 (2.4.12.64)).

Чтобы описанный подход работал для отчетов, которые используют форму из БСП нужно изменить код открытия отчета следующим образом:


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

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

КонецПроцедуры


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

КонецФункции


&НаКлиенте
Процедура ОткрытьОтчет(Команда)
	
	ИмяОтчета = "ЗадолженностьКлиентов";
		
	ПараметрыОткрытия = ПолучитьПараметрыОткрытияОтчета(ИмяОтчета, ЭтотОбъект.Партнер);
	ОткрытьФорму("Отчет." + ИмяОтчета + ".ФормаОбъекта", ПараметрыОткрытия, ЭтотОбъект);
	
КонецПроцедуры

Обратите внимание, что в данном коде заполняются обычные настройки компоновки а не пользовательские, но указывается ИдентификаторПользовательскойНастройки, при этом платформа создаст связанный элемент пользовательского отбора в КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.

Так же появился дополнительный параметр ПараметрыОткрытия.Вставить("РежимПоНастройкамКомпоновки"), для которого нужно доработать логику в метод ПриОбновленииСоставаПользовательскихНастроекНаСервере типовой формы отчета (либо поправить код, либо через расширение).

 

&НаСервере
Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка)

	//Было
	Если Не РежимВариантаОтчета() Тогда
		Возврат;
	КонецЕсли;
	
	//Нужно
	Если Не РежимВариантаОтчета() И Не Параметры.Свойство("РежимПоНастройкамКомпоновки") Тогда
		Возврат;
	КонецЕсли;
	
	СтандартнаяОбработка = Ложь;
	
	ПараметрыОбновления = Новый Структура("ИмяСобытия", "ПриОбновленииСоставаПользовательскихНастроекНаСервере");
 	ОбновитьЭлементыФормыНастроекНаСервере(ПараметрыОбновления);

КонецПроцедуры

 

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 13.11.18 10:55 Сейчас в теме
по-моему, в СП и любой типовой в общем модуле по СКД примеров гораздо больше.

хотя спасибо за то, что скопировали пару строк кода из первой попавшейся формы или модуля.
crosby; wowik; qwinter; chebser; A_Max; rpgshnik; +6 6 Ответить
2. zqzq 23 13.11.18 13:52 Сейчас в теме
(1) Вы не поверите... Нету там ничего. В своё время решал похожую задачу, отладчик замучал (но решил).

Автору плюс.
user717534; zif74; Рамзес; SwarmWitcher; user712426; Samson-lim; user1520693; Mechanik21; neo-ti; atdonya; orfos; arancar; Созинов; user811769; Светлый ум; svilsa; bulpi; CyberCerber; Unk92; +19 Ответить
7. Unk92 247 14.11.18 11:16 Сейчас в теме
(1) А вы загляните и скиньте примеры методов, которые делают тоже самое..
10. VmvLer 14.11.18 11:28 Сейчас в теме
(7) откройте общий модуль ОбщегоНазначенияКлиентСервер изучайте примеры, а если проискать по общим модулям "Отбор", то можно еще найти примеры.


А в примерах автора топика я не увидел, что есть хоть намек на иерархии, а в настойках иерархия сплошь и рядом.
13. Unk92 247 15.11.18 08:33 Сейчас в теме
(10)
я не увидел, что есть хоть намек на иерархии

Я так полагаю, что речь идет о группах отборов "И", "Или", "Не".
Если так, то я учел ваш комментарий и дописал статью.
3. oleg-x 26 13.11.18 14:28 Сейчас в теме
Как раз сегодня решил такую задачку, только там сделал не через пользовательские настройки,а просто через настройки.
Во всех примерах добавления не было одной строки:
ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();
И из-за неё потерял кучу времени, так как без этого не будут работать отборы.
user712426; atdonya; AgentNiCho; +3 Ответить
4. qwinter 653 13.11.18 14:52 Сейчас в теме
Опять ИТС и БСП перепечатывают.

(3) https://its.1c.ru/db/bsp246doc#content:415:hdoc
DFinteX; wowik; plevakin; +3 Ответить
8. Unk92 247 14.11.18 11:19 Сейчас в теме
(4)Я не претендовал на то, что это статья уникальна в своем роде. На ИТС по вашей ссылке описан один из методов БСП, если хотите, то в данной статье просто показано, как это работает внутри.

П.С. Если не интересно, то можно всегда пройти мимо =)
newsleon; zif74; atdonya; orfos; +4 Ответить
19. AgentNiCho 23.10.19 16:49 Сейчас в теме
(3)
ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();


Спасибо большое за подсказку - тоже потерял кучу времени на этом.
5. monkbest 115 14.11.18 09:10 Сейчас в теме
Это про какую конфу, вид клиента? Где этот код расположен? в форме / в модуле, сервер / клиент, обычное приложение / управляемое? Конфа с БСП / без БСП?

где можно применить эти советы?
Mos; ixijixi; +2 Ответить
6. ixijixi 1427 14.11.18 11:05 Сейчас в теме
9. Unk92 247 14.11.18 11:28 Сейчас в теме
(5) В самом начале есть пример кода, который открывает отчет СКД с параметрами.

Все чего там не хватает это

Отчет = Отчеты.муОтчет.СоздатьОбъект();
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;

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

Вернемся к вашим вопросам.
1. "Это про какую конфу". Это про любую конфу, т.к. речь идет о механизмах платформы 1с 8.3
2. "Вид клиента". Естественно, что объект вы создаете на сервере, а открываете отчет на клиенте (у данной статьи нет цели рассказывать про клиент серверную архитектуру)
3. "Где этот код расположен". В месте, где вам нужно открыть отчет =)
4. "обычное приложение / управляемое?". Управляемое приложение
5. "Конфа с БСП / без БСП". Без разницы, это не функционал БСП.

П.С. По-моему часть ваших вопросов только ради вопросов...
Belayaya; marku; +2 Ответить
12. monkbest 115 14.11.18 14:11 Сейчас в теме
(9)
П.С. По-моему часть ваших вопросов только ради вопросов...

неее, просто мне задача такая часто попадается, и поэтому очень интересно, т.к. каждый раз как в первый раз трачу кучу времени в отладчике, чтобы понять, куда программно вставить значение, чтобы все красиво было. С nой попытки я нахожу куда сунуть настройки, чтобы работало, а с nХ2 - чтобы и отображалось корректно. И везде все решается по разному.

Например сейчас я ковыряюсь в старушке УПП, в которой кучка отчетов на СКД. И надо открывать эти отчеты с уже установленными настройками. Это обычные формы и там пользовательские настройки храняться и отображаются совсем другими механизмами, там для каждого варианта есть элемент справочника, где в хранилище значений лежат настройки и не только СКДшные. Там пользовательские настройки реализованы отдельно от того, что есть в платформе.

Ранее еб***ся с УТ 11.4. Там вроде СКД и УФ, но не совсем, т.к. есть БСП и общая формаОтчета с кучей кода в своем модуле и мне было очень грустно его читать, чтобы открыть отчет в котором на форме все красиво.

Из Вашего ответа я понял, что в УТ 11 я смогу протестить этот код и если все получиться "намотать на ус"
AgentNiCho; +1 Ответить
15. Unk92 247 15.11.18 09:09 Сейчас в теме
(12) Посмотрел код типовой УТ 11, должно все сработать, если делать по аналогии с тем. что написано в статье. Т.е. передавать пользовательские настройки через параметры открытия формы.
П.С. Сам в УТ 11 не пробовал =)
25. Unk92 247 14.08.20 10:29 Сейчас в теме
(12) Все-таки есть проблема с работоспособностью подхода в отчетах, где используется форма отчета из БСП. В конце статьи добавил пример кода, который решает данную проблему.
20. strelec13 19 31.05.20 16:09 Сейчас в теме
(9)
3. "Где этот код расположен". В месте, где вам нужно открыть отчет =)


Есть два места. При создании на сервере и при открытии формы.
Ответили ради отписки.
21. Unk92 247 01.06.20 17:01 Сейчас в теме
(20) Здравствуйте, в статье рассматривается вариант заполнения параметров отчета перед его открытием из вне, например, вы хотите расшифровать показатель отчета, другим отчетом.

ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОткрытия.Вставить("Вариант", КомпоновщикНастроек.Настройки);
ПараметрыОткрытия.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки);
ОткрытьФорму("Отчет.муОтчет.Форма.ФормаОтчета", ПараметрыОткрытия, ЭтаФорма, Истина);


"Есть два места. При создании на сервере и при открытии формы." два этих места не подходят для решения данной задачи. Если вы хотите модифицировать пользовательские настройки на форме отчета, то это нужно делать в событии "ПередЗагрузкойПользовательскихНастроекНаСервере".
user633364_seleznev.ua; dim369; +2 Ответить
11. bulpi 209 14.11.18 13:55 Сейчас в теме
Ковырять типовые конфы, чтобы это найти- лучше сразу в дурдом. Автор молодец, вот только для меня поздно. Уже сам с большими мучениями это освоил.
unknown181538; Gang031; 1giga; shard; Unk92; +5 Ответить
14. VmvLer 15.11.18 08:50 Сейчас в теме
(11) Я, думаю у многих была такая ситуация, когда вы что-то велосипедили день-два, а потом произносили "твою ...", когда обнаружили требуемый функционал в модуле формы, объекта, менеджера.

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

Глупо игнорировать сей факт, игнорировать навыки поиска, лепить свои горбатые блокнотики и пытаться выдать тривиальные бояны за нечто исключительное.

Если вы не согласны со мной сейчас, то вам еще необходимо время и опыт на понимание того, что я прав.
16. Fruit83 28 21.11.18 12:50 Сейчас в теме
(14)
в которых миллионы строк кода, который очень часто лаконичен


Новичек хочет разобраться в теме и вы предлагаете ему миллионы строк лаконичного кода. Может лучше начать с простых примеров? Не?
1giga; Злобный Фей; Klainor; +3 Ответить
17. insurgut 206 22.03.19 06:48 Сейчас в теме
Куча материалов о программной работе с СКД и ни одного нормального материала, для решения тех или иных задач без программирования, только при помощи использования самой СКД.

Например, если отчет - у него несколько вложенных. На форме параметр - список складов. Пользователь если устанавливает отбор - то он во вложенных схемах отработать должен. Если снимает, то отчеты выводятся без отбора по складу. Если с заполненным параметром все вроде как работает, то стоит на форме снять галочку отбора по складу, как вложенные схемы выдают "Не заполнено значение параметра", и это при том, что в самом запросе вложенной схемы используется конструкция {ГДЕ ВложенныйЗапрос.Склад В (&СпиокСкладов)}
18. Unk92 247 22.03.19 14:54 Сейчас в теме
(17) здравствуйте, использование СКД без программирования в таких задачах , на мой взгляд, только усложняет код, который тяжело сопровождать. В вашем случае нужно ставить конкретные вопросы на форуме, а не искать решения по поиску.
П.с. скорее всего ваша задача решается проще, чем то, как вы ее пытаетесь решить
22. Shurkec 13.08.20 13:18 Сейчас в теме
Куча кода в статьи и ни слова о том где это вызывать (что было неоднократно подмечено выше). Сказал "а" - так говори и "б". Тому кто хорошо в этом разбирается эта статья не нужна. Тому кто только начинает разбираться эта статья не особо поможет.
23. Unk92 247 13.08.20 14:38 Сейчас в теме
(22) В конце статьи добавил полный пример открытия отчета с пользовательским отбором по партнеру.
24. Shurkec 13.08.20 16:32 Сейчас в теме
(23) Спасибо за оперативность!
26. daa147 25.02.21 10:07 Сейчас в теме
27. sml 36 12.08.21 17:23 Сейчас в теме
плюсанул - хорошо "разжевано"
28. KazanKokos 9 25.10.21 18:44 Сейчас в теме
Нужно было скопировать один отбор во второй. (второй добавлен в отбор отчета но не включен в пользовательские настройки)
Оба отбора одинаковые. Называются по разному и принадлежат разным наборам данных.
Не хотелось возиться со связями.
Искал долго. Все найденное не работало. Либо занимало много места и снимало Стандартную обработку. В итоге из двух найденных в яндексе примеров склеил один:
Может кому пригодится

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

КонецПроцедуры 

&НаСервере
Процедура СкопироватьОтборСКД(Источник, Приемник)
	
	ОтборИсточник = Неопределено;
	НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();  
	Для Каждого Отбор Из НастройкиОтчета.Отбор.Элементы Цикл
		Если Отбор.ЛевоеЗначение = Источник Тогда
	    	ОтборИсточник =  Отбор;
	        Прервать;
	    КонецЕсли;
	КонецЦикла;
	Если ОтборИсточник <> Неопределено  Тогда
		Для Каждого Отбор Из НастройкиОтчета.Отбор.Элементы Цикл
			Если Отбор.ЛевоеЗначение = Приемник Тогда
		    	Отбор.ПравоеЗначение = ОтборИсточник.ПравоеЗначение;
				Отбор.Использование = ОтборИсточник.Использование;
		        Прервать;
		    КонецЕсли;
		КонецЦикла;
	КонецЕсли;                
	КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета); // Все дело оказалось в этой строке. без нее не работало :)
	
КонецПроцедуры
Показать
29. myvov 13.10.22 11:21 Сейчас в теме
нормальная статья. Автору плюсик.

тут проще рассказывается даже чем в обучающем курсе по данной теме.
Оставьте свое сообщение

См. также

Добавление своей строки в отчет СКД

СКД Работа с интерфейсом Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Иногда требуется добавить свою строку в начала или в конец отчета. Простейший способ сделать это.

15.03.2023    1099    FloNes    11    

2

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

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

07.02.2023    2617    quazare    7    

34

СКД: Ошибка: поле объекта недоступно для записи

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

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

31.01.2023    601    user1728007    2    

8

СКД: не очищается результат при формировании отчета

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

При программном создании отчета СКД форма отчета выводится последовательно столько раз, сколько раз нажимается кнопка "Сформировать" в пользовательском режиме.

30.01.2023    461    user1728007    1    

7

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

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

Особенность задания периода в запросе в СКД

СКД Запросы Платформа 1С v8.3 Запросы Система компоновки данных 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Не используйте предопределённые названия переменных НачалоПериода, КонецПериода в текстах запросов в СКД. Остальное можно не читать.

11.11.2022    1706    slicem    10    

5

Разрабатываем отчет на СКД, содержащий данные из расширения

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

17.10.2022    3094    al_zzz    9    

44

Хитрости СКД. Часть 4

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Работа с 2 схемами в одном отчете, когда данные одной схемы являются исходными для другой. Копирование пользовательских отборов из одной схемы в другую. Корректная модификация формы отчета БСП.

12.10.2022    4665    milkers    17    

45

В помощь начинающим 1С-программистам: СКД. Отчет с разбивкой по периодам (год, месяц) и детализацией по документам

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Бесплатно (free)

В помощь начинающим программистам. Такой информативный отчет мы создадим с помощью Системы компоновки данных. Чтобы научиться создавать и более сложные отчеты, рекомендую к прочтению книгу Е.Ю. Хрусталевой "Разработка сложных отчетов в 1С: Предприятие. Система Компоновки Данных".

18.07.2022    4948    Pproksima    1    

18

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    6325    milkers    11    

86

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

КУ! или Нарезка графика продолжается

СКД Платформа 1С v8.3 Система компоновки данных Россия Бесплатно (free)

Продолжение публикации https://infostart.ru/public/1639182/. Как справиться с неудачным отображением концов графика. Проверено в версии 8.3.13.1644.

23.04.2022    701    AnatolPopov    0    

4

Нарезка графика ломтями

СКД Система компоновки данных Россия Бесплатно (free)

Как в СКД простыми средствами улучшить отображение графика, которому слишком тесно на шкале. Проверено в версии 8.3.13.1644.

09.04.2022    887    AnatolPopov    0    

7

Убираем параметры из отбора СКД

Универсальные функции СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Заметка о некоторых технических нюансах параметров данных и отборов СКД.

17.02.2022    4910    Yashazz    29    

31

Отладка СКД

СКД Система компоновки данных Бесплатно (free)

На митапе «Практика применения СКД» выступил ведущий разработчик 1С аутсорсинговой компании Programming Store Павел Шемякин. Павел рассказал, как бороться с нежелательной «оптимизацией» запроса СКД, какие инструменты для отладки СКД можно использовать – в чем их отличия и преимущества, и показал, как работать с консолью компоновки данных – на какие элементы структуры XML-файла макета СКД обращать внимание при поиске причин неправильной работы отчета.

08.02.2022    9686    ProgrammingStore    5    

84

Программная работа и компоненты СКД

СКД Система компоновки данных Бесплатно (free)

На митапе «Практика применения СКД» выступил архитектор Digital Business Петр Базелюк. Он рассказал о том, как работать с СКД программно, и как, используя общедоступную библиотеку FoxyLink, создать свой процессор вывода результата СКД напрямую в формат JSON или в CSV.

04.02.2022    4275    pbazeliuk    4    

67

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Реализация отборов на форме с помощью СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.12.2021    12586    quazare    6    

127

Как указать время в периоде типового отчета (СтандартныйПериод, СКД) в системах класса WMS, MES, SCADA, АСУ ТП на 1С, построить отчет за период с временем?

СКД Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Покажем в публикации с открытым кодом, какие нужно сделать небольшие изменения типового стандартного механизма, чтобы можно было указать время или период с временем в любом типовом отчете (на СКД) на базе стандартных подсистем 1С.

13.12.2021    3856    SizovE    0    

8

Отбор/фильтр в отчетах/СКД/обработках 1C: БП, УТ, ERP, Кронос: WMS по файлу Excel, текстовому файлу или списку текстовых строк (номер документа, артикул, ИНН, QR-код, штрих-код, наименование)

СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Как построить отчет Анализ продаж или Остатки товаров с отбором/фильтром по списку кодов товаров/артикулов или ИНН покупателей из Эксель файла? Покажем, какой код нужно добавить в конфигурацию 1С (в том числе нетиповую), чтобы в любом отчете/отборе СКД/обработке можно было заполнять отбор по excel файлу, текстовому файлу или просто по списку строк - удобно и быстро.

23.11.2021    4131    SizovE    3    

11

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

СКД Система компоновки данных Бесплатно (free)

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

18.11.2021    3551    drmaxart    0    

42

Кейсы решения задач на СКД

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Разработчик 1С в компании Neti Александр Крынецкий выступил на Infostart Meetup, посвященном практике работы с СКД. Александр поделился с коллегами кейсами по решению сложных задач при работе с СКД.

08.11.2021    5941    echo77    7    

97

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Грабли на СКД

СКД Платформа 1С v8.3 Система компоновки данных Россия Бесплатно (free)

Наиболее частые проблемы, с которыми сталкиваются программисты 1С при разработке отчетов на СКД.

02.11.2021    13130    echo77    17    

131

СКД: 5 советов, как сделать лучше

СКД Платформа 1С v8.3 Система компоновки данных 8.3.14 Бесплатно (free)

Несколько примеров решения задач с использованием разных подходов

27.10.2021    11642    Neti    19    

190

Программное создание отчета на СКД с расшифровкой (обычные формы)

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

04.10.2021    3680    Neti    4    

18

Программное открытие отчета СКД с параметрами и отбором

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Бесплатно (free)

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

07.08.2021    25729    Eugen-S    28    

95

Объект "Схема запроса" и расширения языка запросов СКД

СКД Платформа 1С v8.3 Запросы Россия Бесплатно (free)

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

18.07.2021    3305    mysm    14    

27

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

СКД: скрываем нужные группы (блоки) по требованию пользователя

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

14.07.2021    7189    olja-ljaaa    10    

18

Изменение расшифровки макета СКД до компоновки

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    4059    Yashazz    7    

37

Чтоб в СКД по таблице значений был порядок!

СКД Система компоновки данных Бесплатно (free)

Сортировка СКД и источник - таблица значений. Заметка.

28.06.2021    2609    Yashazz    0    

9

Формирование отчета СКД с расшифровкой из обработки

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Формирование отчета СКД из обработки немного отличается от формирования из отчета.

27.04.2021    6401    John_d    14    

73

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

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

Нестандартное использование СКД

СКД Система компоновки данных Бесплатно (free)

Программист 1С в компании «БКС-технологии» Алексей Шиянов в ходе Infostart Meetup Novosibirsk продемонстрировал необычный способ использования СКД и сравнил результаты заполнения движений документа через СКД с классическим подходом к заполнению движений через запросы и циклы.

14.04.2021    5488    user1127305    13    

22

Эффективные приемы разработки

Математика и алгоритмы Рефакторинг и качество кода СКД Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    5110    SergeyN    13    

39

Полезные примеры СКД, ч.2

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    17577    Neti    9    

213

Пример платежного календаря. СКД. Работает на любой платформе, без привязки к данным. Подробное описание действий

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Отчет-пример, в котором на СКД рассмотрены принципы построения платежного календаря без привязки к данным и работающий на любой платформе. Подробно описаны этапы решения задачи. Тестирование проводилось на платформе 8.3.16.1814.

02.04.2021    2388    parshachello    2    

7

Полезные примеры СКД, ч.1

СКД Система компоновки данных Бесплатно (free)

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    22190    Neti    21    

363

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

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

Пользовательское поле СКД одной процедурой

СКД Платформа 1С v8.3 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    3081    Yashazz    0    

23

Роль "Остатки" поля набора данных СКД в отчете и в расшифровке

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

24.05.2020    12574    kasper076    19    

26