Имя: Пароль:
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) все здоровски работает. спасибо
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn