Имя: Пароль:
1C
 
Обход констант
, ,
0 Nykos
 
09.09.14
16:31
Привет. Надо перебирать заполнение констант по порядку и в зависимости от того сколько их там( членов комиссии от 1 до 8 человек) заполнять параметр в макете. Подскажите пожалуйста где ошибка в кусочке кода:

Для Ном = 1 По 8 Цикл
    Если НЕ Конст["ЧленКомиссииСписаниеМатериалов" + Ном].Пустая() Тогда
    Шапка.Параметры.ЧленКомиссии = ФамилияИО(Конст["ЧленКомиссииСписаниеМатериалов" + Ном]);
    КонецЕсли;
КонецЦикла;

Почему отладчик всегда пропускает строку обращения к параметру?
Как вообще можно в один параметр запихнуть динамическое количество значений?

Извините, совсем запутался.
1 del123
 
09.09.14
16:35
Конст какого типа?
2 shuhard
 
09.09.14
16:37
(0)[Конст["ЧленКомиссииСписаниеМатериалов" + Ном]]
это к 8.Х отношения не имеет
во первых это не константа
во вторых у константы есть метод получить()
3 Nykos
 
09.09.14
16:37
строка
4 Nykos
 
09.09.14
16:38
кажется я начинаю понимать
5 Nykos
 
09.09.14
16:40
(2) но отладчик де отрабатывает эту строку и показывает правильные данные...
6 Azverin
 
09.09.14
16:43
(5) у тебя в макете область с одним параметром ЧленКомиссии, а тебе нужно исходя из счётчика (кол-во членов) продублировать эту строку в макете. вот и думай
7 mc lammer
 
09.09.14
16:46
проверь в отладчике что возвращают правильные значения
1) Конст["ЧленКомиссииСписаниеМатериалов" + Ном]
2) ФамилияИО(Конст["ЧленКомиссииСписаниеМатериалов" + Ном])

ну и у тебя эти элементы коллекции перебираются в цикле,  и их  значение присваивается одному единственному параметру "ЧленКомиссии".   тут  или должны быть несколько параметров, или собирать в цикле общую строку из членов этих надо и затем присваивать значение параметру
8 mc lammer
 
09.09.14
16:47
или, как написал (6), нужно область с членом в цикле выводить несколько раз, по числу значений
9 Nykos
 
09.09.14
16:49
(8) Если бы они были в отдельной области я бы просто вывел их циклом, но членов комиссии нужно вывести в одну строку через запятую в зависимости от того, сколько их
10 DGorgoN
 
09.09.14
16:50
Ошибка в ДНК. Может членов комиссии сделать справочником?
11 DGorgoN
 
09.09.14
16:51
Или поставить в справочнике сотрудников (или где его там) признак того что человек в комиссии? Да и вообще сваять документ, который будет утверждать/изменять состав комиссии и писать все регистр будет вообще самый правильный вариант несмотря на трудоемкость.
12 mc lammer
 
09.09.14
16:53
(9) делай тогда так:

ТекстЧленКомиссии = "";

Для Ном = 1 По 8 Цикл
    Если НЕ Конст["ЧленКомиссииСписаниеМатериалов" + Ном].Пустая() Тогда
    ТекстЧленКомиссии = ТекстЧленКомиссии + ?(ПустаяСтрока(ТекстЧленКомиссии), "", ", ") + ФамилияИО(Конст["ЧленКомиссииСписаниеМатериалов" + Ном]);
    КонецЕсли;
КонецЦикла;

Шапка.Параметры.ЧленКомиссии = ТекстЧленКомиссии;
13 mc lammer
 
09.09.14
16:55
(11) дык у человека все уже сделано и небось 5 лет работает, и нужен только кусочек овнокода для печати
14 Nykos
 
09.09.14
16:59
(13) Можно и так сказать, форма акта изменилась и вывод столбиком пришлось менять на строчный. Спасибо, твой вариант мне помог!