Как программно передать параметры в отчет скд

Отчет на СКД. Передать параметры в открываемую форму

Отбор передается через ПараметрыФормы.Отбор. А как передать параметры?

При этом открывается ОбщаяФорма.ФормаОтчета. ПараметрыФормы.Отбор там разбирается, а вот установку параметров не нашел.

(1)А вот как можно передать параметр в управляемую форму отчета и не только в настройки, но и в пользовательские настройки(в качестве примера):

тзСотрудники = Сотрудники.Выгрузить();
тзСотрудники.Свернуть(«Физлицо»);
СписокСотрудников = Новый СписокЗначений;
СписокСотрудников.ЗагрузитьЗначения(тзСотрудники.ВыгрузитьКолонку(«Физлицо»));

КомпоновщикНастроек = Отчеты.Выручка.Создать().КомпоновщикНастроек;
Настройки = КомпоновщикНастроек.Настройки;

ЭлементНастройки = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«Период»));
ЭлементНастройки.Значение = НачалоМесяца(Период);
Если ЗначениеЗаполнено(ЭлементНастройки.ИдентификаторПользовательскойНастройки) Тогда
ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭлементНастройки.ИдентификаторПользовательскойНастройки);
Если ТипЗнч(ПользовательскийПараметр) = Тип(«ЗначениеПараметраНастроекКомпоновкиДанных») Тогда
ПользовательскийПараметр.Значение = ЭлементНастройки.Значение;
КонецЕсли;
КонецЕсли;

ОтборСотрудник = Новый ПолеКомпоновкиДанных(«Сотрудник»);
Для Каждого ЭлементНастройки Из Настройки.Отбор.Элементы Цикл
Если ЭлементНастройки.ЛевоеЗначение = ОтборСотрудник Тогда
ЭлементНастройки.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементНастройки.ПравоеЗначение = СписокСотрудников;
ЭлементНастройки.Использование = Истина;
Если ЗначениеЗаполнено(ЭлементНастройки.ИдентификаторПользовательскойНастройки) Тогда
ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭлементНастройки.ИдентификаторПользовательскойНастройки);
Если ТипЗнч(ПользовательскийПараметр) = Тип(«ЭлементОтбораКомпоновкиДанных») Тогда
ПользовательскийПараметр.ВидСравнения = ЭлементНастройки.ВидСравнения;
ПользовательскийПараметр.ПравоеЗначение = ЭлементНастройки.ПравоеЗначение;
ПользовательскийПараметр.Использование = ЭлементНастройки.Использование;
КонецЕсли;
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;

ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить(«СформироватьПриОткрытии», Истина);
ПараметрыОткрытия.Вставить(«Вариант», Настройки);
ПараметрыОткрытия.Вставить(«ПользовательскиеНастройки», КомпоновщикНастроек.ПользовательскиеНастройки);
ОткрытьФорму(«Отчет.Выручка.Форма.ФормаОтчета», ПараметрыОткрытия, ЭтаФорма);

Источник

Заполнение отбора СКД программно и запуск отчета на СКД программно

Итак, есть в конфигурации отчет на СКД (у меня это ОтчетПоЦенамИНаценкам)

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

Специальные предложения

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Как работает в упр. формах

Обновление 05.06.14 18:47

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020 3378 Eugen-S 20

Программное открытие отчета СКД с параметрами и отбором

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

07.08.2021 3247 Eugen-S 19

СКД: скрываем нужные группы (блоки) по требованию пользователя

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

14.07.2021 2183 olja-ljaaa 7

Изменение расшифровки макета СКД до компоновки

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021 2225 Yashazz 6

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016 84488 Serginio 113

Чтоб в СКД по таблице значений был порядок!

28.06.2021 1220 Yashazz 0

Формирование отчета СКД с расшифровкой из обработки

Формирование отчета СКД из обработки немного отличается от формирования из отчета.

27.04.2021 3993 John_d 14

Нестандартное использование СКД

Программист 1С в компании «БКС-технологии» Алексей Шиянов в ходе Infostart Meetup Novosibirsk продемонстрировал необычный способ использования СКД и сравнил результаты заполнения движений документа через СКД с классическим подходом к заполнению движений через запросы и циклы.

14.04.2021 3662 user1127305 11

Звуковое управление в 1С 8.3 Промо

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021 6582 velemir 31

Полезные примеры СКД, ч.2

Еще несколько примеров решения задач в СКД.

06.04.2021 9487 Neti 8

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

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

02.04.2021 1084 parshachello 2

Неочевидные нюансы записи управляемой формы

Разберем несколько нюансов записи управляемой формы.

02.04.2021 10758 SeiOkami 52

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

28.12.2020 8258 comol 31

Полезные примеры СКД, ч.1

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021 12051 Neti 19

Обзор полезных методов БСП 3.1.4

25.03.2021 34179 rayastar 50

Сравнение данных с февралем високосного года (проблема 29 февраля)

Думаю, в практике многим приходится неоднократно сталкиваться с необходимостью разработки отчёта типа LFL (like for like), сравнивающего аналогичные периоды разных лет, например, текущего выбранного периода с аналогичным периодом прошлого года. В новых конфигурациях такой отчёт есть в составе конфигурации (см. «Сравнение продаж аналогичных периодов»), а в старых обычно приходится добавлять. Если не учесть нюанс сравнения с февралём високосного года, данные в отчёте за прошлый период могут быть некорректными.

02.03.2021 405 aleksei_adamov 4

Источник

Расшифровка отчета на СКД. Как передать параметры в этот же отчет но с другим вариантом?

Создал отчет на СКД с запросом к таблице ОстаткиИОбороты регистра бухгалтерии. Обычная оборотка (остатки на начало и конец, обороты дт и кт) по нескольким счетам и одному виду субконто.

Этот отчет имеет два варианта:
— основной: группировки счет, субконто, валюта
— по документам: группировки счет, субконто, валюта, регистратор.

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

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

Параметр = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(«НачалоПериода»));
Если Параметр <> Неопределено Тогда
Параметр.Значение = НачалоПериода;
Параметр.Использование = Истина;
КонецЕсли;

Но никак не могу считать текущий параметр «НачалоПериода». Считываю
так (взято из статьи):

Здесь переменная ИДНастройки дает пустую строку, и соответственно, дальше Коллекция.Найти(ИДНастройки)=Неопределено.

Подозреваю что из-за того, что параметр был передан в СКД программно.

Подскажите пожалуйста, как правильно надо?
А еще лучше, дайте аналогичный работающий пример?

Здесь переменная ИДНастройки дает пустую строку, и соответственно, дальше Коллекция.Найти(ИДНастройки)=Неопределено.

Так как получить текущее значение параметра для передачи в расшифровку?

Источник

1С СКД. Программный запуск отчета с открытием и настройкой.

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

Открытие формы отчета с помощью ПолучитьФорму и расширения формы отчета.

Сначала получаем форму.

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

Если нужен не «вариант по умолчанию»

Далее получаем настройки:

Через серверный вызов получаем настройки и если нужно заполняем параметры Компоновщика в отдельной процедуре.

Загружаем измененные настройки в компоновщик

Открытие формы отчета с помощью ОткрытьФорму и расширения формы отчета.

Код выполняется на клиенте, сначала мы формируем структуру с необходимыми параметрами формы, а потом вызываем процедуру открытия. Часто используемые параметры в данном случае это:

Программный вывод СКД в табличный документ и таблицу значений.

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

Код выполняется на сервере.

Получение локального макета

Получение макета произвольного отчета

Получение макета во внешней обработке

Получение макета из внешней обработки или отчета

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

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

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

И когда будем формировать

Объявляем создаем необходимые объекты:

Создаем макет компоновки с помощью компоновщика макета:

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

Инициализируем процессор компоновки данных

Создаем процессор вывода:

Для вывода в таблицу значений используется другой процессор вывода:

Запускаем процесс вывода:

Теперь мы можем проводить нужные операции с полученными данными.

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

Возможности настройки Схемы Компоновки Данных и Компоновщика Настроек СКД при программном формировании.

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

Или если с добавлением нового параметра

Также при получении настроек можно выбрать не «настройки по умолчанию», а один из вариантов настроек.

Переменная Настройки содержит в себе всю палитру настроек которая доступна в редакторе СКД в разделе “Настройки”. Наиболее часто из них программно редактируются отборы, параметры и структура, в случае когда отчет с табличной структурой надо вывести в таблицу значений. Рассмотрим их подробнее.

Параметры

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

Добавление параметра делается следующим образом

Отбор

У отборов нет специальных функций по установке значений. Поэтому нужно перебирать коллекцию циклом.

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

Структура

Для адаптации отчета к выводу в таблицу значений нужно очистить структуру группировок отчета и создать поле группировки “Детальные записи”.

Резюме

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

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

Приведенные примеры кода были протестированы на платформе 1С:Предприятие 8.3 (8.3.13.1690).

Источник

Как программно открыть внешний отчет из «Дополнительных отчетов и обработок» и передать параметры (при помощи БСП)

Дано: конфигурация на платформе 1С 8.3. В «Дополнительные отчеты и обработки» загружен отчет или обработка.

Задача: открыть данный отчет/обработку программно в коде, например, по кнопке.

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

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

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

Итак, в БСП есть модуль работы со справочником «Дополнительные отчеты и обработки» (ДополнительныеОтчетыИОбработки), в частности есть процедура открытия отчета и функция подключения внешнего отчета:

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

Один из вариантов использовать первую процедуру, но он мне не понравился из-за необходимости излишних действий, чтобы заполнить переменную ВыполняемаяКоманда, а также тем, что передать параметры в отчет можно только массивом (ОбъектыНазначения).

Поэтому решила использовать функцию под номером 2, что подключает нужный отчет/обработку, который затем можно открыть по имени, возвращаемому данной функцией.

Итак, сам пример (полный код):

Пример формы с кнопками, вызывающими эти процедуры:

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Скачать пример данной формы можно в файлах к статье.

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

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

Чтобы сработал код передачи параметров в СКД (ОткрытьВнешнийОтчетСКДсПараметром), нужно в модуле объекта СКД добавить код, принимающий эти параметры:

Скачать пример данного СКД отчета можно в файлах к статье.

Также пробовала передавать параметры в СКД вот так:

Однако возникала ошибка: Невозможно применить фиксированные настройки. Пересекаются элементы отбора.

Как программно передать параметры в отчет скд. Смотреть фото Как программно передать параметры в отчет скд. Смотреть картинку Как программно передать параметры в отчет скд. Картинка про Как программно передать параметры в отчет скд. Фото Как программно передать параметры в отчет скд

Поэтому выше описала, как передавала параметры отбора в отчет СКД при котором такой ошибки не было.

Обработки тестировались на демо-базе БСП версии 2.4.5.

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

Источник

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

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