Top.Mail.Ru

Особенности использования 1С БСП «Подключаемые команды» при переходе на версию 2.4

При переходе на версию 1С БСП 2.4, приходится переписывать процедуру инициализации подключения стандартной подсистемы «Подключаемые команды». Если в предыдущих версиях использовались процедуры общих модулей «УправлениеПечатью», «ВводНаОснование», «МенюОтчеты», то в версии 2.4 требуется вызывать процедуры одного общего модуля «ПодключаемыеКоманды».

Рассмотрим по шагам, что надо сделать, чтобы подключаемые команды появились на формах добавленных (нетиповых) документов или справочников.

Далее приводятся примеры кода для версии БСП 2.4. Закомментированный код использовался для предыдущих версий БСП .

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	//// СтандартныеПодсистемы.Печать
	//УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, Элементы.ПодменюПечать);
	//// Конец СтандартныеПодсистемы.Печать
	
	//// ВводНаОсновании
	//ВводНаОсновании.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ПодменюСоздатьНаОсновании);
	//// Конец ВводНаОсновании

	//// МенюОтчеты
	//МенюОтчеты.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ПодменюОтчеты);
	//// Конец МенюОтчеты

	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

 

  • Описание подключаемых команд в модуле формы объекта (списка).

    Команда «Подключаемый_ВыполнитьКоманду()» — назначается всем подключаемым командам. Команда Подключаемый_ВыполнитьКомандуНаСервере()- используется, когда требуется контекстный вызов сервера. Команда Подключаемый_ОбновитьКоманды() — служит для обновления команд формы.

//// СтандартныеПодсистемы.Печать
//&НаКлиенте
//Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
//КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать

//// ВводНаОсновании
//&НаКлиенте
//Процедура Подключаемый_ВыполнитьКомандуСоздатьНаОсновании(Команда)
//КонецПроцедуры
//// Конец ВводНаОсновании

//// МенюОтчеты
//&НаКлиенте
//Процедура Подключаемый_ВыполнитьКомандуОтчет(Команда)
//КонецПроцедуры
//// Конец МенюОтчеты

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
  • В командной панели формы объекта (списка) должны присутствовать отмеченные пункты подменю. Это требование не изменилось в версии 2.4

  • В модуле менеджера объекта создаются экспортные процедуры для добавления нужных команды на формы объектов. В версии БСП 2.4 есть небольшие изменения, касающиеся параметров процедур.

ДобавитьКомандыСозданияНаОсновании() — экспортная процедура, в которой заполняется таблица «КомандыСозданияНаОсновании». Команды из этой таблицы выводятся на форму в «ПодменюСоздатьНаОсновании».

ДобавитьКомандуСоздатьНаОсновании() — экспортная функция, которая используется для добавления команды создания текущего объекта на основании других объектов.

ДобавитьКомандыОтчетов() — экспортная процедура, в которой заполняется таблица «КомандыОтчетов». Команды из этой таблицы выводятся на форму в «ПодменюОтчеты».

ДобавитьКомандыПечати() — экспортная процедура, в которой заполняется таблица «КомандыПечати». Команды из этой таблицы выводятся на форму в «ПодменюПечать».

// Определяет список команд создания на основании.
//
// Параметры:
//   КомандыСозданияНаОсновании - ТаблицаЗначений - Таблица с командами создания на основании. Для изменения.
//       См. описание 1 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
//   Параметры - Структура - Вспомогательные параметры. Для чтения.
//       См. описание 2 параметра процедуры СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании().
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
	Документы.РасходныйОрдерНаТовары.ДобавитьКомандуСоздатьНаОснованииРасходныйОрдерНаТовары(КомандыСозданияНаОсновании);
	
КонецПроцедуры

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

	Возврат Неопределено;
КонецФункции

// Определяет список команд отчетов.
//
// Параметры:
//   КомандыОтчетов - ТаблицаЗначений - Таблица с командами отчетов. Для изменения.
//       См. описание 1 параметра процедуры ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов().
//   Параметры - Структура - Вспомогательные параметры. Для чтения.
//       См. описание 2 параметра процедуры ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов().
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
	
	ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуСтруктураПодчиненности(КомандыОтчетов);
	
	ВариантыОтчетовУТПереопределяемый.ДобавитьКомандуДвиженияДокумента(КомандыОтчетов);
	
КонецПроцедуры

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	// Задание на производство
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ЗаданиеНаПроизводство";
	КомандаПечати.Представление = НСтр("ru = 'Задание на производство'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	КомандаПечати.Обработчик = "УправлениеПечатьюУПКлиент.ПечатьЗаданиеНаПроизводство";
	
КонецПроцедуры

Все предыдущие шаги можно сделать по аналогии типовых объектов. При переходе на версию БСП 2.4 во всех типовых объектах разработчики проводят указанные выше модификации. Но для вывода на форму своих (добавленных) объектов этого будет не достаточно, подключаемые команды не появятся на формах. В версии БСП 2.4 необходимо сделать еще следующие доработки:

  • В общем модуле «ВариантыОтчетовПереопределяемый» в процедуре ОпределитьОбъектыСКомандамиОтчетов() формируется список объектов метаданных, для которых требуется добавить команды открытия отчетов. В этот список надо добавить новый (не типовой) объект.

  • В общем модуле «СозданиеНаОснованииПереопределяемый» в процедуре ПриОпределенииОбъектовСКомандамиСозданияНаОсновании () формируется список объектов метаданных, для которых требуется добавить команды создания на основании. В этот список надо добавить новый (не типовой) объект.

  • В общем модуле «УправлениеПечатьюПереопределяемый» в процедуре ПриОпределенииОбъектовСКомандамиПечати () формируется список объектов метаданных, для которых требуется добавить команды печати. В этот список надо добавить новый (не типовой) объект.

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar