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

18.03.20

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • Поиск от одного разработчика до ИТ-команд под проект.
  • Обмен любыми контактами разрешён.
  • 0% комиссии, допускаются расчёты напрямую.

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

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

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

 

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

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

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

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

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

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

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

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

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

См. также

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

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

3254 руб.

21.11.2024    12692    46    24    

52

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

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

06.02.2026    7348    manul1c    6    

22

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

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

23.09.2025    11849    AlexeyPROSTO_1C    1    

18

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

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

16.09.2025    6011    _seerco2002    0    

34

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

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

02.09.2025    7228    krasnov322    25    

43

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

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

22.05.2025    5677    240    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)
////////////////////////////////////////////////////////////­//////////////////////////
// НЕ ТРОГАТЬ

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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