Имя: Пароль:
1C
1С v8
Отбор по организации в УФ списка справочника подразделений
0 svchernova
 
15.03.12
13:35
Здравствуйте,
На управляемую форму списка справочника подразделений поместила поле "Организация" и в свойствах Связь по типу указала "Элементы.Список.Текущие данные.Владелец".

На событие "ПриСозданииНаСервере" навесила процедуру

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

При этом отбор работает.
Н при изменении организации что-то уже не соображу, как сделаь отбор подразделений. Ведь список подразделений уже отобран, сформирован, и в нём нет подразделений для нового значения организации.
1 Grusswelle
 
15.03.12
13:36
imho лучше произвольный запрос с параметром (-ами).
2 svchernova
 
15.03.12
13:38
(1) на процедуре "при изменении"?
3 Лирик
 
15.03.12
13:38
Все тоже самое вызвать из процедуры события "ОрганизацияПриИзменении"
4 svchernova
 
15.03.12
13:41
(3) нет, не получается. Там идёт отбор подразделений новой организации, А в списке уже отобраны подразделения предыдущей организации.
5 Лирик
 
15.03.12
13:44
А процедура то корявая.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Организация    = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация");
  УстановитьОтборПоОрганизации();  
КонецПроцедуры

&НаСервере
Процедура УстановитьОтборПоОрганизации()
// сначала попробовать найти а потом добавить если не нашел
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));    
   Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Владелец").Поле;    
   Отбор.ПравоеЗначение = Организация;
КонецПроцедуры
6 Лирик
 
15.03.12
13:45
(4) Умница. Отбор надо не добавлять а менять.
7 svchernova
 
15.03.12
13:47
(6) я понимаю, что менять нужно. Только как?
8 Лирик
 
15.03.12
13:53
Список.Отбор.Элементы - это коллекция которую можно перебрать, найти нужный отбор, и изменить его
9 Лирик
 
15.03.12
13:54
Напимер по этому условию "Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Владелец").Поле"
10 svchernova
 
15.03.12
13:57
(9) Сейчас повожусь с этим делом.. спасибо
11 svchernova
 
15.03.12
13:59
(9) но у меня ведь это и написано в процедуре..
12 Лирик
 
15.03.12
14:02
+(9) Где-то в БСП есть общие процедуры которые это делают. Что-то вроде УстановитьОтборСписка(Элемент, ....).
(11) - ты добавляешь!!!
Получается 2 отбора
Организация = Основная
И
Организация = Измененная

Зайди после смены организации в
Все Действия -> Отбор
и увидишь, что наложено два отбора
13 Лирик
 
15.03.12
14:04
О, нашел, живет здесь ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора
14 svchernova
 
15.03.12
14:04
(12) я увидела, что добавляю!!!! Ты прав. Я это видела, но как не добавить, а изменить отбор, чтобы там только одна организация осталась, я не пойму никак
15 Defender aka LINN
 
15.03.12
14:04
"Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Владелец").Поле" - это 5.
16 Лирик
 
15.03.12
14:04
////////////////////////////////////////////////////////////////////////////////
// Функции для работы с отборами динамических списков
//
17 svchernova
 
15.03.12
14:07
(16) Нашла, сейчас попробую!!
18 svchernova
 
15.03.12
14:07
(15) Defender, что ты имеешь ввиду?
19 Defender aka LINN
 
15.03.12
14:31
(18) А просто - Новый ПолеКомпоновкиДанных("Владелец") - не, не айс?
20 acsent
 
15.03.12
14:34
Параметры.Вставить("Отбор", Новый Структура("Организиция", НужнаяОрганизация))
21 svchernova
 
15.03.12
14:40
Спасибо всем :) занята была, не могла ответить. сейчас ваши варианты попробую
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший