1с открыть отчет программно обычные формы

Программно открыть отчет обычные формы

ОтчетСклад = Отчеты.НашОтказныеТоварыРасшифровка.Создать();
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Значение = СтруктураПараметров.Номенклатура;
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[3].Значение = СтруктураПараметров.Подразделение;
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = НачалоПериода;
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = КонецПериода;

ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина;
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Использование = Истина;
ОтчетСклад.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[3].Использование = Истина;

Схема = ОтчетСклад.СхемаКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеРасшифровки = Неопределено;

ФормаДопОтчета = ОтчетСклад.ПолучитьФорму(«ФормаОтчета»);
ФормаДопОтчета.ЭлементыФормы.Результат.Очистить();
ПроцВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцВывода.УстановитьДокумент(ФормаДопОтчета.ЭлементыФормы.Результат);
ПроцВывода.ОтображатьПроцентВывода = Истина;

В открывшемся отчете не работает расшифровка ДанныеРасшифровки = непределено
Перекапал весь инет помогите разобраться

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

Отбор

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

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

Структура

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

Резюме

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

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

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

Источник

Программное открытие отчета

=== Для толстого клиента ===

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

Форму не назначаем отчету. Форма нужна только для работы события расшифровки элемента формы Результат. В примере расшифровка документа ПоступлениеТоваровУслуг

Это все правки в Отчете, т.е. в будущем его будет очень легко обновлять, если это типовая конфигурация.

2. В том месте, где нужно вызвать Отчет программно, пишем вызов отчета.

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

Чтобы работала расшифровка передаем ДанныеРасшифровкиКомпоновкиДанных в СкомпоноватьРезультат(). При этом создавать/править для простых случаев процедуру ПриКомпоновкеРезультата() в модуле объекта Отчета не требуется.

Пример будет работать в любой конфигурации на любой версии платформы 8.3.* под толстым клиентом.

=== Для тонкого клиента ===

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

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

b06308b3f41ca1261e037ec17095dd5f

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

Расшифровка будет работать для выбранных полей ссылочного типа.

Источник

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

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

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

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

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

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

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

См. также

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

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

12.12.2020 4316 Eugen-S 23

Грабли на СКД

Наиболее частые проблемы, с которыми сталкиваются программисты 1С при разработке отчетов на СКД.

02.11.2021 1855 echo77 13

СКД: 5 советов, как сделать лучше

Несколько примеров решения задач с использованием разных подходов

27.10.2021 3636 Neti 19

Программное создание отчета на СКД с расшифровкой (обычные формы)

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

04.10.2021 1030 Neti 4

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

27.01.2016 85513 Serginio 115

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

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

07.08.2021 4695 Eugen-S 19

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

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

14.07.2021 2510 olja-ljaaa 7

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

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

12.07.2021 2380 Yashazz 6

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

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

16.03.2021 7084 velemir 33

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

28.06.2021 1320 Yashazz 0

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

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

27.04.2021 4173 John_d 14

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

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

14.04.2021 3985 user1127305 11

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

28.12.2020 8786 comol 31

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

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

06.04.2021 10477 Neti 8

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

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

02.04.2021 1161 parshachello 2

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

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

30.03.2021 13139 Neti 19

Использование программных перечислений, ч.1: строковые константы Промо

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016 41046 unichkin 74

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

25.03.2021 39418 rayastar 51

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

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

02.03.2021 443 aleksei_adamov 4

Источник

Программное создание отчета на СКД с расшифровкой (обычные формы)

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

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

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

Создадим на форме реквизит, в который будем передавать расшифровку, создаваемую СКД. Тип реквизита зададим как «Произвольный», так как тип ДанныеРасшифровкиКомпоновкиДанных отсутствует в списке доступных.

5ca07220d69d13763dee09596119248b

И при открытии формы передадим в нее сформированную СКД расшифровку.

Таким образом мы получим отчет, в котором расшифровка работает так же, как если бы мы его запускали непосредственно из формы отчета.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с открыть несколько экземпляров формы
  • 1с открыть и заполнить форму нового документа