Как добавить внешнюю обработку или отчет в «Избранное» 1С или в меню для быстрого доступа?

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

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

Стандартная регистрация внешней обработки или отчета

Начнем с основного и наиболее распространенного способа добавления внешней обработки или отчета в систему 1С для быстрого доступа. Этот метод не только позволяет разместить ваш инструмент в нужных разделах, но и является основой для дальнейшей работы с ним, включая добавление в «Избранное».

Мы последовательно разберем шаги, которые необходимо выполнить:

  1. Перейдем в раздел администрирования: В режиме «1С:Предприятие» откройте раздел Администрирование.
  2. Найдем справочник дополнительных отчетов и обработок: В этом разделе нам понадобится пункт Печатные формы, отчеты и обработки, а затем ссылка Дополнительные отчеты и обработки. Откроем этот справочник.
  3. Создадим новый элемент: Нажмите кнопку Создать, чтобы добавить новую внешнюю обработку или отчет.
  4. Укажем файл обработки: В открывшейся форме вам будет предложено указать файл внешней обработки или отчета. Нажмите кнопку Загрузить из файла... и выберите ваш файл с расширением *.epf (для обработки) или *.erf (для отчета).
  5. Настроим размещение в интерфейсе: После загрузки файла, в карточке дополнительного отчета или обработки, вы увидите ссылку Размещение. Нажмите на нее. Здесь мы можем выбрать одну или несколько подсистем (разделов интерфейса), в которых будет отображаться команда для запуска нашей обработки. Это очень удобно, так как позволяет запускать обработку напрямую из нужного вам раздела, минуя шаги открытия файла через меню Файл -> Открыть....
  6. Настроим права доступа и быстрый доступ: В форме настройки внешней обработки обратите внимание на столбец Быстрый доступ. Здесь вы можете выбрать конкретных пользователей, для которых данная обработка будет доступна в соответствующих разделах. Обязательно убедитесь, что у пользователей, которым вы предоставляете доступ, есть необходимые права для запуска внешних обработок.

Таким образом, мы успешно зарегистрировали внешнюю обработку и разместили ее в нужных местах интерфейса. Теперь давайте разберемся, что делать, если возможность добавить обработку в «Избранное» все еще отсутствует.

Обеспечение возможности добавления в «Избранное» через функцию СведенияОВнешнейОбработке

Иногда, даже после стандартной регистрации, внешняя обработка или отчет не появляется в списке доступных для добавления в «Избранное» или работает некорректно. Причина чаще всего кроется в отсутствии или неправильном заполнении специальной функции в модуле объекта вашей внешней обработки – СведенияОВнешнейОбработке().

Рассмотрим подробнее эту ключевую функцию:

Функция СведенияОВнешнейОбработке() располагается в модуле объекта внешней обработки. Она возвращает структуру, которая содержит метаданные и свойства обработки. Именно эта структура позволяет системе 1С понять, как работать с вашей обработкой, какие у нее есть команды, как их отображать и, что важно для нас, может ли она быть добавлена в «Избранное».

Для того чтобы внешняя обработка могла быть добавлена в «Избранное», необходимо корректно заполнить параметры этой структуры. Мы рекомендуем ориентироваться на подходы, реализованные в «Библиотеке стандартных подсистем» (БСП), которые являются эталоном для разработки внешних обработок и отчетов.

Вот пример минимальной структуры, которую должна возвращать функция СведенияОВнешнейОбработке() для обеспечения базовой функциональности и возможности добавления в «Избранное»:


Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка"); // Или "ДополнительныйОтчет"
    ПараметрыРегистрации.Вставить("Наименование", "Моя Полезная Обработка"); // Название, которое будет отображаться
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Эта обработка выполняет X и Y.");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); // Рекомендуется для большинства обработок
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление");
    Команды.Колонки.Добавить("Идентификатор");
    Команды.Колонки.Добавить("Использование");
    Команды.Колонки.Добавить("ПоказыватьВИзбранном"); // Ключевой параметр!
    
    НоваяКоманда = Команды.Добавить();
    НоваяКоманда.Представление = "Запустить мою обработку";
    НоваяКоманда.Идентификатор = "ЗапуститьМоюОбработку";
    НоваяКоманда.Использование = "ОткрытиеФормы"; // Указываем, что команда открывает форму
    НоваяКоманда.ПоказыватьВИзбранном = Истина; // Разрешаем добавление в Избранное
    
    ПараметрыРегистрации.Вставить("Команды", Команды);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Обратите внимание на столбец ПоказыватьВИзбранном в таблице Команды. Установив его значение в Истина, мы явно указываем системе, что данная команда может быть добавлена в «Избранное». Также важно правильно указать Использование команды (например, ОткрытиеФормы, если команда открывает форму обработки).

Помимо этого, для отчетов, чтобы они могли сохранять варианты и быть добавлены в «Избранное», необходимо также выбрать хранилище вариантов в свойствах отчета при его регистрации.

Программное открытие внешней обработки и «Кнопка для ленивых»

Иногда возникает необходимость открывать внешнюю обработку программно, например, из другой обработки, отчета или даже из регламентного задания. Это также может быть основой для создания так называемой «кнопки для ленивых», о которой говорилось на форуме — небольшой обработки-запускалки, которая сама открывает нужную внешнюю обработку.

Разберем по шагам, как это можно реализовать:

  1. Поместим файл обработки на сервер: Прежде чем открыть внешнюю обработку программно, ее файл необходимо временно поместить на сервер. Для этого используем метод ПоместитьФайл().
  2. Подключим обработку: Затем мы используем менеджер внешних обработок и метод Подключить(), чтобы система 1С «узнала» о нашей обработке.
  3. Откроем форму: После подключения мы можем открыть форму обработки с помощью метода ОткрытьФорму().

Давайте посмотрим на пример кода, который может быть размещен, например, в модуле команды вашей обработки-запускалки:


// В модуле команды обработки-запускалки (например, в обработчике команды "ОткрытьМоюОбработку")

&НаСервере
Функция ОткрытьВнешнююОбработкуНаСервере()
    
    ИмяФайлаОбработки = "C:\ПутьКВашейОбработке\МояВнешняяОбработка.epf"; // Укажите полный путь к вашей внешней обработке
    
    // 1. Помещаем файл обработки во временное хранилище на сервере
    ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ИмяФайлаОбработки);
    АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, УникальныйИдентификатор);
    
    // 2. Подключаем внешнюю обработку
    ИдентификаторОбработки = ДополнительныеОтчетыИОбработки.Подключить(АдресХранилища, "МояВнешняяОбработка"); // "МояВнешняяОбработка" - это имя, под которым она будет известна в сеансе
    
    Если ИдентификаторОбработки = Неопределено Тогда
        Возврат Неопределено; // Ошибка подключения
    КонецЕсли;
    
    // 3. Получаем форму обработки
    // Обратите внимание на исправление из форума: используем "Имя" вместо прямого объекта формы
    // (ТекущаяФорма = ПолучитьФорму(Форма) на ТекущаяФорма = ПолучитьФорму(Форма.Имя))
    ИмяФормы = "ВнешняяОбработка." + ИдентификаторОбработки + ".Форма"; // Предполагаем, что у обработки есть основная форма
    
    ПараметрыОткрытия = Новый Структура("ИдентификаторКоманды", "ЗапуститьМоюОбработку"); // Если нужно передать команду
    
    Возврат ОткрытьФорму(ИмяФормы, ПараметрыОткрытия);
    
КонецФункции

&НаКлиенте
Процедура ОткрытьМоюОбработку(Команда)
    
    // Вызываем серверную функцию для открытия обработки
    ФормаОбработки = ОткрытьВнешнююОбработкуНаСервере();
    
    Если ФормаОбработки = Неопределено Тогда
        ПоказатьПредупреждение(, "Не удалось открыть внешнюю обработку. Проверьте путь к файлу и права.");
    КонецЕсли;
    
КонецПроцедуры

В этом примере мы видим, как создать клиент-серверную связку для открытия внешней обработки. Важный момент, который был подмечен на форуме: при получении формы для открытия, вместо прямого использования объекта формы (что может привести к ошибкам или некорректному поведению), следует использовать ее имя. В нашем примере это реализовано через формирование строки "ВнешняяОбработка." + ИдентификаторОбработки + ".Форма".

Такой подход позволяет создать универсальную «болванку» или «обработку-запускалку», которая будет открывать нужные вам внешние обработки или отчеты по нажатию одной кнопки, значительно упрощая работу.

Мы рассмотрели все основные способы работы с внешними обработками и отчетами, от их стандартной регистрации и размещения в интерфейсе до тонкой настройки возможности добавления в «Избранное» и программного запуска. Надеемся, что эта информация поможет вам сделать вашу работу в 1С более эффективной и удобной!

← К списку