Динамическая кнопка VS Комбинация клавиш

14.10.22

Разработка - Работа с интерфейсом

Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму).

Действия в рамках программы 1С могут выполняться по нажатию на кнопку или нажатием горячей комбинации клавиш на клавиатуре.

Будут рассказывать на примере расширения Поддержка пользователей [Alt+S] (подключаемое расширение)

 

Создаем "Своё" расширение

По сути, расширение конфигурации – это надстройка над конфигурацией, т.е. дополнение, которое использует объекты основной конфигурации, но самостоятельно работать не может. Зато позволяет доработать типовое решение, не снимая его с поддержки. Как создавать расширение 1С - отдельная тема, и информацию по ней можно поискать в интернете.

 

Комбинация клавиш

 

 

  • В коде модуля команды работаем с методом АктивноеОкно(), где в зависимости от формы получаем координаты объекта: Ссылка или НавигационнаяСсылка. Далее уже работаем с этим полученным материалом (в данном примере Поддержка пользователей [Alt+S] (подключаемое расширение) (infostart.ru) открывается форма журнала обращений, привязанная к объекту, из которого произошел вызов, а например в публикации Доп. панель Alt+Z (infostart.ru) открывает панель с обработками объекта).

 

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	
	пАктивноеОкно = АктивноеОкно();
	Если пАктивноеОкно = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	флЕстьОшибки = Ложь; 
	
	Форма = Неопределено;
	Источник = Неопределено;
	НавигационнаяСсылка = Неопределено;
	
	Попытка
		Форма = пАктивноеОкно.Содержимое[0];  
	Исключение
		флЕстьОшибки = Истина;
	КонецПопытки;   
	
	Попытка
		пИмяФормы = пАктивноеОкно.Содержимое[0].ИмяФормы; 
		Если Найти(пИмяФормы, "Форма.ФормаДокумента") > 0 Тогда
			Источник = Форма.Объект.Ссылка;
		ИначеЕсли Найти(пИмяФормы, "Форма.ФормаЭлемента") > 0 Тогда
			Если Найти(пИмяФормы, "Справочник.ФизическиеЛица") > 0 Тогда 
				Источник = Форма.ФизическоеЛицо.Ссылка;
			ИначеЕсли Найти(пИмяФормы, "Справочник.Сотрудники") > 0 Тогда
				Источник = Форма.Сотрудник.Ссылка;
			Иначе
				Источник = Форма.Объект.Ссылка;	
			КонецЕсли;
		ИначеЕсли Найти(пИмяФормы, "Форма.ФормаОтчета") > 0 Тогда
			НавигационнаяСсылка = Форма.НавигационнаяСсылка;      
		Иначе
			Попытка
				Если ТипЗнч(Форма.ТекущийЭлемент) = Тип("ТаблицаФормы") Тогда
					Источник = Форма.ТекущийЭлемент;
				КонецЕсли;		
			Исключение
			КонецПопытки;	
		КонецЕсли;	
	Исключение
	КонецПопытки;
	
	Если флЕстьОшибки Тогда
		ПоказатьПредупреждение(Неопределено, "Не удается открыть Поддержку пользователей (Alt+S) для текущего объекта", 5, "ВНИМАНИЕ");
	Иначе
		suplite_Клиент.ОткрытьЖурналОбращений(Форма, Источник, НавигационнаяСсылка);     
	КонецЕсли;
	
КонецПроцедуры

Примечание: В формах объектов ссылка указана в основном объекте формы, в динамических списках объектов ссылка равна значению ТекущегоЭлемента. Отчеты, обработки, регистры это не ссылочные типы, поэтому чтобы как-то их поймать работаем с их навигационной ссылкой, методами: ПолучитьНавигационнуюСсылку(), ПолучитьПредставленияНавигационныхСсылок().

 

Динамическая кнопка

  • Перехватываем в расширение события ПриСозданииНаСервере() из общих модулей, входящих во все типовые решения 1С: здесь перехвачены УправлениеСвойствами, ВерсионированиеОбъектов - добавляем туда вызов своего метода, который будет создавать кнопку на форме. Перехватывать можно любые модули: ПодключаемыеКоманды.ПриСозданииНаСервере(), ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере(), СобытияФорм.ПриСозданииНаСервере(), ВерсионированиеОбъектов.ПриСозданииНаСервере(),  УправлениеСвойствами.ПриСозданииНаСервере() и т.д. Конкретно в расширении на котором строю пример были перехвачены те модули, т.к. они встречались в формах (когда я его делал, а это было давно, например, вызова ПодключаемыеКоманды.ПриСозданииНаСервере() в типовых формах еще не было)

 

 

Код вывода кнопки в командную панель формы suplite_Сервер.ПриСозданииНаСервере(Форма)

Процедура ПриСозданииНаСервере(Форма) Экспорт
	
	Попытка
		Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда
			
			Если РольДоступна("ПолныеПрава") 
				ИЛИ РольДоступна("suplite_Чтение")
				ИЛИ РольДоступна("suplite_ДобавлениеИзменение")
				ИЛИ РольДоступна("suplite_Администрирование") Тогда
				
				Если Форма.Элементы.Найти("suplite_Открыть") = Неопределено Тогда
					
					ЭлементРодитель = Форма.Элементы.ФормаКоманднаяПанель;
					
					Если СтрЧислоВхождений(Форма.ИмяФормы, "ФормаСписка") <> 0 И //Для Списков
						Форма.Элементы.Найти("ГруппаГлобальныеКоманды") <> Неопределено Тогда							
						ЭлементРодитель = Форма.Элементы.ГруппаГлобальныеКоманды;
					ИначеЕсли СтрЧислоВхождений(Форма.ИмяФормы, "ФормаОтчета") <> 0 И //Для отчетов
						Форма.Элементы.Найти("ОсновнаяКоманднаяПанель") <> Неопределено Тогда							
						ЭлементРодитель = Форма.Элементы.ОсновнаяКоманднаяПанель;
					КонецЕсли;
					
					// Создадим команду
					Команда	= Форма.Команды.Добавить("suplite_Открыть");
					Команда.Действие	= "Подключаемый_ВыполнитьКоманду";
					
					// Создадим кнопку и привяжем к ней команду
					Кнопка = Форма.Элементы.Добавить("suplite_Открыть", Тип("КнопкаФормы"), ЭлементРодитель);
					Кнопка.Заголовок	= "Поддержка пользователей [Alt+S]";
					Кнопка.ИмяКоманды	= "suplite_Открыть";
					Кнопка.Картинка = БиблиотекаКартинок.suplite_Картинка;
					
				КонецЕсли;    
			КонецЕсли;  
		КонецЕсли; 
		
	Исключение
	КонецПопытки; 	
	
КонецПроцедуры
  • Чтобы кнопка работала, в модуле формы должна быть процедура Подключаемый_ВыполнитьКоманду(), её вставляют почти во все типовые формы объектов и списков. Её также нужно перехватить в расширение из ОбщийМодуль.ПодключаемыеКомандыКлиент и по имени динамической кнопки (тут "suplite_Открыть") назначить своё действие.

 

 

Что в результате имеем

И нажатием комбинации клавиш Alt+S на клавиатуре, и нажатием на кнопку командной панели формы выполняется одно и то же действие. Здесь Поддержка пользователей [Alt+S] (подключаемое расширение) (infostart.ru) создается обращение в поддержку, а здесь Доп. панель Alt+Z (infostart.ru) открывается панелька с дополнительными командами.

 

 

Плюсы и минусы

Свойство Динамическая кнопка Комбинация клавиш
Возможность вызова Вызов доступен в формах документов и справочников, где прописаны глобальные обработчики при создании формы и подключаемые процедуры, которые можно переопределить. Вызов доступен во всех формах без исключения (документы, справочники, регистры, отчеты, обработки, формы списков и т.д.)
Удобство вызова Привычный вид для пользователей - Кнопка в командной панели формы Не видна, необходимо помнить комбинацию
Реализация вызова Требуется перехват событий и переопределение обработчиков Просто, минимум кода, отслеживать уникальность комбинации клавиш 

 

P.S. Мне как-то больше легли на душу комбинации, но бухгалтерия - всё больше голосует за кнопки.

Есть, кстати, такая песенка «Бухгалтер» у группы "Комбинация", рассказывающая злободневную историю о маленьком человеке — простом бухгалтере.

Почему-то вспомнилось. Всем добра.

 
 Другие публикации автора

 

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62091    43    59    

81

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54690    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16905    22    4    

36

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    11159    761    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9885    153    acces969    31    

119

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16449    144    sapervodichka    112    

130

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3937    kalyaka    4    

29

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12290    1    5    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ybatiaev 58 08.08.22 22:55 Сейчас в теме
Добрый день! Идея хорошая.
На мой взгляд, правда, направление более правильное - голосовое управление. На инфостарте уже было решение 1С+python. Один минус - потоковый стрим на клиентсерверной части не поддерживался при терминальном доступе.
Вот это бы конкретно развить )))
KRIHA; sapervodichka; NiGMa; +3 Ответить
2. quazare 3611 09.08.22 04:47 Сейчас в теме
продолжаешь развивать тему комбинаций клавиш? идея хорошая!
3. sapervodichka 6812 09.08.22 09:10 Сейчас в теме
(2) угумс, всё новое забытое старое
Прикрепленные файлы:
Lemmonbri; +1 Ответить
4. vld1973 85 09.08.22 09:53 Сейчас в теме
Спасибо за интересную идею. Плюсую.
5. Segate 229 09.08.22 10:06 Сейчас в теме
А зачем это в управлениях свойствами?
Раз уж мы используем БСП - используйте подключаемые команды, как положено
8. sapervodichka 6812 09.08.22 12:19 Сейчас в теме
(5) В разных конфах в модулях форм внутри события ПриСозданииНаСервере полно разных вызовов [ОбщийМодуль].ПриСозданииНаСервере(...) которые можно перехватить, тут УправлениеСвойствами.ПриСозданииНаСервере перехвачем с расчетом на конфу ЗУП был.
ПодключаемыеКоманды.ПриСозданииНаСервере()
ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере()
СобытияФорм.ПриСозданииНаСервере()
ВерсионированиеОбъектов.ПриСозданииНаСервере()
УправлениеСвойствами.ПриСозданииНаСервере()
и т.д.

где-то есть где-то нет того или иного вызова, поэтому можно перехватить несколько модулей, в самом выводе кнопки проверяется ее наличие на форме, если уже выведена, то повторно не выводится
adhocprog; +1 Ответить
16. PLAstic 295 09.08.22 17:49 Сейчас в теме
(8) Омагад... А подключить нужные объекты к подсистеме подключаемых команд никак было? И тогда бы завязался на неё только. Всё равно у тебя есть расширение и внести нужные модификации было несложно. А так наколхозил в типовых подсистемах БСП. Ну как бы да, задачу решил, но какой ценой? У программиста должны быть принципы.
18. sapervodichka 6812 09.08.22 18:15 Сейчас в теме
(16) у меня большое количество баз, а решение должно быть универсальным, автономным, простым, не требующим доработок под любое типовое решение 1С. Сами подключаемые обработки о которых ты пишешь, можно использовать для заполнения по остаткам на складе, например, документа Перемещения. Я и их часто делаю, но тут не про них.
6. PLAstic 295 09.08.22 10:09 Сейчас в теме
А чем это лучше обычных подключаемых команд? В итоге ты и подключаешься к его событиям.
*пока читал, выше написали то же самое
9. sapervodichka 6812 09.08.22 12:22 Сейчас в теме
(6) ПодключаемыеКоманды подразумевают создание внешней обработки заполнения, а тут как бы в расширении не одна обработка а заложены целые подсистемы (наборы обработок, какие-то документы, справочники регистры и т.д.) цеплять их на внешнюю обработку мне было не удобно
adhocprog; +1 1 Ответить
15. PLAstic 295 09.08.22 17:46 Сейчас в теме
(9) Велкам, делай любую архитектуру в расширении, но подключить к формам объектов ты мог это и нормальным образом, предусмотренным подсистемой. И в пользу внешней обработки говорит в т.ч. и модифицируемость кода на бою, что недостижимо даже с расширением (динамить базу всё равно придётся).
17. sapervodichka 6812 09.08.22 18:12 Сейчас в теме
(15) тут как бы публикация про сравнение кнопки и комбинации, а не про конкретное расширение.

Но если интересен ответ про расширение, то оно
- во-первых отлажено и не требует модификации,
- во-вторых если потребует модификации, то внешняя обработка, о которой ты пишешь не особо поможет поправить код самого расширения без обновления базы.

В чем профит твоего напора на решение не понимаю.
У меня у самого десятки разных баз (а реально сотни), и то решение скачали десятки людей.
Всем зашло - это нормально один раз поставить расширение.
Внешняя обработка в довесок к расширению - не пришей собаке хвост.
suepifanov; +1 Ответить
21. dhurricane 10.08.22 12:49 Сейчас в теме
(17) На всякий случай переформулирую исходный вопрос, как я его понял. Почему Вы не добавили свой вид подключаемых команд? "Целые подсистемы" же здесь не преграда.
23. sapervodichka 6812 10.08.22 13:25 Сейчас в теме
(21) Ден, пожалуйста, напиши в чем профит от этого варианта по сравнению с текущим (это быстрее, это удобнее, это морально правильнее, зачем мне это переделать)?
Сразу поблагодарю (читал твои комменты ранее) ты по крайней мере примеры скидываешь, может твой вариант и лучше будет. Просто обдумывать за кого-то его идею я не стану, нет времени, работа сам понимаешь. Если напишут пример и он будет лучше, то я только за.
24. dhurricane 10.08.22 14:07 Сейчас в теме
(23) Это морально правильнее. :-) Ну на мой вкус. Не могу объяснить, нет объективных аргументов.
25. PLAstic 295 10.08.22 16:58 Сейчас в теме
(24) У меня есть. Это ТСО, включающее в себя лёгкость модификации и обслуживания. Приходит новый человек, который знает БСП. Он знает про подсистему подключаемых команд и мог бы легко выполнить задачу по модификации этой добавленной функциональности, но лезет разбираться в код и видит, что нет такой подключаемой команды, но есть какое-то уникальное решение с 10ю вызовами при открытии формы, из которых отрабатывает только первый, а остальные проверяют наличие результата.
Это выливается в кучу времени на изучение уникальных механизмов вместо известных большинству БСПшных. Это вопросы "а зачем было сделано так?" и т.п.
В результате работодателю это обойдётся дороже, чем если бы было реализовано с использованием типовых методов.
26. PLAstic 295 10.08.22 17:01 Сейчас в теме
(24) И добавлю в финале мой любимый вопрос: что ты положишь в копилку своего опыта?
В данном случае автор пилит какой-то свой механизм и благодаря тому, что ему разрешают это делать, он это делает. Но вот пришла смена конторы и в новой ему говорят "не, коллега, мы тут колхоз не приветствуем, садись и делай по-нормальному". А у него нет опыта в копилке, нет знаний механизмов БСП, нет в принципе привычки грызть вопрос "а как можно было бы правильнее сделать".

зыЖ Допускаю, что опыт/знания есть, но видимо нет принципов, о которых я писал ранее. Отсутствие принципов допускает написание кода любого уровня корректности.
27. sapervodichka 6812 10.08.22 20:57 Сейчас в теме
(26) зачем слова, скидывай свой код сюда
28. sapervodichka 6812 10.08.22 23:49 Сейчас в теме
(27) можно с легкостью переделать на 1 перехват
ПодключаемыеКоманды.ПриСозданииНаСервере()

Вместо 2 перехватов

ВерсионированиеОбъектов.ПриСозданииНаСервере()
УправлениеСвойствами.ПриСозданииНаСервере()

- когда я то расширение делал, вызова ПодключаемыеКоманды.ПриСозданииНаСервере() не было в формах, а в разных формах было то ВерсионированиеОбъектов то УправлениеСвойствами.

Вообщем, Леонид, проблемы тут нет, и надумывать её не нужно.
Там лишь 1 процедура вызывается. А у программистов есть мозг.

Давай расходиться, либо присылай свой код и обработку, я посмотрю.

Если он лучше и удобнее, то я возьму на вооружение и буду тебе благодарен.
В любом случае спасибо за критику.
Прикрепленные файлы:
fatman78; PLAstic; +2 Ответить
29. PLAstic 295 11.08.22 10:07 Сейчас в теме
(27) Да я и не сходился. Если есть такой монстр и он работает, то тут речь можно вести только об оптимизации, чтобы прям красиво было. Это как 5 и 5+ в школе. У меня нет каких-то интеллектуальных доработок на эту тему. Недавно сделал вызов клиентского метода (открытие формы) через подключаемые команды, но и там всё по инструкции, ничего интересного.
Вангую, скоро ты увидишь массу моего кода, но это в личку. :)
7. user654641_yaga_m 12 09.08.22 11:04 Сейчас в теме
10. bulpi 215 09.08.22 14:16 Сейчас в теме
Плюсанул, но есть замечание :
код процедуры ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
написан отвратительно. Зачем там столько Попытка - Исключение ?
Я бы постыдился такое выкладывать.
zhuntovda; +1 Ответить
14. sapervodichka 6812 09.08.22 14:59 Сейчас в теме
(10) Я не могу всё предупредить по разным формам в 1С (они далеко не все стандартные), где-то есть вероятность ошибки. Чтобы в рабочей базе ошибка не помешала пользователю дальше продолжить работать на некоторых моментах поставил попытка исключение. На практике исключения не возникали, но сам оператор оставил (я перестраховщик).
11. Eralashka 09.08.22 14:31 Сейчас в теме
Найти(пИмяФормы, "Справочник.Сотрудники") > 0
какой то убогий код немного

Попробуй покурить Метаданные.Содержит()
PLAstic; zhuntovda; +2 1 Ответить
13. sapervodichka 6812 09.08.22 14:54 Сейчас в теме
(11) я не курю (>_<) напиши какой параметр передать туда?
19. sapervodichka 6812 09.08.22 18:19 Сейчас в теме
(13) всем кто лайкает предложение использовать Метаданные.Содержит() для начала напишите, что туда передать )))
20. dhurricane 10.08.22 12:45 Сейчас в теме
(19) Может речь была впринципе об использовании метаданных?
МетаданныеФормы = Метаданные.НайтиПоПолномуИмени(пИмяФормы);
ЭтоСправочникСотрудников = (МетаданныеФормы.Родитель() = Метеданные.Справочники.Сотрудники);
22. sapervodichka 6812 10.08.22 13:18 Сейчас в теме
(20) пусть использую, что хотят, дальше все равно проверять имя формы и основной объект в форме сотрудника (он там в отличие от стандартного называется Сотрудник, вместо Объект) (тебе в любом случае спасибо)
34. fatman78 17 13.12.22 20:53 Сейчас в теме
(22)Согласен с Дмитрием, тоже нахлебался с этими именами форм (особенно форм списков) - каких только вариантов названий не встретишь, программисты в типовых конфигурациях сами пренебрегают своими же стандартами.
Еще одна боль - отсутствие удобной штатной возможности программно определить "основной реквизит" на форме, встречал в типовых реализацию даже с применением спец. реквизита что-то типа "ИмяОсновногоРеквизита" строкового типа, который и хранил имя "основного реквизита" формы.
30. PLAstic 295 11.08.22 10:12 Сейчас в теме
(20) В БСП есть масса методов для работы с метаданными (ОМ ОбщегоНазначения) и в т.ч. для многих случаев можно использовать не сами метаданные, а ИдентификаторыОбъектовМетаданных - это удобнее и кодом они тоже сильно обвязаны.
31. sapervodichka 6812 11.08.22 10:34 Сейчас в теме
(30) Леонид, если они тут применимы =))) напиши пример, что вместо Найти(пИмяФормы, "Справочник.Сотрудники") > 0 использовать из БСП, чтобы понять что основной объект формы не Форма.Объект, а Форма.Сотрудник?
32. PLAstic 295 11.08.22 12:40 Сейчас в теме
(31) Ну, в конкретном случае я бы поставил 5 за целеустремлённость и 2 за грамотность реализации.
В механизме подключаемых команд тебе передаётся множество параметров, которые помогут ответить, откуда идёт вызов и к кому его хотели применить. Например, во внешнюю обработку заполнения с типом ОткрытиеФормы передаётся как сама исходная форма, так и объект(ы). Поэтому тут ничего выдумывать не надо, делаем по инструкции.
Ты сам признал, что есть вариант подключить нужные объекты к подсистеме "Подключаемые команды". Сделай это и у тебя откроется возможность реализовать этот механизм без колхоза.

На всякий случай ссылка на описание подсистемы.
33. sapervodichka 6812 11.08.22 13:55 Сейчас в теме
(32) спасибо, я ранее читал, но кому-нибудь обязательно пригодятся эти ссылки
Оставьте свое сообщение