Калькулятор расчета стоимости внедрения 1С:УПП
Апрель 2024
ПН
ВТ
СР
ЧТ
ПТ
СБ
ВС
1234567
891011121314
15161718192021
22232425262728
2930


налоги документы
выходные и праздники
сокращённые раб. дни
Авторизация

Логин

Пароль

Схема компоновки данных (1С СКД).

Оставить заявку 
 на консультацию! 



Схема компоновки данных (1С СКД)

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

Разберем первые три вкладки Схемы компоновки данных (1С СКД) – набор данных, связи набора данных и вычисляемые поля.

Набор данных в 1С СКД

Набор данных включает в себя возможность создания трёх объектов – запрос, объект и объединение, остановимся подробнее на каждом из них:

Запрос

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

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

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

- условия, здесь мы выбираем те объекты, которые можно будет использовать в условиях в СКД.

Объект

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

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

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

Схема компановки тынных 1С СКД.png

Далее заполним Имя объекта, содержащее данные, к примеру, ТоварыСКД и приступаем к программной части:

Создадим кнопку на форме документа, опишем механизм работы в управляемых формах:

&НаКлиенте

Процедура Печать()

НашОтчет = ПечатьНаСервере(); //вызываем функцию на сервере

НашОтчет.Показать(); //выводим сформированный отчет

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

&НаСервере

Функция ПечатьНаСервере()

ОбъектДокумента = РеквизитФормыВЗначение(“Объект”);

//помещаем табличную часть Товары в структуру с наименованием ТоварыСКД так же, как мы указали в самой СКД имя объекта, содержащего данные

НаборДанных = Новый Структура;

НаборДанных.Вставить(“ТоварыСКД”, ОбъектДокумента.Товары);

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

НашМакет = ОбъектДокумента.ПолучитьМакет(“СКД”);

Настройки = НашМакет.НастройкиПоУмолчанию;

//создаем макет компоновки данных с нашими настройками

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(НашМакет, Настройки);

//выполняем компоновку данных с нашим набором данных

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

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

//формируем табличный документ и выводим в него наш отчет

ДокументОтчета = Новый ТабличныйДокумент;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(ДокументОтчета);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Возврат ДокументОтчета;

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

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

Объединение

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

Имеем таблицы:

Таблица 1 (1С,СКД).png

Таблица 2 (1С,СКД).png

При связи мы получим:

Таблица 3 (1С,СКД).png

А при объединении:

Таблица 4 (1С,СКД).png

Рассмотрим теперь заполнение колонок в наборах данных (некоторые пропустим, так как связаны с другими вкладками, к ним вернемся в будущих статьях):

- поле, указываем общее название реквизита;

­­- путь, указываем название реквизита, по которому будем к нему обращаться в СКД, к примеру, в Вычисляемых полях;

- заголовок, указываем наименование реквизита, которое будет выводится в отчете;

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

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

- выражение, по которому вычисляется представление поле, удобно использовать, когда нам нужно изменить немного вывод реквизитов, к примеру, нам нужно, чтобы после имени номенклатуры выводился склад, на котором находится она, тогда заполним следующее: Номенклатура + “ находится на складе ” + Склад. Повторюсь, что обращение реквизитам осуществляется через название, указанное в колонке путь;

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

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

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

Доступные значения (1С,СКД).png

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

Связи набора данных в 1С СКД

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

Вычисляемые поля в 1С СКД

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

Поля в 1С СКД.png

Заметим, что название реквизитов написаны через точку, то есть мы можем здесь обращаться как дочерним элементам, так и к созданным папкам в составе набора:

1С, СКД.png

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

Нужна помощь в работе с 1С? Звоните (495)6624810


Возврат к списку


Ваша корзина пуста
Статьи 1C:ERP Управление Предприятием
1C:ERP Управление предприятием Обновление


Copyright © 2009, 2010 "НовоеО"
(function(w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter3173182 = new Ya.Metrika(3173182); yaCounter3173182.clickmap(true); yaCounter3173182.trackLinks(true); } catch(e) {} }); })(window, 'yandex_metrika_callbacks');