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