Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • Типовые конфигурации
    • ЗУП 3.1
      • Разработка
        • Обработки
        • Отчеты
        • Печатные формы
        • Расширения
      • Инструкции
      • Ответы техподдержки 1С
      • Общие вопросы
    • ДО 2.1
    • УХ 3.2
    • УПП 1.3
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Обработки
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Разработки
    • Контакты
  • Toggle search form

Программная установка Параметра в отчете на СКД (УФ)

Posted on 28 июля 25 г.29 июля 25 г. By Алексей Комментариев к записи Программная установка Параметра в отчете на СКД (УФ) нет

Содержание:

  • Файлы материала
  • Постановка задачи
  • Исходные данные
  • Решение №1. Установка параметра при открытии отчета
  • Решение №2. Установка параметра при формировании отчета
  • Дополнительная информация
Файлы материала
Отчет «Пример программной установки параметров (УФ)»Скачать

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

Давайте рассмотрим как это реализовать программно для первого и для второго случая.

* первое решение подходит для всех типовых конфигураций и других конфигураций с внедренной подсистемой «Варианты отчета» из состава БСП, для второго решения не требуется БСП.

Постановка задачи

Предположим, у нас есть некий отчет с параметром «Наименование номенклатуры». И стоит задача программно заполнить этот параметр значением «Моя номенклатура»:

Исходные данные

Создадим отчет на СКД:

1. Добавим в набор данных запрос с параметром НаименованиеНоменклатуры;

2. Уберем ограничение доступности параметра;

3. Выведем его в шапку отчета.

Добавление параметра в отчете на СКД

Теперь можем приступать к программной установки этого параметра:

Решение №1. Установка параметра при открытии отчета

Установка параметра будет выполняться в модуле объекта процедуре ПередЗагрузкойНастроекВКомпоновщик, предварительно подключим ее в процедуре ОпределитьНастройкиФормы.

1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПередЗагрузкойНастроекВКомпоновщик = Истина;
  
КонецПроцедуры
 
Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
Если КлючСхемы <> КлючВарианта Тогда
//ИнициализироватьОтчет(); // по необходимости
Если ТипЗнч(Контекст) = Тип("ФормаКлиентскогоПриложения")
И НовыеНастройкиКД <> Неопределено Тогда
НаименованиеНоменклатурыПоУмолчанию = "Моя номенклатура";
// 1. Устанавливаем параметр в "Настройки" КД
// Вариант 1
ПараметрНаименованиеНоменклатуры = Новый ПараметрКомпоновкиДанных("НаименованиеНоменклатуры");
ЗначениеПараметра = НовыеНастройкиКД.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрНаименованиеНоменклатуры);
ЗначениеПараметра.Значение = НаименованиеНоменклатурыПоУмолчанию;
ЗначениеПараметра.Использование = Истина;
// Вариант 2 (подходит для ERP 2.5)
//КомпоновкаДанныхКлиентСервер.УстановитьПараметр(НовыеНастройкиКД, "НаименованиеНоменклатуры", НаименованиеНоменклатурыПоУмолчанию);
// 2. По необходимости устанавливаем параметр в "Пользовательских настройках" КД:
Если НовыеПользовательскиеНастройкиКД <> Неопределено Тогда
// Вариант 1
Для Каждого ЭлементНастройки Из НовыеПользовательскиеНастройкиКД.Элементы Цикл
Если ТипЗнч(ЭлементНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных")
   И ЭлементНастройки.Параметр = ПараметрНаименованиеНоменклатуры Тогда
ЗначениеПараметра = ЭлементНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
ЗначениеПараметра.Значение = НаименованиеНоменклатурыПоУмолчанию;
ЗначениеПараметра.Использование = Истина;
// Вариант 2 (подходит для ERP 2.5)
//КомпоновкаДанныхКлиентСервер.УстановитьПараметр(НовыеПользовательскиеНастройкиКД, "НаименованиеНоменклатуры", НаименованиеНоменклатурыПоУмолчанию);
КонецЕсли;
КонецЕсли;
 
ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКомпоновкиДанных, КлючСхемы);
КлючСхемы = КлючВарианта;
КонецЕсли;
КонецПроцедуры
Решение №2. Установка параметра при формировании отчета

В данном случаи установку параметра будем выполнять в процедуре ПриКомпоновкеРезультата, так же модуля объекта.

1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
//УстановитьПривилегированныйРежим(Истина);
//ИнициализироватьОтчет(); // по необходимости
НаименованиеНоменклатурыПоУмолчанию = "Моя номенклатура 2";
НастройкиОтчета = КомпоновщикНастроек.Настройки;
ЗначениеПараметра = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НаименованиеНоменклатуры"));
ЗначениеПараметра.Значение = НаименованиеНоменклатурыПоУмолчанию;
ЗначениеПараметра.Использование = Истина;    
// Если в настройках СКД параметр включен в пользовательские настройки (шаг 3 на рисунке выше), то необходимо установить его и тут
// Соответственно, если такой флаг в настройках не стоит (что чаще бывает для данного варианта), то код ниже можно не писать
Если ЗначениеЗаполнено(ЗначениеПараметра.ИдентификаторПользовательскойНастройки) Тогда
ПользовательскиеНастройкиОтчета = КомпоновщикНастроек.ПользовательскиеНастройки;
ЗначениеПараметра = ПользовательскиеНастройкиОтчета.Элементы.Найти(ЗначениеПараметра.ИдентификаторПользовательскойНастройки);
ЗначениеПараметра.Значение = НаименованиеНоменклатурыПоУмолчанию;
ЗначениеПараметра.Использование = Истина;  
КонецЕсли;
КонецПроцедуры
Дополнительная информация

1. Такой отчет практически сразу кэшируется программой и для того, чтобы применились изменения кода, бывает необходимо изменить его «Имя» и перезапустить.

2. На некоторых конфигурациях программная установка не срабатывает пока не установишь «Форму отчета».

3. Что бы сбросить пользовательские настройки отчета на СКД нужно перейти в меню Еще -> Установить стандартные настройки.

Сброс пользовательских настроек в отчете на СКД

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

Рекомендации

  • Как переименовать итоги в отчете СКД
  • Шаблон отчета СКД с получением данных из ТаблицыЗначений
  • Пример использования функции ВычислитьВыражениеСГруппировкойМассив в отчете на СКД
Отчеты, Типовые конфигурации, Шаблоны и заготовки Tags:СКД

Навигация по записям

Previous Post: Коротко о Хешировании
Next Post: Обзор новых возможностей ЗУП 3.1.34

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

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

ДзенTelegram

Разработки

  • Печатная форма "Расходный кассовый ордер" для ЗУП 3.1 Печатная форма "Расходный кассовый ордер" ЗУП 3.1 650,00 ₽
  • Отчет "План-факт отпусков сотрудников в виде диаграммы Ганта Отчет "План-факт по отпускам сотрудников" ЗУП 3.1 650,00 ₽
  • Приказ об отмене трудового договора (рис 1) Печатная форма "Отмена приема на работу" ЗУП 3.1 650,00 ₽
  • Обработка “Выплата сотруднику через банк” ЗУП 3.1 Обработка “Выплата сотруднику через банк” ЗУП 3.1 0,00 ₽
  • Тестирование API Яндекс GPT Обработка "Работа с API YandexGPT" 650,00 ₽

MDM web-сервис XML БСП ЕФС-1 ИИ КД 2.0 НДФЛ СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СФР СЭДО ФСС ФСС НС больничные листы взносы вычеты длительная операция запрос интерфейс кадровая история кадровые данные кадровые переводы легкий труд мастер-данных обмен данными общий модуль отбор отпуска печать без проверки печать с диалогом пользователи представление прием на работу резервы отпусков сверхурочные синхронизация ЗУП и БП средний заработок табель таблица периодов табличный документ фотография штатное расписание

Яндекс.Метрика

© 2022-2026 myblog-1c.ru

Пользовательское соглашение

Контакты