Имя: Пароль:
1C
1С v8
Как в отчете сделать отбор по конкретному элементу справочника?
Ø (Фрэнки 14.06.2021 09:50)
0 Psixovanniyyy
 
14.06.21
09:46
Здравствуйте УТ 10.4 Версия платформы 8.3, Отчет ведомость по денежным средствам (Универсальный Отчёт)
Модуль Обьекта(Отчета)
#Если Клиент Тогда
                    
                    
                     ////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА

// Процедура установки начальных настроек отчета по метаданным регистра накопления
//
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Настройка общих параметров универсального отчета
    
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета";
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    
    // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    
    // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах";
    УниверсальныйОтчет.ИмяРегистра = "ДенежныеСредства";
    
    // Содержит признак необходимости вывода отрицательных значений показателей красным цветом.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ОтрицательноеКрасным = Истина;
    
    // Содержит признак необходимости вывода в отчет общих итогов.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь;
    
    // Содержит признак необходимости вывода детальных записей в отчет.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
    
    // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь;
    УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Истина;
    
    // Содержит признак использования свойств и категорий при заполнении настроек отчета.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина;
    
    // Содержит признак использования простой формы настроек отчета без группировок колонок.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина;
    
    // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку.
    // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована
    // для реализации специфичных для данного отчета параметрических настроек.
    
    //УниверсальныйОтчет.ДобавитьПолеГруппировка("Организация",           "БанковскийСчетКасса", "Владелец",              "Организация");
    УниверсальныйОтчет.ДобавитьПолеГруппировка("ВалютаДенежныхСредств", "БанковскийСчетКасса", "ВалютаДенежныхСредств", "Валюта счета (кассы)");
    
    // Заполнение начальных настроек универсального отчета
    УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина);
    
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаНачальныйОстаток", "Начальный остаток", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма в валюте счета (кассы)");
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаПриход",           "Приход",            Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма в валюте счета (кассы)");
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаРасход",           "Расход",            Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма в валюте счета (кассы)");
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаКонечныйОстаток",  "Конечный остаток",  Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма в валюте счета (кассы)");
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаОборот",           "Оборот",              Ложь, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма в валюте счета (кассы)");
    
    ВалютаУпр = глЗначениеПеременной("ВалютаУправленческогоУчета").Наименование;
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаУпрНачальныйОстаток", "Начальный остаток", Истина, "ЧЦ=15; ЧДЦ=2", "СуммаУпр", "Сумма в " + ВалютаУпр);
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаУпрПриход",           "Приход",            Истина, "ЧЦ=15; ЧДЦ=2", "СуммаУпр", "Сумма в " + ВалютаУпр);
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаУпрРасход",           "Расход",            Истина, "ЧЦ=15; ЧДЦ=2", "СуммаУпр", "Сумма в " + ВалютаУпр);
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаУпрКонечныйОстаток",  "Конечный остаток",  Истина, "ЧЦ=15; ЧДЦ=2", "СуммаУпр", "Сумма в " + ВалютаУпр);
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаУпрОборот",           "Оборот",              Ложь, "ЧЦ=15; ЧДЦ=2", "СуммаУпр", "Сумма в " + ВалютаУпр);
    
    // Добавление предопределенных группировок строк отчета.
    // Необходимо вызывать для каждой добавляемой группировки строки.
    // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("БанковскийСчетКасса");
    
    // Добавление предопределенных группировок колонок отчета.
    // Необходимо вызывать для каждой добавляемой группировки колонки.
    // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>);
    
    // Добавление предопределенных отборов отчета.
    // Необходимо вызывать для каждого добавляемого отбора.
    // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>);
    УниверсальныйОтчет.ДобавитьОтбор("БанковскийСчетКасса");
    УниверсальныйОтчет.ДобавитьОтбор("ВидДенежныхСредств");
    УниверсальныйОтчет.ДобавитьОтбор("ВалютаДенежныхСредств");
    УниверсальныйОтчет.ДобавитьОтбор("Организация");
    
    
    // Добавление предопределенных полей порядка отчета.
    // Необходимо вызывать для каждого добавляемого поля порядка.
    // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>);
    
    // Установка связи подчиненных и родительских полей
    // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДаннымРодитель>);
    
    // Установка связи полей и измерений
    // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>);
    
    // Добавление дополнительных полей
    // Необходимо вызывать для каждого добавляемого дополнительного поля.
    // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>);
    УниверсальныйОтчет.ДобавитьДополнительноеПоле("ВалютаДенежныхСредств");
    УниверсальныйОтчет.ДобавитьДополнительноеПоле("ВидДенежныхСредств");
    
КонецПроцедуры // УстановитьНачальныеНастройки()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ФОРМИРОВАНИЯ ОТЧЕТА
    
// Процедура формирования отчета
//
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
    
    // Перед формирование отчета можно установить необходимые параметры универсального отчета
    УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент);

КонецПроцедуры // СформироватьОтчет()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

// Процедура обработки расшифровки
//
Процедура ОбработкаРасшифровки(Расшифровка, Объект) Экспорт
    
    // Дополнительные параметры в расшифровывающий отчет можно передать
    // посредством инициализации переменной "ДополнительныеПараметры".
    
    ДополнительныеПараметры = Неопределено;
    УниверсальныйОтчет.ОбработкаРасшифровкиУниверсальногоОтчета(Расшифровка, Объект, ДополнительныеПараметры);
    
КонецПроцедуры // ОбработкаРасшифровки()

// Формирует структуру для сохранения настроек отчета
//
Процедура СформироватьСтруктуруДляСохраненияНастроек(СтруктураСНастройками) Экспорт
    
    УниверсальныйОтчет.СформироватьСтруктуруДляСохраненияНастроек(СтруктураСНастройками);
    
КонецПроцедуры // СформироватьСтруктуруДляСохраненияНастроек()

// Заполняет настройки отчета из структуры сохраненных настроек
//
Функция ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками) Экспорт
    
    Возврат УниверсальныйОтчет.ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками, ЭтотОбъект);
    
КонецФункции // ВосстановитьНастройкиИзСтруктуры()

// Содержит значение используемого режима ввода периода.
// Тип: Число.
// Возможные значения: 0 - произвольный период, 1 - на дату, 2 - неделя, 3 - декада, 4 - месяц, 5 - квартал, 6 - полугодие, 7 - год
// Значение по умолчанию: 0
// Пример:
// УниверсальныйОтчет.мРежимВводаПериода = 1;

#КонецЕсли


МОДУЛЬ ФОРМЫ
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

// Обновляет таблицу отчета
//
Процедура ОбновитьОтчет() Экспорт
    
    СформироватьОтчет(ЭлементыФормы.ПолеТабличногоДокументаРезультат);
    
КонецПроцедуры // ОбновитьОтчет()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

// Процедура - обработчик события при открытии формы
//
Процедура ПриОткрытии()
    

    УниверсальныйОтчет.мДействиеПолеВводаВидСравненияПриИзменении = Новый Действие("ПолеВводаВидСравненияПриИзменении");
    УниверсальныйОтчет.мДействиеПолеВводаЗначениеПриИзменении = Новый Действие("ПолеВводаЗначениеПриИзменении");
    УниверсальныйОтчет.мДействиеКоманднаяПанельФормыПечать = Новый Действие("КоманднаяПанельФормыПечать");
    УниверсальныйОтчет.ФормаПриОткрытии(УниверсальныйОтчет, ЭтотОбъект, ЭтаФорма);
    
КонецПроцедуры // ПриОткрытии()

// Процедура - обработчик события при закрытии формы
//
Процедура ПриЗакрытии()
    
    УниверсальныйОтчет.ФормаПриЗакрытии(УниверсальныйОтчет, ЭтотОбъект, ЭтаФорма);
        
КонецПроцедуры // ПриЗакрытии()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ НАЖАТИЯ КНОПОК КОМАНДНОЙ ПАНЕЛИ

// Процедура - обработчик нажатия кнопки "Печать"
//
Процедура КоманднаяПанельФормыПечать(Кнопка)
    
    УниверсальныйОтчет.ФормаПечать(УниверсальныйОтчет, ЭтотОбъект, ЭтаФорма);
    
КонецПроцедуры // КоманднаяПанельФормыПечать()

// Процедура - обработчик нажатия кнопки "Сформировать"
//
Процедура КоманднаяПанельФормыСформировать(Кнопка)
    
    ОбновитьОтчет();
    
КонецПроцедуры // КоманднаяПанельФормыСформировать()

// Процедура - обработчик нажатия кнопки "Настройка"
//
Процедура КоманднаяПанельФормыНастройка(Кнопка)
    
    УниверсальныйОтчет.ФормаНастройка(УниверсальныйОтчет, ЭтотОбъект, ЭтаФорма, ЭлементыФормы.ПолеТабличногоДокументаРезультат);
    
КонецПроцедуры // КоманднаяПанельФормыНастройка()

// Процедура - обработчик нажатия кнопки "НовыйОтчет"
//
Процедура КоманднаяПанельФормыНовыйОтчет(Кнопка)
    
    // Дополнительные параметры в расшифровывающий отчет можно передать
    // посредством инициализации переменной "ДополнительныеПараметры".
    ДополнительныеПараметры = Неопределено;
    
    УниверсальныйОтчет.ФормаНовыйОтчет(УниверсальныйОтчет, ЭтотОбъект, ДополнительныеПараметры);

КонецПроцедуры // КоманднаяПанельФормыНовыйОтчет()

// Процедура - обработчик нажатия кнопки "БыстрыеОтборы"
//
Процедура КоманднаяПанельФормыБыстрыеОтборы(Кнопка)
    
    УниверсальныйОтчет.УправлениеОтображениемЭлементовФормы(УниверсальныйОтчет, ЭтаФорма, Кнопка.Имя);
    УниверсальныйОтчет.УправлениеПанельюБыстрыеОтборы(УниверсальныйОтчет, ЭтаФорма);
    
КонецПроцедуры // КоманднаяПанельФормыБыстрыеОтборы()

// Процедура - обработчик нажатия кнопки "ЗаголовокОтчета"
//
Процедура КоманднаяПанельФормыЗаголовокОтчета(Кнопка)
    
    УниверсальныйОтчет.УправлениеОтображениемЭлементовФормы(УниверсальныйОтчет, ЭтаФорма, Кнопка.Имя);
    УниверсальныйОтчет.УправлениеОтображениемЗаголовка(УниверсальныйОтчет, ЭлементыФормы.ПолеТабличногоДокументаРезультат);
    
КонецПроцедуры // КоманднаяПанельФормыЗаголовокОтчета()

// Процедура - обработчик нажатия кнопки "ВосстановитьНастройку"
//
Процедура КоманднаяПанельФормыВосстановитьНастройку(Кнопка)
    
    УниверсальныйОтчет.ВосстановитьНастройки(УниверсальныйОтчет, ЭтотОбъект, ЭтаФорма);
    
    
КонецПроцедуры // КоманднаяПанельФормыДействиеВосстановитьЗначения()

// Процедура - обработчик нажатия кнопки "СохранитьНастройку"
//
Процедура КоманднаяПанельФормыСохранитьНастройку(Кнопка)
    
    УниверсальныйОтчет.СохранитьНастройки(УниверсальныйОтчет, ЭтотОбъект, ЭтаФорма);
    
КонецПроцедуры // КоманднаяПанельФормыДействиеСохранитьЗначения()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ

// Процедура - обработчик нажатия кнопки "КнопкаНастройкаПериода"
//
Процедура КнопкаНастройкаПериодаНажатие(Элемент)
    
    УниверсальныйОтчет.ФормаНастройкаПериода(УниверсальныйОтчет);
    
КонецПроцедуры // КнопкаНастройкаПериодаНажатие()

// Процедура - обработчик нажатия кнопки "КнопкаМинусПериод"
//
Процедура КнопкаМинусПериодНажатие(Элемент)
    
    УниверсальныйОтчет.ФормаМинусПериод(УниверсальныйОтчет);
    
КонецПроцедуры // КнопкаМинусПериодНажатие()

// Процедура - обработчик нажатия кнопки "КнопкаПлюсПериод"
//
Процедура КнопкаПлюсПериодНажатие(Элемент)
    
    УниверсальныйОтчет.ФормаПлюсПериод(УниверсальныйОтчет);
    
КонецПроцедуры // КнопкаПлюсПериодНажатие()

// Процедура - обработчик события "Обработка расшифровки" поля табличного документа "ПолеТабличногоДокументаРезультат"
//
Процедура ПолеТабличногоДокументаРезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки(Расшифровка, ОтчетОбъект);
    
КонецПроцедуры // ПолеТабличногоДокументаРезультатОбработкаРасшифровки()

// Процедура - обработчик события "При изменении" поля ввода "ПолеВводаВидСравнения"
//
Процедура ПолеВводаВидСравненияПриИзменении(Элемент)
    
    УниверсальныйОтчет.ВидСравненияПриИзменении(Элемент, ЭтаФорма);
    
КонецПроцедуры // ПолеВводаВидСравненияПриИзменении()

// Процедура - обработчик события "При изменении" полей ввода "Значение", "ЗначениеС", "ЗначениеПо"
//
Процедура ПолеВводаЗначениеПриИзменении(Элемент)
    
    УниверсальныйОтчет.ЗначениеПриИзменении(Элемент, ЭтаФорма);
    
КонецПроцедуры // ПолеВводаВидСравненияПриИзменении()


https://ibb.co/PQkK3MD
https://ibb.co/CtfBPdF
https://ibb.co/YfbLtCs

Нужно сделать у Роли отбор по определенному складу (всегда) чтобы он не мог изменять его и нужно сделать период с НачМесяца по умолчанию что бы он ранее даты отчета не мог выбрать, Прошу помочь
1 Фрэнки
 
14.06.21
09:50
создай тему нормально. Топик пост кратко. Простыня кода или в отдельно посте сразу за первым или в выложи куда-то и дай ссылку. Если будешь выкладывать, то можешь даже свой вариант отчета выложить.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс