Имя: Пароль:
1C
1С v8
Как в СКД в расшифровку передать список значений?
0 toypaul
 
гуру
18.02.13
16:41
По типу того как в 7ке передавался список значений. А то не пойму логику работы методов ПолучитьПоля и ПолучитьРодителей.
1 Defender aka LINN
 
18.02.13
16:47
(0) Для нафига?
2 toypaul
 
гуру
18.02.13
16:51
форма управляемая.
(1) нужно вызвать обработку по данным из строки отчета и по верхним группировкам.
3 toypaul
 
гуру
18.02.13
16:54
если более точно, то при клике на ресурсе, нужно произвести запись в регистр сведений по измерениям, которые могут быть как в строке так и в группировках.
4 also
 
18.02.13
16:54
а что не понятно в ПолучитьПоля и ПолучитьРодителей?
5 Defender aka LINN
 
18.02.13
16:55
(2) Ну, ПолучитьПоля() / ПолучитьРодителей(), да
6 toypaul
 
гуру
18.02.13
16:57
ну ПолучитьПоля мне выдает только это поле. как получить данные из строки? ПолучитьРодителей ересь какую-то выдает = выдает группировку, у которой даже метода ПолучитьПоля нет.
7 also
 
18.02.13
16:59
хы) ну примерно так: Расш = лДанныеРасшифровки.Элементы[ИндексРасшифровки].ПолучитьРодителей()[0].ПолучитьРодителей()[0].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ИмяГруппировки");
8 also
 
18.02.13
17:00
количество ПолучитьРодителей()[0] соотвественно - уровень вложенности группировок
9 also
 
18.02.13
17:01
В самом простом варианте:
лДанныеРасшифровки.Элементы[ИндексРасшифровки].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ИмяГруппировки");
10 toypaul
 
гуру
18.02.13
17:03
(9) ересь какая-то. в том-то все и дело. плюс у меня ПолучитьРодителей возвращает группировку в массиве. а у нее ПолучитьПоля нет.
11 toypaul
 
гуру
18.02.13
17:05
может через макет как-то можно сделать ...  чтобы ПолучитьПоля выдвал все нужное.
12 also
 
18.02.13
17:05
что за группировка в массиве?
13 also
 
18.02.13
17:06
так у меня везде и написано ПолучитьРодителей()[0]
14 toypaul
 
гуру
18.02.13
17:07
ТипЗнч(ПолучитьРодителей()[0]) = "ЭлементРасшифровки...Группировка"

чо не ясно-то?
15 newfantom
 
18.02.13
17:58
16 GANR
 
18.02.13
18:31
(0) как в бухгалтерских отчетах 1С:Бухгалтерия 3.x?
17 toypaul
 
гуру
18.02.13
19:57
(16) не знаю не видел. надо посмотреть.
18 toypaul
 
гуру
19.02.13
11:15
разобрался. с ПолучитьПоля и ПолучитьРодителей. вроде получилось универсальный алгоритм наклепать.

   РасшифровкаОбъект = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
   
   Элемент = РасшифровкаОбъект.Элементы[Расшифровка];
   Если ТипЗнч(Элемент) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
       Если Элемент.ПолучитьПоля()[0].Поле = "Доступно" Тогда
       
           ПараметрыРасшифровки = Новый Структура();
       
           Родители = Элемент.ПолучитьРодителей();
           Если Родители.Количество() > 0 Тогда
               ИдРодителя = Родители[0].Идентификатор;
               Для н=Расшифровка+1 По ИдРодителя-1 Цикл
                   ЭлементСтроки = РасшифровкаОбъект.Элементы[н];
                   Если ТипЗнч(ЭлементСтроки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
                       Для каждого Поле Из ЭлементСтроки.ПолучитьПоля() Цикл
                           ПараметрыРасшифровки.Вставить(Поле.Поле,Поле.Значение);
                       КонецЦикла;
                   КонецЕсли;
               КонецЦикла;
           КонецЕсли;
           
           Пока Истина Цикл
           
               Если ТипЗнч(Элемент) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
               
                   Для каждого Поле Из Элемент.ПолучитьПоля() Цикл
                       ПараметрыРасшифровки.Вставить(Поле.Поле,Поле.Значение);
                   КонецЦикла;
               
               КонецЕсли;
               
               Родители = Элемент.ПолучитьРодителей();
               Если Родители.Количество() = 0 Тогда
                   Прервать;
               КонецЕсли;
               Элемент = Родители[0];
           
           КонецЦикла;
       
       КонецЕсли;
       
   КонецЕсли;

два условия только выкинуть из этого алгоритма - это уже специфика.
19 toypaul
 
гуру
19.02.13
11:21
тьфу. вот это

Для н=Расшифровка+1 По ИдРодителя-1 Цикл

поменять на

Для н=ИдРодителя+1 По Расшифровка-1 Цикл
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший