Инструкция по добавлению форм на Рабочий стол

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

Расширение предназначено для добавления на Рабочий стол различных новых объектов информационной базы (справочников, списков документов, журналов и т. д.) без их доработки и снятия с поддержки. А также для корректного отображения панелей уведомлений и заметок в тех типовых формах, где это изначально не поддерживается.

Добавление формы на Рабочий стол в конфигураторе

В общем необходимо выполнить следующие 3 условия:

  1. В обработчике формы ПриСозданииНаСервере() должен находиться вызов:
  СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);  

Для конфигурации 1C:CRM вместо «СобытияФорм» должно быть указано «CRM_СобытияФорм».

  1. В модуле должна находиться процедура Подключаемый_ВыполнитьПереопределяемуюКоманду():
  &НаКлиенте   Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)  	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);  КонецПроцедуры    

Для конфигурации 1C:CRM вместо «СобытияФормКлиент» должно быть указано «CRM_СобытияФормКлиент».

Если чего-то из перечисленного нет в модуле формы, это необходимо добавить.

  1. Форма должна быть добавлена в список форм Рабочего стола. Для этого в конфигурации есть специальный общий модуль «CRM_РабочийСтолСерверПереопределяемый». Свои формы нужно добавить в метод ПолучитьСписокДоступныхФорм(). В методе есть пример:
  Процедура ПолучитьСписокДоступныхФорм(СписокФорм) Экспорт  	// СписокФорм.Добавить("Справочник.Партнеры.Форма.CRM_ФормаСписка", "Партнер»"); // пример добавления формы  КонецПроцедуры    

Важно! Обязательно нужно указывать полное имя формы. Нельзя указывать «Справочник.Партнеры.ФормаСписка», даже если у объекта всего одна форма списка.

Этих доработок достаточно, чтобы форма стала доступна на Рабочем столе.

Для большего удобства использования рекомендуется выполнить еще одну (необязательную) доработку — подключить панели уведомлений и заметок, которые будут открываться по кнопкам Рабочего стола:

Кнопки открытия формы

Без доработки по данным кнопкам будут открываться отдельные формы уведомлений и заметок, а не в самом Рабочем столе.

  1. Нужно добавить реквизит формы с именем ПоддерживаетРабочийСтол с типом Булево:

Реквизит

  1. Вставить в модуль формы 2 процедуры:
  &НаКлиенте   Процедура Подключаемый_ПолеHTMLНапоминанийПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)  	CRM_РабочийСтолКлиент.ПолеHTMLНапоминанийПриНажатии(ЭтаФорма, Элемент, ДанныеСобытия, СтандартнаяОбработка);  КонецПроцедуры    &НаКлиенте   Процедура Подключаемый_ПолеHTMLЗаметокПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)  	CRM_РабочийСтолКлиент.ПолеHTMLЗаметокПриНажатии(ЭтаФорма, Элемент, ДанныеСобытия, СтандартнаяОбработка);  КонецПроцедуры    

Результат:

доступных

Добавление формы на Рабочий стол при помощи расширения

При помощи расширения «ДобавлениеФормНаРабочийСтолCRM.cfe» можно добавить нужные формы на Рабочий стол, не внося изменения в конфигурацию и не снимая формы с поддержки.

1. Добавление расширения

Откройте конфигуратор, меню «Конфигурация» — «Расширения конфигурации» и нажмите кнопку «Добавить». Откроется окно добавления нового расширения:

доступных

Оставьте все поля заполненными по умолчанию и только в поле «Назначение» выберите вариант «Дополнение». Нажмите ОК и дождитесь завершения операции.

В этом же окне «Расширения конфигурации» в меню «Действия» выберите пункт «Открыть конфигурацию», а затем в меню «Конфигурация» — пункт «Загрузить конфигурацию из файла…».

Выберите файл расширения «Добавление форм на Рабочий стол CRM.cfe». В обоих открывшихся следом окнах нажмите кнопку «Да»:

доступных

доступных

Дождитесь завершения операции и в строке добавленного расширения снимите флаги в колонках «Безопасный режим» и «Защита от опасных действий».

2. Добавление нужной формы на Рабочего стола

Рассмотрим в качестве примера добавление типовой обработки «Журнал регистрации». Данный пример приведен в расширении.

2.1 Форму необходимо включить в список форм Рабочего стола

Для изменения состава списка форм Рабочего стола, в расширение добавлена процедура «РасширениеРабочегоСтола_ПолучитьСписокДоступныхФорм()» в общем модуле «CRM_РабочийСтолСерверПереопределяемый». В данную процедуру нужно добавить необходимую форму:

  СписокФорм.Добавить("Обработка.ЖурналРегистрации.Форма.ЖурналРегистрации", НСтр("ru='Журнал регистрации'"));  

2.2 Добавление реквизита формы и обработчиков

Открываем модуль формы «ЖурналРегистрации» отработки «ЖурналРегистрации», встаем на имя обработчика «ПриСозданииНаСервере» и добавляем его в расширение. В открывшейся форме нажимаем кнопку «Да»:

Окно с предупреждением

А зачем выбираем тип вызова «Вызывать после»:

Тип вызова

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

Если в исходной форме в данной процедуре нет вызова «СобытияФорм.ПриСозданииНаСервере()», то также добавляем вызов «CRM_СобытияФорм.ПриСозданииНаСервере» в этот переопределенный обработчик:

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

Если в подключаемой форме нет процедуры «Подключаемый_ВыполнитьПереопределяемуюКоманду», добавим его в расширение модуля формы:

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

Затем добавляем в расширение модуля формы две процедуры:

  &НаКлиенте   Процедура Подключаемый_ПолеHTMLНапоминанийПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)  	CRM_РабочийСтолКлиент.ПолеHTMLНапоминанийПриНажатии(ЭтаФорма, Элемент, ДанныеСобытия, СтандартнаяОбработка);  КонецПроцедуры    &НаКлиенте   Процедура Подключаемый_ПолеHTMLЗаметокПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)  	CRM_РабочийСтолКлиент.ПолеHTMLЗаметокПриНажатии(ЭтаФорма, Элемент, ДанныеСобытия, СтандартнаяОбработка);  КонецПроцедуры    

Доработка закончена, после запуска предприятия форма станет доступной на Рабочем столе со всеми возможностями:

Журнал регистрации

Источник