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

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

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

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

В общем необходимо выполнить следующие 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ЗаметокПриНажатии(ЭтаФорма, Элемент, ДанныеСобытия, СтандартнаяОбработка);
КонецПроцедуры

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

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

Управление сделками и продажами