Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Добавить кнопку на все формы документов,справочников

Добавить кнопку на все формы документов,справочников
Я
   serg-lom89
 
29.01.19 - 15:24
Добрый день
Подскажите пожалуйста как программно добавить кнопку на все формы объектов?
что бы не прописывать приОткрытии() в каждом объекте.
8.3.10 обычное приложение
 
 
   OldCondom
 
1 - 29.01.19 - 15:26
МодифиукацияКонфигурацииПереопределяемый.ПриСозданииНаСервере()
   serg-lom89
 
2 - 29.01.19 - 15:26
Есть ли возможность сделать как через подписку на событие?
   Махони402
 
3 - 29.01.19 - 15:27
Самописка или типовая с ОФ?
Ищи процедуру, которая вызывается всегда и в ней подключайся. Мы в своё время в формирование печатных форм подрубились.
   Махони402
 
4 - 29.01.19 - 15:27
Нету у форм нормальных событий, токмо у объектов.
   serg-lom89
 
5 - 29.01.19 - 16:34
(3) типовая ОФ
вот сделал в модуле РаботаСДиалогами.установитьзаголовок

    
     КоллекцияКнопок = ФормаДокумента.ЭлементыФормы.ДействияФормы.Кнопки;
           
     ДействиеОткрытияФормы = Новый Действие("ВыполнитьДействиеНажатие");
     НоваяКнопка =  КоллекцияКнопок.добавить( "ВыполнитьДействиеНажатие",ТипКнопкиКоманднойПанели.Действие,"ВыполнитьДействиеНажатие",ДействиеОткрытияФормы ); ;
    
    
добавил в тот же модуль проц 
Процедура ВыполнитьДействиеНажатие() экспорт
    
    ///тут что то делаем

    
КонецПроцедуры


Кнопка появилась но она неактивна..что не так?
   Ёпрст
 
6 - 29.01.19 - 16:58
(5) нет своответствующего обработчика при нажатии этой кнопки
   Ёпрст
 
7 - 29.01.19 - 16:58
процы ВыполнитьДействиеНажатие() в форме нема, если че
   OldCondom
 
8 - 29.01.19 - 17:14
(5) То есть специальный для этого случая модуль, который к тому же таки и называется: ПЕРЕОПРЕДЕЛЯЕМЫЙ ты решил обойти стороной и влезть в типовой код?
   Вафель
 
9 - 29.01.19 - 17:28
может лучше внешнюю обработку заполнения объекта прикрутить?
   Tatitutu
 
10 - 29.01.19 - 17:54
Процедура ВыполнитьДействиеНажатие(Элемент) экспорт
 
 Рекламное место пустует
   palsergeich
 
11 - 29.01.19 - 19:57
(10) Не пройдет проверку СОВМЕСТИМО(
   МимохожийОднако
 
12 - 29.01.19 - 19:59
(5) какая конфигурация?
   serg-lom89
 
13 - 30.01.19 - 09:31
(7) да процедуры в форме объекта нету...поэтому и хотелось бы что бы не в каждой форме прописывать
   serg-lom89
 
14 - 30.01.19 - 09:37
т.е. по сути мне надо во всех объектах ИБ сделать эту кнопку ,и тогда в каждый зайди,пропиши..это одуреть можно будет)))
   Tatitutu
 
15 - 30.01.19 - 09:42
(11) а зачем она ему в данном контексте?

(10) все прекрасно добавляется и работает
   serg-lom89
 
16 - 30.01.19 - 09:44
(15) в модуль работаСДиалогами добавил ,
Процедура ВыполнитьДействиеНажатие(элемент) экспорт
и ничего не работает
   МимохожийОднако
 
17 - 30.01.19 - 09:49
на заданные вопросы ответь
   serg-lom89
 
18 - 30.01.19 - 09:53
(12) УТ 10.3 но очень допилена
   МимохожийОднако
 
19 - 30.01.19 - 10:01
ответь на (8)
   serg-lom89
 
20 - 30.01.19 - 10:08
(8) нету такого модуля
   МимохожийОднако
 
21 - 30.01.19 - 10:23
Есть пример
// Процедура добавления кнопки 

    ДействиеКнопки = Новый Действие("ОбработатьНажатиеКнопки");
    НоваяКнопка    = 
ЭлементыФормы.КоманднаяПанель2.Кнопки.Добавить(ИмяКнопки, ТипКнопкиКоманднойПанели.Действие, "Тест",ДействиеКнопки);

Процедура ОбработатьНажатиеКнопки(Элемент// ОБРАТИТЬ ВНИМАНИЕ НА ПАРАМЕТР ПРОЦЕДУРЫ 

       Если Элемент.Имя = "Закрыть" Тогда
            Форма.Закрыть();
       КонецЕсли;
КонецПроцедуры
   catena
 
22 - 30.01.19 - 10:26
(16)Потому что форма не знает, в какой именно модуль ты добавил процедура-обработчик.
   serg-lom89
 
23 - 30.01.19 - 10:34
(22) ведь если я добавлю в действие 
новый Действие("МойМодуль.ОбработатьНажатиеКнопки");
он ругнется же
   Галахад
 
24 - 30.01.19 - 10:38
В УТ10. Для документов можно. Для справочников нет. Ну или я  не знаю.
   МимохожийОднако
 
25 - 30.01.19 - 10:40
(23) Если я не ошибаюсь, на сервере процедура добавления кнопки не работает. Твой общий модуль имеет признак На клиенте?
   serg-lom89
 
26 - 30.01.19 - 10:44
(25) Сервер,Клиент(обыч приложение)
   bolobol
 
27 - 30.01.19 - 14:14
Разве нельзя собственный глобальник завести, куда процедуру экспортную сунуть?
   Ёпрст
 
28 - 30.01.19 - 15:47
(27) можно, только толку нуль будет
   bolobol
 
29 - 30.01.19 - 17:10
(28) Я поясню вопрос: Разве нельзя решить поставленную задачу путём внедрения собственного глобальника, куда процедуру экспортную сунуть, которую назначить обработчику?
   Ёпрст
 
30 - 30.01.19 - 18:00
(29) нет.
Твой глобальник ничего не даст от слова совсем.

Автору поможет только, если код вызова нажатия кнопки будет уже в каждой форме нужного объекта.
А его там нема.
Свои кнопки он и так создаёт из общего модуля, надеясь на то, что в каждой форме есть этот вызов.
Кнопку то он создаст, а вот с обработчиком - обломсъ.
   Ёпрст
 
31 - 30.01.19 - 18:01
А ёпт, глобальник.. ну да, с глобальником прокатит
   Ёпрст
 
32 - 30.01.19 - 18:13
Хотя не.. глобальный модуль ничего не даст, ибо в действия н не запихнешь ИмяМодуля.ИмяМетода

Даже модуль обычного приложения не спасает, действие не работает..
   МимохожийОднако
 
33 - 30.01.19 - 18:31
(26) А если убрать признак Сервер?
 
 
   Ёпрст
 
34 - 31.01.19 - 08:27
(33) да кнопка у него добавляется, у него проблема с назначением действия в этой кнопке.
Он может назначить туда только локальную процу модуля формы. Которой у него просто нет.
   МимохожийОднако
 
35 - 31.01.19 - 08:43
(34) Копипастой добавить полчаса-час работы. ИМХО.
   Ёпрст
 
36 - 31.01.19 - 08:48
(35) Это понятно, но автор не хочет втыкать код во все формы. А чтоб в одном месте и автоматом.

Проще такие вещи решать, добавлением чего-либо в ВПФ или во внешние  обработки изменения ТабЧасти
   Галахад
 
37 - 31.01.19 - 08:57
(36) Это только для документов. Для справочников фига.
   bolobol
 
38 - 31.01.19 - 09:21
(32) Для глобальника не нужно писать "ИмяМодуля.", глобальник должен быть клиентским. Тогда процедура попадает в область видимости, но вот что по этому поводу думает 1С - это да, это проблема.
   Галахад
 
39 - 31.01.19 - 09:41
(38) Да не работает это.
   Ёпрст
 
40 - 31.01.19 - 09:47
(37) ну,для справочников, только печать (если есть)
   Ёпрст
 
41 - 31.01.19 - 09:49
(38) не добавишь в Новый Действие имя любой процы, кроме локальной.
Можно добавить имя процы из обычного приложения, но, всё равно она не срабатывает, хотя действие и создаётся


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует