Открыть отчет или форму. Предназначена для открытия переданного отчета или формы.
// Предназначена для открытия переданного отчета или формы.
//
// Параметры:
// ТекущийЭлемент - ТаблицаФормы - выделенная строка дерева значений.
// Пользователь - Строка - имя пользователя информационной базы,
// ТекущийПользователь - Строка - имя пользователя информационной базы, для открытия формы
// должен совпадать значением параметра "Пользователь".
// ИмяФормыПерсональныхНастроек - Строка - путь для открытия формы персональных настроек.
// Вида "ОбщаяФорма.НазваниеФормы".
Процедура ОткрытьОтчетИлиФорму(ТекущийЭлемент, Пользователь, ТекущийПользователь, ИмяФормыПерсональныхНастроек) Экспорт
ЭлементДереваЗначений = ТекущийЭлемент;
Если ЭлементДереваЗначений.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если Пользователь <> ТекущийПользователь Тогда
ТекстПредупреждения =
НСтр("ru = 'Для просмотра настроек другого пользователя необходимо
|запустить программу от его имени и открыть нужный отчет или форму.'");
ПоказатьПредупреждение(,ТекстПредупреждения);
Возврат;
КонецЕсли;
Если ЭлементДереваЗначений.Имя = "НастройкиОтчетовДерево" Тогда
КлючОбъекта = ЭлементДереваЗначений.ТекущиеДанные.Ключи[0].Значение;
КлючОбъектаМассивСтрок = СтрРазделить(КлючОбъекта, "/", Ложь);
КлючВарианта = КлючОбъектаМассивСтрок[1];
ПараметрыОтчета = Новый Структура("КлючВарианта, КлючПользовательскихНастроек", КлючВарианта, "");
Если ЭлементДереваЗначений.ТекущиеДанные.Тип = "НастройкаОтчета" Тогда
КлючПользовательскихНастроек = ЭлементДереваЗначений.ТекущиеДанные.Ключи[0].Представление;
ПараметрыОтчета.Вставить("КлючПользовательскихНастроек", КлючПользовательскихНастроек);
КонецЕсли;
ОткрытьФорму(КлючОбъектаМассивСтрок[0] + ".Форма", ПараметрыОтчета);
Возврат;
ИначеЕсли ЭлементДереваЗначений.Имя = "ВнешнийВид" Тогда
Для Каждого КлючОбъекта Из ЭлементДереваЗначений.ТекущиеДанные.Ключи Цикл
Если КлючОбъекта.Пометка = Истина Тогда
ИмяФормы = СтрРазделить(КлючОбъекта.Значение, "/")[0];
ИмяФормыЧастями = СтрРазделить(ИмяФормы, ".");
Пока ИмяФормыЧастями.Количество() > 4 Цикл
ИмяФормыЧастями.Удалить(4);
КонецЦикла;
ИмяФормы = СтрСоединить(ИмяФормыЧастями, ".");
ОткрытьФорму(ИмяФормы);
Возврат;
Иначе
РодительЭлемента = ЭлементДереваЗначений.ТекущиеДанные.ПолучитьРодителя();
Если ЭлементДереваЗначений.ТекущиеДанные.ТипСтроки = "НастройкиРабочегоСтола" Тогда
ПоказатьПредупреждение(,
НСтр("ru = 'Для просмотра настроек рабочего стола перейдите к разделу
|""Рабочий стол"" в командном интерфейсе программы.'"));
Возврат;
КонецЕсли;
Если ЭлементДереваЗначений.ТекущиеДанные.ТипСтроки = "НастройкиКомандногоИнтерфейса" Тогда
ПоказатьПредупреждение(,
НСтр("ru = 'Для просмотра настроек командного интерфейса
|выберите нужный раздел командного интерфейса программы.'"));
Возврат;
КонецЕсли;
Если РодительЭлемента <> Неопределено Тогда
ТекстПредупреждения =
НСтр("ru = 'Для просмотра данной настройки необходимо открыть ""%1""
|и затем перейти к форме ""%2"".'");
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПредупреждения,
РодительЭлемента.Настройка, ЭлементДереваЗначений.ТекущиеДанные.Настройка);
ПоказатьПредупреждение(,ТекстПредупреждения);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПоказатьПредупреждение(,НСтр("ru = 'Данную настройку невозможно просмотреть.'"));
Возврат;
ИначеЕсли ЭлементДереваЗначений.Имя = "ПрочиеНастройки" Тогда
Если ЭлементДереваЗначений.ТекущиеДанные.Тип = "ПерсональныеНастройки"
И ИмяФормыПерсональныхНастроек <> "" Тогда
ОткрытьФорму(ИмяФормыПерсональныхНастроек);
Возврат;
КонецЕсли;
ПоказатьПредупреждение(,НСтр("ru = 'Данную настройку невозможно просмотреть.'"));
Возврат;
КонецЕсли;
ПоказатьПредупреждение(,НСтр("ru = 'Выберите настройку для просмотра.'"));
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОткрытьВариантДополнительногоОтчета (БСП)
ОткрытьФормуКомандДополнительныхОтчетовИОбработок (БСП)
ОткрытьОтчетПоПроблемамИзСписка (БСП)
ОткрытьОтчетПоПроблемамОбъекта (БСП)
ОткрытьОтчетПоПроблемамИзОбработкиОбновления (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)