Имя: Пароль:
1C
1С v8
Структура подчиненности
0 mirror1982
 
19.03.13
00:27
Подскажите как просто реализовать структуру подчиненности в самописной конфигурации. Может есть какая-нибудь статья в книге знаний?
1 Armando
 
19.03.13
00:28
Подсмотреть в типовой
2 Klesk
 
19.03.13
00:29
рекурсией
3 shuhard
 
19.03.13
00:33
(0) критерий + кусок кода
стырить из любой типовой
4 EugeniaK
 
19.03.13
00:47
(0) Смотри в сторону критериев отбора. Там почти все средствами платформы, кода не так уж много.
5 Команданте
 
19.03.13
00:50
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   ДокументСсылка = Параметры.ДокументСсылка;
   ЗаполнитьДерево();    
   
КонецПроцедуры

Процедура ЗаполнитьДерево()
   
   Дерево = РеквизитФормыВЗначение("СвязанныеДокументы");
   
   ИмяДок = ДокументСсылка.Метаданные().Имя;
   
   ВерхнийДок = Документы[ИмяДок].ПолучитьВерхнийДок(ДокументСсылка);
   
   ИмяДок = ВерхнийДок.Метаданные().Имя;
   
   Таблица = Документы[ИмяДок].ПолучитьТаблицуДок(ВерхнийДок);
   ЗаполнитьПредставление(Таблица);
   
   Нов = Дерево.Строки.Добавить();
   ЗаполнитьЗначенияСвойств(Нов, Таблица[0]);
   ПрисоединитьСтроки(Нов);
   
   ЗначениеВРеквизитФормы(Дерево, "СвязанныеДокументы");
   
КонецПроцедуры

Процедура ПрисоединитьСтроки(Строка)
   
   ИмяДок = Строка.Ссылка.Метаданные().Имя;
   
   Таблица = Документы[ИмяДок].ПолучитьСвязанныеДокументы(Строка.Ссылка);
   
   Если Таблица.Количество() > 0 Тогда
       ЗаполнитьПредставление(Таблица);
       Для Каждого СтрокаТаблицы Из Таблица Цикл
           Нов = Строка.Строки.Добавить();
           ЗаполнитьЗначенияСвойств(Нов, СтрокаТаблицы);
       КонецЦикла;
       Для Каждого Строка Из Строка.Строки Цикл
           ПрисоединитьСтроки(Строка);
       КонецЦикла;
   КонецЕсли;
   
КонецПроцедуры

&НаКлиенте
Процедура НайтиВСписке(Команда)
   
   ПараметрыФормы = Новый Структура("ТекущаяСтрока", Элементы.СвязанныеДокументы.ТекущиеДанные.Ссылка);
   ОткрытьФорму("Документ." + Элементы.СвязанныеДокументы.ТекущиеДанные.Ссылка.Метаданные().Имя + ".ФормаСписка", ПараметрыФормы);    
   
КонецПроцедуры

Процедура ЗаполнитьПредставление(Таблица)
   
   Для Каждого Строка Из Таблица Цикл
       Строка.Представление = Строка.Ссылка.Метаданные().Синоним;
   КонецЦикла;
   
КонецПроцедуры

&НаКлиенте
Процедура СвязанныеДокументыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   
   ОткрытьЗначение(Элементы.СвязанныеДокументы.ТекущиеДанные.Ссылка);
   
КонецПроцедуры
6 eddy_n
 
19.03.13
01:02
Критерий отбора + Общий макет + ОбщаяФорма
2 + 2 = 3.9999999999999999999999999999999...