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

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    159    1    0    

2

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

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1130    PROSTO-1C    0    

13

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1008    PROSTO-1C    4    

12

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

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

04.10.2024    1856    MadRave    11    

24

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

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

10.09.2024    1849    MadRave    1    

17

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

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1267    n_mezentsev    10    

8

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

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

02.09.2024    4125    John_d    10    

52

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

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5379    PROSTO-1C    12    

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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