|
Нужна помощь с процедурой выбора макета |
☑ |
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
|
Вопрос решился сам собой...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший