Для чего нужны роли полей СКД в 1С?

Вкладка набора данных в СКД, заполнение ролей полей компоновки

Доброго времени суток, уважаемые читатели блога SoftMaker.kz! В прошлый раз мы уже затрагивали тему СКД, которая рассказывала о применении функции Массив (Array) и СоединитьСтроки (JoinStrings). А сегодня в первой из этой серии статей, мы узнаем для чего нужны роли полей компоновки данных, а также рассмотрим примеры заполнения этих ролей.

Роль поля СКД указывает, что из себя представляет данное поле. Каждая роль поля может содержать свое свойство. Например, свойство «Период» имеет числовое значение и содержит номер периода, если поле период. Если значение свойство «Период» равно 0 (ноль), то это означает, что данное поле периодом не является. Или свойство «Измерение» – содержит признак того, что поле является измерением. Если поле является измерением, то эта информация используется при расчете итогов по полям остатка.

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

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

Добавим набор данных запрос. Для этого нам нужно сделать активным корневой элемент «Конструктор запроса». Давайте обратимся к виртуальной таблице «ОстаткиИОбороты» регистра накопления. Что мы видим?

Вкладка набора данных в СКД, заполнение ролей полей компоновки

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

Предположим, что в запросе мы используем вычисляемое поле, например, применяем оператор языка запросов «ВЫБОР». Опишем такое условие:

ВЫБОР
	КОГДА
	ОстаткиТоваровОстаткиИОбороты.Номенклатура =
		Значение(Справочник.Номенклатура.ПустаяСсылка)
	ТОГДА
		Значение(Справочник.Номенклатура.Шампунь)
	ИНАЧЕ
		ОстаткиТоваровОстаткиИОбороты.Номенклатура
КОНЕЦ

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

Влияние вычисляемого поля на заполнение полей СКД

Как видим для поля «Номенклатура» роль не заполнилась. Но как видно на изображении в действительности у нас не проставлена роль, для поля «Поле1», и в этом случае остаток не будет корректно рассчитан.

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

В конце статьи хочу посоветовать вам бесплатный курс по компоновке данных от Сотникова Анатолия. Это курс от опытного программиста. Он на отдельной базе покажет вам, как строить отчеты в СКД. Вам только нужно внимательно слушать и запоминать! Вы получите ответы на такие вопросы:
  • Как создать простой отчет в виде списка?
  • Для чего нужны колонки Поле, Путь и Заголовок на закладке «Поля»?
  • Какие существуют ограничения для полей компоновки?
  • Как правильно настраивать роли?
  • Какие существуют роли для полей компоновки?
  • Где найти закладку компоновка данных в запросе?
  • Как настраивать параметры в СКД?
  • Дальше еще интереснее...
Наверное, не стоит самому стараться бороздить интернет в поисках нужной информации? Тем более все готово для применения. Только начните! Все подробности о том, что есть в бесплатных видеоуроках на странице автора.

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

0 ответы

Ответить

Want to join the discussion?
Feel free to contribute!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *