Гельмер Александр

+79129291010 Telegram,WhatsApp,Viber ( helmer@ya.ru )

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

встроенного в конфигурацию (расширение) с передачей параметров


Параметры и отбор передаются в "отбор"

https://its.1c.ru/db/metod8dev/content/4143/hdoc


&НаКлиенте
Процедура ДО_Информация_О_ДР(Команда)
отбор
=новый структура("ИнтервалОтДней,ИнтервалДоДней",7,14);
парам
=новый Структура("СформироватьПриОткрытии,отбор",истина,отбор);
ОткрытьФорму
("Отчет.Информация_О_ДР.ФормаОбъекта",парам);
КонецПроцедуры







&НаКлиенте //вызов после нажатия кнопки

Процедура TSOFT_РезервыТоваровБП_ЧейРезервПосле(Команда)

Перем ФормаОтчёта, КомпоновщикНастроек, Период, ПараметрыФормы;

ФормаОтчёта
= ПолучитьФорму("Отчет.Helmer_РезервыТоваровБП_Отчет.Форма");
КомпоновщикНастроек
= ФормаОтчёта.Отчет.КомпоновщикНастроек;

//Период = Новый СтандартныйПериод();
//Период.ДатаНачала = ТекущаяДата();
//Период.ДатаОкончания =КонецДня(ТекущаяДата());
Период
= КонецДня(ТекущаяДата());//смотри картинку ниже в СКД параметр Дата типа Дата
УстановитьПользовательскийПараметрСКД
(КомпоновщикНастроек, "Период", Период);
//смотри картинку ниже в СКД Отбор должен называться так же "Номенклатура
УстановитьПользовательскийОтборСКД
(КомпоновщикНастроек, "Номенклатура", элементы.СписокНоменклатуры.ТекущиеДанные.Ссылка);

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

ОткрытьФорму
("Отчет.Helmer_РезервыТоваровБП_Отчет.Форма", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры



Что бы 1с не вылетал с ошибкой при нажатии кнопки изменить вариант

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


формы нет!




эти процедуры располагаюся в модуле формы там же процедура обработки нажатии кнопки (см. выше) TSOFT_РезервыТоваровБП_ЧейРезервПосле


&НаКлиенте
Процедура УстановитьПользовательскийПараметрСКД(КомпоновщикНастроек, ИмяПараметра, Значение)

Перем ПараметрДанных, Настройки, ПользовательскиеНастройки, ПользовательскийПараметр;

Настройки
= КомпоновщикНастроек.Настройки;

ПараметрДанных
= Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);

Если ЗначениеЗаполнено(ПараметрДанных.ИдентификаторПользовательскойНастройки) Тогда

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

КонецПроцедуры // УстановитьПользовательскийПараметрСКД

&НаКлиенте
Процедура УстановитьПользовательскийОтборСКД(КомпоновщикНастроек, ИмяОтбора, Значение, ВидСравнения = Неопределено)

Перем ПолеКД, Элем, ЭлементОтбора, Настройки,
ПользовательскиеНастройки
, ПользовательскийОтбор;

Настройки
= КомпоновщикНастроек.Настройки;

ПолеКД
= Новый ПолеКомпоновкиДанных(ИмяОтбора);

Для Каждого Элем Из Настройки.Отбор.Элементы Цикл

Если Элем.ЛевоеЗначение = ПолеКД Тогда
ЭлементОтбора
= Элем;
Прервать;
КонецЕсли;
КонецЦикла;

Если ЭлементОтбора = Неопределено Тогда
Возврат;
КонецЕсли;

Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда

ПользовательскиеНастройки
= КомпоновщикНастроек.ПользовательскиеНастройки;
ПользовательскийОтбор
= ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
ПользовательскийОтбор
.Использование = (Значение <> Неопределено);
ПользовательскийОтбор
.ВидСравнения = ?(ВидСравнения <> Неопределено, ВидСравнения, ВидСравненияКомпоновкиДанных.Равно);
ПользовательскийОтбор
.ПравоеЗначение = Значение;
КонецЕсли;

КонецПроцедуры // УстановитьПользовательскийОтборСКД





---------------------------------------------

Публикация №000000088


©AlexHelmer 2023