Имя: Пароль:
1C
1С v8
динамический список
0 DekkeR
 
03.12.11
11:55
Всем Доброго времени суток.
Есть два справочника. Справочник "Дети" подчиненый Справочнику "Сотрудник".
Есть формаСписка справочника Сотрудник, там размещен сам справочник + динамическийСписок основная таблица для которого является Справочник.Дети
нужно что бы приАктивацииСтроки Сотрудника чуть ниже отображались подчиненные ему дети.
вот то что сделал:

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
   данный = элемент.текущаяСтрока;
   СерверСписокПриАктивизацииСтроки(данный);        
КонецПроцедуры
&НаСервере
Процедура СерверСписокПриАктивизацииСтроки(данный)
   Выбор = Справочники.Дети.Выбрать();
   Пока Выбор.Следующий() цикл
       Если Выбор.Владелец = данный тогда
   
       конецЕсли;
   КонецЦикла;
КонецПроцедуры
дальше не знаю как в динамическом списке отобразить отобранные элементы.
1 DekkeR
 
03.12.11
11:55
платформа 8.2
так как на платформе 8.1 можно было сделать сие действие без программного кода
2 2S
 
03.12.11
11:59
а запросом таблицу создать?
3 DrShad
 
03.12.11
12:00
отладчик украли?
4 Пришел в тапках
 
03.12.11
12:38
(3) +1 ))))
5 ANikV
 
03.12.11
13:02
(0) Попробуй так  :)

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
   ТекДанные = Элемент.ТекущиеДанные;
   Если ТекДанные <> Неопределено Тогда
         УстановитьОтбор(ДинСписок, "Владелец", ТекДанные.Ссылка);
   КонецЕсли;
КонецПроцедуры

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

&НаКлиенте
Функция НайтиЭлементыОтбора(ЭлементыОтбора, ИмяПоля)

   ПолеПоиска = Новый ПолеКомпоновкиДанных(ИмяПоля);
   НайденноеПоле = Неопределено;
   Для Каждого Эл Из ЭлементыОтбора Цикл
       Если Эл.ЛевоеЗначение = ПолеПоиска Тогда
           НайденноеПоле = Эл;
           Прервать;
       КонецЕсли;
   КонецЦикла;
   
   Возврат НайденноеПоле;
   
КонецФункции
6 DekkeR
 
03.12.11
13:57
(2) Запросом таблицу легко создать, хотел попробовать другим способом.
(3) действительно смешно.
(5) все здоровски работает. спасибо