Имя: Пароль:
1C
1С v8
v8: СКД - вопрос по программной настройке отбора (упр. формы)
0 Справочник
 
02.10.12
10:49
Конфигурация - самописка на управляемых формах, используется подсистема "Варианты отчетов".
Есть простенький отчет - форма без кода, сохранение вариантов через упомянутую подсистему. В СКД используется отбор по полю "Менеджер".
Возникла задача сделать так, чтобы менеджеру в отборе автоматически проставлялся он сам и запрет на отключение отбора или смену менеджера.

Первый вопрос, который меня мучает - в каком обработчике формы отчета это писать. ПриЗагрузкеВариантаНаСервере? Если да, то как отловить имя загруженного варианта - по заданию указанная фильтрация по менеджеру должна выполняться только для одного определенного варианта отчета.
1 Справочник
 
11.10.12
20:33
Опять вернулся к задаче, пробую:

&НаСервере
Процедура ПриЗагрузкеВариантаНаСервере(Настройки)
   КоличествоОтборов =  Настройки.Отбор.Элементы.Количество();
   Сообщить(КоличествоОтборов);
КонецПроцедуры


Все время выводит 0, хотя в СКД я создал два отбора. Как "достучаться" до отборов, чтобы установить программно правое значение?
2 Справочник
 
11.10.12
21:05
Уже почти получилось  - ошибок не выдает, отладчиком вижу все проходит, только почему-то быстрые настройки на форме не меняются. Что не хватает?

&НаСервере
Процедура ПриЗагрузкеВариантаНаСервере(Настройки)
   
   ТекНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
   Коллекция = ТекНастройки.Элементы;
   Для Каждого ЭлементНастройки Из Коллекция Цикл
       Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных")тогда
           Если ТипЗнч(ЭлементНастройки.ПравоеЗначение) = Тип("СправочникСсылка.Пользователи") Тогда
               ЭлементНастройки.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры
3 Справочник
 
11.10.12
21:12
Загружаю настройки в Компоновщик - опять ничего не меняется.

&НаСервере
Процедура ПриЗагрузкеВариантаНаСервере(Настройки)
   
   ТекНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
   Коллекция = ТекНастройки.Элементы;
   Для Каждого ЭлементНастройки Из Коллекция Цикл
       Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных")тогда
           Если ТипЗнч(ЭлементНастройки.ПравоеЗначение) = Тип("СправочникСсылка.Пользователи") Тогда
               ЭлементНастройки.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   
   Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ТекНастройки);
   
КонецПроцедуры
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.