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