// Используется недокументированная особенность (скорее всего ошибка) платформы - // глобальная непараметризованная команда формы по горячей клавише сработавает во всех формах, открытых без блокирования других форм &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) #Если ВебКлиент Тогда Сообщить("Команда недоступна в вебклиенте"); #ИначеЕсли ТонкийКлиент Тогда ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая"); #Иначе ПараметрКоманды = ПолучитьТекущиеСсылкиОбъектов(); ирОбщий.ОткрытьМассивОбъектовВПодбореИОбработкеОбъектовЛкс(ПараметрКоманды); #КонецЕсли КонецПроцедуры &НаКлиенте Функция ПолучитьТекущиеСсылкиОбъектов() ТекущееОкно = АктивноеОкно(); Результат = Новый Массив; Если ТипЗнч(ТекущееОкно) = Тип("ОкноКлиентскогоПриложения") Тогда ТекущаяФорма = ТекущееОкно.ПолучитьСодержимое(); Если ТипЗнч(ТекущаяФорма) = Тип("УправляемаяФорма") Тогда Если ТипЗнч(ТекущаяФорма.ТекущийЭлемент) = Тип("ТаблицаФормы") Тогда Ссылка = ТекущаяФорма.ТекущийЭлемент.ТекущаяСтрока; Если КлючСтрокиПодходит(Ссылка) Тогда Возврат ТекущаяФорма.ТекущийЭлемент.ВыделенныеСтроки; КонецЕсли; Структура = Новый Структура("Ссылка, Data"); Для Каждого ВыделеннаяСтрока Из ТекущаяФорма.ТекущийЭлемент.ВыделенныеСтроки Цикл ДанныеСтроки = ТекущаяФорма.ТекущийЭлемент.ДанныеСтроки(ВыделеннаяСтрока); ЗаполнитьЗначенияСвойств(Структура, ДанныеСтроки); Ссылка = Структура["Ссылка"]; Если КлючСтрокиПодходит(Ссылка) Тогда Результат.Добавить(Ссылка); КонецЕсли; Ссылка = Структура["Data"]; Если КлючСтрокиПодходит(Ссылка) Тогда Результат.Добавить(Ссылка); КонецЕсли; КонецЦикла; КонецЕсли; Если Результат.Количество() = 0 Тогда Попытка Ссылка = ТекущаяФорма.Объект.Ссылка; Исключение Ссылка = Неопределено; КонецПопытки; Если КлючСтрокиПодходит(Ссылка) Тогда Результат.Добавить(Ссылка); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции &НаКлиенте Функция КлючСтрокиПодходит(Знач Ссылка) Возврат Ложь Или ирОбщий.ЛиСсылкаНаОбъектБДЛкс(Ссылка) Или ирОбщий.ЛиКлючЗаписиРегистраЛкс(Ссылка); КонецФункции