1C шаблоны и готовые решения

Октябрь 20, 2017

Расширение функционала конфигурации ЗУП 3.1. без изменения типовой. Добавление фотографии в карточку сотрудника.

Filed under: — admin @ 6:30 пп

При миграции в ЗУП 3.1. КОРП оказалось, что отсутствует фотография сотрудника в форме элемента справочника Сотрудники. Но фотографии сотрудника были в ЗУП 2.5 КОРП. Чтобы не терять данные по сотрудникам при миграции, было решено создать аналогичный функционал в ЗУП 3.1.
Итак, для добавления фотографии сотрудника в карточку ЗУП 3.1. будем использовать механизм расширений.
Плюсы расширений очевидны: нет необходимости изменять типовую конфигурацию, возможно включать/отключать расширения по желанию заказчика, автоматическое обновление типовой конфигурации.
1. Создаем новое расширение конфигурации «Расширение_ДопФункционал», тип «Адаптация»
2. Добавляем общий модуль, назовем его «Расш_ДополнительныеПроцедурыИФункцииСервер», в свойствах установим галочку «Сервер».
В модуль добавляем процедуру:

// Процедура УстановитьФотоСотрудника добавляет фотографию сотрудника на форму элемента справочника Сотрудники
// Параметры:
//                 ФизическоеЛицоСсылка - Ссылка на Физическое лицо
//                 Фото - Реквизит формы элемента справочника Сотрудники
Процедура УстановитьФотоСотрудника(ФизическоеЛицоСсылка, Фото) Экспорт	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	Файлы.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.ФизическиеЛицаПрисоединенныеФайлы КАК Файлы
		|ГДЕ
		|	Файлы.ВладелецФайла = &ВладелецФайлов
		|	И (ВЫРАЗИТЬ(Файлы.Описание КАК СТРОКА(4))) = ""фото""
		|	И НЕ Файлы.ПометкаУдаления";
	
	Запрос.УстановитьПараметр("ВладелецФайлов", ФизическоеЛицоСсылка);
	
	РезультатЗапроса = Запрос.Выполнить();
	о = РезультатЗапроса.Выбрать();

	Пока о.Следующий() Цикл
		ДанныеФайла = РаботаСФайлами.ДвоичныеДанныеФайла(о.Ссылка);
		Фото = ПоместитьВоВременноеХранилище(ДанныеФайла);
	КонецЦикла;		

КонецПроцедуры

3. Добавляем в расширение форму элемента справочника «Сотрудники»
Guid1C
4. В модуле формы добавляем следующий код:

&НаСервере
Процедура ПриЧтенииНаСервереПосле(ТекущийОбъект)
	Расш_ДополнительныеПроцедурыИФункцииСервер.УстановитьФотоСотрудника(ФизическоеЛицоСсылка, Фото);
КонецПроцедуры

5. В саму форму добавляем поле «ПолеФото» и реквизит формы «Фото» как на картинке:
Guid1C

5. Сохраняем конфигурацию и запускаем 1С ЗУП 3.1. В карточке сотрудника добавляем фото через ссылку на справочник «Присоединенные файлы».
В карточке файла, в окне описание пишем ключевое слово «фото». По нему запрос из процедуры «УстановитьФотоСотрудника()» найдет фотографию сотрудника.

В результате фотография сотрудника теперь отображается в карточке:
Guid1C

Таким образом, с помощью расширений и использования типового механизма 1С ЗУП 3.1. по хранению присоединенных файлов, мы получили доп. функционал как в ЗУП 2.5. КОРП.

Powered by WordPress

Яндекс.Метрика nikol_dn@list.ru