Имя: Пароль:
1C
1С v8
УФ: Программно сделать кнопку и привязать к ней функцию общего модуля?
0 RetardedToBoot
 
11.09.19
20:26
Можно ли в УФ сделать программно кнопку и привязать к ней вызов из общего модуля?
Цель сделать динамическу коллекцию кнопок добавляемых на форму. Типа в разных рабочих стола дополнительная закладка, куда вставлять эту коллекцию при открытии формы. Если такое можно html вставками, то это не очень, т.к. ломает привычное представление пользователей, по крайней мере где я это делаю.
1 runoff_runoff
 
11.09.19
20:38
нужно
1. создать команду
2. создать кнопку
3. создать тело процедуры-обработчика команды в модуле формы, в которой будет вызываться нужный метод общего модуля..
2 RetardedToBoot
 
11.09.19
20:42
(1) Это то понятно, описаний в инете хватает. Загвоздка в "создать тело процедуры-обработчика команды в модуле формы". Без этого можно, что бы один раз ее описать в общем модуле и все?
3 RomanYS
 
11.09.19
21:21
(2) общие (или глобальные?) команды
4 vcv
 
11.09.19
21:32
(2) Нельзя. В типовых на БСП можно воспользоваться имеющейся процедурой вызова переопределяемых команд. Только свой кусок вставить в один глобальный модуль.
(3) Глобальную команду нельзя указать для кнопки программно. По крайней мере в распространённых в народе релизах 8.3
5 hhhh
 
11.09.19
22:25
(4) ну нельзя, а всё равно этими командами реализовано всё, что он в (0) написал.
6 Сияющий в темноте
 
11.09.19
22:55
в модуль формы придется вставить одну процедуру для всех кнопок,которая по идентификатору кнопки понимает,что нужно вызвать,ну или из нее просто вызвать глобальную,передав идентификатор кнопки.
далее,просто.
7 RetardedToBoot
 
11.09.19
23:56
(6) я примерно так и обдумываю, но вдруг есть лучше вариант среди каких-нибудь новых фич платформы или плохо изученных старых.
8 mmmarat
 
12.09.19
08:36
(0) Подобный функционал есть в БСП в ПодключаемыеКомандыПереопределяемый

В ПриОпределенииКомандПодключенныхКОбъекту() определяете список команд, в ПриОпределенииВидовПодключаемыхКоманд() определяете свой раздел при необходимости. Обработчики располагаются в общих клиентских модулях, без изменения непосредственно форм. Делал подобное на документах и справочниках, для своих обработок рабочего стола придется прописать интерфейс подключаемых команд.
9 Belomor
 
12.09.19
09:13
10 ironicman
 
12.09.19
09:40
ДобавитьОбработчик <Событие>, <ОбработчикСобытия>
не прокатит?
11 RetardedToBoot
 
13.09.19
01:50
(10) при использовании ДобавитьОбработчик не определено что будет событием, по крайней мере Команда1.Действие не прокатывает для команды формы Команда1.

===
В общем по результатам исследований...
На форме можно сделать кнопку указав глобальную команду.
В модуле этой глобальной команды в ее обработчике, в второй параметр
система передает форму, откуда был вызван этот обработчик.
И у этой формы текущим элементом в момент выполнения сидит та
самая нажатая кнопка, в таком расположении:

ПараметрыВыполненияКоманды.Источник.ТекущийЭлемент.Имя = "ОбщаяКомандаОбщаяКоманда1";

Впрочем глобальные команды можно понаделать на разные типы кнопк индивидуальные, это же не в каждую форму их запихивать.

Все это сладив вроде как можно запустить в таком виде, сам код сделаю и испробую позже.