Имя: Пароль:
1C
1C 7.7
v7: Регламентированные отчеты - получение данных через параметр формы
,
0 ironn
 
01.02.17
13:25
Помогите плиз, может кто сталкивался.
Получаю из регламентированных отчетов через параметр формы данные. Данные в виде списка значений, в котором есть параметры таб. части с нумерацией строки в названии параметра DOD5T1R*G2 где * номер строки. Вопрос - как определить количество этих строк, т.е. в списке, например, 3 строки? При подстановке в цикле номера в имя параметра и получение его значения из списка, будет пустое значение и в случае, если он пустой, и в случае, если его нет в списке, т.е. строки закончились.

DOD5T1R000001G2 = 433243244  
DOD5T1R000001G3A = 3
DOD5T1R000001G3B = 2005
DOD5T1R000001G4 = 240
DOD5T1R000001G5 = 48
DOD5T1R000001G6 = 0

DOD5T1R000002G2 =
DOD5T1R000002G3A = 0
DOD5T1R000002G3B = 0
DOD5T1R000002G4 = 0
DOD5T1R000002G5 = 0
DOD5T1R000002G6 = 0
1 Ёпрст
 
01.02.17
13:29
Если смотреть сверху, то сбоку кажется, что снизу ничего не видно.

Кто на ком стоял ?
Кто-нить понял, что хочет автор ?
2 Это_mike
 
01.02.17
13:29
(1) у него строки кончились...
у меня лишних строк нет, могу только запятых отсыпать...
3 Масянька
 
01.02.17
13:31
(1) Нет.
(2) Я могу - восклицательных знаков.
(0) А зачем?
4 ironn
 
01.02.17
16:28
Сч = 1;
Пока ... Цикл
Сч = Сч + 1;
    Сп.Получить("DOD5T1R"+ Прав("000000"+Сч,6) + "G2");
КонецЦикла

DOD5T1R000001G2
DOD5T1R000002G2
DOD5T1R000003G2
Как определить, что в списке уже нет параметра с именем DOD5T1R000004G2 ?

Можно, конечно, читать весь список последовательно и сравнивать имя параметра по шаблону, но долго...
Список большой и в нем не только пронумерованные параметры -
DOD3HZKVP = 0
DOD3HZMP = 0
DOD4HZYP = 0
DOD4HZKVP = 0
DOD4HZMP = 0
DOD5HZYP = 0
DOD5HZKVP = 0
DOD5HZMP = 0
SPR1HZYP = 0
SPR1HZKVP = 0
SPR1HZMP = 0
DOD7HZYP = 0
DOD7HZKVP = 0
5 Slypower
 
01.02.17
16:39
Считать весь список, вогнать в ТЗ, отсортировать и посмотреть
6 Ёпрст
 
01.02.17
16:41
Если Получить Вернёт дырку от бублика, тогда Прервать;
7 ironn
 
01.02.17
17:16
(6) Дырку вернет и если в параметре пустое значение
8 ironn
 
01.02.17
18:12
(5) ТЗ как вариант, но список тоже можно отсортировать по представлению.
9 uno-group
 
01.02.17
18:18
Для К=1 По Сп.РазмерСписка()
Значение=Сп.ПолучитьЗначение(К,Параметр);
10 uno-group
 
01.02.17
18:25
Еще можно после получения пустого значение попробовать его установить если список увеличился в размерах значит такого параметра не было грохаем последнее и действуем так как надо
11 trdm
 
01.02.17
18:43
гым. тест на IQ. Зубры посыпались ))))
12 ironn
 
01.02.17
20:17
(10) Хорошая идея!!!
13 73с
 
01.02.17
21:42
В порядке бреда.
А для чего нужно получать "из регламентированных отчетов через параметр формы данные."? Может попробовать брать сохраненные данные? В тех же регламентированных скопипастить творчески процедуру восстановления. Там все механизмы есть и данные сохранены в таблицы значений и списки, т.е. количество строк известно.
Чушь предлагаю?
14 ironn
 
02.02.17
01:50
(13) Не, не чушь, такой вариант рассматривается на будущее - если есть сохраненный, то брать его, а нет - брать через параметр формы. Я еще не разбирался как там храниться сгенеренный отчет, в каком виде. Если в таком - же, тогда очень даже замечательно.
Отчет нужен для передачи в МЕДок, а в нем показатели в основном совпадают со 1СЗвит. Через параметр формы обработки регл. отчета удбно - можно получить таблицу соответствия параметров и данные отчета.
К стати, в отчете ЕСВ в списке данных есть параметры с количеством заполненных строк таб частей, в нем строки генерятся кратно 10 - одна заполнена + 9 пустых.
15 ironn
 
02.02.17
02:44
Посмотрел сохраненный формат отчета по НДС - действительно, все ТЧ в отдельных списках и имена параметров вроде те же.