Программная работа с настройками СКД

Публикация № 1185890 27.01.20

Приемы и методы разработки - СКД

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

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

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

Пример создания отчета на СКД полностью программно

Все возможные варианты вывода картинок в отчет на СКД

Процедура ПриКомпоновкиРезультата

Сложность здесь заключается не сколько в самом алгоритме программного формирования отчета – он достаточно простой и неоднократно описан:

Схема = СхемаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
	
ПроцессорКомпоновки = новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
	
ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);

Сложность обычно возникает при программной работе с настройками отчета или динамического списка. Ну или с программным формированием самой схемы компоновки. Программное создание схемы компоновки требуется достаточно редко. В данной статье я его рассматривать не буду. Также за рамками статьи останется программная работа с расшифровкой отчета и вывод картинок. Материалы по этим темам вы найдете по приведенным выше ссылкам.

Я рассмотрю нюансы программной работы с настройками компоновки в целом и конкретно работу с отборами. Отборы - это наиболее распространенный вариант программной работы с отчетами или с динамическим списком. 

Прежде чем перейти к практике, как всегда, немного теории. Для тех, кто в теме, и хорошо все это знает, переходите сразу к следующему разделу.

 

Немного теории…

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

Компоновщик настроек не может существовать без схемы компоновки, он неразрывно связан с ней. Если посмотреть содержимое этого объекта в конфигураторе, можно увидеть следующее:

Компоновщик настроек

Как видим, существует аж три различных раздела настроек:

  • Настройки
  • Пользовательские настройки
  • Фиксированные настройки  

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

Ну что же, вполне резонный вопрос. Как минимум, сильно упростилась бы работа с этим объектом.

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

И так разберем по порядку все варианты настроек. Как Вы увидите позже, это очень важно понимать для ПРАВИЛЬНОЙ работы с ними.  

Замечу еще раз, что все что будет сказано, справедливо как для отчетов так и для динамических списков.

Настройки компоновщика настроек

 

Настройки

Название говорит о том, что это основные настройки компоновки. Это так и есть. Собственно, открывая конструктор схемы компоновки в конфигураторе или в 1С-предприятии (в режиме толстого клиента) на закладке «Настройки» мы видим и работаем именно с этим вариантом настроек. То-есть при интерактивной работе мы работаем с Настройками компоновки данных.

Подробное описание интерактивной работы с настройками компоновки читайте в статье Работа с настройками системы компоновки.

Тип Настроек компоновки данных - «НастройкиКомпоновкиДанных». Настройки содержат в себе отдельные разделы для работы с отборами, параметрами, порядком, структурой, условным оформлением: 

Настройки компоновки

Пользовательские настройки

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

Подробнее об интерактивной работе с пользовательскими настройками читайте в статье Работа с пользовательскими настройками.

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

В отличие от Настроек, Пользовательские настройки содержат в себе общий список всех элементов настроек, которые включены в пользовательские. Это могут быть как целые разделы (отбор, порядок, структура), так и отдельные элементы того или иного раздела. Это очень ВАЖНО понимать при программной работе с настройками:

Пользовательские настройки

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

ЭлементОтбораВНастройках.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор; 

Настройки и Пользовательские настройки могут накладываться друг на друга. В этом случае приоритет будут иметь Пользовательские настройки. Это легко проверить. Можно добавить на форму отчета объект «Отбор» из раздела Настроек, и добавить один из элементов отбора в пользовательские настройки. В этом случае в пользовательском режиме можно установить один и тот же элемент отбора в Настройках и в Пользовательских настройках:    

Слияние настроек

На заметку. Из описанного выше правила есть исключение. Элементы Настроек с режимом отображения «Не доступный» не замещаются элементами пользовательских настроек, а складываются с ними по логическому «И».

 

Фиксированные настройки

А это уже отдельный, не связанный с другими, вариант настроек. Предполагается, что Фиксированные настройки не доступны для интерактивного редактирования ни в конфигураторе ни в 1С-предприятии. Это не совсем так. Вы можете добавить на форму отчета или динамического списка раздел «Отбор» фиксированных настроек. Это даст возможность редактировать их в пользовательском режиме.

Тем не менее, основное предназначение Фиксированных настроек, это программное редактирование. В большинстве случаев, из Фиксированных настроек используется только раздел «Отбор». Это могут быть любые предустановленные отборы, которые должны быть не доступны для пользователей. Особенно часто элементы фиксированных настроек используются для отображения динамических списков. Они даже вынесены как отдельные реквизиты списка.

Еще одно отличие от Настроек и Пользовательских настроек заключается в том, что Фиксированные настройки применяются ко всем вариантам отчета.

Важно иметь в виду, что при наложении Фиксированных настроек и Настроек или Пользовательских настроек будет вызвано исключение:

На заметку. Среди реквизитов динамического списка присутствуют элементы настроек компоновки, такие как: отбор, группировка, порядок, условное оформление, параметры. Это элементы Фиксированных настроек. Это вполне логично, так как эти настройки не могут быть изменены в Настройках или в Пользовательских настройках.

 

Доступ к настройкам в процедуре модуля отчета «ПриКомпоновкеРезультата»

В процедуре «ПриКомпоновкеРезультата», можно получить доступ к настройкам через схему компоновки или компоновщик настроек. Получить настройки можно следующим образом:

СхемаКомпоновкиДанных.НастройкиПоУмолчанию – настройки, как они заданы при редактировании схемы компоновки, без учета изменений в пользовательском режиме.

КомпоновщикНастроек.ПолучитьНастройки() – результирующие настройки, которые получены путем совмещения Настроек, Пользовательских настроек и Фиксированных настроек.

Также через компоновщик можно получить непосредственно тот или иной вариант настроек (Пользовательские, Фиксированные…).

То-есть, для программной работы с настройками в процедуре «ПриКомпоновкиРезультата» можно работать с настройками, заданными по умолчанию, отдельно с каким-либо видом настроек либо с результирующими настройками.

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

КомпоновщикНастроек.ЗагрузитьНастройки(СкорректированныеНастройки);

 

Программная работа с отборами

Наиболее частый вариант программной работы с настройками компоновки - это работа с отборами.

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

 

Отбор может быть изменен пользователями в настройках

Оба эти варианты используются для установки отборов, которые в последствие могут быть изменены пользователями.  

Вариант 1. Отбор целиком добавлен в пользовательские настройки:

ОтборНастройки = Отчет.КомпоновщикНастроек.Настройки.Отбор;

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

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

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

 

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

В пользовательском режиме, отбор будет доступен в форме отчета (так как указан режим отображения - быстрый доступ) и на закладке «Отбор»:

Отбор в пользовательских настройках

 

Вариант 2. Отбор добавлен в настройках и включен в пользовательские настройки как отдельный элемент:

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

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

В пользовательском режиме отбор будет виден только на первой закладке настроек. На закладке «Отбор» его не будет:

Отбор в настройках

 

Отбор может быть изменен пользователями только при корректировке варианта отчета   

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

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

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

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

Отбор в настройках 2

А что же будет, если режим отображения отбора сделать недоступным?

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

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

Но отличие все-таки есть. Как уже было написано выше, отборы из Настроек с режимом отображения «Недоступный», не замещаются Пользовательскими настройками. То-есть если весь раздел «Отбор» включен в Пользовательские настройки, недоступный отбор в Настройках будет работать корректно.

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

 

Отбор не может быть изменен пользователями:

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

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

 Слияние фиксированных настроек

 

БСП нам в помощь

В современных конфигурациях можно использовать типовую процедуру из БСП:  

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

Параметр «НастройкиКомпоновки» может принимать значение следующих типов:

  • КомпоновщикНастроекКомпоновкиДанных,
  • НастройкиКомпоновкиДанных,
  • ОтборКомпоновкиДанных.

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

К сожалению нет возможности добавить добавленный отбор в быстрый доступ или сделать отбор недоступным.

 

Работа с остальными настройками

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

А вот работа с группировками (структурой) несколько отличается. Это связано с тем, что группировки в Настройках представлены в виде иерархической структуры, как мы ее видим при интерактивном редактировании. А в Пользовательских настройках, группировки выглядят в виде линейного списка. По этой причине и программная работа со структурой в этих двух случаях отличается.

Добавление группировок в Настройки:

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

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

 

Добавление группировок в Пользовательские настройки:

СтруктураНастройки = Отчет.КомпоновщикНастроек.Настройки.Структура;

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

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

Что же касается Фиксированных настроек, описание на этот счет никакого нет. Опыты показывают, что группировки добавленные в фиксированные настройки никак не влияют на результирующую структуру.

На этом все, спасибо за внимание. Успехов Вам в программной работе с СКД!

Для ознакомления с предыдущими моими статьями по СКД можно перейти по ссылкам ниже:

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. uno-c 211 27.01.20 20:39 Сейчас в теме
Не сразу нашел место, чтобы поставить плюс. Обычно это оранжевый квадратик, который сразу видно. А тут нечто серое, едва заметное, потому что еще никто не плюсовал )
onsi; Alia777; ids79; +3 Ответить
2. user623969_dusa 28.01.20 08:14 Сейчас в теме
друзей корректоров нет ладно в тексте но в заголовке
"немного теориии" немного в смысле наречия мало пишется слитно
3. json 3155 28.01.20 08:21 Сейчас в теме
А знает кто-нибудь зачем в пользовательских настройках есть методы Добавить() и Вставить() ?
Добавление то происходит через присвоение идентификатора пользовательской настройки для настройки.
Чисто интересно, зачем добавлены эти методы?
Которые, кстати, мне так и не удалось заставить работать (когда-то давно пробовал это сделать)
4. Kaval88 164 28.01.20 08:41 Сейчас в теме
А в чём новизна публикации? При необходимости можно всё найти в синтакс-помощнике.
5. json 3155 28.01.20 09:29 Сейчас в теме
(4) Все можно где-то найти.
Чем больше статей на сложные темы с разных точек зрения, тем меньше времени придется потратить, чтобы найти ответ в нужный момент.
Вроде очевидная логика, нет?
Ignatov_mu; kaaasteeen; user1456614; eufes; Gvenor; NatalkaBal; user847517; west__; spanielka; KpecT; o.nikolaev; nadi_bar; logarifm; ids79; aspirin4eg; +15 1 Ответить
6. VmvLer 28.01.20 09:51 Сейчас в теме
(4) согласен хотелось бы подробностей об областях знаний которые мало кем исследованы, например анализ данных и прочие области с нулевым опытом у 99% спецов.

а эта статья - простая компиляция известных всем фактов, может быть полезна очень ленивым новичкам которые открыли для себя адинэс сегодня у уже хотят получать 100500.
lunjio; user1274438; Kaval88; +3 5 Ответить
9. aspirin4eg 28.01.20 11:59 Сейчас в теме
(6) Эта статья представляет из себя выжимку и структурированный материал, который позволяет упорядочить разрозненные данные из множества разделов СП и документации. Если бы все можно было "просто почитать", преподаватели с университетами были бы не нужны. Такие статьи тоже важны и нужны и, если они не нужны Вам лично, это не повод кричать, что статья "проходняк". В конце-концов Вы тоже были когда-то "ленивым-новичком" у которого было миллион вопросов.
Ignatov_mu; kaaasteeen; happy-anvar; eufes; Gvenor; user847517; maximmar; RedIn; Aggressorak; o.nikolaev; JustaUser; nekit_rdx; ids79; +13 Ответить
13. json 3155 29.01.20 07:45 Сейчас в теме
(6) а откуда тебе знать, что нужно 99%-м спецов?
Ты хоть с одним из них общался?

Ты можешь говорить только за диванных спецов, и причем только за одного.

У тебя 99% комментариев о том, что тебя что-то не устраивает.
Этот комментарий не исключение.

Вот если бы ты на деле показал, что действительно в чем-то разбираешься, написав об этом статью.
То тогда можно было бы с тобой о чем-то поговорить
Ignatov_mu; hoyo; kaaasteeen; BomjBandit; ids79; ixijixi; +6 1 Ответить
15. VmvLer 29.01.20 09:37 Сейчас в теме
(13) смысл балоболить, помню во времена расцвета 77 когда франчевая поросль покоряла страну спецы(без кавычек) завели моду ходить по пивбарам и обсуждать там тонкости технологий, может и сейчас там пузо греют. Короче, я не любитель такого чеса, а попинать профана всегда пожалуйста.
чяднт?

если ваша картина мира другая, то и варитесь в в ней без истерик.
11. ids79 7568 28.01.20 20:28 Сейчас в теме
(4)А зачем вообще ИС? Ведь все можно найти в технической документации.
Gvenor; egorious; nekit_rdx; logarifm; +4 1 Ответить
12. Kaval88 164 28.01.20 20:37 Сейчас в теме
(11)Вопрос про актуальность статьи, в 2010-2011 году было бы актуально, сейчас увы, тема заезжана.
14. json 3155 29.01.20 07:51 Сейчас в теме
(12) данная статья за один день набрала в полтора раза больше рейтинга, чем все твои публикации вместе взятые, начиная с 2016 года.
А по каким показателям судишь ты, говоря об актуальности?

Почему ты уверен, что более компетентен в данном вопросе, чем автор данной статьи?
BomjBandit; o.nikolaev; Keldellar; +3 1 Ответить
16. VmvLer 29.01.20 09:40 Сейчас в теме
(14) тема просто попсовая и популярна у студентов и прочей ленивой братии, ну это как ток-шоу с Шурыгиной.
старички бухтят, ну она же такая-сякая, а молодняк плюсует "на доннышке"
НА ИС главное выбрать в тему попсу и плюсы обеспечены, причем истина не важна.
18. logarifm 1110 29.01.20 10:27 Сейчас в теме
(11)ага и еще можно найти на ИТС. А еще почему-то люди ленятся читать документацию БСП. У Вас хорошо выходит ее интерпритировать - продолжайте в этом же духе. Вот сейчас проект вообще конфигурацию с нуля на базе БСП - там есть много интересного , когда ты начинаешь все это сам прощупивать по каждой подсистеме. Вот все жду может кто решится написать статью относительно БСП 3, а самое главное - это изменение доступов и их еконтроля. Может у Вас будет к этому желание ;)
21. ids79 7568 30.01.20 08:52 Сейчас в теме
(18)У меня было несколько статей на тему прав доступа. Посмотрите, может быть это то, что Вам нужно.
22. logarifm 1110 30.01.20 11:03 Сейчас в теме
(21) интересует именно БСП 3. Уже есть может чего я пропустил?
25. user1194102 09.02.20 10:58 Сейчас в теме
(18) Хорошо демонстировать эрудированность за чужой счет, напишите сами подобную статью и сравним у кого более полезная получилась, мне например понравилась статья автора, не смогу по вашему совету зайти в БСП с нуля, так нет даже нуля от БСП, у меня УПП)
7. al_zzz 279 28.01.20 11:32 Сейчас в теме
Я - человек простой. Вижу очередную статью Дмитрия Иванова - плюсую!
nadi_bar; ids79; bulpi; +3 Ответить
8. aspirin4eg 28.01.20 11:53 Сейчас в теме
Спасибо за статью! Все очень подробно разжевано и структурировано. Многое, о чем знал или знал смутно, стало понятно, и смог в голове разложить по полочкам. Теперь СКД все менее представляется мне черным ящиком.
10. пользователь 28.01.20 12:33
(0) и еще одна отличная статья!

+
Roootru; o.nikolaev; davdykin; ids79; +4 Ответить
17. logarifm 1110 29.01.20 10:23 Сейчас в теме
(0) не читая + . Автор в адеквате всегда по теме то что надо пишет.
Flatra56; ids79; +2 Ответить
19. ixijixi 29.01.20 10:38 Сейчас в теме
На заметку. Среди реквизитов динамического списка присутствуют элементы настроек компоновки

Прошу пардону, если ошибаюсь, но разве это корректное утверждение? Может, среди реквизитов компоновщика настроек динамического списка?
20. ids79 7568 30.01.20 07:34 Сейчас в теме
(19)Возможно не совсем корректно выразился. Я имел в виду, что они вынесены на один уровень с реквизитами динамического списка.
23. davdykin 25 30.01.20 20:50 Сейчас в теме
Отличная статья, большое спасибо за логичное и доступное изложение.
24. user1194102 09.02.20 10:52 Сейчас в теме
Статья хорошая спасибо, есть что посмотреть и поразбираться. Не могли бы вы выложить еще статью в продолжение к этой, как с помощью кода в скд вывести данные не в типовой макет скд "ОсновнаяСхемаКомпановки", а в произвольный макет (унифицированную форму) что-то типа счет или Счет фактура?
Flatra56; o.nikolaev; ids79; +3 Ответить
26. Flyerink 18 27.02.20 16:08 Сейчас в теме
Спасибо за статью! Помогла разложить по полочкам отрывистые знания.
Особенно выручила инфа
КомпоновщикНастроек.ЗагрузитьНастройки(СкорректированныеНастройки);

Долго искал причину, почему мои программные настройки срабатывают после повторного формирования отчета...
Alia777; ids79; +2 Ответить
27. mikmike 7 30.11.21 15:57 Сейчас в теме
Спасибо Помогло. У меня правда все на обычных формах, но общий принцип сохранился.
28. Kitsunedie 11.07.22 15:03 Сейчас в теме
Здравствуйте. Пользовался вашей статьей для создания своего отчета. Начал кодить в 1С недавно и поэтому есть вопросы. Есть такой код
СтандартнаяОбработка = Ложь;
	СхемаСКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	КомпановщикМакетаКД = Новый КомпоновщикМакетаКомпоновкиДанных;
	НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
	ПарамПериод = НастройкиКомпоновки.ПараметрыДанных.Элементы.Найти("Период");
	
	Период = ПарамПериод.Значение;
	ДатаНач = Период.ДатаНачала;
	ДатаКон = Период.ДатаОкончания;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	
	"ВЫБРАТЬ
	|	ЗаказПоставщику.Ссылка КАК Ссылка
	|ИЗ
	|	Документ.ЗаказПоставщику КАК ЗаказПоставщику
	|ГДЕ
	|	ЗаказПоставщику.Дата МЕЖДУ &ДатаНач И &ДатаКон";
	
	Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
	
	РезультатЗапроса = Запрос.Выполнить();
	тз = РезультатЗапроса.Выгрузить();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	
	"ВЫБРАТЬ
	|	&Ссылка КАК ЗаказПоставщикуСсылка,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеТоваровУслуг)
	|		КОНЕЦ) КАК ПриобретениеТоваровУслуг,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств)
	|		КОНЕЦ) КАК ЗаявкаНаРасходованиеДенежныхСредств,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств)
	|		КОНЕЦ) КАК СписаниеБезналичныхДенежныхСредств,
	|	МАКСИМУМ(ВЫБОР
	|			КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|				ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов)
	|		КОНЕЦ) КАК ПриобретениеУслугПрочихАктивов,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеТоваровУслуг).Проведен
	|	КОНЕЦ КАК ПриобретениеТоваровУслугПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ КАК ПриобретениеТоваровУслугСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).Проведен
	|	КОНЕЦ КАК ЗаявкаНаРасходованиеДенежныхСредствПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).СуммаДокумента
	|	КОНЕЦ КАК ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).Проведен
	|	КОНЕЦ КАК СписаниеБезналичныхДенежныхСредствПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).СуммаДокумента
	|	КОНЕЦ КАК СписаниеБезналичныхДенежныхСредствСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).Проведен
	|	КОНЕЦ КАК ПриобретениеУслугПрочихАктивовПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ КАК ПриобретениеУслугПрочихАктивовСуммаДокумента,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер)
	|	КОНЕЦ КАК РасходныйКассовыйОрдер,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).Проведен
	|	КОНЕЦ КАК РасходныйКассовыйОрдерПроведен,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).СуммаДокумента
	|	КОНЕЦ КАК РасходныйКассовыйОрдерСуммаДокумента
	|ПОМЕСТИТЬ ВТЗ
	|ИЗ
	|	КритерийОтбора.СвязанныеДокументы(&Ссылка) КАК СвязанныеДокументы
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаРасходованиеДенежныхСредств КАК ЗаявкаНаРасходованиеДенежныхСредств
	|		ПО СвязанныеДокументы.Ссылка = ЗаявкаНаРасходованиеДенежныхСредств.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
	|		ПО СвязанныеДокументы.Ссылка = ПриобретениеТоваровУслуг.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриобретениеУслугПрочихАктивов КАК ПриобретениеУслугПрочихАктивов
	|		ПО СвязанныеДокументы.Ссылка = ПриобретениеУслугПрочихАктивов.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
	|		ПО СвязанныеДокументы.Ссылка = СписаниеБезналичныхДенежныхСредств.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
	|		ПО СвязанныеДокументы.Ссылка = РасходныйКассовыйОрдер.Ссылка
	|ГДЕ
	|	(СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|			ИЛИ СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ИЛИ СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ИЛИ СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов)
	|	И НЕ СвязанныеДокументы.Ссылка = ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
	|	И НЕ СвязанныеДокументы.Ссылка = ЗНАЧЕНИЕ(Документ.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка)
	|	И НЕ СвязанныеДокументы.Ссылка = ЗНАЧЕНИЕ(Документ.ПриобретениеУслугПрочихАктивов.ПустаяСсылка)
	|
	|СГРУППИРОВАТЬ ПО
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеТоваровУслуг
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеТоваровУслуг).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ЗаявкаНаРасходованиеДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ЗаявкаНаРасходованиеДенежныхСредств).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.СписаниеБезналичныхДенежныхСредств).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер)
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).Проведен
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.РасходныйКассовыйОрдер).СуммаДокумента
	|	КОНЕЦ,
	|	ВЫБОР
	|		КОГДА СвязанныеДокументы.Ссылка ССЫЛКА Документ.ПриобретениеУслугПрочихАктивов
	|			ТОГДА ВЫРАЗИТЬ(СвязанныеДокументы.Ссылка КАК Документ.ПриобретениеУслугПрочихАктивов).СуммаДокумента
	|	КОНЕЦ
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТЗ.ЗаказПоставщикуСсылка КАК ЗаказПоставщикуСсылка,
	|	ЕСТЬNULL(ВТЗ.ПриобретениеТоваровУслуг, ЗНАЧЕНИЕ(Документ.ПриобретениеТоваровУслуг.ПустаяСсылка)) КАК ПриобретениеТоваровУслуг,
	|	ВТЗ.ЗаявкаНаРасходованиеДенежныхСредств КАК ЗаявкаНаРасходованиеДенежныхСредств,
	|	ВТЗ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств,
	|	ВТЗ.ПриобретениеУслугПрочихАктивов КАК ПриобретениеУслугПрочихАктивов,
	|	ВТЗ.ПриобретениеТоваровУслугПроведен КАК ПриобретениеТоваровУслугПроведен,
	|	ВТЗ.ПриобретениеТоваровУслугСуммаДокумента КАК ПриобретениеТоваровУслугСуммаДокумента,
	|	ВТЗ.ЗаявкаНаРасходованиеДенежныхСредствПроведен КАК ЗаявкаНаРасходованиеДенежныхСредствПроведен,
	|	ВТЗ.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента КАК ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента,
	|	ВТЗ.СписаниеБезналичныхДенежныхСредствПроведен КАК СписаниеБезналичныхДенежныхСредствПроведен,
	|	ВТЗ.СписаниеБезналичныхДенежныхСредствСуммаДокумента КАК СписаниеБезналичныхДенежныхСредствСуммаДокумента,
	|	ВТЗ.ПриобретениеУслугПрочихАктивовПроведен КАК ПриобретениеУслугПрочихАктивовПроведен,
	|	ВТЗ.ПриобретениеУслугПрочихАктивовСуммаДокумента КАК ПриобретениеУслугПрочихАктивовСуммаДокумента,
	|	ВТЗ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер,
	|	ВТЗ.РасходныйКассовыйОрдерПроведен КАК РасходныйКассовыйОрдерПроведен,
	|	ВТЗ.РасходныйКассовыйОрдерСуммаДокумента КАК РасходныйКассовыйОрдерСуммаДокумента,
	|	ЗаказПоставщику.Партнер КАК ЗаказПоставщикуПартнер,
	|	ЗаказПоставщику.Статус КАК ЗаказПоставщикуСтатус,
	|	ЗаказПоставщику.Проведен КАК ЗаказПоставщикуПроведен,
	|	ЗаказПоставщику.СуммаДокумента КАК ЗаказПоставщикуСуммаДокумента,
	|	ЗаказПоставщику.Комментарий КАК ЗаказПоставщикуКомментарий
	|ИЗ
	|	ВТЗ КАК ВТЗ
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
	|		ПО ВТЗ.ЗаказПоставщикуСсылка = ЗаказПоставщику.Ссылка";
	
	ИтогТЗ = Новый ТаблицаЗначений;
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуСсылка");
	ИтогТЗ.Колонки.Добавить("ПриобретениеТоваровУслуг");
	ИтогТЗ.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредств");
	ИтогТЗ.Колонки.Добавить("СписаниеБезналичныхДенежныхСредств");
	ИтогТЗ.Колонки.Добавить("ПриобретениеУслугПрочихАктивов");
	ИтогТЗ.Колонки.Добавить("ПриобретениеТоваровУслугПроведен");
	ИтогТЗ.Колонки.Добавить("ПриобретениеТоваровУслугСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствПроведен");
	ИтогТЗ.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствПроведен");
	ИтогТЗ.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("РасходныйКассовыйОрдер");
	ИтогТЗ.Колонки.Добавить("РасходныйКассовыйОрдерПроведен");
	ИтогТЗ.Колонки.Добавить("РасходныйКассовыйОрдерСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуПартнер");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуСтатус");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуПроведен");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуСуммаДокумента");
	ИтогТЗ.Колонки.Добавить("ЗаказПоставщикуКомментарий");
	ИтогТЗ.Колонки.Добавить("ПриобретениеУслугПрочихАктивовПроведен");
	ИтогТЗ.Колонки.Добавить("ПриобретениеУслугПрочихАктивовСуммаДокумента");
	
	Для каждого Строка из тз Цикл
		
		Запрос.УстановитьПараметр("Ссылка", Строка.Ссылка);
		ТЗДок = Запрос.Выполнить().Выгрузить();
		
		Для каждого СтрокаТЗДок Из ТЗдок Цикл
			СтрокаИтогТЗ = ИтогТЗ.Добавить();
			ЗаполнитьЗначенияСвойств(СтрокаИтогТЗ, СтрокаТЗДОК);
		КонецЦикла;
		
	КонецЦикла;
	
	Итог = Новый ТаблицаЗначений;
	Итог.Колонки.Добавить("ЗаказПоставщикуСсылка");
	Итог.Колонки.Добавить("ПриобретениеТоваровУслуг");
	Итог.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредств");
	Итог.Колонки.Добавить("СписаниеБезналичныхДенежныхСредств");
	Итог.Колонки.Добавить("ПриобретениеУслугПрочихАктивов");
	Итог.Колонки.Добавить("ПриобретениеТоваровУслугПроведен");
	Итог.Колонки.Добавить("ПриобретениеТоваровУслугСуммаДокумента");
	Итог.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствПроведен");
	Итог.Колонки.Добавить("ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента");
	Итог.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствПроведен");
	Итог.Колонки.Добавить("СписаниеБезналичныхДенежныхСредствСуммаДокумента");
	Итог.Колонки.Добавить("РасходныйКассовыйОрдер");
	Итог.Колонки.Добавить("РасходныйКассовыйОрдерПроведен");
	Итог.Колонки.Добавить("РасходныйКассовыйОрдерСуммаДокумента");
	Итог.Колонки.Добавить("ЗаказПоставщикуПартнер");
	Итог.Колонки.Добавить("ЗаказПоставщикуСтатус");
	Итог.Колонки.Добавить("ЗаказПоставщикуПроведен");
	Итог.Колонки.Добавить("ЗаказПоставщикуСуммаДокумента");
	Итог.Колонки.Добавить("ЗаказПоставщикуКомментарий");
	Итог.Колонки.Добавить("ПриобретениеУслугПрочихАктивовПроведен");
	Итог.Колонки.Добавить("ПриобретениеУслугПрочихАктивовСуммаДокумента");
	
	СчетчикИтогТЗ = 0;
	СчетчикИтог = Неопределено;
	
	Для каждого Строка из ИтогТЗ Цикл
		СчетчикИтогТЗ = СчетчикИтогТЗ + 1;
		Если СчетчикИтог = Неопределено Тогда
			СчетчикИтогТЗ = СчетчикИтогТЗ;
			НоваяСтрока = Итог.Добавить();
			СчетчикИтог = 0;
			НоваяСтрока.ЗаказПоставщикуСсылка = Строка.ЗаказПоставщикуСсылка;
			НоваяСтрока.ЗаказПоставщикуПартнер = Строка.ЗаказПоставщикуПартнер;
			НоваяСтрока.ЗаказПоставщикуСтатус = Строка.ЗаказПоставщикуСтатус;
		    НоваяСтрока.ЗаказПоставщикуПроведен = Строка.ЗаказПоставщикуПроведен;
		    НоваяСтрока.ЗаказПоставщикуСуммаДокумента = Строка.ЗаказПоставщикуСуммаДокумента;
			НоваяСтрока.ЗаказПоставщикуКомментарий = Строка.ЗаказПоставщикуКомментарий;
			Если НЕ Строка.ПриобретениеТоваровУслуг = Документы.ПриобретениеТоваровУслуг.ПустаяСсылка() Тогда
				НоваяСтрока.ПриобретениеТоваровУслуг = Строка.ПриобретениеТоваровУслуг;
				НоваяСтрока.ПриобретениеТоваровУслугПроведен = Строка.ПриобретениеТоваровУслугПроведен;
				НоваяСтрока.ПриобретениеТоваровУслугСуммаДокумента = Строка.ПриобретениеТоваровУслугСуммаДокумента;
			ИначеЕсли НЕ Строка.ЗаявкаНаРасходованиеДенежныхСредств = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка() Тогда
				НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредств = Строка.ЗаявкаНаРасходованиеДенежныхСредств;
				НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствПроведен = Строка.ЗаявкаНаРасходованиеДенежныхСредствПроведен;
				НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента = Строка.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента;
			ИначеЕсли НЕ Строка.СписаниеБезналичныхДенежныхСредств =  Документы.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка() Тогда
				НоваяСтрока.СписаниеБезналичныхДенежныхСредств = Строка.СписаниеБезналичныхДенежныхСредств;
				НоваяСтрока.СписаниеБезналичныхДенежныхСредствПроведен = Строка.СписаниеБезналичныхДенежныхСредствПроведен;
				НоваяСтрока.СписаниеБезналичныхДенежныхСредствСуммаДокумента = Строка.СписаниеБезналичныхДенежныхСредствСуммаДокумента;
			ИначеЕсли НЕ Строка.ПриобретениеУслугПрочихАктивов = Документы.ПриобретениеУслугПрочихАктивов.ПустаяСсылка() Тогда
				НоваяСтрока.ПриобретениеУслугПрочихАктивов = Строка.ПриобретениеУслугПрочихАктивов;
				НоваяСтрока.ПриобретениеУслугПрочихАктивовПроведен = Строка.ПриобретениеУслугПрочихАктивовПроведен;
				НоваяСтрока.ПриобретениеУслугПрочихАктивовСуммаДокумента = Строка.ПриобретениеУслугПрочихАктивовСуммаДокумента;
			ИначеЕсли НЕ Строка.РасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.ПустаяСсылка() Тогда
				НоваяСтрока.РасходныйКассовыйОрдер = Строка.РасходныйКассовыйОрдер;
				НоваяСтрока.РасходныйКассовыйОрдерПроведен = Строка.РасходныйКассовыйОрдерПроведен;
				НоваяСтрока.РасходныйКассовыйОрдерСуммаДокумента = Строка.РасходныйКассовыйОрдерСуммаДокумента;
			КонецЕсли;
		Иначе
			Если Итог[СчетчикИтог].ЗаказПоставщикуСсылка = ИтогТЗ[СчетчикИтогТЗ-1].ЗаказПоставщикуСсылка Тогда
				Если НЕ Строка.ПриобретениеТоваровУслуг = Документы.ПриобретениеТоваровУслуг.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеТоваровУслуг = Строка.ПриобретениеТоваровУслуг;
					НоваяСтрока.ПриобретениеТоваровУслугПроведен = Строка.ПриобретениеТоваровУслугПроведен;
					НоваяСтрока.ПриобретениеТоваровУслугСуммаДокумента = Строка.ПриобретениеТоваровУслугСуммаДокумента;
				ИначеЕсли НЕ Строка.ЗаявкаНаРасходованиеДенежныхСредств = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредств = Строка.ЗаявкаНаРасходованиеДенежныхСредств;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствПроведен = Строка.ЗаявкаНаРасходованиеДенежныхСредствПроведен;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента = Строка.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.СписаниеБезналичныхДенежныхСредств =  Документы.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.СписаниеБезналичныхДенежныхСредств = Строка.СписаниеБезналичныхДенежныхСредств;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствПроведен = Строка.СписаниеБезналичныхДенежныхСредствПроведен;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствСуммаДокумента = Строка.СписаниеБезналичныхДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.ПриобретениеУслугПрочихАктивов = Документы.ПриобретениеУслугПрочихАктивов.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеУслугПрочихАктивов = Строка.ПриобретениеУслугПрочихАктивов;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовПроведен = Строка.ПриобретениеУслугПрочихАктивовПроведен;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовСуммаДокумента = Строка.ПриобретениеУслугПрочихАктивовСуммаДокумента;
				ИначеЕсли НЕ Строка.РасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.ПустаяСсылка() Тогда
					НоваяСтрока.РасходныйКассовыйОрдер = Строка.РасходныйКассовыйОрдер;
					НоваяСтрока.РасходныйКассовыйОрдерПроведен = Строка.РасходныйКассовыйОрдерПроведен;
					НоваяСтрока.РасходныйКассовыйОрдерСуммаДокумента = Строка.РасходныйКассовыйОрдерСуммаДокумента;
				КонецЕсли;
			Иначе
			  	НоваяСтрока = Итог.Добавить();
				СчетчикИтог = СчетчикИтог + 1;
				НоваяСтрока.ЗаказПоставщикуСсылка = Строка.ЗаказПоставщикуСсылка;
				НоваяСтрока.ЗаказПоставщикуПартнер = Строка.ЗаказПоставщикуПартнер;
				НоваяСтрока.ЗаказПоставщикуСтатус = Строка.ЗаказПоставщикуСтатус;
			    НоваяСтрока.ЗаказПоставщикуПроведен = Строка.ЗаказПоставщикуПроведен;
			    НоваяСтрока.ЗаказПоставщикуСуммаДокумента = Строка.ЗаказПоставщикуСуммаДокумента;
				НоваяСтрока.ЗаказПоставщикуКомментарий = Строка.ЗаказПоставщикуКомментарий;
				Если НЕ Строка.ПриобретениеТоваровУслуг = Документы.ПриобретениеТоваровУслуг.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеТоваровУслуг = Строка.ПриобретениеТоваровУслуг;
					НоваяСтрока.ПриобретениеТоваровУслугПроведен = Строка.ПриобретениеТоваровУслугПроведен;
					НоваяСтрока.ПриобретениеТоваровУслугСуммаДокумента = Строка.ПриобретениеТоваровУслугСуммаДокумента;
				ИначеЕсли НЕ Строка.ЗаявкаНаРасходованиеДенежныхСредств = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредств = Строка.ЗаявкаНаРасходованиеДенежныхСредств;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствПроведен = Строка.ЗаявкаНаРасходованиеДенежныхСредствПроведен;
					НоваяСтрока.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента = Строка.ЗаявкаНаРасходованиеДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.СписаниеБезналичныхДенежныхСредств =  Документы.СписаниеБезналичныхДенежныхСредств.ПустаяСсылка() Тогда
					НоваяСтрока.СписаниеБезналичныхДенежныхСредств = Строка.СписаниеБезналичныхДенежныхСредств;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствПроведен = Строка.СписаниеБезналичныхДенежныхСредствПроведен;
					НоваяСтрока.СписаниеБезналичныхДенежныхСредствСуммаДокумента = Строка.СписаниеБезналичныхДенежныхСредствСуммаДокумента;
				ИначеЕсли НЕ Строка.ПриобретениеУслугПрочихАктивов = Документы.ПриобретениеУслугПрочихАктивов.ПустаяСсылка() Тогда
					НоваяСтрока.ПриобретениеУслугПрочихАктивов = Строка.ПриобретениеУслугПрочихАктивов;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовПроведен = Строка.ПриобретениеУслугПрочихАктивовПроведен;
					НоваяСтрока.ПриобретениеУслугПрочихАктивовСуммаДокумента = Строка.ПриобретениеУслугПрочихАктивовСуммаДокумента;
				ИначеЕсли НЕ Строка.РасходныйКассовыйОрдер = Документы.РасходныйКассовыйОрдер.ПустаяСсылка() Тогда
					НоваяСтрока.РасходныйКассовыйОрдер = Строка.РасходныйКассовыйОрдер;
					НоваяСтрока.РасходныйКассовыйОрдерПроведен = Строка.РасходныйКассовыйОрдерПроведен;
					НоваяСтрока.РасходныйКассовыйОрдерСуммаДокумента = Строка.РасходныйКассовыйОрдерСуммаДокумента;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;	
	
	СоответствиеТипов = ПолучитьСоответствиеТипов();

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


Есть результат его выполнения на скриншоте.
И собственно вопрос. Как при нажатии на Элемент колонки Заказ поставщику сделать переход по ссылке на документ.
В стандартных отчетах без программного скармливания таблицы значений в СКД все работает, а тут нет, видимо нужно что-то дописать. А как сформулировать правильно вопрос или где прочитать найти не могу. Был бы признателен какому-нибудь тонкому намеку в сторону решения.
Прикрепленные файлы:
29. ids79 7568 20.07.22 19:18 Сейчас в теме
(28) Добавьте данные расшифровки в метод Выполнить компоновщика макета:
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаСКД, НастройкиКомпоновки, ДанныеРасшифровки );
Kitsunedie; +1 Ответить
30. Kitsunedie 21.07.22 08:10 Сейчас в теме
(29)
Да, спасибо большое, уже нашел ошибку
31. user1826876 19.09.22 13:25 Сейчас в теме
Мне не помогло ничего, полдня бился, так и не смог сделать, что бы форма отчета открывалась с заданными отборами, компоновщик их получает, а на форме все это появляется только после второго запуска сформировать через форму настроек..
Оставьте свое сообщение

См. также

Как просто запомнить алгоритм программного вывода в СКД Промо

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

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

01.09.2017    58499    unichkin    19    

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

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

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

сегодня в 16:00    69    user1728007    1    

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

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

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

11.11.2022    1377    slicem    10    

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

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

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

17.10.2022    2210    al_zzz    4    

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

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

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

12.10.2022    4172    milkers    14    

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

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

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

18.07.2022    3825    Pproksima    1    

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

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

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

28.05.2022    5918    milkers    11    

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

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

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

29.01.2014    99493    anig99    27    

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

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

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

23.04.2022    658    AnatolPopov    0    

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

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

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

09.04.2022    842    AnatolPopov    0    

СКД. Вставка разрыва страницы Промо

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

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

29.10.2011    59379    stoptime    58    

Отладка СКД

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

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

08.02.2022    8671    ProgrammingStore    5    

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

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

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

04.02.2022    3948    pbazeliuk    4    

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

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

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

28.12.2021    10631    quazare    6    

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

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

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

13.12.2021    3338    SizovE    0    

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

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

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

23.11.2021    3577    SizovE    3    

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

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

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

18.11.2021    3380    drmaxart    0    

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

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

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

08.11.2021    5711    echo77    7    

Грабли на СКД

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

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

02.11.2021    11335    echo77    17    

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

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

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

04.10.2021    2858    Neti    4    

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

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

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

07.08.2021    22252    Eugen-S    24    

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

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

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

18.07.2021    3212    mysm    14    

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

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

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

12.07.2021    3802    Yashazz    7    

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

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

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

28.06.2021    2478    Yashazz    0    

Учебный пример программного формирования схемы компоновки данных: Универсальный отчет по регистрам накопления

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

Разберём учебную задачу создания Универсального отчета по оборотным регистрам накопления конфигурации.

14.06.2021    5320    maraton1185    4    

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

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

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

14.04.2021    5307    user1127305    12    

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

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

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

07.04.2021    4858    SergeyN    13    

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

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

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

02.04.2021    2256    parshachello    2    

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

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

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

30.03.2021    21302    Neti    21    

Перенос/копирование и установка отбора/фильтра/периода при интерактивном переключении или смене варианта отчета/СКД в БСП 3.1 (1C ERP, УТ, БП, ...)

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

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

18.01.2021    3193    SizovE    4    

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

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

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

05.08.2020    2992    Yashazz    0    

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

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

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

24.05.2020    11718    kasper076    18    

Макет оформления в отчете с несколькими СКД

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

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

14.05.2020    6472    vendim    4    

СКД. Использование Менеджера временных таблиц в системе компоновки

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

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

29.04.2020    18237    ixijixi    48    

Ограничения полей, или как обмануть СКД?

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

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    25718    SeiOkami    43    

Работа с запросами в 1С СКД. Отладка СКД

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

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

15.04.2020    6706    ProgrammingStore    3