Как изменить отображаемое имя внешней обработки в 1С:Розница?

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

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

Почему изменения в Конфигураторе не применяются «на лету»?

Для начала проанализируем архитектуру современных решений 1С, построенных на базе Библиотеки стандартных подсистем (БСП). В таких конфигурациях внешние обработки не запускаются напрямую с жесткого диска компьютера при каждом вызове. Вместо этого файлы внешних обработок (с расширением .epf) физически загружаются в базу данных — в специальный справочник ДополнительныеОтчетыИОбработки.

Когда вы открываете дополнительную обработку из интерфейса программы, система извлекает двоичные данные файла из справочника в базе данных, сохраняет их во временный каталог на компьютере пользователя и только тогда запускает. Именно поэтому простое редактирование файла на локальном диске через Конфигуратор никак не влияет на то, что видит пользователь в программе. Чтобы изменения вступили в силу, отредактированный файл необходимо загрузить обратно в систему.

Однако даже после перезаписи файла в базе данных имя команды в интерфейсе может остаться старым. Это связано с тем, как формируются параметры регистрации обработки в БСП. Рассмотрим два надежных способа изменения отображаемого имени обработки.

---

Способ №1. Изменение имени через код в модуле внешней обработки

Этот способ является наиболее правильным с точки зрения разработки, так как он гарантирует, что при переносе обработки в другую информационную базу ее имя и команды зарегистрируются корректно.

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

Разберем по шагам, как отредактировать эту функцию:

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

Внутри этой функции за отображение имени отвечают два ключевых параметра структуры ПараметрыРегистрации:

Рассмотрим пример стандартной реализации этой функции:


Функция СведенияОВнешнейОбработке() Экспорт

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

КонецФункции

Чтобы изменить отображаемое имя, вам необходимо отредактировать текстовое значение в строке ПараметрыРегистрации.Наименование и обязательно изменить имя команды во втором параметре функции ДобавитьКоманду.

Лайфхак для разработчиков (динамическое определение имени):

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


Функция СведенияОВнешнейОбработке() Экспорт

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

КонецФункции

После внесения правок сохраните файл обработки. Снова перейдите в карточку этой обработки в режиме «1С:Предприятие», нажмите кнопку «Обновить из файла...», выберите сохраненный файл и нажмите «Записать и закрыть». Теперь название команды в пользовательском меню обновится автоматически.

---

Способ №2. Изменение отображаемого имени без использования Конфигуратора

Если вам не хочется редактировать программный код или открывать Конфигуратор, механизмы БСП позволяют изменить имя команды прямо в пользовательском режиме 1С.

Выполним следующие шаги:

  1. Откройте раздел меню Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки.
  2. Найдите вашу внешнюю обработку в списке и откройте ее двойным кликом.
  3. Обратите внимание на нижнюю часть карточки обработки. Перейдите на вкладку «Команды».
  4. В табличной части вы увидите список доступных команд для этой обработки. Найдите колонку «Наименование» (в некоторых версиях БСП она может называться «Представление»).
  5. Дважды кликните по названию команды прямо в этой строке и введите новое имя команды.
  6. Нажмите кнопку Записать и закрыть для сохранения изменений в базе данных.

После выполнения этих действий имя команды в меню «Склад — Дополнительные обработки» обновится мгновенно без перезагрузки программы пользователями.

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

← На главную