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

18.03.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Расширение
.cfe 9,91Kb ver:1
3
3 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

 

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

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

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

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

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

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

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

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

См. также

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

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

1800 руб.

21.11.2024    5473    25    23    

28

БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

Описание способа создания глобального обработчика оповещений (событие формы), не привязанного к какой-то конкретной форме.

01.04.2025    798    krasnoshchekovpavel    0    

9

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Россия Бесплатно (free)

Как создать внешнюю печатную форму для конфигураций на базе БСП с желанной всеми разработчиками фишкой - автоматическим открытием обработки в конфигураторе с остановкой отладчика внутри процедуры Печать() при выполнении интерактивной команды печати.

24.03.2025    1273    GeraltSnow    5    

27

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

Добавим метки в новый документ средствами БСП.

10.02.2025    4879    John_d    24    

49

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

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

27.12.2024    5337    PROSTO-1C    16    

50

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

Синтакс-помощник БСП - справочник по Библиотеке Стандартных Подсистем, профессиональный инструмент разработчика с интуитивно понятным интерфейсом. Читайте в статье как использовать все возможности справочника и сделать работу с БСП более комфортной и эффективной.

11.12.2024    4966    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    1389    Iaskeliainen    2    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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)
////////////////////////////////////////////////////////////­//////////////////////////
// НЕ ТРОГАТЬ

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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