Имя: Пароль:
1C
1С v8
Как задать произвольное значение параметру в макете?
0 snegovik
 
16.07.15
08:13
У меня в макете есть параметры: РуководительПоДоверенности1, РуководительПоДоверенности2, РуководительПоДоверенности3 и ещё несколько. Все они расположены в одной секции, которая выводится разом. Как заполнить эти параметры полуавтоматом из массива? Если делаю такой код - то ругается. Вопрос - как правильно написать вот эту строку кода:  

ОбластьМакета.Параметры.РуководительПоДоверенности[i]



Для i = 1 По 3 Цикл
            Если МассивРуководителей.Количество() >= i Тогда
                ОбластьМакета.Параметры.РуководительПоДоверенности[i] = МассивРуководителей.Получить(i - 1);
            КонецЕсли;
1 asady
 
16.07.15
08:27
(0) попробуй
ОбластьМакета.Параметры["РуководительПоДоверенности"+i] = МассивРуководителей.Получить(i - 1);
2 Михаил 1С
 
16.07.15
08:27
(0) Посмотри в справке - какие процедуры-функции есть у Параметров Табличного документа. Скорее всего, что есть такая - Найти(ИмяПараметра).
Вот ты и и напишешь тогда
ОбластьМакета.Параметры.Найти("РуководительПоДоверенности" + i)
3 Михаил 1С
 
16.07.15
08:28
(1) О, да, точно, наверняка такое есть.
4 ИС-2
 
naïve
16.07.15
08:31
(3) нет такого метода. Мне пришлось по ячейкам искать параметр. Точнее по именам ячеек
5 snegovik
 
16.07.15
08:33
(1) Нет, такое тоже не работает.
6 snegovik
 
16.07.15
08:34
(4) Вручную все ячейки проставлять?

Типа такого:

ОбластьМакета.Параметры.РуководительПоДоверенности1 = МассивРуководителей.Получить(0);
ОбластьМакета.Параметры.РуководительПоДоверенности2 = МассивРуководителей.Получить(1);
ОбластьМакета.Параметры.РуководительПоДоверенности3 = МассивРуководителей.Получить(2);
7 asady
 
16.07.15
08:37
(6)
Попробуй так
СтруктураПараметров = Новый Структура;
Для i = 1 По 3 Цикл

            Если МассивРуководителей.Количество() >= i Тогда
                СтруктураПараметров.Добавить("РуководительПоДоверенности"+i,МассивРуководителей.Получить(i - 1));
            КонецЕсли;
КонецЦикла;
ОбластьМакета.Параметры.Заполнить(СтруктураПараметров);
8 Михаил 1С
 
16.07.15
08:39
(7) Ну да, здорово!
Только в цикле делать цикл не по 3, а по Количество()
9 snegovik
 
16.07.15
08:45
(7) Спасибо, так работает!)
Только не  СтруктураПараметров.Добавить а
СтруктураПараметров.Вставить
2 + 2 = 3.9999999999999999999999999999999...