Имя: Пароль:
1C
1С v8
Нужна помощь с процедурой выбора макета
0 a1phoenix
 
25.12.12
10:40
Добрый день!
Опишу в кратце проблему:
Имеется строковое поле с кнопкой списка, так же есть несколько макетов (актив документ) для заполняемой формы документа. Необходимо заполнить список названиями макетов, а так же при выборе конкретного макета заполнить его данными из формы и отправить на печать/сохранить в файл.
1 Cube
 
25.12.12
10:41
(0) СП украли?
ОбъектМетаданных: Документ.Макеты (MetadataObject: Document.Templates)
ОбъектМетаданных: Документ (MetadataObject: Document)
Макеты (Templates)
Использование:

Только чтение.
Описание:

Тип: КоллекцияОбъектовМетаданных.
Коллекция объектов метаданных, описывающих макеты, принадлежащие данному объекту метаданных.

Доступность:

Сервер, толстый клиент, внешнее соединение.
2 Chikko
 
25.12.12
10:43
Через метаданные заполнить список макетов (поле выбора).
Где макеты-то? Ну что-то вроде ЭтотОбъект.Метаданные().Макеты.
Далее, в зависимости от выбранного, заполнить=)
3 sidalexsandr
 
25.12.12
10:43
(0) Список значений не пробовал.
4 pessok
 
25.12.12
11:04
дык а если общие макеты используются?
тут надо ползти в ПолучитьСписокПечатныхФорм, имхо
5 a1phoenix
 
25.12.12
11:07
Макеты находятся Документы/Договор/Макеты(то есть я могу получить макет обращаясь к нему Документы.Договор.ПолучитьМакет("первый")). Поле которое необходимо заполнить - Шаблон (в этом поле есть КнопкаСпискаВыбора, при нажатии на которую и должен вылазить список макетов).
6 a1phoenix
 
25.12.12
11:35
Такой вот еще вопрос:
Если создать отдельно СписокВыбора и присвоить каждому выбору получение определенного макета...??
Например:
Значение1 = ЭлементыФормы.Шаблон.СписокВыбора.Добавить("первый");
Процедура Печать()
 Значение1= Документы.Договор.ПолучитьМакет("первый");
.... //Заполнение Макета значениями и вывод на предпросмотр
КонецПроцедуры
7 Cube
 
25.12.12
11:37
(6) Перефразируй. Только перечитай, то что напишешь на три раза.
8 a1phoenix
 
26.12.12
08:54
И так дошел я до такого варианта:

Перем Шаблон1;

Процедура ПриОткрытии()
   Шаблон1 = ЭлементыФормы.Шаблон.СписокВыбора;
   Шаблон1.Добавить("первый");
КонецПроцедуры

Процедура Печать()
   Если Шаблон1 = ЭлементыФормы.Шаблон.СписокВыбора.ВыбратьЭлемент("первый")
   Тогда
      СсылкаМакет = Документы.Договор.получитьМакет("первый");
      MSWord = СсылкаМакет.Получить();
      Попытка
      ...........
      КонецПопытки;
   КонецЕсли;
КонецПроцедуры

Вроде как работает... вроде как... мож кому пригодится.
9 a1phoenix
 
27.12.12
10:04
И все таки не работает...
В процессе выполнения вышеуказанного кода происходит следующее:
При нажатии кнопки "сформировать в ворд", которая вызывает процедуру "Печать", открывается дополнительное окошко с названием Шаблон. В этом окошке есть пункт "Шаблон", выбирая который не происходит никаких действий. В окне "Шаблон" есть только 2 кнопки: "Ок", "Отмена".
10 a1phoenix
 
27.12.12
11:30
Вопрос решился сам собой...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс