1С как программно открыть отчет скд

Например, есть отчет ЦеныТоваров . Он показывает последние цены, установленные на товары.

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

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

Таким образом в форме списка справочника товары достаточно выполнить следующий код:

Сначала создаем структуру УсловияОтбора , которая задаст единственное условие отбора – по тому товару, на котором установлен курсор в списке ( Элементы.Список.ТекущаяСтрока ).

Затем сформируем структуру для параметров формы ( ПараметрыФормы ), описав в ней значения двух параметров – Отбор и СформироватьПриОткрытии .

И наконец открываем форму отчета, указав имя формы и параметры, предназначенные для открываемой формы.

Более сложный вариант интерактивного выполнения отчета можно посмотреть в статье Как с помощью команды выполнить отчет с некоторыми параметрами.

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

Когда может потребоваться программный вывод отчета в 1С на СКД:

  • программная установка параметров СКД;
  • использование внешних данных в отчете;
  • специфика табличного документа при выводе на печать;
  • прочие нестандартные ситуации.
Читайте также:  Hisilicon kirin 950 antutu

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

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

ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Счет,
ХозрасчетныйОстаткиИОбороты.Субконто1,
ХозрасчетныйОстаткиИОбороты.Субконто2,
ХозрасчетныйОстаткиИОбороты.Субконто3,
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.СуммаОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты

Вот, как выглядит отчет в стандартном виде:

Теперь сформируем его программно. Для этого нам нужно добавить Основную Форму:

Добавим команду и кнопку на форме:

Получите 267 видеоуроков по 1С бесплатно:

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

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

Программное формирование отчета в 1С 8.3

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

Чтобы формировать его программно, необходимо действовать по простому алгоритму

Добавляем к отчету форму, использующую СКД.

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

Читайте также:  Яндекс браузер веб камера

Через контекстное меню создать обработчик команды на клиенте и сервере и прописать следующий код:

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

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

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

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

Adblock detector