RDT1C/CommonCommands/ирОбработатьОбъектыИзАктивнойФормы/Ext/CommandModule.bsl
Администратор 4c82910a51 Динамический список
+В управляемой форме перед добавлением строки теперь задается вопрос об использовании редактора объекта БД
    Редактор объекта БД
        *Исправлены в очередной раз сломавшиеся привязки на закладке "Связанные колонки"
    Консоль компоновки
        +При выполнении компоновки теперь проверяется наличие слова ПОМЕСТИТЬ в последнем запросе каждого набора данных и выдается сообщение
    Консоль запросов
        *Улучшено представление запросов-объединений в дереве запроса
    Редактор хранилищ настроек
        +В выгрузке/загрузке теперь учитываются описания настроек
    Общее
        +В форму перезапуска сеанса добавлены флажки "Отключить защиту от опасных действий" и "Включить компактный вариант форм"
        +Добавлена форма перезапуска сеанса для обычного приложения, которая теперь открывается вместо соответствующих вопросов
    Структура хранения БД
        *Исправлено открытие диалога установки параметров СУБД при выполнении очистки таблиц БД
    Загрузка табличных данных
        *Исправлено заполнение колонки НомерСтроки на закладке "Таблица БД" для добавленных строк ТЧ и наборов записей в режиме "Объекты на севере"
        *Исправлена ошибка загрузки в табличную часть
2018-05-28 06:33:47 +03:00

69 lines
3.9 KiB
Plaintext

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