|
УстановитьКнопкиПечати | ☑ | ||
---|---|---|---|---|
0
dextermorgan777
12.01.15
✎
10:37
|
Добрый день.
В типовой бухгалтерии создал свой документ. В модуле формы добавил процедуру УстановитьКнопкиПечати(). Скопировал её из документа реализации. В модуле объекта создал функцию ПолучитьСтруктуруПечатныхФорм() где описал нужные мне печатки. Добавил вызов УстановитьКнопкиПечати() в процедуру перед открытием. Все добавляет, но кнопки все не активны. Ничего нажать нельзя. Подскажите пожалуйста, что я еще забыл сделать. Спасибо за ответы. |
|||
1
Бертыш
12.01.15
✎
10:39
|
Этих бухий типовых как грязи.
|
|||
2
Cube
12.01.15
✎
10:40
|
(0) В модуле формы документа нет процедуры, на которую ссылкаются все твои кнопки...
|
|||
3
dextermorgan777
12.01.15
✎
10:55
|
(2) в модуле объекта создал процедуру печати и там в зависимости имени кнопки вызываю соответствующие функции заполнения табл. документа.
|
|||
4
dextermorgan777
12.01.15
✎
10:56
|
(1) 1.6.56.2
Это Беларуская. Не знаю аналог какой именно Росийской. |
|||
5
Cube
12.01.15
✎
10:56
|
(3) Процедура-обработчик кнопки на форме может располагаться только в модуле этой самой формы. Что ты нам написал в модуле объекта, кнопку не волнует.
|
|||
6
dextermorgan777
12.01.15
✎
11:03
|
(5) так я же программно создаю эти кнопки. Подменю печати создаю и в него пихаю свои печатки. Я скопировал как в доке реализации, там процедур обработчиков на форме для печати ТТН нет. Они все в модуле объекта.
|
|||
7
Cube
12.01.15
✎
11:04
|
(6) "там процедур обработчиков на форме для печати ТТН нет. Они все в модуле объекта."
Сам придумал? |
|||
8
Serg_1960
12.01.15
✎
11:06
|
(0) "В модуле формы добавил процедуру УстановитьКнопкиПечати(). Скопировал её из документа..." - это ,случайно, не локальная процедура конкретного документа? В УПП, например, универсальный типовой вызов, где чётко указано:
ФормированиеПечатныхФорм.СоздатьКнопкиПечати(ЭтотОбъект, ЭтаФорма); |
|||
9
dextermorgan777
12.01.15
✎
11:11
|
(8)
Процедура УстановитьКнопкиПечати() мДеревоМакетов = РаботаСДиалогами.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФорм(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию")); РаботаСДиалогами.УстановитьПодменюПечати (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0); РаботаСДиалогами.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию")); Если НЕ мПодменюПечати = Неопределено Тогда РаботаСДиалогами.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина); КонецЕсли; КонецПроцедуры Тоже вроде все из общего модуля вызывается. Просто сама процедура в модуле формы. |
|||
10
dextermorgan777
12.01.15
✎
11:13
|
||||
11
Serg_1960
12.01.15
✎
11:14
|
(7) В некоторых справочниках и документах используется и такой типовой функционал - через локальную процедуру УстановитьКнопкиПечати()
(9) Переменные мДеревоМакетов, мПодменюПечати и мПечатьПоУмолчанию не забыл объявить в модуле формы? |
|||
12
dextermorgan777
12.01.15
✎
11:15
|
(11) все есть.
|
|||
13
Cube
12.01.15
✎
11:16
|
(10) По фотографии не гадаю.
|
|||
14
dextermorgan777
12.01.15
✎
11:16
|
||||
15
cube033
12.01.15
✎
11:16
|
При программном создании элемента - события всё равно прописывать надо: НовыйЭлемент.УстановитьДействие("ПриИзменении", "НовыйЭлементПриИзменении");
И процедуру нужно: &НаКлиенте Процедура "НовыйЭлементПриИзменении" .... КонецПроцедуры |
|||
16
dextermorgan777
12.01.15
✎
11:17
|
(13) я просто показал, что функции именно в модуле объекта лежат. И я не сам это придумал.
|
|||
17
Cube
12.01.15
✎
11:18
|
dextermorgan777 если не веришь мне, то на тебе выдержку из СП:
Расширение элементов управления, расположенных в форме (Extension for controls located in a form) УстановитьДействие (SetAction) Синтаксис: УстановитьДействие(<ИмяСобытия>, <Действие>) Параметры: <ИмяСобытия> (обязательный) Тип: Строка. Имя события. <Действие> (обязательный) Тип: Действие; Неопределено. Устанавливаемое действие. Ну и далее: Действие (Action) Конструкторы: На основании процедуры Описание: Предназначен для получения действия, которое можно назначить в качестве обработчика события элемента управления или команды пользовательского интерфейса. Для обработки события может быть вызвана процедура или функция модуля формы или общего модуля, имя которой задано в конструкторе. При использовании в форме в качестве имени процедуры может использоваться только процедура модуля данной формы. Читать-то хоть умеешь? |
|||
18
dextermorgan777
12.01.15
✎
11:18
|
(15) так это вы про управляемые формы наверно?
|
|||
19
Cube
12.01.15
✎
11:20
|
(16) А я говорю, что кнопке плевать, что ты в модуле объекта написал...
|
|||
20
cube033
12.01.15
✎
11:22
|
(18) да
|
|||
21
dextermorgan777
12.01.15
✎
11:28
|
Всем спасибо за ответы.
(19) я вас сразу не так понял, я думал что вы имеете ввиду добавить обработчики для каждой кнопки. Функции для них действительно в модуле объекта лежат. А вот Процедуру одну я действительно забыл скопипастить Процедура ОсновныеДействияФормыПечать(Кнопка) РаботаСДиалогами.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст); КонецПроцедуры Возможно если бы мне сразу так ответили, то это бы мне не отложилось в мозгу, а так действительно буду помнить уже. Спасибо что потратили на меня свое время. |
|||
22
dextermorgan777
12.01.15
✎
11:29
|
Я в отладчике посмотрел стек вызовов по кнопке печать и убедился что первая процедура из модуля формы идет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |