управляемые формы, вызов отчета из команды документа 1с 8.3
Надо из формы документа реализация по кнопке вызвать отчёт "ОстаткиТоваровОрганизаций" с параметрами: дата и список номенклатуры (список значений). Не получается. Может кто-нибудь помочь? Пробовал несколько вариантов решений, найденных здесь же. Результата нет.
&НаСервере
Процедура ОстаткиВДок_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
//Создаем Команду
НоваяКоманда = ЭтаФорма.Команды.Добавить("Остатки");
НоваяКоманда.Действие = "ПоказатьОстатки";//Имя процедуры
НоваяКоманда.Заголовок = "Показать остатки";
//Создаем гиперссылку перед указанным
НоваяКнопка = ЭтаФорма.Элементы.Вставить("КнопкаВНачале", Тип("КнопкаФормы"), ЭтаФорма, ЭтаФорма.ПодчиненныеЭлементы[0]);
НоваяКнопка.ИмяКоманды = "Остатки";
НоваяКнопка.Вид = ВидКнопкиФормы.Гиперссылка;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьОстатки()
СписокНоменклатуры = Новый СписокЗначений;
Для каждого ТекущаяСтрока Из Объект.Товары Цикл
СписокНоменклатуры.Добавить(ТекущаяСтрока.Номенклатура);
КонецЦикла;
ТабДок = КомандаОткрытьОтчётСОтбором(СписокНоменклатуры);
ТабДок.Показать(Ура");
КонецПроцедуры
&НаСервере
Функция КомандаОткрытьОтчётСОтбором(СписокНоменклатуры)
Отчет = Отчеты.ОстаткиТоваровОрганизаций.Создать();
Схема = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ТабДок = Новый ТабличныйДокумент;
// Типы переменных:
// Схема - СхемаКомпоновкиДанных
// Настройки - НастройкиКомпоновкиДанных
// насПланЕБП - ЗначениеПараметраНастроекКомпоновкиДанных
// Макет - МакетКомпоновкиДанных
ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема);
КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
// --- установка параметров
Настройки = Схема.НастройкиПоУмолчанию;
насВероятнось = Настройки.ПараметрыДанных.Элементы.Найти("НаДату");
насВероятнось.Использование = Истина;
насВероятнось.Значение = ТекущаяДата();
// --- установка отборов
Если ЗначениеЗаполнено(СписокНоменклатуры) тогда
ПолеОтбораНоменклатура = Новый ПолеКомпоновкиДанных("Номенклатура");
ПолеОтбораНоменклатура= Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ПолеОтбораНоменклатура.ЛевоеЗначение = ПолеОтбораНоменклатура;
ПолеОтбораНоменклатура.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ПолеОтбораНоменклатура.ПравоеЗначение = СписокНоменклатуры;
ПолеОтбораНоменклатура.Использование = Истина;
КонецЕсли;
// --- компануем
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);
ПроцессорКомпоновки.Инициализировать(Макет,,,Истина);
ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Возврат ТабДок;
КонецФункции
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
УсловияОтбора = Новый Структура("Товар", Элементы.Список.ТекущаяСтрока);
ПараметрыФормы = Новый Структура("Отбор, СформироватьПриОткрытии", УсловияОтбора, Истина);
ОткрытьФорму("Отчет.ЦеныТоваров.ФормаОбъекта", ПараметрыФормы);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот