1с автообновление отчета скд
Схема компоновки данных представляет собой большой конструктор, состоящий из наборов данных, вычисляемых полей, описания итоговых полей (ресурсов), макетов, вариантов настроек и т.д. Схему компоновки достаточно удобно создавать в конфигураторе при помощи конструктора схемы компоновки.
Но на практике часто встречаются задачи, когда схему компоновки нужно программно создать с нуля или доработать существующую схему при помощи кода на встроенном языке, настроить вариант отчета – добавить отбор, установить условное оформление, добавить группировку и т.д. Такие задачи решаются на внедрениях при адаптации типовых конфигураций фирмы “1С” под требования конкретного заказчика.
Задача действительно очень актуальная, участники Мастер-группы по СКД задают много вопросов на эту тему :)
Также традиционно много вопросов возникает при программной работе с пользовательскими настройками отчетов:
- Почему отличаются значения параметра в настройках компоновщика и в пользовательских настройках? Которое из этих значений используется для формирования отчета?
- Как связываются между собой настройки компоновщика и пользовательские настройки?
- Как установить значение отбора или параметра, если они вынесены в пользовательские настройки?
- И многие другие…
Поэтому мы опубликовали серию видеоуроков, в которых рассказывается, как работать со схемой компоновки программно.
Общая длительность всех видеоуроков – 1 час 5 минут.
Для того, чтобы Вам было проще ориентироваться в материале, мы указали тайминг наиболее важных моментов в видео.
Видео 1 – Программное создание варианта отчета
00:37 – В каком обработчике можно расположить код для создания настроек компоновки
01:00 – Где в Синтакс-помощнике можно “подсмотреть” свойства, которые потребуются при написании кода
01:58 – Как настроить группировки отчета
02:28 – Какое свойство позволяет создавать вложенные группировки
03:11 – Как включить/выключить отдельные элементы настроек.
Видео 2 – Программное создание группировки
00:22 – Как создать структуру отчета
02:00 – Как указать поля, по которым выполняется группировка
04:10 – Как настроить выбранные поля
06:30 – Как создать автополе.
Видео 3 – Программное создание вложенной группировки
00:22 – Как создать подчиненную группировку
02:05 – Почему в отчете группировки могут выводиться несколько раз
02:40 – Как проверить наличие группировок в структуре отчета.
Видео 4 – Программное добавление отбора
00:18 – Где в Синтакс-помощнике найти типы данных, необходимые для создания отборов
00:55 – Какие свойства объекта типа ЭлементОтбораКомпоновкиДанных нужно использовать для создания отбора
01:20 – Как создать отбор при помощи программного кода.
Видео 5 – Программная установка сортировки
00:25– Где в Синтакс-помощнике найти типы данных, необходимые для включения сортировки
00:50 – Какие свойства объекта типа ЭлементПорядкаКомпоновкиДанных нужно использовать для включения сортировки
01:00 – Как установить сортировку при помощи программного кода.
Видео 6 – Программное добавление условного оформления
00:25 – Где в Синтакс-помощнике найти типы данных, необходимые для работы с условным оформлением
00:33 – Какие свойства объекта типа ЭлементУсловногоОформленияКомпоновкиДанных нужно использовать
02:08 – Как добавить условное оформление при помощи программного кода
02:31 – Как задать перечень полей, к которым будет применяться условное оформление
03:34 – Как отобрать оформляемые данные
04:15 – Как при помощи программного кода описать применяемое оформление.
Видео 7 – Программная работа с пользовательскими настройками
01:01 – Как программно установить значение параметра
02:00 – Почему значения параметров, выводимые на форму отчета, не совпадают со значениями в самом отчете
04:25 – Что делает метод ПолучитьНастройки
05:10 – Как нужно работать с пользовательскими настройками
06:17 – Для чего нужно свойство ИдентификаторПользовательскойНастройки
07:10 – Где в типовой конфигурации УТ 11 можно найти пример работы с пользовательскими настройками.
Видео 8 – Особенности использования метода ПолучитьНастройки
00:58 – Почему отличаются значения параметра в настройках компоновщика и в пользовательских настройках
01:23 – Как связываются между собой настройки компоновщика и пользовательские настройки
03:06 – Как работает метод ПолучитьНастройки и значение какого типа он возвращает
Видео 9 – Программное создание отборов в пользовательских настройках
00:34 – Чем отличается отбор в настройках компоновщика и отбор в пользовательских настройках
02:34 – Как используется свойство ИдентификаторПользовательскойНастройки
03:08 – Какой алгоритм должен использоваться для установки значения отбора в пользовательских настройках
03:42 – Как реализовать процедуру для установки значения отбора в пользовательских настройках.
Видео 10 – Программное создание схемы компоновки
00:40 – Как при компоновке отчета программно создать схему, по которой будет формироваться отчет
02:15 – Какой алгоритм должен использоваться для программного создания с нуля схемы компоновки
02:50 – Как программно создать источник данных схемы компоновки
04:00 – Как программно добавить в схему набор данных – объект
06:25 – Как программно добавить поля набора данных.
Хотите научиться грамотно создавать отчеты на СКД и дорабатывать отчеты в типовых конфигурациях?
Чтобы подробнее изучить возможности системы компоновки данных и уверенно применять механизм на практике, рекомендуем пройти курс Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД)
Доброе утро! Посоветуйте, как реализовать автоматическое формирование отчета (СКД) по расписанию и его периодическое обновление (каждые минут 10)?
(1) Условия? Их вроде как нет. Просто нужен запуск отчета и его формирование без нажатия на кнопку сформировать.
Отчет по реализации продукции, будет выводиться на отдельный монитор.
Первый запуск отчета автоматически впринципе можно сделать, а как сделать обновление каждые 10 минут.
(8) Процедура будет вызываться в период ожидания системы каждый раз по истечению указанного интервала времени.
Синтаксис помощник лучше почитай.
ПодключитьОбработчикОжидания (AttachIdleHandler)
Синтаксис:
Тип: Строка.
Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
Признак однократного выполнения обработчика ожидания.
Значение по умолчанию: Ложь
Описание:
Подключает указанную процедуру в качестве обработчика ожидания. Процедура будет вызываться в период ожидания системы каждый раз по истечению указанного интервала времени.
Толстый клиент.
Примечание:
Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы ОтключитьОбработчикОжидания.
У нас есть и работает такой вариант:
В базе 1С есть отчет на СКД. При формировании (формировать можно по расписанию регламентного задания или по событиям) он сохраняет результат в html в определенную папку на сервере. Ну а на дисплее покупателя открыт браузер с автообновлением страницы.
+(14) Ну и дальнейшее развитие этой идеи такое:
Ссылку на этот файл в автозагрузку дисплея покупателя (чтобы при включении компа сразу отображалось) и настроить браузер на полноэкранный режим.
(14) Хороший вариант, но сложноватый, а времени мало, чтобы разбираться. Попробую через обработчик ожидания пока
>>Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы ОтключитьОбработчикОжидания.
Когда закрываю форму, у меня запускается отчет. Если я в подключении ставлю 300 сек., то что еще нужно добавить в процедуру приначалеработысистемы, чтобы отчет открывался заново не при закрытии формы отчета, а каждое энное количество секунд?
Логика оповещения пользователю следующая: обновление остатка времени каждую минуту. Если осталось меньше 60 секунд, обновление переключается на каждую секунду.
К публикации прикреплена конфигурация с отчетом и внешний отчет. Ниже текст модуля формы отчета, который реализует механизм автообновления.
Платформа: 8.3.10.1877. Режим совместимости 8.2.16.
Специальные предложения
(1) не о том :-)).
Эта публикация - "автонажатие" кнопки "Сформировать".
А по ссылке это выполнение заданий через фоновое задание с возвращаемым в процессе выполнении результатом.
Просмотры 10347
Загрузки 3
Рейтинг 0
Создание 02.11.17 17:57
Обновление 02.11.17 17:57
№ Публикации 695187
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
Главное отличие онлайн-тренажера - отработка теории в группах с последующим разбором, сразу, никаких автовебинаров.
См. также
Навигатор по конфигурации базы 1С 8.3 Промо
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.87 от 02.12.2021
3 стартмани
28.10.2018 49681 448 ROL32 72
Сравнение реквизитов двух объектов (УФ)
Сравнивает реквизиты двух однотипных объектов (например, 2 расходные накладные, 2 типа цен), подсвечивает различия.
1 стартмани
01.04.2022 866 3 serko8547 11
Структура таблиц ИБД с генератором view для MS SQL
Структура таблиц ИБД с генератором view для MS SQL. Подходит для любой конфигурации с режимом управляемого приложения. Вишенка на торте: view перечисления содержит имя и синоним.
1 стартмани
30.12.2021 2004 17 vladimirkr 5
Запуск в фоне процедуры модуля внешней обработки на управляемых формах без БСП
Пример самописной конфигурации без БСП с запуском в фоне процедуры из модуля внешней обработки и индикатором выполнения на управляемых формах.
1 стартмани
20.09.2021 2397 9 user1472448 0
Консоль запросов с графом (Анализатор сложных запросов) Промо
Консоль запросов для анализа запросов с большим количеством временных таблиц и вложенных запросов. Отображает структуру взаимосвязей временных таблиц в виде графа. Позволяет быстро передвигаться по тексту запроса и получать результат выполнения подзапросов. Единственная консоль запросов, которая позволяет выводить результат выполнения вложенных запросов и любой части объединения запроса. Удобное получение данных запроса из отладчика включая временные таблицы. Текст запроса в структурированном виде (можно свернуть, развернуть текст подзапроса). И еще много другого, чего вы не найдете в других консолях запросов. Поддержка УФ и ОФ. Версия 0.9.1 от 18.10.2019 (поддержка WebKit).
10 стартмани
03.05.2017 109392 513 manuel 294
Выборочная очистка кеша
Очистка кеша выбранных информационных баз
1 стартмани
13.09.2021 2258 11 QZet 3
Шаблоны кода (управляемые формы)
Шаблоны кода на управляемых формах.
1 стартмани
22.05.2021 6284 17 Rustig 21
Вспомогательный инструмент для быстрого просмотра объектов метаданных и ролей
Просмотр содержимого объектов, движений, регистров, констант и прочего. Анализ роли по объектам доступа и наоборот объекта по ролям доступа. Интуитивно понятный интерфейс, универсальный (под любую, даже самописную базу), под обычные и управляемые приложения.
1 стартмани
22.04.2021 4778 13 user802597 1
Markdown-editor в 1С (с сохранением в HTML) Промо
В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.
1 стартмани
04.07.2019 15006 23 riposte 6
Свойства общих модулей
Надоело каждый раз искать, какие общие модули глобальные? какие повторно используемые? хочется взглянуть на все контексты выполнения?
1 стартмани
14.04.2021 4129 4 kuzyara 5
Автоматизированная очистка нетиповой конфигурации от //
1 стартмани
02.02.2021 4295 2 nemec 0
Консоль текстов модулей для управляемых форм
Обработка предназначена для выполнения произвольного кода в режиме 1С:Предприятие для управляемых форм. Поддерживаются: конструктор запросов, расцветка кода, синтаксические подсказки, параметры, дерево текстов и запись в файл. Минимальная версия платформы - 8.3.14.1565.
1 стартмани
26.01.2021 5863 24 Reaper_1C 2
Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка) Промо
Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка
5 стартмани
14.08.2018 135467 3171 Evg-Lylyk 771
Сравнение функций/процедур из расширения с функциями/процедурами из конфигурации
Обработка облегчает обновление функций/процедур в расширении, которые используют аннотацию &Вместо.
1 стартмани
18.01.2021 3890 5 Wilka 1
Консоль заданий с диаграммой Ганта (управляемые формы)
Консоль позволяет администратору оценить загруженность (или наоборот недогруженность) задания, визуально оценив время его выполнения. Оптимально подобрать период выполнения заданий.
1 стартмани
15.12.2020 3070 17 Victor29reg 3
Работа с сериализатором XDTO
Отладочное расширение для просмотра объектов, преобразованных в XML, с помощью сериализатора XDTO, а также для выгрузки в xml.
1 стартмани
06.12.2020 4512 4 simon_sidoruk 5
Заполняем по шаблону (по умолчанию) Промо
Простой в подключении, универсальный и достаточно удобный механизм заполнения реквизитов произвольных документов/справочников значениями по умолчанию. Реализован в расширении, но может быть и непосредственно включен практически в любую конфигурацию на управляемых формах простым копированием одной формы и двух команд. Весь код в статье.
1 стартмани
08.02.2018 37929 21 mvxyz 17
История данных (Версионирование данных). Обычные и управляемые формы. Механизм платформы 1С
История данных - специальный механизм платформы 1С, который позволяет хранить в базе данных данные объектов конфигурации.
1 стартмани
30.09.2020 7824 60 yuryshestakov 2
Отладчик запроса 1С 8.3 (управляемые формы), бета-версия
По просьбам некоторых своих коллег и пользователей Инфостарта, выкладываю первую версию обработки "Отладчик запросов by Акулов А.С.", переделанной под управляемые формы. Реализованы почти все возможности из отладчика запросов, которые присутствовали в версии под обычные формы, а также добавлено немного нового.
Сегодня мы рассмотрим одну из самых частых задач, с которой сталкиваются специалисты по 1С – доработку отчета типовой конфигурации.
О чем эта статья
В статье рассмотрен пример доработки типового отчета «Расчетный листок» в конфигурации «Зарплату и Управление Персоналом 3.0». На данном примере показываются общие шаги разработчика, в случае если он слабо знаком с конкретной реализацией конкретного типового отчета на базе СКД.
Применимость
В материалах статьи в качестве примера используется конфигурация, «Зарплата и Управление Персоналом», редакции 3 3.0.25.122. Но от этого примеры доработки, продемонстрированные в видео, не стали устаревшими, т.к. акцент сделал именно на логике рассуждений разработчика перед которым поставлена подобного рода задача. Смело смотрите видео, это must have!
В качестве конфигурации выбрали “Зарплату и Управление Персоналом 3.0” – в силу следующих причин:
- Отчеты из ЗУП традиционно считаются сложными
- Иногда даже задача – понять, откуда берутся данные в отчет – вызывает у специалистов сложности.
Что конкретно мы будем делать
Это реальная задача из Мастер-группы – доработаем отчет “Расчетный листок” так, чтобы в шапке выводилась информация о дате приема сотрудника на работу.
Очень простая задача :)
Но есть одна сложность – информацию о дате приема типовой отчет не содержит, её нужно получать с помощью отдельного запроса.
И запрос этот нужно интегрировать в типовой отчет…
А параллельно мы разберем и приемы работы с СКД:
- Анализ программного кода типового отчета – определение точек минимального воздействия на конфигурацию
- Использование расширения языка запросов для системы компоновки данных – выражения в фигурных скобках
- Программное формирование отчета на СКД – доработку процедуры ПриКомпоновкеРезультата
- Вывод результата компоновки в коллекцию – дерево значений
- Доработку текста запроса типового отчета – получение связанной информации
- Работу с настройками компоновки – определение структуры, использование нескольких группировочных полей в одной группировке
- Использование макета – табличного документа при выводе отчета на СКД
- Отладку типового отчета, запущенного в фоновом режиме
Итак, поехали! 21 минута видео :)
Видео 1: Как за 10 минут понять логику формирования типового отчета
В этом уроке приступаем к решению задачи по модификации Расчетного листка в ЗУП 3.0.
Суть задачи состоит в том, чтобы вывести в отчет связанную информацию из других объектов – необходимо запросом получать дополнительные данные.
Но прежде, чем писать код, нужно найти точки минимального воздействия – чтобы внести в конфигурацию как можно меньше изменений.
В данном уроке мы показываем, как понять логику формирования типового отчета на СКД с программным заполнением полей и ручным выводом данных в табличный документ.
Видео 2: Как с помощью 2 строк кода изменить заполнение отчета
В уроке показано, как найти, где хранятся требуемые пользователю данные – это могут быть различные объекты системы. В этой задаче очень помогает умение читать объемные запросы.
В итоге задача решается с минимальными изменениями:
- Новая строка в макете
- Левое соединение в запросе
- Две строки в программном коде.
Также из видео Вы узнаете, для чего в запросе может использоваться конструкция “Выбрать Первые 0”.
Эта тема детально раскрыта в курсе:
Поддержка – 2 месяца. Объем курса – 34 учебных часа.
Не откладывайте свое обучение!
Комментарии / обсуждение (65):
Добрый день! Вопрос по УТ 11. В типовых отчётах добавляются доп. реквизиты. Вопрос: как их исключить из отчетов?
Подробнее.
Существует, примерно, 100 видов номенклатуры, к каждому из которых привязан свой набор доп. реквизитов от 5 до 10).
При изменении варианта отчета, где используется номенклатура, при раскрытии её, вываливается список всех доп. реквизитов. Жуткий тормоз. Можно ли сделать так, чтобы при отборе или добавлении поля, не выводились эти доп. реквизиты?
Добрый день!
Нет, поскольку это платформенный механизм – для справочника Номенклатура в конфигураторе настроены характеристики на уровне объектов метаданных. Поэтому они будут добавляться в список полей номенклатуры при работе с отчетами, динамическими списками, т.е. в механизмах, базирующихся на системе компоновки данных.
Рассмотрите вариант переноса доп. реквизитов в обычные реквизиты справочника Номенклатура. Это должно увеличить производительность описанных действий.
Раньше, помнится, надо было настраивать в СКД на закладке “Характеристики”, а сейчас, выходит, на Табл. часть “Доп. реквизиты” программист повлиять не может?
В УТ 11 не требуется заполнять закладку Характеристики в тексте запроса набора данных.
Дело в том, что в этой конфигурации настроены характеристики на уровне объектов метаданных. Например, можно в конфигураторе обратиться к справочнику Номенклатура, в контекстном меню выбрать пункт Характеристики:
Здесь указано, откуда система будет получать перечень характеристик и их значения.
СКД учитывает эту настройку, поэтому дополнительно прописывать характеристики в запросе не нужно.
По поводу переноса в обычне реквизиты. Дело в том, что у каждого вида номенклатуры свои доп. реквизиты и они не пересекаются. Это сколько же их будет?!
Можно на копии базы сделать тестовый пример, проверить производительность и все остальные аспекты, принять решение, стоит ли выполнять такие действия на рабочей базе.
Добрый день! Прошу помощи подскажите пожалуйста?
Клиент попросил доработать типовой отчет в БП 3.0 , конфигурация на поддержке. Было принято решение сделать отчет внешним, но столкнулся с проблемой…
Сохраняю отчет как внешний и пытаюсь открыть его через файл открыть и тут же выдается ошибка “не известный тип объекта метаданных, ВнешнийОтчет.ЗадолженностьПокупателейПоСрокамДолга”. Как победить эту ошибку? В УТ 11.4 таких проблем не возникало.
Добрый день!
Причина ошибки заключается в том, что у внешнего отчета или обработки в принципе нет модуля менеджера. А у отчета или обработки из конфигурации такой модуль присутствует.
В БП в модуле менеджера отчетов есть программный код, а в УТ – нет. Этим объясняется разница в поведении конфигураций.
При сохранении отчета или обработки во внешний файл модуль менеджера будет потерян. Поэтому нужно учесть этот момент, доработать внешний отчет, например, добавив нужные процедуры в модуль объекта.
Альтернативный вариант – создать расширение, в котором реализовать новый отчет, модуль менеджера в таком случае будет доступен.
>> Также из видео Вы узнаете, для чего в запросе может использоваться конструкция “Выбрать Первые 0”
А я так и не понял для чего используется такая конструкция?
Ведь на выходе такой запрос будет возвращать пустую таблицу с колонками.
А как тогда выбираются данные для этой таблицы?
Добрый день!
Этот текст запроса программно при компоновке отчета будет заменен на сложный запрос, который действительно извлекает данные из базы, а нем уже не будет конструкции ВЫБРАТЬ ПЕРВЫЕ 0.
Текст такого запроса формируется программно из отдельных кусочков, временных таблиц, зависит от различных условий, поэтому указать его непосредственно в отчете не получится.
Но в то же самое время нужно определить, какие поля набора данных должны быть в отчете. Для этого создается фиктивный текст запроса в наборе данных отчета. Он не будет выполняться, единственная его задача – описать поля отчета, а также типы данных этих полей.
Благодарю за ответ.
То, что это не запрос, а его “набросок” – это понятно.
Но не понятно назначение конструкции “ВЫБРАТЬ ПЕРВЫЕ 0”. Ведь если ее убрать (заменить на “ВЫБРАТЬ”), то ничего не изменится, т.к. этот запрос все равно не исполняется, а модифицируется из кода.
Да, конечно, не изменится. Но можно выделить 2 способа использования именно такой конструкции:
1. Она обеспечивает формирование пустого результата запроса с набором колонок нужного типа. Если использовать просто ВЫБРАТЬ, то в результате будут данные (одна строка с пустыми значениями).
2. Это может быть удобным маркером, признаком, что именно этот запрос нужно подменить. Потому что в обычном запросе для получения данных из базы такая конструкция точно не будет применяться.
Да. Действительно. Для получения пустой таблицы, указанного пользователем формата – весьма интересный прием.
Благодарю за ответы.
Пожалуйста. Обращайтесь:)
И приходите к нам на курс по СКД. В Мастер-группе отвечаем на Ваши вопросы по СКД.
Процедура Печать(ТабДок, Ссылка) Экспорт
// Макет = Документы.РасчетСтипендии.ПолучитьМакет(“Печать”);
Запрос = Новый Запрос;
Запрос.Текст =
“ВЫБРАТЬ
| РасчетСтипендии.Дата КАК Дата,
| РасчетСтипендии.Номер КАК Номер,
| РасчетСтипендииСтуденты.Студент КАК Студент,
| РасчетСтипендииСтуденты.Группа КАК Группа,
| РасчетСтипендииСтуденты.ТипСтипендии КАК ТипСтипендии,
| РасчетСтипендииСтуденты.НомерСеместра КАК НомерСеместра
|ИЗ
| Документ.РасчетСтипендии.Студенты КАК РасчетСтипендииСтуденты
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасчетСтипендии КАК РасчетСтипендии
| ПО РасчетСтипендииСтуденты.Ссылка = РасчетСтипендии.Ссылка
|ГДЕ
| РасчетСтипендии.Ссылка В(&Ссылка)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетСтипендииРезультатыСдачи.НомерСтроки КАК НомерСтроки,
| РасчетСтипендииРезультатыСдачи.Предмет КАК Предмет,
| РасчетСтипендииРезультатыСдачи.РезультатСдачи КАК РезультатСдачи,
| РасчетСтипендииРезультатыСдачи.Студент КАК Студент
|ИЗ
| Документ.РасчетСтипендии.РезультатыСдачи КАК РасчетСтипендииРезультатыСдачи
|ГДЕ
| РасчетСтипендииРезультатыСдачи.Ссылка В(&Ссылка)”;
РезультатЗапроса = Запрос.ВыполнитьПакет();
Выборка = РезультатЗапроса[0].Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть(“Заголовок”);
ОбластьИнформацияСтудента = Макет.ПолучитьОбласть(“ИнформацияСтудента”);
ОбластьРезультат = Макет.ПолучитьОбласть(“Результат”);
ОбластьРезультатыСдачиШапка = Макет.ПолучитьОбласть(“РезультатыСдачиШапка”);
ОбластьРезультатыСдачи = Макет.ПолучитьОбласть(“РезультатыСдачи”);
ОбластьЗаголовок.Параметры.Заполнить(Выборка);
ОбластьЗаголовок.Параметры.Дата = Формат(Выборка.Дата, “ДФ=dd.MM.yyyy”);
ТабДок.Вывести(ОбластьЗаголовок);
//ТабДок.Вывести(ОбластьРезультаты);
ОбластьИнформацияСтудента.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьИнформацияСтудента, Выборка.Уровень());
ТабДок.Вывести(ОбластьРезультат);
ТабДок.Вывести(ОбластьРезультатыСдачиШапка);
//Выборка = Выборка.РезультатыСдачи.Выбрать();
//Каждому студенту свои предметы
Выборка2.Следующий();
ОбластьРезультатыСдачи.Параметры.Заполнить(Выборка2);
ТабДок.Вывести(ОбластьРезультатыСдачи, Выборка2.Уровень());
Поток вопросов по СКД в Мастер-группе не прекращается. Сегодняшняя подборка тому подтверждение. Вопросы связаны и с платформенными изменениями самой системы компоновки данных, и с развитием БСП, и с расширением практик применения СКД в современных типовых решениях.
Вопрос №1: “Почему могут быть не доступны варианты отчетов на СКД в пользовательском режиме?”
Несколько раз сталкивался с тем, что варианты отчета, настроенные в конфигураторе, в пользовательском режиме не видны или виден только Основной вариант. Из этого я даже сделал вывод, что больше одного предопределенного варианта делать не имеет смысла. Судя по всему, вывод мой неправильный, в тестовой базе не воспроизводится. Почему могут быть не видны варианты и как это “лечить”?
Ответ
Если такая база базируется на БСП, то тут еще могут влиять механизмы БСП. Например, пользователю по ограничениям доступа недоступен конкретный вариант отчета, поэтому он его и не видит. Также для подсистемы БСП “Варианты отчетов” в общем модуле ВариантыОтчетовПереопределяемый в процедуре НастроитьВариантыОтчетов нужно явно описывать используемые варианты отчетов и запустить приложение с ключом ЗапуститьОбновлениеИнформационнойБазы.
Пример подключения отчетов к подсистеме “Варианты отчетов” есть на странице нашего сайта – Подключение отчетов к подсистеме “Варианты отчетов”. Возможно, в вашем случае какое-то из описанных действий не было выполнено.
Вопрос №2: “Можно ли делать отбор на уровне детальных записей по вычисляемым полям в СКД?”
(нажмите, чтобы увеличить картинку)
Ответ
Ошибка не будет возникать, если для отбора на уровне детальных записей изменить настройку Применение – указать значение “После группировки или для иерархии”:
(нажмите, чтобы увеличить картинку)
Появление ошибки связано с использованием в выражении для вычисляемого поля функции ВычислитьВыражение с указанными параметрами Начало и Конец, которая должна быть вычислена на основании только некоторых записей группировки.
Вопрос №3: “В каком случае можно установить значения параметров в процедуре ПередКомпоновкойМакета модуля менеджера отчета?”
В видео-уроке есть пример, где параметры отчета определяются и устанавливаются в модуле менеджера этого отчета в процедуре ПередКомпоновкойМакета(). Мне непонятно вот что:
- Эта процедура вызывается “сама”? То есть, если я сделаю такую процедуру в модуле менеджера, мне не нужно будет прописывать её вызов? Смущает, что в списке предопределенных возможных процедур нет такой (например, ПриКомпоновкеРезультата в модуле объекта есть). Прилагаю скриншот, поясняющий, какой список имею в виду.
- Переопределение параметров правильно делать именно в этой процедуре? Почему не в процедуре ПриКомпоновкеРезультата модуля объекта или в модуле формы?
- Если у меня внешний отчет, то модуля менеджера в нем нет – значит, такую процедуру я не могу использовать?
Ответ
- В этом видеоуроке демонстрируется типовая конфигурация Бухгалтерия предприятия. Она базируется на Библиотеке стандартных подсистем (БСП), которая содержит отдельную подсистему для работы с отчетами. В этой подсистеме реализовано большое количество универсальных методов. Рассмотрим на примере отчета из видеоурока. В модуле отчета есть код, который вызывает метод общего модуля:
А в общем модуле БухгалтерскиеОтчетыВызовСервера есть функция ПодготовитьОтчет, в которой содержится следующий код:
Следовательно, в модуле менеджера отчета можно доработать компоновщик, например, установить значения параметров. Инициируется этот вызов в процедуре ПриКомпоновкеРезультата.
Подобные фрагменты кода есть и в других конфигурациях, основанных на БСП, например, в УТ 11. Получается, что для доработок отчетов на БСП есть универсальные точки входа, где можно размещать свой код. В отчетах для конфигураций не на БСП этот подход работать не будет.
- Это зависит от того, для какой конфигурации разрабатывается отчет. Если конфигурация создается с нуля, то такой метод из модуля менеджера просто некому будет вызвать. Если конфигурация базируется на БСП, то можно “подсмотреть” в типовых отчетах, как они разработаны. Также в документации по БСП, размещенной на сайте ИТС, можно изучить подробное устройство подсистемы Варианты отчетов.
- Да, во внешних отчетах и обработках в принципе не существует модуля менеджера.
Вопрос №4: “Как вывести изображение в колонтитулах отчета на СКД?”
Подскажите, есть ли возможность в колонтитулах отчета выводить изображение (например, логотип фирмы)?
Ответ
Да, начиная с платформы 8.3.15 появилась возможность добавить картинку в колонтитул.
В конфигураторе это можно сделать в меню Таблица – Настройки печати – Колонтитулы:
(нажмите, чтобы увеличить картинку)
Вопрос №5: “Каким образом можно программно получать настройки отчета на СКД?”
Насколько я понимаю, чтобы учесть значения, заданные пользователем на форме, нужно получать настройки так:
Но во многих видео настройки получаются такой строкой:
И далее по этим настройкам формируется отчет. Почему так? Зачем нам могут быть нужны настройки, которые не содержат значений, заданных пользователем? В каких случаях и каким способом нужно получать настройки?
Ответ
Чтобы решить, какие именно настройки следует использовать, нужно задавать себе вопрос “Отчет с какими настройками мне нужно сформировать для решения поставленной задачи?”
- Чаще всего на практике нужно учитывать пользовательские настройки, значит, используем метод:
В таком случае из компоновщика получаем настройки, которые уже включают в себя и пользовательские, и фиксированные настройки. С этими “результирующими” настройками компонуем отчет. В методе ПриКомпоновкеРезультата в модуле отчетов чаще всего встречается именно этот вариант
- Если нужно взять настройки не из компоновщика, а из схемы компоновки, то воспользуемся настройками по умолчанию:
Такой вариант встречается при компоновке из программного кода, например, когда на форме обработки компоновщик вообще не отображается. В таком случае удобно обратиться к настройкам, описанным непосредственно в схеме компоновки
Читайте также: