Добавление контекстных дополнительных обработок в командную панель (немного практики по доработке БСП расширениями)

18.03.20

Разработка - БСП (Библиотека стандартных подсистем)

При добавлении контекстных дополнительных отчетов они не попадают в командную панель (КП), а открываются специальной командой из КП "Отчеты - Дополнительные отчеты..." Не всегда это удобно, и если контекстный отчет нужен для частого использования, то гораздо лучше, если бы он попадал сразу в подменю "Отчеты" на КП, а не требовал открытия дополнительной формы.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Расширение
.cfe 9,91Kb ver:1
3 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Все действия выполнялись на УТ 11.4.9.98

Понадобилось добавить дополнительный отчет "Прайс лист (внешний, контекст)" (для запуска из номенклатуры), который будет активно использоваться пользователями. Но оказалось что доступ к отчету затруднен лишними нажатиями кнопок: дополнительный отчеты не добавляются не в подменю "отчеты", а создают там команду для открытия списка всех дополнительных отчетов "Дополнительные отчеты...".

 
 Как сейчас
 
 Как надо
 
 Код расширения, который делает "как надо"

 

Результат, отчет доступен в подменю отчеты.

Можно управлять положением отчетов в подменю "отчеты" с помощью следующих строк кода:

Команда.Важность      = "Обычное";//"СмТакже", "Обычное", "Важное";
Команда.Порядок            = 999;//0; - первый //50 - последний;

А также, можно удалить пункт "дополнительные отчеты" из подменю "отчетов", раскомментировав следующую строку:

//Команды.удалить(Команда_ДопОтчеты);

Из минусов решения: все дополнительные контекстные разработки обрабатываются одинаково. 

Что делать если таких отчетов 100+, а вывести в командную панель надо только три из них, и то в разные группы по важности?

Проблемы решают по мере поступления, и для меня это пока не проблема. Но если у вас есть решение/предложение - плюс в карму гарантирован).

Вступайте в нашу телеграмм-группу Инфостарт

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

3254 руб.

21.11.2024    12335    46    24    

52

БСП (Библиотека стандартных подсистем) Универсальные функции Программист 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

06.02.2026    4998    manul1c    6    

21

Рефакторинг и качество кода БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

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

23.09.2025    10985    AlexeyPROSTO_1C    1    

18

БСП (Библиотека стандартных подсистем) Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    5674    _seerco2002    0    

34

Нейросети БСП (Библиотека стандартных подсистем) Инструментарий разработчика Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Telegram-бот для разработчиков 1С, работающих с БСП. Если не знаете нужный под задачу метод или не помните название, то опишите боту задачу и получите список подходящих экспортных методов из общих модулей БСП.

02.09.2025    7002    krasnov322    22    

43

Анализ учета БСП (Библиотека стандартных подсистем) 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Расширение для конфигураций на базе БСП 3.х. Позволяет создавать новые отчеты путем соединения или объединения других отчетов.

22.05.2025    5508    233    seperblunt    9    

30
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Eriksson 22.03.20 03:41 Сейчас в теме
Делаю через команду обработки написанной в расширении, которую размещаю через заимствованную группу команд "Печать". В зависимости от параметра, команда будет видима для нужного объекта. Плюсом является обычная отладка и простой код, без запара с дополнительными обработками.
work.sable; Bassgood; +2 Ответить
2. work.sable 26 23.03.20 02:44 Сейчас в теме
Да, это тоже решение по размещению своих контекстных разработок, но так же как и предложенное в посте - не идеальное:
1. Не всегда правильно добавлять в подменю "печать", иногда нужны именно отчеты.
2. Если в контекстной разработке имеются реквизиты с ссылочными типами - приходится всё это захватывать в расширение

Но, и как вы правльно отметили - свои плюсы у вашего предложения тоже есть)
3. DEG156 28 23.03.20 09:38 Сейчас в теме
Интересная идея. в плюс. Может еще автор приведет конкретный пример вызова такого отчета (с параметрами) ?!
4. work.sable 26 25.03.20 01:58 Сейчас в теме
(3) не понял вас, вроде всё есть: первая процедура под спойлером с кодом.
Могу если надо показать стек вызовов типовых процедур на момент входа в процедуру. Вы об этом?
5. DEG156 28 25.03.20 08:57 Сейчас в теме
Я имел ввиду что раз речь идет о внешней дополнительной обработке, то как должна зоплнятся функция

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

Какими параметрами ?
6. work.sable 26 14.04.20 10:01 Сейчас в теме
(5)
////////////////////////////////////////////////////////////­//////////////////////////
// НЕ ТРОГАТЬ

Функция ПолучитьТаблицуКоманд()
	
	Команды = Новый ТаблицаЗначений;
	
	Команды.Колонки.Добавить("Представление", 			Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Идентификатор",			Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Использование", 			Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("ПоказыватьОповещение", 	Новый ОписаниеТипов("Булево"));
	Команды.Колонки.Добавить("Модификатор", 			Новый ОписаниеТипов("Строка"));
	
	Возврат Команды;
	
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
	
	НоваяКоманда = ТаблицаКоманд.Добавить();
	
	НоваяКоманда.Представление 			= Представление;
	НоваяКоманда.Идентификатор 			= Идентификатор;
	НоваяКоманда.Использование 			= Использование;
	НоваяКоманда.ПоказыватьОповещение 	= ПоказыватьОповещение;
	НоваяКоманда.Модификатор 			= Модификатор;
	
КонецПроцедуры

Функция СведенияОВнешнейОбработке() Экспорт
	
	МассивНазначений 		= Новый Массив;
	МассивНазначений.Добавить("Справочник.Номенклатура");
	
	ПараметрыРегистрации 	= Новый Структура;

	ПараметрыРегистрации.Вставить("Вид"				, "Отчет");
	ПараметрыРегистрации.Вставить("Назначение"		, МассивНазначений);
	ПараметрыРегистрации.Вставить("Версия"			, "");
	ПараметрыРегистрации.Вставить("БезопасныйРежим"	, Ложь);
	
	ПараметрыРегистрации.Вставить("Наименование"	, ПредставлениеОтчета());
	ПараметрыРегистрации.Вставить("Информация"		, ПредставлениеОтчета());
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	
	ДобавитьКоманду(ТаблицаКоманд,
	
					ПредставлениеОтчета(),
					ПредставлениеОтчета(),
					"ОткрытиеФормы",
					Ложь);
	
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции


////////////////////////////////////////////////////////////­//////////////////////////
// ЗАПОЛНИТЬ

Функция ПредставлениеОтчета()
	Возврат "Прайс лист (внешний, контекст)";	
КонецФункции

Функция ВерсияОтчета()
	Возврат ""
КонецФункции

////////////////////////////////////////////////////////////­//////////////////////////
// Дополнительно

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныйПрограммныйИнтерфейс

// Настройки общей формы отчета подсистемы "Варианты отчетов".
//
// Параметры:
//   Форма - УправляемаяФорма - Форма отчета.
//   КлючВарианта - Строка - Имя предопределенного варианта отчета или уникальный идентификатор пользовательского.
//   Настройки - Структура - см. возвращаемое значение ОтчетыКлиентСервер.ПолучитьНастройкиОтчетаПоУмолчанию().
//
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.ФормироватьСразу = Истина;
	Настройки.РазрешеноИзменятьВарианты = Ложь;
	Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры

//++
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
	ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
	Если ОбъектыНазначения <> Неопределено Тогда
		Форма.ФормаПараметры.Отбор.Вставить("Номенклатура", ОбъектыНазначения);
	КонецЕсли;
КонецПроцедуры
//--

#КонецОбласти

#КонецЕсли
Показать


Все как обычно, ничего сверхестественного. На всякий случай прикладываю целиком модуль объекта
Для отправки сообщения требуется регистрация/авторизация