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

18.03.20

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

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

Файлы

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

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

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

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

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

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

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

 

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

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

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

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

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

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

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

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

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

См. также

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    1364    4    0    

3

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

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

3254 руб.

21.11.2024    13643    49    26    

56

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

Каждый раз, когда разработчик 1С пишет очередной цикл для свертки массива или использует конструкцию Попытка / Исключение для проверки наличия реквизита, где-то грустит один архитектор фирмы «1С». Мы привыкли изобретать велосипеды там, где в Библиотеке стандартных подсистем (БСП) уже давно лежат готовые, оптимизированные и протестированные на тысячах баз решения. Ниже — практическая подборка из 8 методов актуальных релизов БСП (3.X), которые сделают ваш код чище, быстрее и профессиональнее. Разберем на примерах «Было / Стало».

04.06.2026    9388    Kaliostr0    16    

35

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

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

06.02.2026    15623    manul1c    6    

25

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

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

23.09.2025    15263    AlexeyPROSTO_1C    1    

18

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

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

16.09.2025    7510    _seerco2002    0    

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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