![]() Авторизация
|
Схема компоновки данных (1С СКД).Схема компоновки данных (1С СКД)Схема компоновки данных (1С СКД) – удобный конструктор для создания в программных продуктах 1С:Предприятие сложных отчетов, способствующих развитию и отслеживанию автоматизации производства, позволяющих сделать их максимально гибкими и красивыми за минимум времени. Дополнительный плюс Схемы компоновки данных (1С СКД) - автоматическое формирование управляемой формы отчета, а при дальнейшем развитии данного направления, является важным фактором при выборе метода разработки отчета. Но из-за сложности структуры Схемы компоновки данных (1С СКД) и огромного количества настроек зачастую приводит к более длительной разработке отчета, чем через «конструктор выходной формы». Поэтому программисту 1С необходимо разбираться во всех тонкостях работы Схемы компоновки данных (1С СКД), чтобы в дальнейшем ускорить время разработки формирования отчетов. Разберем первые три вкладки Схемы компоновки данных (1С СКД) – набор данных, связи набора данных и вычисляемые поля. Набор данных в 1С СКД Набор данных включает в себя возможность создания трёх объектов – запрос, объект и объединение, остановимся подробнее на каждом из них: Запрос Представляет собой обычный запрос, который формируется по кнопке Конструктор запроса. Если установлен флаг Автозаполнение, то все выбранные реквизиты автоматически попадут в поля набора данных. Так же есть возможность самим настроить заполнение полей в запросе на вкладке Компоновка данных, где находятся три вкладки: - таблицы, здесь выбираются таблицы, которые будут участвовать при формировании отчета, обычно выбираются данные по умолчанию, так как на вкладке Таблицы и поля мы уже выбрали нужные нам документы, справочники, регистры… - поля, здесь мы выбираем те объекты, которые должны попасть в отчет, флаг дочерние указывает, будут ли доступные дочерние элементы по объекту или нет, логично, что у строковых, числовых и подобных данных нельзя будет установить флаг в положение Истина. - условия, здесь мы выбираем те объекты, которые можно будет использовать в условиях в СКД. Объект Часть работы выполняется в схеме компоновки данных, часть программно, рассмотрим на простом примере: Сначала создадим макет схема компоновки данных у документа и назовем СКД (например: 1С СКД), в нем создаем набор данных объект, далее заполняем поля, к примеру, имеем у документа табличную часть товары с реквизитами – номенклатура, количество и цена. Добавим три поля и заполняем по каждому колонку поле наименованием реквизитов, остальные колонки заполнятся автоматически:
Далее заполним Имя объекта, содержащее данные, к примеру, ТоварыСКД и приступаем к программной части: Создадим кнопку на форме документа, опишем механизм работы в управляемых формах: &НаКлиенте Процедура Печать() НашОтчет = ПечатьНаСервере(); //вызываем функцию на сервере НашОтчет.Показать(); //выводим сформированный отчет КонецПроцедуры
&НаСервере Функция ПечатьНаСервере() ОбъектДокумента = РеквизитФормыВЗначение(“Объект”);
//помещаем табличную часть Товары в структуру с наименованием ТоварыСКД так же, как мы указали в самой СКД имя объекта, содержащего данные НаборДанных = Новый Структура; НаборДанных.Вставить(“ТоварыСКД”, ОбъектДокумента.Товары);
//получаем наш макет и выставляем настройки по умолчанию, чтобы все настройки вывода отчета брались из нашего макета НашМакет = ОбъектДокумента.ПолучитьМакет(“СКД”); Настройки = НашМакет.НастройкиПоУмолчанию;
//создаем макет компоновки данных с нашими настройками КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(НашМакет, Настройки);
//выполняем компоновку данных с нашим набором данных ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, НаборДанных);
//формируем табличный документ и выводим в него наш отчет ДокументОтчета = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументОтчета); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат ДокументОтчета;
КонецФункции При желании можно получить области и любого другого макета и так же вывести в данном отчете, к примеру, имеем типовой макет формирования платежки и в нем очень хорошо создана шапка, тогда, чтобы нам не делать лишнюю работу, просто сначала получим макет, выведем шапку, потом сформируем и выведем наш отчет на СКД. Объединение В него мы можем помещать наш запросы и объекты, но в отличие от связи, он просто прибавляет таблицы друг к другу, то есть если мы свяжем две одинаковых таблицы, то получим в итоге одну, а при объединении, она удвоится, рассмотрим на простом примере: Имеем таблицы:
При связи мы получим:
А при объединении:
Рассмотрим теперь заполнение колонок в наборах данных (некоторые пропустим, так как связаны с другими вкладками, к ним вернемся в будущих статьях): - поле, указываем общее название реквизита; - путь, указываем название реквизита, по которому будем к нему обращаться в СКД, к примеру, в Вычисляемых полях; - заголовок, указываем наименование реквизита, которое будет выводится в отчете; - ограничение поля, указываем доступность данного реквизита; - ограничение реквизитов, указываем доступность дочерних элементов, важно, если указана доступность реквизитов, то и само поле будет доступно, возможно в будущих релизах изменят данную механику; - выражение, по которому вычисляется представление поле, удобно использовать, когда нам нужно изменить немного вывод реквизитов, к примеру, нам нужно, чтобы после имени номенклатуры выводился склад, на котором находится она, тогда заполним следующее: Номенклатура + “ находится на складе ” + Склад. Повторюсь, что обращение реквизитам осуществляется через название, указанное в колонке путь; - выражение упорядочивание, удобный механизм настройки упорядочивания отчета, где условие можно задать вручную, аналогично предыдущему пункту, но как показывает практика, часто этот механизм работает не так, как хотелось бы, и советую пользоваться стандартной сортировкой; - тип значения, указывается тип значения реквизита, заполнять необходимо, если будете пользоваться следующим полем; - доступные значения, работает лишь при заполненном типе значения, открываем форму заполнения и в колонке Значение указываем элемент, который нужно изменить, согласно типу, это может быть предопределенные объекты или у числовых, к примеру, реквизитов простые значения, в представлении указываем, на что нам нужно поменять, пример булевского типа:
- оформление – стандартная настройка формата поля, аналогичная настройке в управляемых формах, позволяет более точно и красиво настроить вывод определенного реквизита. Связи набора данных в 1С СКД Здесь устанавливается только левое соединение, по принципу, аналогичному связей в запросах, в источнике связи указываем основную таблицу для соединения, в приемнике дополнительную. В выражение источник и выражение приемник указываем реквизиты, по которым будет происходить связь. Остальные колонки рассмотрим подробнее, когда будем разбирать вкладку Параметры. Если нет дополнительной связью с параметрами, то рекомендуется связь делать в запросе, это ускорит работу отчета. Вычисляемые поля в 1С СКД Здесь полностью аналогичный механизм с ручным заполнением составом набора, единственным отличием является колонка Выражение, здесь мы можем указать любые вычисления, какие нам требуются, к примеру:
Заметим, что название реквизитов написаны через точку, то есть мы можем здесь обращаться как дочерним элементам, так и к созданным папкам в составе набора:
На практике применение зачастую только усложняет работу программисту 1С дополнительной прописью названия папки при сложных выражениях, но при огромном количестве данных это помогает удобно структурировать поля. Нужна помощь в работе с 1С? Звоните (495)6624810 |
Ваша корзина пуста 1С:УПП Обновление
Статьи 1C:ERP Управление Предприятием
27 Августа 2019 00:00
1С:ERP Управление предприятием 2 версия 2.4.9.82 1C:ERP Управление предприятием Обновление
|