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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

Настройки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. uno-c 116 27.01.20 20:39 Сейчас в теме
Не сразу нашел место, чтобы поставить плюс. Обычно это оранжевый квадратик, который сразу видно. А тут нечто серое, едва заметное, потому что еще никто не плюсовал )
2. user623969_dusa 28.01.20 08:14 Сейчас в теме
друзей корректоров нет ладно в тексте но в заголовке
"немного теориии" немного в смысле наречия мало пишется слитно
3. json 2575 28.01.20 08:21 Сейчас в теме
А знает кто-нибудь зачем в пользовательских настройках есть методы Добавить() и Вставить() ?
Добавление то происходит через присвоение идентификатора пользовательской настройки для настройки.
Чисто интересно, зачем добавлены эти методы?
Которые, кстати, мне так и не удалось заставить работать (когда-то давно пробовал это сделать)
4. Kaval88 69 28.01.20 08:41 Сейчас в теме
А в чём новизна публикации? При необходимости можно всё найти в синтакс-помощнике.
5. json 2575 28.01.20 09:29 Сейчас в теме
(4) Все можно где-то найти.
Чем больше статей на сложные темы с разных точек зрения, тем меньше времени придется потратить, чтобы найти ответ в нужный момент.
Вроде очевидная логика, нет?
logarifm; ids79; aspirin4eg; +3 1 Ответить
6. VmvLer 28.01.20 09:51 Сейчас в теме
(4) согласен хотелось бы подробностей об областях знаний которые мало кем исследованы, например анализ данных и прочие области с нулевым опытом у 99% спецов.

а эта статья - простая компиляция известных всем фактов, может быть полезна очень ленивым новичкам которые открыли для себя адинэс сегодня у уже хотят получать 100500.
lunjio; user1274438; Kaval88; +3 3 Ответить
9. aspirin4eg 28.01.20 11:59 Сейчас в теме
(6) Эта статья представляет из себя выжимку и структурированный материал, который позволяет упорядочить разрозненные данные из множества разделов СП и документации. Если бы все можно было "просто почитать", преподаватели с университетами были бы не нужны. Такие статьи тоже важны и нужны и, если они не нужны Вам лично, это не повод кричать, что статья "проходняк". В конце-концов Вы тоже были когда-то "ленивым-новичком" у которого было миллион вопросов.
13. json 2575 29.01.20 07:45 Сейчас в теме
(6) а откуда тебе знать, что нужно 99%-м спецов?
Ты хоть с одним из них общался?

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

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

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

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

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

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

Прошу пардону, если ошибаюсь, но разве это корректное утверждение? Может, среди реквизитов компоновщика настроек динамического списка?
20. ids79 5035 30.01.20 07:34 Сейчас в теме
(19)Возможно не совсем корректно выразился. Я имел в виду, что они вынесены на один уровень с реквизитами динамического списка.
23. davdykin 21 30.01.20 20:50 Сейчас в теме
Отличная статья, большое спасибо за логичное и доступное изложение.
24. user1194102 09.02.20 10:52 Сейчас в теме
Статья хорошая спасибо, есть что посмотреть и поразбираться. Не могли бы вы выложить еще статью в продолжение к этой, как с помощью кода в скд вывести данные не в типовой макет скд "ОсновнаяСхемаКомпановки", а в произвольный макет (унифицированную форму) что-то типа счет или Счет фактура?
Оставьте свое сообщение

См. также

[СКД] Программное создание схемы компоновки данных

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

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

15.01.2020    7166    John_d    21       

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

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

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

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

4900 рублей

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

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

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

18.09.2019    11567    YPermitin    31       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

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

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

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

05.09.2019    23806    ids79    45       

Три костыля. Сказ про фокусы в коде

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

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    15241    YPermitin    75       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Отслеживание выполнения фонового задания

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

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    18104    ids79    16       

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

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

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

08.08.2019    32739    ids79    36       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    18183    avalakh    21       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

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

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

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

26.07.2019    26798    ids79    9       

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

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

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

17.07.2019    19415    ids79    27       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Регистры сведений. За кулисами

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

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    14715    YPermitin    12       

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

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

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

09.07.2019    13103    ids79    2       

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

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

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

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

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

04.07.2019    12011    SeiOkami    49       

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

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

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

02.07.2019    22659    ids79    8       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

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

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

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

25.06.2019    31494    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

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

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    16821    dmurk    144       

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

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

Регистры накопления. Структура хранения в базе данных

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

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    27033    YPermitin    27       

Выполнение внешней обработки в фоновом задании

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    17155    Eret1k    23       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Выгрузка документа по условию

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

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    9246    m-rv    2       

Как прикрутить ГУИД к регистру сведений

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

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

16.04.2019    12361    m-rv    16       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    23245    ellavs    125       

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    18452    ellavs    83