Имя: Пароль:
1C
1С v8
Получить список параметров из макета
,
0 BlueBird
 
19.09.11
11:57
Добрый день. Подскажите, пожалуйста, как можно получить список имен параметров из макета (именно сами имена параметров - они неизвестны в данном случае).
1 mikecool
 
19.09.11
12:00
Макет.Область().Параметры - смотреть здесь
2 Axel2009
 
19.09.11
12:02
никак..
3 BlueBird
 
19.09.11
12:14
(1) Из коллекции параметров можно получить только значение по имени или индексу
4 poligraf
 
19.09.11
12:22
(3) Для Каждого не пройдет цикл?
5 Axel2009
 
19.09.11
12:32
(4) там тоже значение только
6 shuhard
 
19.09.11
12:48
(3) только через Попытка,
если параметров много и они типизированно названы
7 BlueBird
 
19.09.11
12:53
(6) То есть пытаться угадать какой параметр есть в макете? Нет, это не подходит, т.к. макет может оказаться абсолютно любой - имя параметров не угадать.
8 Axel2009
 
19.09.11
12:54
(7) считывать каждую ячейку макета и добавлять в список значений.
9 BlueBird
 
19.09.11
12:55
Пока рабочий вариант - сделать отдельный макет, в котором будут храниться все параметры, каждый в новой строке.
(7) - да, примерно так
10 shuhard
 
19.09.11
12:55
(7) значит ни как,
требуй от начальства упростить задачу
11 Axel2009
 
19.09.11
12:55
(9) не надо
12 Amiralnar
 
19.09.11
12:59
(8) Мне нравится.
13 BlueBird
 
19.09.11
12:59
Вообще, на самом деле, все гораздо сложнее в этом макете. Есть параметры, который нужно заполнять по данным документа (вот их список и нужен), а есть такие, по которым текст заполняется из регистра сведений (их список возможно тоже нужно будет получать, но не факт). Кроме того, эти параметры, то есть макет  в конфигураторе, скорее всего, будут заданы один раз и навсегда.
14 Amiralnar
 
19.09.11
13:04
> Вообще, на самом деле, все гораздо сложнее в этом макете.
Все гораздо проще. Заполняй параметры через попытку. Кому надо - заполнятся.
15 Axel2009
 
19.09.11
13:05
СписокПараметров = Новый СписокЗначений;
   Для НомерСтроки = 1 По ОблОбщийИтог.ВысотаТаблицы Цикл
       Для НомерКолонки = 1 По ОблОбщийИтог.ШиринаТаблицы Цикл
           Если СписокПараметров.НайтиПоЗначению(ОблОбщийИтог.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки).Параметр) = Неопределено Тогда
               СписокПараметров.Добавить(ОблОбщийИтог.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки).Параметр);
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   Для Каждого Эл Из СписокПараметров Цикл
       Сообщить(Эл.Значение);
   КонецЦикла;
16 Axel2009
 
19.09.11
13:05
(14) потом весело такие штуки отлаживать по ошибке. ага
17 shuhard
 
19.09.11
13:06
(13) какая то лажа,
ну узнаешь ты имя параметра:
количество_17
что будешь в него писать ?
18 Amiralnar
 
19.09.11
13:06
(16) Ой, мать, как сложно отлаживать макеты, ага.
Для мазохистов там есть фильтр на текст ошибки.
19 BlueBird
 
19.09.11
14:15
(13) в документе параметры как обычно заполняются. Это все нужно для того, чтобы в специальной обработке задавать тексты для договоров, и чтобы в этих текстах можно было указать параметр. И чтобы не угадывать какие должны быть параметры, а выбрать из списка.
20 butterbean
 
19.09.11
14:17
(19) проще наверно сделать в тексте через спец. символы, например [ПАРАМЕТР1], а потом просто через СтрЗаменить их устанавливать
21 BlueBird
 
19.09.11
14:18
(14) а мне их не заполнять нужно, а именно их список увидеть
(15) да, типа того, только мне не все параметры нужны. Но тут можно с именами параметров что-нибудь придумать.
22 BlueBird
 
19.09.11
14:19
(19) проще-то проще, но как пользователь узнает, какой параметр указывать? вот ему список доступных и надо показать... а потом он его уже в [] внесет в текст
23 butterbean
 
19.09.11
14:30
(22) искать параметры для формирования их списка можно по каким-то определнным спец. символам, или можно прям по "["
24 BlueBird
 
19.09.11
14:40
(15) Спасибо. Примерно так и сделаю, добавив проверну на какой-нибудь символ в имени параметра.