1с скд ограничение поля ограничение реквизитов

Приветствую вас, дорогие мои читатели! Давайте продолжим рассматривать основы системы компоновки. Во второй части этой серии статей вы узнали различия набора данных — запрос от обычного запроса. Также вы рассмотрели параметры виртуальных таблиц и и познакомились с расширением языка запросов.  А теперь посмотрите в содержании, что вы узнаете здесь. Успехов!

  1. Функции языка выражений СКД.
  2. Особенности работы СКД.
  3. Основные настройки полей СКД.

Функции языка выражений СКД.

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

НачалоПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), "Месяц")

Эта функция отличается от функции языка запросов вторым параметром. Здесь используется строка «Месяц», тогда как в функции языка запросов литерал МЕСЯЦ.

Описание функций можно найти, открыв Конфигуратор: Справка -> Содержание -> Система компоновки данных -> Язык выражений системы компоновки данных -> Функции языка выражений системы компоновки данных.

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

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

Особенности работы СКД.

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

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

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

Основные настройки полей СКД.

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

Колонка «Поле» содержит название поля, которое получается из информационной базы (ИБ).
Неизменяемое значение, которое жёстко связано с запросом. Оно соответствует псевдониму запроса.

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

Может ли такая конструкция повредить работе пользователя? Да. Ведь в настройках варианта отчета появится два поля «Товар» и «Номенклатура». Для пользователя будет непонятно, чем они отличаются, хотя эти отборы идентичны.

Хотя можно исключить появление поля «Номенклатура», поставив галочки в колонках «Ограничение поля»-«Условие» и «Ограничение реквизитов»-«Условие» на закладке «Наборы данных» в настройках полей. Кроме того, можно убрать галочку с флага «Автозаполнение» и в Конструкторе запроса на вкладке «Компоновка данных» заполнить все поля.

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

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

Можно применять следующий способ для работы с колонкой «Путь». С помощью указания пути можно создавать вложенные виртуальные реквизиты элемента. Например, поместим реквизит «Качество» внутрь реквизита «Товар». Изменим поле «Путь» реквизита «Качество» на «Товар.Качество». Теперь на закладке «Настройки» во вкладке «Выбранные поля» мы не найдём поле «Качество», но оно появится в внутри поля «Товар».

Рассмотрим подробнее настройки ограничения доступности. Как видим, существуют две строки для ограничения доступности в колонках «Ограничение поля» и «Ограничение реквизитов».

Колонки СКД «Ограничение поля» и «Ограничение реквизитов»

Колонки ограничения полей СКД

Колонка «Ограничение поля» означает, что ограничения будут наложены на само поле. Колонка «Ограничение реквизитов» означает, что ограничения будут наложены на вложенные реквизиты этого поля, если поле относится к сложному типу данных, такому как справочник или документ.

Каждая строка разбита ещё на четыре колонки. Если для поля или реквизитов этого поля установлен флаг:

  • Поле, то они не будут доступны для выбора на закладке «Настройки» во вкладке «Выбранные поля».
  • Условие, то они не будут доступны как условие на закладке «Настройки» во вкладке «Отбор».
  • Группа, то на закладке «Настройки» при создании новой группировки не будет доступна группировка по ним.
  • Упорядочивание, то они не будут доступны для упорядочивания на закладке «Настройки» во вкладке «Сортировка».

Колонка «Выражение представления» нужна для изменения представление поля в результате отчёта. Например, нужно выводить не только наименование товара, но и его артикул. Поэтому в этой колонке можно написать следующее:

Товар.Артикул + "-" + Товар.Наименование

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

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

ДляСКД.ПолучитьПредставление(Товар)

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

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

Ну вот, рассказал всё, как и обещал. Если есть вопросы, то пишите  их в комментариях. Чтобы материал закрепился у вас в уме, подготовлю тест.

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


Также у вас есть возможность скачать книгу по основам СКД

ПОДПИСКА

Для набора данных «Объект» используется для передачи в СКД внешних данных, таких как таблица значений, результат запроса. Для этого набора данных доступны описания полей, а также название объекта, которые будет передан в СКД:
title

Описание полей набора данных
После определения, какого вида мы набор данных используем, следует внести описание полей для данных, выводимых в отчет:
title

В таблице «Поля» заполняются свойства:
1. «Поле» — имя поля, в случае запроса заполняется автоматически, в случае набора данных «Объект» определяется вручную.

2. «Путь» — указывается путь к данным из набора. Именно это название, указанное в этом поле будет фигурировать во всех дальнейших настройках СКД.

3. «Заголовок» — строка с заголовком поля, которые выводится в отчет или в настройках

4. «Ограничение доступности поля» — ряд галочек – настроек, служит для указания того, как данное поле не может быть использовано в настройках. Возможно, указать такие ограни-чения
a. «Поле» — поле нельзя использовать в выборках СКД
b. «Условие» — поле нельзя использовать как условие
c. «Группа» — запрет на использование поля в группировках
d. «Упорядочивание» — запрет использовать поле в сортировках

5. «Ограничение доступности полей-реквизитов» — ряд галочек ниже, указывает на ограничения для реквизитов поля, смысл установки данных ограничений такой же что и в для поля

6. «Роль» — обозначает дополнительные свойства поля и его взаимоотношения с другими полями. Для редактирования ролей открывается специальный диалог:
title
a. «Без роли» — никаких особых «нагрузок» на поле не накладывается, режим по умолчанию для большинства полей
b. «Период» — содержит номер периода, если поле имеет тип периода. Самый младший период должен иметь тип 1. Например, в запросе рассчитываем итоги по различным периодам: ПериодСекунда = 1, ПериодДень=2, ПериодНеделя=3 и т.д. Данный номер будет указывать, как в СКД рассчитывается итоги по полям остатка.
c. «Дополнительный» – указывает на то, что поле–период не является обязательным
d. «Счет» — указывает на то, что поля является бухгалтерским счетом, используется для рас-чета бухгалтерских итогов.
e. «Вид» — строка выражение, с помощью которого рассчитывается вид счета. Результатом выражения должно быть значение перечисления ВидСчета (Активный, Пассивный, Активно/Пассивный), либо число. Значение числа 0 соответствует активному счету, 1 – пассивному, 2 – активно-пассивному. Выражение записывается на языке выражений системы компоновки данных. Данная информация используется при расчете по полям бухгалтерских остатков;
f. «Остатки» – признак того, что поле является полем остатка;
g. «Имя» – строка, содержащая имя группы полей остатка. Например: «Сумма», «Количест-во»;
h. «Тип» – тип остатка (НачальныйОстаток, КонечныйОстаток, Нет (поле не является остат-ком));
i. «Бух. Тип» – тип бухгалтерского остатка (Дебет, Кредит, Нет (поле не является бухгалтерским остатком));
j. «Поле счета» – имя поля-счета, для которого рассчитываются остатки;
k. Игнорировать значения NULL – если установлено, то в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL.
l. «Обязательное» — при выполнении запроса поле с указанным флажком будут присутствовать всегда, даже если не были выбраны в выборке.

7. «Выражение представления» — содержит выражение, которое используется при выводе зна-чений поля в отчет.
title
Например нужно преобразовать дату в особый формат для этого указываем такое выражение «Формат(ПериодПолугодие,»ДФ = ‘»»Полугодие с»» дд.ММ.гггг»»‘»)» или ссылку на документ преобразовать к произвольному виду: ««Дата: »+Ссылка.Дата+«Номер: »+Ссылка.Номер».

8. «Выражение упорядочивания» — как упорядочивать это поле. При редактировании открывается диалог:
title
В диалоге можно указать, как данное поле упорядочивать. «Выражение» — как упорядочива-ется это поле, «Тип упорядочивания» — «по возрастанию» или «по убыванию», «Необходи-мость автоупорядочивания» – автоматическое определение полей, по которым необходимо упорядочивать результат компоновки данных.

9. «Проверка иерархии» — используется, в случае если нужно формировать нестандартные отборы.
a. «Набор данных» – набор данных для проверки иерархии;
b. «Параметр» – параметр, в который будет подставляться значение, для которого нужно получить дочерние элементы;

10. «Тип значения» — уточнение типа значения поля набора данных, полезно использховать для уточнения полей составного типа

11. «Оформление» — параметры оформления поля набора данных. При редактировании открывается диалог:
title
Можно задавать следующие параметры:
Цвет фона — Определяет цвет фона в ячеках
Цвет текста — Определяет цвет текст в ячейках
Цвет в диаграмме — Определяет цвет линий в диа-грамме
Цвет границы — Цвет линий границы
Стиль границы — Типы линий границы
Стиль границы слева — слева
Стиль границы сверху — сверху
Стиль границы справа — справа
Стиль границы снизу — снизу
Шрифт — Вид шрифта, толщина, наклон и т.д.
Отступ — Количество знаков отступа
Авто отступ — Количество знаков отступа, применяется в группировках
Горизонтальное положение — Положение текста в ячейке по горизонтали
Вертикальное положение — Положение текста в ячейке по вертикале
Размещение — Размещение текста который не помещается в ячейку
Ориентация текста — Ориентация текст в градусах (90-поворот перпендикулярно)
Формат — Форматная строка значения
Выделять отрицательные — Признак того чтобы выделять отрицательные значения
Минимальная ширина — Минимальная ширина ячейки в пунктах
Минимальная высота — Минимальная высота ячеки
Максимальная высота — Максимальная высота
Текст — Текст который выводится вместо значения

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


Смотрите так же:
Что такое СКД?
Создание отчетов на основе СКД
Конструктор схемы компоновки данных
Конструктор схемы компоновки данных — Закладка Набор данных — Запрос
Конструктор запросов схемы компоновки данных
Конструктор схемы компоновки данных — Закладка Набор данных — Объект
Конструктор схемы компоновки данных — Закладка Набор данных — Объединение
Конструктор схемы компоновки данных — Закладка Связи наборов данных
Конструктор схемы компоновки данных — Закладка Вычисляемые поля
Конструктор схемы компоновки данных — Закладка Ресурсы
Конструктор схемы компоновки данных — Закладка Параметры
Конструктор схемы компоновки данных — Закладка Макеты
Конструктор схемы компоновки данных — Закладка Вложенные схемы
Конструктор схемы компоновки данных — Закладка Настройки

Я
   zladenuw

20.02.13 — 17:34

почему для некоторых полей стоит ограничение реквизита для других нет.

  

Партнерская программа EFSOL Oblako

   Kashemir

1 — 20.02.13 — 17:47

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

   zladenuw

2 — 20.02.13 — 17:48

(1) так поле есть. ограничение поля могу ставить или снимать. а вот для реквизита не доступна. вот тут понять не могу. мне это поле нужно в сортировку внести.

   zladenuw

3 — 20.02.13 — 17:50

вот скрин.

http://www.ximage.ru/index.php?id=1361368214

   zladenuw

4 — 20.02.13 — 17:51

статью могу выбрать. а вот код нет. а он мне нужен.

   zladenuw

5 — 20.02.13 — 17:51

мне нужно вывести это поле вместе с группировкой. и отсортировать по другому полю. а из за ограничение не дает :(. как быть

   Kashemir

6 — 20.02.13 — 17:55

(5) Зачем обманываешь — ты можешь выбирать кодфоззи.

   Kashemir

7 — 20.02.13 — 17:56

(5) Или какого типа у тебя кодфоззи ?

   zladenuw

8 — 20.02.13 — 18:07

(7) число. так не дает. пишет вот что

Ошибка исполнения отчета

по причине:

Поле «Код fozzy» не может быть использовано в группировке «Статья»

И все. и так же если пробую добавить в сортировку

   zladenuw

9 — 20.02.13 — 18:08

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

   vicof

10 — 20.02.13 — 18:09

Не добавляй его в выбранные поля, а добавь в группировку по статье.

   zladenuw

11 — 20.02.13 — 18:13

(10) понял. а как в сортировку добавить другое поле? пишет такую же ошибку.

   Kashemir

12 — 20.02.13 — 18:14

(8) Так это совсем другая проблемая, не относящаяся к теме топика. Скорее всего у тебя там строка неопределенной длины.

   Kashemir

13 — 20.02.13 — 18:14

+(12) А так ты еще и забыл погруппировать — тогда конечно в (10) правильный ответ.

   zladenuw

14 — 20.02.13 — 18:15

(12) сделал как посоветовали в (10) и все прошло.

А вот со вторым полем не катит. поле числовое. длина 10

   zladenuw

15 — 20.02.13 — 18:15

(14) мне по нему надо только упорядочить. без отображения

   Kashemir

16 — 20.02.13 — 18:15

(14) Вообще неясно что у тебя за проблема. Сортируй себе — нет никаких проблем.

   Kashemir

17 — 20.02.13 — 18:16

(15) Это не вкладывается в рамки логики — если ты не группируешь по полю, и используешь его Н подмножество значений для группировки — то че ты вообще собираешься получить ?

   Kashemir

18 — 20.02.13 — 18:17

+(17) т.е. сортировки

   Kashemir

19 — 20.02.13 — 18:19

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

  

zladenuw

20 — 20.02.13 — 18:19

(19) все понял. спасибо

Быстрый старт в Python для 1С Разработчиков | 1s-to-python.ru

Функции языка выражений системы компоновки данных

Вычислить
ВычислитьВыражение
ВычислитьВыражениеСГруппировкойМассив
ВычислитьВыражениеСГруппировкойТаблицаЗначений
Уровень
НомерПоПорядку
НомерПоПорядкуВГруппировке
Формат
НачалоПериода
КонецПериода
ДобавитьКДате
РазностьДат
Подстрока
ДлинаСтроки
Год
Квартал
Месяц
ДеньГода
День
Неделя
ДеньНедели
Час
Минута
Секунда
Выразить
ЕстьNull
Функции общих модулей
Представление
Строка
ЗначениеЗаполнено
УровеньВГруппировке

Вычислить (Evaluate)

Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки.
Синтаксис:

Вычислить(Выражение, Группировка, ТипРасчета)

Параметры: Выражение. Тип Строка. Содержит вычисляемое выражение; Группировка. Тип Строка. Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем. Например:

Сумма(Продажи.СуммаОборот) / Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)
В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке.

ТипРасчета. Тип Строка. В случае если данный параметр имеет значение «ОбщийИтог», выражение будет вычисляться для всех записей группировки. В случае если значение параметра «Группировка», значения будут вычисляться для текущей групповой записи группировки. ВычислитьВыражение (EvalExpression)

Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки.
Синтаксис:

ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)

Параметры: Выражение. Тип Строка. Содержит вычисляемое выражение; Группировка. Тип Строка. Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем. Например:

Сумма(Продажи.СуммаОборот) / Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)
В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке;

ТипРасчета. Тип Строка. В случае если данный параметр имеет значение «ОбщийИтог», выражение будет вычисляться для всех записей группировки.
В случае если значение параметра «Группировка», значения будут вычисляться для текущей групповой записи группировки.
Если параметр имеет значение «ГруппировкаНеРесурса», то при вычислении функции для групповой записи по ресурсам, выражение будет вычислено для первой групповой записи исходной группировки.
При вычислении функции ВычислитьВыражение со значением «ГруппировкаНеРесурса» для групповых записей, не являющихся группировками по ресурсам, функция вычисляется так же, как бы она вычислялась со значением параметра «Группировка».
Компоновщик макета компоновки данных при генерации макета компоновки данных при выводе в макет поля – ресурса, по которому выполняется группировка, выдает в макет выражение, вычисляемое при помощи функции ВычислитьВыражение, с указанным параметром «ГруппировкаНеРесурса». Для остальных ресурсов в группировке по ресурсу выдаются обычные выражения ресурсов.
Если параметр имеет значение «Иерархия», то выражение нужно вычислять для родительской иерархической записи, если таковая имеется, и для всей группировки, если родительской иерархической записи не имеется. Компоновщик макета при генерации выражения для поля «% в группе иерархии» генерирует выражение, содержащее отношение выражения ресурса к функции ВычислитьВыражение для выражения ресурса, вычисляемого для текущей группировки с типом вычисления «Иерархия». Начало. Указывает, с какой записи нужно начинать фрагмент, в котором рассчитывать агрегатные функции выражения и из какой записи получать значения полей вне агрегатных функций. Строка, содержащая одно из:

  • «Первая» («First»). Необходимо получать первую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение от начала группировки. Получаемое значение должно целым быть числом, больше нуля.
    Например, Первая(3) – получение третьей записи от начала группировки.
    Если первая запись выходит за пределы группировки, то считается, что записей нет.
    Например, если записей 3, а требуется получить Первая(4), то считается, что записей нет.
  • «Последняя» («Last»). Необходимо получить последнюю запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение от конца группировки. Получаемое значение должно целым быть числом, больше нуля.
    Например, Последняя(3) – получение третьей записи от конца группировки.
    Если последняя запись выходит за пределы группировки, то считается, что записей нет.
    Например, если записей 3, а требуется получить Последняя(4), то считается, что записей нет.
  • «Предыдущая» («Previous»). Необходимо получить предыдущую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение назад от текущей записи группировки.
    Например, Предыдущая(2) – получение предыдущей от предыдущей записи.
    Если предыдущая запись выходит за пределы группировки (например, для второй записи группировки требуется получить Предыдущая(3)), то получается первая запись группировки.
    При получении предыдущей записи для итога по группировке считается, получается первая запись.
  • «Следующая» («Next»). Необходимо получить следующую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение вперед от текущей записи группировки.
    Например, Следующая(2) – получение следующей от следующей записи.
    Если следующая запись выходит за пределы группировки, то считается, что записей нет.
    Например, если записей 3 и для третьей записи получают Следующая, то считается, что записей нет.
    При получении следующей записи для итога по группировке считается, что записи нет.
  • «Текущая» («Current»). Необходимо получить текущую запись.
    При получении для итога по группировке получается первая запись.
  • «ОграничивающееЗначение» («BoundaryValue»). Необходимость получить запись по указанному значению. После слова ОграничивающееЗначение в скобках нужно указать выражение, со значения которого нужно начинать фрагмент, первого поля упорядочивания.
    В качестве записи будет получаться первая запись, значение поля упорядочивания у которой больше или равно указанному значению.
    Например, если в качестве поля упорядочивания используется поле Период, и оно имеет значения 01.01.2010, 01.02.2010, 01.03.2010, и требуется получить ОграничивающееЗначение(ДатаВремя(2010, 1, 15)), то будет получена запись с датой 01.02.2010.

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

  • «Первая» («First»). Необходимо получать первую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение от начала группировки. Получаемое значение должно целым быть числом, больше нуля. Например, Первая(3) – получение третьей записи от начала группировки.
    Если первая запись выходит за пределы группировки, то считается, что записей нет. Например, если записей 3, а требуется получить Первая(4), то считается, что записей нет.
  • «Последняя» («Last»). Необходимо получить последнюю запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение от конца группировки. Получаемое значение должно целым быть числом, больше нуля. Например, Последняя(3) – получение третьей записи от конца группировки.
    Если последняя запись выходит за пределы группировки, то считается, что записей нет. Например, если записей 3, а требуется получить Последняя(4), то считается, что записей нет.
  • «Предыдущая» («Previous»). Необходимо получить предыдущую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение назад от текущей записи группировки. Например, Предыдущая(2) – получение предыдущей от предыдущей записи.
    Если предыдущая запись выходит за пределы группировки (например, для второй записи группировки требуется получить Предыдущая(3)), то считается, что записей нет.
    При получении предыдущей записи для итога по группировке считается, получается последняя запись.
  • «Следующая» («Next»). Необходимо получить следующую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение вперед от текущей записи группировки. Например, Следующая(2) – получение следующей от следующей записи.
    Если следующая запись выходит за пределы группировки, получается последняя запись. Например, если записей 3 и для третьей записи получают Следующая, то получается третья запись.
    При получении следующей записи для итога по группировке считается, что записи нет.
  • «Текущая» («Current»). Необходимо получить текущую запись.
    При получении для итога по группировке получается первая запись.
  • «ОграничивающееЗначение» («BoundaryValue»). Необходимость получить запись по указанному значению. После слова ОграничивающееЗначение в скобках нужно указать выражение, со значения которого нужно начинать фрагмент, первого поля упорядочивания.
    В качестве записи будет получаться последняя запись, значение поля упорядочивания у которой меньше или равно указанному значению. Например, если в качестве поля упорядочивания используется поле Период, и оно имеет значения 01.01.2010, 01.02.2010, 01.03.2010, и требуется получить ОграничивающееЗначение(ДатаВремя(2010, 1, 15)), то будет получена запись с датой 01.01.2010.

Сортировка. Строка, в которой перечисляются выражения, разделенные запятыми, в направлении которых нужно упорядочивать последовательность. Если не указана, то упорядочивание выполняется также как и у группировки, для которой вычисляется выражение. После каждого выражения можно указать ключевое слово Возр, для упорядочивания по возрастанию, Убыв, для упорядочивания по убывания, Автоупорядочивание, для упорядочивания ссылочных полей по полям, по которым нужно упорядочивать объект, на который выполняется ссылка. Слово Автоупорядочивание может использоваться как со словом Возр, так и со словом Убыв. ИерархическаяСортировка. Аналогично сортировке. Применяется для упорядочивания иерархических записей. Если не указано, компоновщик макета генерирует упорядочивание в соответствии с упорядочиванием, указанным в параметре Сортировка. ОбработкаОдинаковыхЗначенийПорядка. Строка, содержащее одно из:

  • «Вместе» («Together») — обозначает, что для определения предыдущей и следующей записей используется последовательность упорядоченных записей;
  • «Отдельно» («Separately») — обозначает, что предыдущая и следующие записи определяются на основании значений выражений упорядочивания;

Например, если полученная последовательность упорядочена по дате:

1. 01 января 2001 Иванов М. 10
2. 02 января 2001 Петров С. 20
3. 02 января 2001 Сидоров Р. 30
4. 03 января 2001 Петров С. 40

При использовании обработки одинаковых значений порядка «Отдельно», предыдущей к записи 3 будет запись 2, а при использовании «Вместе» — запись 1. А фрагментом для текущей записи к записи 2 для «Отдельно» будет запись 2, а для «Вместе» — записи 2 и 3. Таким образом, сумма по текущей записи для «Отдельно» составит 20, а для «Вместе» — 50.
При указанном «Вместе» в параметрах Начало и Конец нельзя указывать смещение для позиций «Первая», «Последняя», «Предыдущая», «Следующая».
Значение по умолчанию «Отдельно».

Примечания:

Функция учитывает отбор группировок, но не учитывает иерархические отборы.
Функция не может применяться к группировке в групповом отборе этой группировки. Например, в отборе группировки Номенклатура нельзя использовать выражение ВычислитьВыражение(«Сумма(СуммаОборот)», , «ОбщийИтог») > 1000. Но такое выражение можно использовать в иерархическом отборе.
Если конечная запись предшествует начальной, то считается, что записи для расчета детальных данных и расчета агрегатных функций отсутствуют.
При расчете интервальных выражений для общего итога (параметр Группировка имеет значение «ОбщийИтог») считается, что записи для расчета детальных данных и расчета агрегатных функций отсутствуют.
Компоновщик макета при генерации выражения функции ВычислитьВыражение, в случае если выражение упорядочивания содержит поля, которые не могут быть использованы в группировке, заменяет функцию ВычислитьВыражение на NULL.

ВычислитьВыражениеСГруппировкойМассив (EvalExpressionWithGroupArray)

Синтаксис:

ВычислитьВыражениеСГруппировкойМассив (Выражение, ВыраженияПолейГруппировки, ОтборЗаписей, ОтборГруппировок)

Параметры: Выражение — выражение, которое нужно вычислить. Тип Строка. Например, «Сумма(СуммаОборот)»; ВыраженияПолейГруппировки — выражения полей группировки, перечисленные через запятую. Например, «Контрагент, Партия»; ОтборЗаписей — выражение, применяемое к детальным записям. Например, «ПометкаУдаления = Ложь»; ОтборГруппировок — отбор, применяемый к групповым записям. Например: «Сумма(СуммаОборот) > &Параметр1». Функция возвращает массив, каждый элемент которого содержит результат вычисления выражения для группировки по указанному полю.
Пример:

Максимум(ВычислитьВыражениеСГруппировкойМассив («Сумма(СуммаОборот)», «Контрагент»));

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

ВычислитьВыражениеСГруппировкойМассив(«Сумма(СуммаОборот)», «Контрагент»)

компоновщик макета сгенерирует для вывода следующее выражение:

СоединитьСтроки(Массив(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений («Представление(Сумма(НаборДанных.СуммаОборот)), Сумма(НаборДанных.СуммаОборот)», «НаборДанных.Контрагент»), «2»)))

ВычислитьВыражениеСГруппировкойТаблицаЗначений (EvalExpressionWithGroupValueTable)

Синтаксис:

ВычислитьВыражениеСГруппировкойТаблицаЗначений (Выражение, ВыраженияПолейГруппировки, ОтборЗаписей, ОтборГруппировок)

Параметры:
Параметры: Выражение — выражение, которое нужно вычислить. Тип Строка. В строке может быть перечислено несколько выражений через запятую. После каждого выражения может быть необязательное ключевое слово КАК и имя колонки таблицы значений. Например: «Контрагент, Сумма(СуммаОборот) Как ОбъемПродаж». ВыраженияПолейГруппировки — выражения полей группировки, перечисленные через запятую. Например, «Контрагент, Партия»; ОтборЗаписей — выражение, применяемое к детальным записям. Например, «ПометкаУдаления = Ложь»; ОтборГруппировок — отбор, применяемый к групповым записям. Например: «Сумма(СуммаОборот) > &Параметр1». Функция возвращает таблицу значений, каждый элемент которого содержит результат вычисления выражения для группировки по указанному полю.
Пример:

ВычислитьВыражениеСГруппировкойТаблицаЗначений («Контрагент КАК Контрагент, Сумма(СуммаОборот) Как ОбъемПродаж», «Контрагент»)

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

ВычислитьВыражениеСГруппировкойТаблицаЗначений («Контрагент, Сумма(СуммаОборот)», «Контрагент»)

Компоновщик макета сгенерирует для вывода следующее выражение:

СоединитьСтроки(ПолучитьЧасть(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений («НаборДанных.Контрагент, НаборДанных.КонтрагентПредставление, Сумма(НаборДанных.СуммаОборот), Представление(НаборДанных.СуммаОборот), НаборДанных.ПолеУпорядочивание», «НаборДанных.Контрагент»), «5, 1, 3»), «2, 4»))

Уровень (Level)

Функция предназначена для получения текущего уровня записи.
Пример:

Уровень()

НомерПоПорядку (SequenceNumber)

Получить следующий порядковый номер.
Пример:

НомерПоПорядку()

НомерПоПорядкуВГруппировке (SequenceNumberInGrouping)

Возвращает следующий порядковый номер в текущей группировке.
Пример:

НомерПоПорядкуВГруппировке()

Формат (Format)

Получить отформатированную строку переданного значения.
Синтаксис:

Формат(Значение, ФорматнаяСтрока)

Параметры: Значение — выражение, которое требуется отформатировать; ФорматнаяСтрока — форматная строка задается в соответствии с форматной строкой 1С:Предприятие. Пример:

Формат(РасходныеНакладные.СуммаДок, «ЧДЦ=2»)

НачалоПериода (BeginOfPeriod)

Функция предназначена для выделения определенной даты из заданной даты.
Синтаксис:

НачалоПериода(Дата, ТипПериода)

Параметры: Дата — тип Дата. Заданная дата; ТипПериода — тип Строка. Содержит одно из значений:

  • Минута;
  • Час;
  • День;
  • Неделя;
  • Месяц;
  • Квартал;
  • Год;
  • Декада;
  • Полугодие.

Пример:

НачалоПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), «Месяц») 

Результат:

01.10.2002 0:00:00

КонецПериода (EndOfPeriod)

Функция предназначена для выделения определенной даты из заданной даты.
Синтаксис:

КонецПериода(Дата, ТипПериода)

Параметры: Дата — тип Дата. Заданная дата; ТипПериода — тип Строка. Содержит одно из значений:

  • Минута;
  • Час;
  • День;
  • Неделя;
  • Месяц;
  • Квартал;
  • Год;
  • Декада;
  • Полугодие.

Пример:

КонецПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), «Неделя»)

Результат:

13.10.2002 23:59:59

ДобавитьКДате (DateAdd)

Функция предназначена для прибавления к дате некоторой величины.
Синтаксис:

ДобавитьКДате(Выражение, ТипУвеличения, Величина )

Параметры: Выражение — тип Дата. Исходная дата; ТипУвеличения — тип Строка. Содержит одно из значений:

  • Минута;
  • Час;
  • День;
  • Неделя;
  • Месяц;
  • Квартал;
  • Год;
  • Декада;
  • Полугодие.

Величина – на сколько необходимо увеличить дату. Тип Число. Дробная часть игнорируется. Пример:

ДобавитьКДате(ДатаВремя(2002, 10, 12, 10, 15, 34), «Месяц», 1)

Результат:

12.11.2002 10:15:34

РазностьДат (DateDifference)

Функция предназначена для получения разницы между двумя датами.
Синтаксис:

РазностьДат(Выражение1 , Выражение2 , ТипРазности)

Параметры: Выражение1 — тип Дата. Исходная дата; Выражение2 — тип Дата. Вычитаемая дата; ТипРазности — тип Строка. Содержит одно из значений:

  • Секунда;
  • Минута;
  • Час;
  • День;
  • Месяц;
  • Квартал;
  • Год.

Пример:

РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34),
ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), «ДЕНЬ») 

Результат:

2

Подстрока (Substring)

Данная функция предназначена для выделения подстроки из строки.
Синтаксис:

Подстрока(Строка, Позиция, Длина)

Параметры: Строка — тип Строка. Строка, из которой выделяют подстроку; Позиция — тип Число. Позиция символа, с которого начинается выделяемая из строки подстрока; Длина — тип Число. Длина выделяемой подстроки. Пример:

ПОДСТРОКА(Контрагенты.Адрес, 1, 4)

ДлинаСтроки (StringLength)

Функция предназначена для определения длины строки.
Синтаксис:

ДлинаСтроки(Строка)

Параметр: Строка — тип Строка. Строка, длину которой определяют. Пример:

Строка(Контрагенты.Адрес)

Год (Year)

Данная функция предназначена для выделения года из значения типа Дата.
Синтаксис:

Год(Дата)

Параметр: Дата — тип Дата. Дата, по которой определяют год. Пример:

ГОД(РасхНакл.Дата)

Квартал (Quarter)

Данная функция предназначена для выделения номера квартала из значения типа Дата. Номер квартала в норме находится в диапазоне от 1 до 4.
Синтаксис:

Квартал(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют квартал Пример:

КВАРТАЛ(РасхНакл.Дата)

Месяц (Month)

Данная функция предназначена для выделения номера месяца из значения типа Дата. Номер месяца в норме находится в диапа-зоне от 1 до 12.

Синтаксис:

Месяц(Дата)

Параметр: Дата — тип Дата. Дата, по которой определяют месяц. Пример:

МЕСЯЦ(РасхНакл.Дата)

ДеньГода (DayOfYear)

Данная функция предназначена для получения дня года из значения типа Дата. День года в норме находится в диапазоне от 1 до 365(366).

Синтаксис:

ДеньГода(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют день года. Пример:

ДЕНЬГОДА(РасхНакл.Дата)
 

День (Day)

Данная функция предназначена для получения дня месяца из значения типа Дата. День месяца в норме находится в диапазоне от 1 до 31.
Синтаксис:

День(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют дня месяца. Пример:

ДЕНЬ(РасхНакл.Дата)

Неделя (Week)

Данная функция предназначена для получения номера недели года из значения типа Дата. Недели года нумеруются, начиная с 1. 
Синтаксис:

Неделя(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют номера недели. Пример:

НЕДЕЛЯ(РасхНакл.Дата)

ДеньНедели (WeekDay)

Данная функция предназначена для получения дня недели из значения типа Дата. День недели в норме находится в диапазоне от 1 (понедельник) до 7(воскресенье).
Синтаксис:

ДеньНедели(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют день недели . Пример:

ДЕНЬНЕДЕЛИ(РасхНакл.Дата)

Час (Hour)

Данная функция предназначена для получения часа суток из значения типа Дата. Час суток находится в диапазоне от 0 до 23.
Синтаксис:

Час(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют час суток. Пример:

ЧАС(РасхНакл.Дата)

Минута (Minute)

Данная функция предназначена для получения минуты часа из значения типа Дата. Минута часа находится в диапазоне от 0 до 59.
Синтаксис:

Минута(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют минута часа. Пример:

МИНУТА(РасхНакл.Дата)

Секунда (Second)

Данная функция предназначена для получения секунды минуты из значения типа Дата. Секунда минуты находится в диапазоне от 0 до 59.
Синтаксис:

Секунда(Дата)

Параметр Дата — тип Дата. Дата, по которой определяют секунды минуты. Пример:

СЕКУНДА(РасхНакл.Дата)

Выразить (Choice)

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

Выразить(Выражение, УказаниеТипа)

Параметр 
Параметры: Выражение — преобразуемое выражение; УказаниеТипа — тип Строка. Содержит строку типа. Например, «Число», «Строка» и т.п. Кроме примитивных типов данная строка может содержать имя таблицы. В этом случае будет осуществлена попытка выразить к ссылке на указанную таблицу. Пример:

Выразить(Данные.Реквизит1, «Число(10,3)»)

ЕстьNull (IsNull)

Данная функция возвращает значение второго параметра в случае, если значение первого параметра NULL
В противном случае будет возвращено значение первого параметра. 
Пример:

ЕстьNULL(Сумма(Продажи.СуммаОборот), 0)

Функции общих модулей

Выражение механизма компоновки данных может содержать вызовы функций глобальных общих модулей конфигурации. Никакого дополнительно синтаксиса для вызова таких функций не требуется.
Пример:

СокращенноеНаименование(Документы.Ссылка, Документы.Дата, Документы.Номер)

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

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

Представление(Контрагент)

Строка (String)

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

Строка(ДатаПродажи)

ЗначениеЗаполнено (ValueIsFilled)

Для значений NULLНеопределено всегда возвращает Ложь.
Для значений Булево всегда возвращат Истину.
Для остальных типов возвращает Истину, если значение отличается от значения по умолчанию для данного типа.
Пример:

ЗначениеЗаполнено(ДатаДоставки)

УровеньВГруппировке (LevelInGroup)

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

УровеньВГруппировке()

Источник: http://erpsolution.ru/forum/showthread.php?t=1217&page=2 Механизм свойств (характеристик) и категорий

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

Если информация о характеристиках указана и в запросе (с помощью конструкции ХАРАКТЕРИСТИКИ) и с помощью диалога метаданных, то приоритетом обладает конструкция ХАРАКТЕРИСТИКИ.
Синтаксис:
ХАРАКТЕРИСТИКИ
ТИП(<Имя типа>)
ВИДЫХАРАКТЕРИСТИК <Имя таблицы | (<Объединение запросов>)
ПОЛЕКЛЮЧА <Поле>
ПОЛЕИМЕНИ <Поле>
[ПОЛЕТИПАЗНАЧЕНИЯ <Поле>]
ЗНАЧЕНИЯХАРАКТЕРИСТИК <Имя таблицы | (<Объединение запросов>)
ПОЛЕОБЪЕКТА <Поле>
ПОЛЕВИДА <Поле>
[ПОЛЕЗНАЧЕНИЯ <Поле>]
После ТИП указывается <Имя типа> — имя типа, для которого определяются характеристики.
После ВИДЫХАРАКТЕРИСТИК указывается <Имя таблицы | (<Объединение запросов>) — имя таблицы или текст запроса для получения видов характеристик.
После ПОЛЕКЛЮЧА указывается <Поле> — имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит ключ вида характеристики.
После ПОЛЕИМЕНИ указывается <Поле> — имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит имя характеристики.
После ПОЛЕТИПАЗНАЧЕНИЯ указывается <Поле> — имя поля из таблицы или запроса ВИДЫХАРАКТЕРИСТИК, которое содержит тип значения характеристики.
После ЗНАЧЕНИЯХАРАКТЕРИСТИК указывается <Имя таблицы | (<Объединение запросов>) — имя таблицы или запрос, откуда получать значения характеристик.
После ПОЛЕОБЪЕКТА указывается <Поле> — имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит объект, для которого указана характеристика.
После ПОЛЕВИДА указывается <Поле> — имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит вид характеристики.
После ПОЛЕЗНАЧЕНИЯ указывается <Поле> — имя поля из таблицы или запроса ЗНАЧЕНИЯХАРАКТЕРИСТИК, которое содержит значение характеристики.

Макеты оформления

Конструктор макета оформления компоновки данных открывается из конструктора макета при указании типа макета «Макет оформления компоновки данных».
Окно конструктора состоит из списка областей оформления, таблицы настройки оформления и поля табличного документа «Пример» для показа результата выбранных настроек.
Последовательность действий для настройки оформления следующая: Выбирается область оформления; В таблице настроек указываются (устанавливаются пометки) параметры, оформление которых требуется изменить, и указываются значения оформления; Результат внесенных изменений контролируется в поле «Пример». Если предполагается, что в отчет будет выведено несколько уровней группировки, то нужно в списке областей для каждой области, в которой будут уровни, создать подчиненные области по числу уровней группировки. Для создания уровня области укажите область и нажмите кнопку «Добавить» командной панели. В список областей добавляется строка, имя которой «УровеньN», где N — номер уровня группировки. Выбор оформления уровня группировки выполняется как описано выше.
Замечание: Если было указано несколько уровней, то при удалении уровня группировки, всегда удаляется самый нижний уровень текущей области, не зависимо от того, какой уровень в списке был выбран.

Источник: http://erpsolution.ru/forum/showthread.php?t=1217&page=2 Источник: http://erpsolution.ru/forum/showthread.php?t=1217&page=2 

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

Содержание

Основные понятия и термины СКД

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

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

Устройство схемы компоновки данных 1С

Схема компоновки

Схема компоновки – это краеугольный камень всей СКД. Она описывает все правила получения и обработки данных. Ключевые элементы схемы компоновки:

  • Источники данных – запросы, объединения, объекты
  • Поля компоновки
  • Параметры
  • Вычисляемые поля
  • Ресурсы

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

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

Следующий незаменимый компонент СКД – это настройки компоновки. Настройки отвечают за то, как именно данные будут представлены пользователю. Они включают отборы, структуру выводимых полей, условное оформление и др. Следует знать, что настройки делятся на три вида – фиксированные, стандартные и пользовательские. Вообще, работа с настройками – предмет для отдельной, не менее большой статьи 🙂

Макет компоновки данных

Макет компоновки данных получается в результате применения настроек к схеме компоновки. Макет компоновки состоит из:

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

Важно! Еще раз обращаю внимание, что итоговые запросы, которые формируются в макете компоновки данных, могут сильно отличаться от текстов запросов, указанных в схеме компоновки. Итоговые запросы получаются в результате применения условий по отборам, выбранным полям (те поля, которые не используются, удаляются из текста запроса, кроме полей с ролью “Остатки”), конструкциям расширения языка запросов для СКД и параметрам. Например, отборы могут преобразоваться в параметры вида &П1, &П2 и т.д.

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

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

1С схема компоновки данных сохранить в xml

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

В СКД можно использовать два вида сортировки:

  1. Сортировка на уровне запроса – использование секции “Упорядочить”. В этом случае сортировку в настройках поменять нельзя
  2. Сортировка в настройках компоновки. Данная сортировка применяется уже к выбранным данным, и в итоговый макет компоновки не включается. Сортировка, заданная в настройках компоновки является приоритетной, т.е. она замещает собой сортировку, заданную в запросах.

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

  1. Стандартные условия на уровне запроса – они прописываются в тексте запроса, управлять ими из настроек нельзя. Если в тексте запроса используются параметры, до выполнения компоновки они должны быть заполнены, иначе платформа выдаст сообщение об ошибке.
  2. Условия, записанные в расширении языка запросов. В конструкторе их можно задать на закладке Компоновка данных / Условия. Поля, добавленные таким образом, будут иметь ограничения при настройке – их нельзя указать в качестве выбранных полей, полей группировки или сортировки. Но они будут доступны для использования в отборах. В итоговый запрос макета компоновки данных такие условия попадут, только если они заданы. Кроме того, указание параметров не является обязательным.
  3. Отборы, заданные в настройках компоновки данных. Данный вид отборов распространяется на все наборы данных, и на все запросы в пакетных запросах, если возможно. Этими отборами пользователь может управлять на уровне варианта отчета или пользовательских настроек.

Параметры СКД

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



  • Имя — Имя параметра, как оно задано в тексте запроса


  • Заголовок — представление параметра в настройках компоновки (пользователь будет видеть именно заголовок)


  • Тип — тип значений параметра


  • Доступные значения — список доступных значений. Если этот список заполнен, можно будет указывать только значения из списка, и другое значение параметра выбрать будет нельзя. При его редактировании можно задать произвольные представления для каждого значения. Значения ограничиваются указанным типом параметра. Если параметр имеет составной тип значения, то и в доступных значениях можно выбирать только значения типов, входящих в состав (например, Дата и Строка)


  • Доступен список значений — Установка этого флажка влияет на то, может ли параметр принимать список значений, или только одно значение.


  • Значение — значение параметра по умолчанию


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


  • Параметр функциональной опции — если в СКД используются поля, которые входят в состав параметризируемой функциональной опции, можно управлять их видимостью, указав соответствующий параметр ФО. Параметр СКД и параметр ФО в этом случае должны иметь одинаковый тип. Важно! Значения не параметризируемых ФО также учитываются СКД и влияют на видимость полей в пользовательском режиме.


  • Включать в доступные поля — флажок отвечает за видимость параметра в настройках компоновки, на закладках «Поля», «Отбор» и «Сортировка»


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


  • Запрещать не заполненные значения — флажок, отвечающий за проверку заполнения параметра


  • Использование — данное свойство параметра влияет на использование этого параметра в итоговом запросе макета компоновки. Значение «Всегда» — отключить использование параметра в пользовательском режиме будет нельзя. Параметр всегда будет использоваться в итоговом макете компоновки. Значение «Авто» — в случае, если параметр используется в расширении запроса схемы компоновки (в фигурных скобках), либо не используется в тексте запроса вообще (например, какой-то служебный параметр, добавленный разработчиком), его использование можно отключить в пользовательских настройках. В этом случае он будет отсутствовать в итоговом макете компоновки.


  • Параметры редактирования — открывает окно настроек редактирования, где можно задать формат редактирования, маску, параметры выбора и др.

Поля схемы компоновки данных

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

Основные поля СКД

Основные поля схемы компоновки образуются из полей, указанных в наборах данных. В наборе данных состав полей определяется использованием флажка “Автозаполнение” и использованием расширения языка запроса компоновки данных. Если автозаполнение отключено, основные поля должны быть добавлены и настроены разработчиком вручную. При редактировании набора данных, таблица полей имеет следующие колонки:

  • Путь – строка, описывающая путь к данным, по которому данное поле будет использоваться в выражениях вычисляемых полей, в ресурсах и в настройках компоновки. Для организации иерархии вложенных полей можно записывать путь через точку, например “Номенклатура.Артикул” или “Контрагент.ОсновнойДоговор.ВложенныйРеквизит2Уровня”. Кроме того, путь может указываться строкой, содержащей пробелы. В этом случае поля с пробелами в именах должны указываться в квадратных скобках.
  • Заголовок – строка с заголовком для пользовательского режима. Отображается в пользовательских настройках, при редактировании варианта отчета в режиме 1С Предприятие, в шапке отчета.
  • Ограничение доступности поля – группа флажков, позволяет отключить доступность поля для указания в выбранных полях, отборах, группировках и сортировке.
  • Ограничение доступности реквизитов поля – группа флажков, отвечает за то, как можно использовать реквизиты поля через точку в пользовательских настройках. Важно! Если не ограничено использование вложенных реквизитов, то даже у самого поля установлен флаг ограничения, оно все равно будет доступно!
    Роль
  • Роль – группа настроек, описывающих использование поля при расчете итогов по группировкам для полей остатков. Эти настройки используются при выводе полей виртуальных таблиц “Остатки и обороты” для регистров накопления и регистров бухгалтерии.
  • Выражение представления – выражение на языке выражений СКД, позволяющее переопределить стандартное представление поля. Можно использовать экспортные функции общих модулей, все доступные поля, а также функции языка выражений СКД.
  • Выражения упорядочивания – позволяет задать параметры сортировки, которые будут использоваться при выборе данного поля в настройках сортировки. Указанные выражения упорядочивания переопределяют параметры сортировки по полю, указанные в настройках. Т.е. сортировка будет выполняться по тем параметрам, которые заданы в выражениях упорядочивания.
  • Проверка иерархии: набор данных и параметр – данные поля предназначены для реализации собственной нестандартной иерархии.
  • Тип значения – влияет на допустимые типы значений при выборе поля в качестве значения отбора.
  • Доступные значения – список доступных значений для указания в отборе. Предварительно необходимо обязательно выбрать тип значения для поля.
  • Оформление – позволяет настроить оформление поля – цвет, шрифт, формат и прочее. Важно! Оформление вида текст не работает корректно – произвольный текст не выводится.
  • Параметры редактирования – влияют на редактирование поля при выборе его в отборе в настройках компоновки. Во многом они повторяют настройки элемента формы “Поле ввода”. Можно задать маску, параметры выбора и связи параметров выбора, формат редактирования и другие параметры.

Что означают роли полей схемы компоновки

Роли полей компоновки данных служат для корректного расчета начального и конечного остатков. Указание роли позволяет СКД верно интерпретировать поле. Роли и связанные с ними настройки задаются в отдельном окне:

Роли полей СКД

  • Период – данная роль сообщает СКД, что поле является полем-периодом. В числовом поле рядом следует указать порядковый номер периода от самого младшего к самому большому, начиная с поля НомерСтроки. Поля периодов нельзя использовать в группировках совместно с другими полями – это связано с механизмом расчета итогов по полям остатков.
    В случае, если используется поле периода – Регистратор, вместе с ним обязательно должно присутствовать дополнительное поле периода. Если в параметрах виртуальной таблицы указана периодичность “Авто”, следует выбрать поле “ПериодСекунда”; если выбрана периодичность “Регистратор”, то следует выбрать поле “Период”.
  • Дополнительный – установка этого флажка означает, что данное поле-период является не обязательным. В этом случае выбор дочерних периодов в отчете не требует выбора самого этого поля. Если флажок отключен, то использование дочернего поля-периода требует использования в группировке и самого данного поля. Например, стандартно при выборе периодов из виртуальной таблицы оборотов или остатков и оборотов, поля Регистратор и ПериодСекунда не являются дополнительными, а все остальные (ПериодМинута, ПериодЧас и др.) имеют признак “Дополнительный”.
    Важно! При одновременном использовании группировок по неделям и по месяцам, может возникнуть дублирование группировки по неделям, в том случае, если часть недели приходится на один месяц, а часть – на другой.
    Также, обратите внимание, что если поле указано в качестве поля-периода, то становится невозможным выбор подчиненных полей (реквизитов) данного поля в качестве группировки.
  • Измерение – данный признак сообщает СКД, что поле является измерением. Это используется для корректного расчета итогов по полям остатка. Эту роль необходимо указывать для полей группировок, по которым будет производиться расчет итогов. В случае, если группировка осуществляется не по самому измерению, а по вложенному реквизиту (например, измерение – Товар, а группировка по реквизиту Товар.Артикул), то для поля Товар.Артикул следует указать родительское поле. Для самого родительского поля также должен быть указан признак “Измерение”.
  • Счет – Указание данного поля имеет смысл при рассчете итогов по полям бухгалтерских остатков. Данный признак означает, что поле является полем счета. Можно указать вид счета, указав строку на языке выражений СКД. Результатом выражения должно быть значение перечисления ВидСчета – Активный, Пассивный, Активно / Пассивный. Также можно задать вид счета числом: 0 – активный, 1 – пассивный, 2 – активно-пассивный. Если вид счета не указан, СКД будет интерпретировать данный счет как активно-пассивный.
  • Остатки – роль следует указывать для полей начального и конечного остатков. Имеет смысл при работе с виртуальными таблицами регистров. Данная роль имеет следующие настройки:
    Имя – произвольное имя группы полей. Должно быть одинаковым для полей начального и конечного остатков.
    Тип – тип остатка: начальный или конечный
    Бух.тип – при работе с регистрами бухгалтерии, следует указать тип итогов – дебит или кредит
    Поле счета – также для регистров бухгалтерии. Имя поля бухгалтерского счета, для которого рассчитываются остатки

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

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

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

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

Вычисляемые поля схемы компоновки данных – это дополнительные поля, значения которых вычисляются на основе полей наборов данных.
Таблица вычисляемых полей имеет практически тот же состав колонок, что и у основных полей. У вычисляемых полей компоновки данных отсутствует возможность строить по ним произвольную иерархию и рассчитывать итоги по остаткам. Соответственно, отсутствуют поля “Роль”, “Проверка иерархии: набор данных” и “Проверка иерархии: параметр”.
Вычисляемые поля имеют дополнительную колонку “Выражение”, которое и описывает способ вычисления поля на языке выражений СКД. Как и в любых выражениях на языке выражений СКД, можно использовать все основные поля компоновки, экспортные функции общих модулей и встроенные функции СКД.
Важно! В выражении вычисляемого поля СКД нельзя использовать другие вычисляемые поля!

Ресурсы схемы компоновки

Поскольку в схеме компоновки данных могут использоваться несколько наборов данных, связанных между собой, а также из-за возможности в качестве набора данных использовать объект – произвольную таблицу значений, в тексте запросов СКД отсутствует возможность указывать секцию итогов. Итоги в СКД рассчитываются по группировкам для всей схемы целиком.
Для описания расчетов итогов служит закладка Ресурсы. Ресурсами могут быть как поля наборов, так и вычисляемые поля компоновки.
Выражения, описывающие логику расчета итогов, записываются на языке выражений СКД. Они могут содержать, как простую агрегатную функцию (Сумма, Количество, Минимум и др.), так и сложное выражение с использованием встроенных функций СКД и экспортных процедур общих модулей.
Значением выражения может быть как число, строка или дата, так  и значение ссылочного типа.
Итоговые значения ресурсов могут рассчитываться по разному для разных группировок. Например, для одной группировки ресурс рассчитывается как Минимум, а для другой как Среднее. Для этого служит настройка “Рассчитывать по”:

СКД настройка ресурсов Рассчитывать по

Как видно из скриншота выше, одно и то же поле можно указать несколько раз в качестве ресурса, при этом для каждой строки должно быть задано значение настройки “Рассчитывать по”. За счет этого можно настраивать разную логику расчета итогов одного и того же поля для разных группировок.

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

СКД настройка ресурсов для группировки иерархии

  • /
  • /

запросы в 1С СКД

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных (СКД) с запросами в 1С.

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

Если у вас хоть раз возникал вопрос: почему запрос в консоли запросов выдает правильные данные, а в вашем отчете на СКД нет, то в этой статье вы найдете ответ.

Возможности и ограничения языка запросов при использовании в 1С СКД

В СКД можно использовать практически все возможности языка запросов 1С:

Пакетные запросы. Временные таблицы

Объединения, вложенные запросы, группировка, сортировка, опции (ПЕРВЫЕ, РАЗЛИЧНЫЕ)

Параметры в запросах. При этом параметры, определенные в запросе автоматически, заполняются в 1С СКД на закладке «Параметры»

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

В системе компоновки данных (СКД) недоступны:

Секция ИТОГИ. Использование данной секции в запросе добавляет в стандартную «плоскую» выборку дополнительные итоговые записи. В СКД такие записи добавляются самой подсистемой по своим правилам, поэтому данная секция для СКД неактуальна.

Предложение «АВТОУПОРЯДОЧИВАНИЕ». Обычно эта опция языка запросов редко используется, а в отчетах она практически не имеет смысла.

В СКД дополнительно с помощью расширения языка запросов 1С для СКД имеется возможность:

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

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

О дополнительных возможностях мы поговорим в следующем разделе.

Расширение языка запросов 1С для СКД

В предыдущем разделе мы определили, что язык запросов, используемый в 1С СКД, имеет больше возможностей, чем просто запросы, выполняемые через объект платформы «Запрос». К сожалению, упорядоченной документации по этому разделу в 1С нет. Крупицы информации разбросаны: по справке к платформе, ИТС, различным неофициальным интернет ресурсам. Я постараюсь коротко объяснить основную суть данного дополнения к языку запросов и дам ссылки на источники информации, где вы можете более подробно изучить эту тему.

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

Расширение языка запросов 1С СКД

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

Чтобы предоставить пользователю возможность работы с этими реквизитам в отчетах, построенных на СКД, используется механизм подключения характеристик. С помощью специального оператора «ХАРАКТЕРИСТИКИ» программист может привязать характеристики к выбранным объектам отчета. При этом необходимо указать тип объекта, к которому производится подключение характеристик, список дополнительных свойств для данного объекта, таблицу, в которой хранятся значения этих свойств.

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

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

Как вы заметили, все элементы расширения языка запросов для СКД заключены в фигурные скобки «{}», чтобы отличать их от основных элементов запроса.

Кроме подключения характеристик расширение языка запросов используется для:

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

В том числе для управления заполнением доступности поля (группа полей «Ограничение поля» и «Ограничение реквизитов»)

Управления необязательными таблицами, необязательными условиями, необязательными параметрами

Управление местом применения отбора (в параметрах виртуальных таблиц, в секции «ГДЕ», в секции «ИМЕЮЩИЕ», в конкретном запросе пакета)

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

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

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

11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

1

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

11.03.2019, 16:29. Показов 5896. Ответов 20


Добрый день.
Есть типовой отчет на СКД (УТ11.4 — ДебиторскаяЗадолженность вроде или Задолженность клмиентов).

Там запросом получают поле Неопределено.
На закладке наборы данных в поле тип значения этому полю присваивают тип «ОпределяемыеТипы.Объект…чето там еще).

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

Как сделать чтоб в компоновке не ставилось ограничение на реквизиты (как снять это ограничение) или может есть какие другие варианты?



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

11.03.2019, 21:13

2

Четверг, А теперь проще, подробнее и … со скриншотами. Пока ни фига не понятно в чем вопрос. Ну и …. если Тип входит в ОпределяемыеТипы, а получаете Неопределено, значит ссылки нет, не попал в список, не то значение. Но.. лучше уточняйте вопрос



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

11.03.2019, 21:44

 [ТС]

3

в отчете запросом поля получают видимо чтоб просто руками не создавать Объект набор и не передавать туда таблицу значений. Просто запросом получили поле Неопределено в скд дали ему тип на закладке наборы — ОпределяемыйТип… (ссылочные типы). Отчет в результате по этому полю выводит ссылочные данные (документы) (не знаю как — мне это не нужно). Мне нужно плюсом раскрыть это поле и получить реквизит.



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

11.03.2019, 22:34

4

Четверг, Опять не совсем понял. Но, если надо получить ссылочные данные, то по рекомендациям — включайте это поле в запрос (например, Регистратор.Дата). Хуже, но работает, вычисляемое поле так же Регистратор.Дата



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

11.03.2019, 22:45

 [ТС]

5

это типовой отчет. 1с-ники так сделали. Есть поле Объект (ссылочный составной тип) — фиг до реквизитов доберешься



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

11.03.2019, 22:47

6

Четверг, Если типовой, давай конкретику: Конфигурация, какой отчет, какое поле надо. Будет понятно в чем задача



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

11.03.2019, 22:48

 [ТС]

7

как сюда скрин вставить



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

11.03.2019, 22:50

 [ТС]

8

скрин

Миниатюры

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



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

11.03.2019, 22:53

 [ТС]

9

вот так они отчет сделали. В результате это поле Объект — это ссылочное поле составного типа (реквизиты не доступны, как до них добраться в пользовательском режиме? — плюсика нет)

Добавлено через 46 секунд
этот пример я сам сделал для наглядности (в типовой так же они сделали — только полей само собой больше)



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

12.03.2019, 09:13

10

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

Миниатюры

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

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



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

12.03.2019, 09:15

11

Т.е. как неопределено вводишь свое поле в запросе в отчете и в настройках, а в общем модуле конкретизируешь это поле в реальном запросе



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

12.03.2019, 09:20

 [ТС]

12

мне нужно чтоб в пользовательском режиме плюсик появился, чтоб реквизит оттуда достать. плюса нет, потому что выбрано значение НЕОПРЕДЕЛЕНО а запросе в скд. а то что они потом там подменяют — от этого плюс не появляется



0



polax

1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

12.03.2019, 09:47

13

Четверг, Нет Неопределено в реальном запросе, есть в отчете, чтобы получить нужные поля. И вам надо просто вывести нужное поле в отчет
Например в отчете (ваш пример)

1C
1
ВЫБРАТЬ Неопределено КАК Объект

Добавляем

1C
1
Неопределено КАК Дата

Поле Дата — это для примера поле которые вы хотите получить через плюсик (через ссылку). Выводим поле в настройках отчета куда надо
В общем модуле есть запрос получающий реальный Объект, например,

1C
1
ВЫБРАТЬ Док.Ссылка КАК Объект ИЗ Документ.Заказ КАК Док

Добавляете свое поле

1C
1
ВЫБРАТЬ Док.Ссылка КАК Объект, Док.Дата КАК Дата ИЗ Документ.Заказ КАК Док



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

12.03.2019, 10:04

 [ТС]

14

Док.Ссылка как Объект? Объект составного типа



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

12.03.2019, 10:09

15

Четверг, Да е-мое! Я вам как пример даю, чтобы понять (хотя и здесь почему бы и не Док.Ссылка? ). Смотрите свою конфигурацию и реальный запрос!



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

12.03.2019, 10:28

 [ТС]

16

если я выберу рандомно ДокументПоступление.Ссылка.ПустаяСсылка — а там составной тип, то отчет нормально отработает?



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

12.03.2019, 10:32

17

Четверг, Если Документ Поступление входит в перечень типов (состава) то почему нет? Конечно сработает



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

12.03.2019, 10:36

 [ТС]

18

понятно что этот документ нормально отразится в отчете. а другие из перечня составного типа (запросом в это поле получают разного типа документы). (закладка наборы — ОпределяемыеТипы…)



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

12.03.2019, 10:41

19

Четверг, Вы бы привели конкретику. Какая конфигурация. какой отчет, какое поле хотите вывести. Потому что пока — это разговор слепого с глухим: Что у вас в составном типе? Какие типы? Если это, например, Регистратор то конечно отобразится, неважно какой док будет регистратором. Но может у вас что-то другое. В общем как-то напряжно стало



0



11 / 11 / 3

Регистрация: 13.10.2016

Сообщений: 195

12.03.2019, 10:44

 [ТС]

20

Ут11.4 (желательно последние релизы). Отчет Задолженность клиентов. Поле ОбъектРасчетов — нужно плюсиком его раскрыть и вытащить оттуда реквизит Менеджер (отборы, группировка).



0



Понравилась статья? Поделить с друзьями:
  • Jti табачная компания какие сигареты выпускает
  • 1с управляемые формы получить данные реквизита
  • Kpi которые убьют ваш бизнес скачать бесплатно
  • 2 компании внедрившие программы по развитию eq
  • Linum group архитектурно строительная компания