Свернуть ресурсы скд 1с

Обновлено: 07.07.2024

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД

Автор уроков и преподаватель школы: Владимир Милькин

Если вы не читали введение к этому модулю - пожалуйста, прочтите его: ссылка.

Готовим рабочее место

Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .

Если у вас уже есть установленная 1С версии 8.3 - используйте её. Если нет - скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.

На вашем рабочем столе должен появиться вот такой ярлык:

Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных "Гастроном". Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.

Если вы её удалили - скачайте заново по следующей ссылке, распакуйте и подключите в список баз.

Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).

Ставим цель

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

  • Имя
  • Пол
  • Любимый цвет клиента.

Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.

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

Создаём отчёт

Запускаем конфигуратор для базы "Гастроном":

Из главного меню выбираем пункт "Файл"->"Новый. ":

Выбираем "Внешний отчет":

Создаём схему компоновки данных внутри отчёта

Открылось окно создания внешнего отчёта. В качестве имени вводим: "Урок1", а затем жмём кнопку "Открыть схему компоновки данных":

Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию "ОсновнаяСхемаКомпоновкиДанных" и жмём кнопку "Готово":

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

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

Сейчас мы находимся на закладке "Наборы данных". На ней и останемся.

Пишем запрос через конструктор

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

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

Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт "Добавить набор данных - запрос":

Добавился набор данных с именем "НаборДанных1", но мы видим, что поле "Запрос" в нижней части окна пока пустое:

Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?

В этом запросе мы выбрали три поля ("Наименование", "Пол" и "ЛюбимыйЦвет") из таблицы "Справочник.Клиенты".

Но не торопитесь писать этот текст в поле "Запрос" вручную.

Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется "Конструктор запроса".

Чтобы вызвать этот конструктор нажмём кнопку "Конструктор запроса. " в верхней правой части поля "Запрос":

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

Получилось вот так:

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

Получилось вот так:

Поступим точно так же с полями "Пол" и "ЛюбимыйЦвет". Результат будет таким:

Нажмём кнопку "ОК", чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле "Запрос".

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

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

Настраиваем представление данных

Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!

Чтобы сотворить такое чудо перейдём на вкладку "Настройки" и нажмём кнопку конструктора настроек (волшебная палочка):

В открывшемся окне укажем тип отчёта "Список" и нажмём "Далее":

В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: "ЛюбимыйЦвет", "Наименование" и "Пол"):

Получим вот такой результат и нажмём кнопку "ОК":

Конструктор настроек закрылся и появился пункт "Детальные записи":

Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.

Сохраняем отчёт в виде файла

Откроем пункт главного меню "Файл"->"Сохранить":

Я сохраню его на рабочий стол под именем "Урок1":

Проверяем отчёт в режиме пользователя

Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:

Имя пользователя "Администратор", пароля нет:

Через меню выберем пункт "Файл"->"Открыть. ":

И укажем файл отчёта (я сохранял его на рабочий стол под именем "Урок1.erf":

Открылась форма отчёта, нажмём кнопку "Сформировать":

Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:

Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт "Файл"->"Печать. ":

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

То ли ещё будет, наберитесь терпения

Эталонная обработка, после выполнения всех шагов этого урока

Войдите на сайт как ученик

Для учеников

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

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

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

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

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

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

Агрегатные функции из выпадающего списка

Если посмотреть справку то можно увидеть гораздо больше агрегатных функций, о существовании некоторых из которых мало кто знает:

Все агрегатные функции

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

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

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

Массив

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

Если массив формируется по числовому полю, то к его результату можно применять еще одну агрегатную функцию (Сумма, Количество, Максимум, Минимум, Среднее).

ТаблицаЗначений

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

Если в качестве параметров указаны поля-остатки и данные выбираются с периодичностью (Остатки и обороты), стоки таблицы формируются в разрезе периодов и уникальной комбинации измерений. То-есть, если значение остатка в разных периодах различное, в итоговой таблице значений будет сформировано несколько строк, со значениями из разных периодов.

Для наглядности приведу пример .

Создадим набор данных со следующим запросом:

Добавляем вычисляемое поле «ТаблицаЗначений» и в качестве выражения ресурса, укажем для него:

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

Функция: ТаблицаЗначений

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

Свернуть

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

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

Функция: Свернуть

Для массива, функция аналогична применению ключевого слова «Различные» в функции «Массив». Для таблицы значений, функция позволяет проверить уникальность не по всем колонкам, в отличие от применения ключевого слова «Различные» в функции «ТаблицаЗначений».

ПолучитьЧасть

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

В результате получится таблица значений с одной колонкой «Номенклатура».


Упорядочить

Функция позволяет упорядочить массив или таблицу значений. Если используется таблица значений, вторым параметром нужно указать номера колонок, по которым требуется выполнить упорядочивание. Можно указать направление упорядочивания (Возр / Убыв) и признак «Автоупорядочивание»:


СоединитьСтроки

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

Примеры использования функций:

Функция: СоединитьСтроки

ГрупповаяОбработка

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

Синтаксис функции следующий:

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

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

ИмяГруппировки – Имя группировки, по строкам которой необходимо выполнить расчет. Если параметр не указан, вычисление выполняется по строкам на уровне текущей группировки. Если указанная группировка не доступна на текущем уровне (группировка более низкого уровня), функция вернет значение NULL .

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

Объект содержит следующие реквизиты:

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

Пример использования функции

Создадим набор данных с простым запросом:

Создадим вычисляемое поле «ГрупповаяОбработка», определим его как ресурс и укажем следующее выражение:

СКДСервер.ФункцияОбщегоМодуля(ГрупповаяОбработка ("СУММА(КоличествоОборот) КАК Количество"))

В конфигурации, в общем серверном модуле «СКДСервер» разместим экспортную процедуру:

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

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

На заметку. Имейте в виду про следующую особенность. Функция общего модуля, указанная для ресурса, вызывается дважды для одной и той же строки. Это связано с типовой обработкой расшифровки для поля – ресурса. Если для данного поля создать собственный макет, с указанием одного и того же выражения для основного параметра и для параметра расшифровки, такой особенности не будет. Функция будет вызвана один раз для каждой строки.


Каждый

Функция вычисляет выражения для всех строк и возвращает значение «Истина», если выражения по всем строкам вернули значение «Истина». В противном случае, будет возвращено значение «Ложь».

Функция: Каждый


Любой

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


МестоВПорядке

Функция определяет позицию данной строки, если расположить все строки группировки в порядке, указанном в выражении первого параметра. Также как и для функции «ГрупповаяОработка», используются строки, которые находятся на одном уровне с обрабатываемой или на одном уровне иерархии (не вложенные строки).

Строки с одинаковым значением порядка будут иметь одно и то же место.

Синтаксис функции следующий:

Порядок – выражение порядка, по которому происходит сортировка строк. Можно указать направление упорядочивания (Возр / Убыв) и признак «Автоупорядочивание».

ПорядокИерархия – выражение упорядочивания для иерархических записей. Если не указано, действует выражение для основных записей.

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

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

МестоВПорядке - для иерархии

Для всех вложенных группировок место в порядке будет рассчитано по группировкам верхнего уровня «Покупатель»:

МестоВПорядке для группировки верхнего уровня

КлассификацияABC

Функция вычисляет значение классификации « ABC » по переданному выражению и пороговым значениям.

Синтаксис функции следующий:

Значение – поле или выражение, для которого требуется рассчитать классификацию ABC .

КоличествоГрупп – количество групп классификации. Можно указать количество больше трех, тогда уже будет классификация « ABCD », « ABCDE » и т.д.

ПроцентыДляГрупп – пороги для попадания в группы через запятую в виде строки. Причем для последней группы порог не указывается. Диапазон последней группы считается от последнего порога до 100%. Пример указания порогов для трех групп: «50, 80».

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

Фнкция: КлассификацияАВС

Классификация вложенных строк выполняется по строкам группировки верхнего уровня «Покупатель»:

КлассификацияАВС для группировки верхнего уровня

В СКД существует еще целый набор математических агрегатных функций:

  • СтандартноеОтклонениеГенеральнойСовокупности
  • СтандартноеОтклонениеВыборки
  • ДисперсияВыборки
  • ДисперсияГенеральнойСовокупности
  • КовариацияГенеральнойСовокупности
  • КовариацияВыборки
  • Корреляция
  • РегрессияНаклон
  • РегрессияОтрезок
  • РегрессияКоличество
  • РегрессияR2
  • РегрессияСреднееX
  • РегрессияСреднееY
  • РегрессияSXX
  • РегрессияSYY
  • РегрессияSXY

Их рассмотрение и использование заслуживает отдельной статьи, так что здесь я их разбирать не буду.

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

Всем доброго дня!
Начала заниматься отчетами на СКД и есть вопрос по группировкам - нужно свернуть детальные записи в общий итог. Ну, как это раньше было в запросе
ИТОГИ ПО
СУММА(Имя_ресурса)
ПО Общие.
Вот как свернуть все записи и разворачивать по +, в закладке "Ресурсы" не смогла настроить.
Помогите, пожалуйста)

Я уже смотрела этот курс. Если там про это есть, пойду посмотрю кино) Мерси)

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

ресурс, по своей сути, агрегатная функция, только с более широкими возможностями по сравнению с запросом.

судя по (0) вам нужна не группировка, а вывод общих итогов.

(5) Я же хочу группировки свернуть. Общие итоги выводятся нормально.

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

(7) Структура - это Вы о чем? На закладке "Группировки" в конструкторе запроса я указывала поля группировки и суммирующие поля. Но этот прием не работает в СКД.

Так у меня там кроме детальных записей ничего нет. Собственно мне ничего и не надо больше сворачивать. Или я чего-то недопонимаю(

(12) Мне показалось, я понятно описала задачу. Я так понимаю, ресурсы не нужно настраивать, надо терзать настройки вывода отчета, так?

Ресурсы - это то что надо считать при свертке данных. Группировки в структуре вывода, указывают как и что надо сворачивать.

Подсмотрела, как это реализовано в типовой, может кому понадобится. Добавляем текстовое поле "Итоги" (или как мы хотим его назвать), после чего в настройках вывода отчета добавляем это поле в структуру вывода и добавляем вложенное в него поле "Детальные записи". И наслаждаемся результатом)
(14) Спасибо за подсказку)

(15) В структуре - внизу справа - Настройки (или доп. настройки, смотреть лениво) - Выводить общие итоги по вертикали.

Народ, помогите советом, а как сделать надстройку по периоду? Задача такая: есть период ДатаНачало-ДатаКонец, как получить отчет вида: Январь-Март
---------------------------
Январь
Данные из регистра сведений
Февраль
Данные из регистра сведений
Март
---------------------------
если период не привязан к набору данных? То есть данные в отчете одни и те же (отбор хочу надстраивать сверху на результат.
Голову сломала уже, добавляла &Период, но ему нельзя указать периодичность. Что с этим можно сделать? Спасибо.

(18) "если период не привязан к набору данных" - то как можно данные группировать по месяцам?

вот я и не придумаю, как его так выбрать, чтоб потом связать с регистром (по идее)

(21) Ты нам расскажешь по какому признаку собираешся делить набор данных на части по месяцам? Вообще. Не как это сделать в 1ске, а именно какова задумка?

(20) Мне нужно выбрать полностью весь регистр, чтобы получить все данные из регистра ПараметрыАмортизацииБухгалтерскийУчет, т.к. нужна стоимостьдля вычисления амортизации, какой она была бы, если бы ДатаВыпуска была ДатойПринятияКУчету ( то есть если бы вовремя было принято к учету ОС, т.к. поздно принесли документы бухгалтеру) и для расчета налога нужна стоимость с учетом амортизации, которой еще не случилось (а доложна была бы). В связи с этим мне нужно отобрать все записи из регистра и потом свернуть по периоду, на один и тот же регистр. Ну я так это себе представляю. Может, я не права.

(22) Вот именно, что не надо их на части делить. Выбрать тупо все. Просто сверху на набор данных надстроить период. Такая простая вещь, а как в СКД сделать, не знаю(

ну период, по попаданию которого в интервалы ты собираешся делить все же есть в наборе данных?

Уже лучше, периоды есть. Группировать нужно по дате выпуска, или принятия к учёту? И еще, с СКД не нужно мыслить старыми шаблонами))

(23)А что ты будешь выбирать, если параметры амортизации возникают только в момент принятия к учету?

(27) Вот именно, что параметры амортизации заполняются в момент принятия к учету. Допустим, ситуация такая. ДатаВыпуска 01.09.12, дата принятия к учету 01.02.13. Мне для формирования отчета на 1.11.12 нужно показать, что у меня на эту дату должна быть отражена стоимость и амортизация. На момент ноября еще нет принятия к учету, поэтому опираться на эту дату или датуВыпуска никак нельзя.

(26) нельзя. Мыслить новыми шаблонами отлько привыкаем, еще не перестроилась.

Мысль фееричная - включать в базу расчёта налога "недосписанную" амортизацию с даты выпуска))

(30) То, что бухгалтер не получил вовремя документы о принятии к учету ОС не дает ему права не перечислять налог на имущество. Задним числом принять ОС нельзя. Таким образом мне поставлена задача произвести расчет амортизации для некоторых ОС (по определенному условию) включить их стоимость в расчет налога (за вычетом амортизации).

(30) То есть мы мыслим чисто гипотетически, ах вот если б быол у нас основное средство, вот мы бы его взяли бы и кааак списали. Я сделала выборку, оно все бы хорошо, но по периоду надо привязаться, я добавила параметры, а как приляпать периодичность. не знаю, может надо сделать какой-то запрос, чтоб такой период получить. Вот я и спрашиваю, что тут можно сделать.

оффтопик, а на каких основаниях вы уменьшаете стоимость ОС? документального основания же нет?

(33) мы не уменьшаем. Мы включаем в расчет налога на имущество то, что должны по закону. Стоимость ОС не меняется при этом.

(33) то есть, если у нас имущество есть, мы должны с него уплатить налог, накладки с документами никого не волнуют.
Собственно, мне главное надстройку с периодом сделать.

я могу выводить отчет в цикле, но это дикий моветон.

Можно еще раз у вас поинтересоваться, как будет распределятся набор данных по месяцам?

(28)То есть тебе надо получить начальные параметры амортизации? Это называется срез первых. Это для тех дат, которые меньше даты принятия к учету. Если потом хочешь вывести значения параметров на каждый месяц, ищи в поиске "срез последних на каждую дату в запросе".

(37) Выбираются данные из регистра сведений ПараметрыАмортизацииБухгалтерскийУчет. Добавляются параметры ДатаНачало и ДатаКонец на закладке "Параметры" в схеме. Далее хотелось бы получать помесячно один и тот же набор данных для отбора ОС, подлежащих включению в расчет по налогу в пределах периода, указанного пользователем. никакой период не используется, берем все записи, имеющиеся в базе (и до, и после указанных пользователем дат).

(38) Мне не нужна привязка ни к Дате принятия к учету, ни к дате выпуска. К тому же, для этого регистра сведений в любом случае нельзя указать периодичность Месяц.

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

(41) вот я про это и думаю, как из какого календаря период доставать? с потолка взять нельзя?

(41) то есть выборка из дат за указанный период, а к нему уже регистр привязать, да? я так мыслю

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

Данный код в модуле отчета позволяет свернуть группировки до необходимого уровня (0,1,2. ):

Разместил: E_Migachev  Версии: | 8.2 УП | 8.3 |  Дата: 28.07.2014   Прочитано: 33218

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2)  0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Выборка из результата запроса всех вошедших в него значений группировок  4
При обходе результата запроса нередко возникает необходимость получения всех значений группировок внутри какой-либо другой группировки. Такая возможность может понадобиться, например, при выводе кросс отчета. Для обеспечения такой возможности в объек Посмотреть все результаты поиска похожих

Еще в этой же категории

Произвольный макет в СКД  45
Делал недавно отчет с неопределенным количеством колонок. Возиться с кодом было неохота, решил сделать на СКД. С этим проблема не возникла, необходимо было натянуть результат на произвольный макет (свой заголовок + период). Покажу на примере по шагам Программный вывод отчета СКД  35
Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию. //Получаем схему из макета СхемаКомпоновкиДанны Как сформировать отчет СКД без проверки прав (в привилегированном режиме)?  21
Что при разработке отчетов требуется чтобы у пользователя с ограниченными правами, отчет формировался полностью без проверки прав! Особенно если настроен RLS Есть несколько способов как это сделать: 1. Установить привилегированный режим в модул Конструктор схемы компоновки данных - Закладка Связи наборов данных  17
На этой закладке можно указать, какие осуществляются связи между двумя и более наборами дан-ных, по каким параметрам и условиям. https://helpf.pro/uploads/img/sukpd038.jpg 1. «Источник связи» - указывается первый набор данных, от которого осуще Как программно сформировать отчет СКД указав параметры и на выходе получить таблице значений?  12
В одном документе для расчета потребовалось получать данные из отчета на СКД, реализовал следующим образом: //Програмное формирование отчета СКД СхемаОст = Отчеты.ТоннажПоЭкспедиторам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикН Посмотреть все в категории Схема Компоновки Данных

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

Дополню. Если свернуть приведенным в статье кодом, то группировки свернутся, но при раскрытии, если есть ещё нижележащие группировки, они также будут раскрыты. Предлагаю доработать:

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

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

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

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

Читайте также: