С покупкой нового фотоаппарата отделу кадров, неожиданно начала разрастаться база ЗУП. Пришлось сделать небольшую доработку для сжатия загружаемых фотографий физических лиц.
В расширение добавить общий модуль "КадровыйУчетРасширенный"
Код модуля расширения:
&ИзменениеИКонтроль("ЗаписатьФотографию")
Процедура КОРВ_ЗаписатьФотографию(ФизическоеЛицо, АдресФотографии)
МенеджерЗаписи = РегистрыСведений.ФотографииФизическихЛиц.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ФизическоеЛицо = ФизическоеЛицо;
Если Не ЗначениеЗаполнено(АдресФотографии) Тогда
МенеджерЗаписи.Удалить();
Возврат;
КонецЕсли;
#Удаление
МенеджерЗаписи.Фотография = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресФотографии));
#КонецУдаления
#Вставка
Карт = Новый Картинка(ПолучитьИзВременногоХранилища(АдресФотографии));
СжатаяФотография = Новый ОбрабатываемаяКартинка(Карт);
//Параметры обработки фотографии
СжатаяФотография.УстановитьФормат(ФорматКартинки.JPEG);
СжатаяФотография.УстановитьГлубинуЦвета(ГлубинаЦвета.БитНаПиксел24);
СжатаяФотография.УстановитьРазмер(600, 800);
СжатаяФотография.УстановитьПлотность(600);
МенеджерЗаписи.Фотография = Новый ХранилищеЗначения(СжатаяФотография.ПолучитьКартинку().ПолучитьДвоичныеДанные());
#КонецВставки
МенеджерЗаписи.Записать();
КонецПроцедуры
Также прилагаю код внешней обработки для сжатия всех фотографий физ. лиц.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ФотографииФизическихЛиц.ФизическоеЛицо КАК ФизическоеЛицо,
| ФотографииФизическихЛиц.Фотография КАК Фотография
|ИЗ
| РегистрСведений.ФотографииФизическихЛиц КАК ФотографииФизическихЛиц";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Карт = Новый Картинка(ВыборкаДетальныеЗаписи.Фотография.Получить());
СжатаяФотография = Новый ОбрабатываемаяКартинка(Карт);
СжатаяФотография.УстановитьФормат(ФорматКартинки.JPEG);
СжатаяФотография.УстановитьГлубинуЦвета(ГлубинаЦвета.БитНаПиксел24);
СжатаяФотография.УстановитьРазмер(600, 800);
СжатаяФотография.УстановитьПлотность(600);
СжатаяКартинка = СжатаяФотография.ПолучитьКартинку();
МенеджерЗаписи = РегистрыСведений.ФотографииФизическихЛиц.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ФизическоеЛицо = ВыборкаДетальныеЗаписи.ФизическоеЛицо;
МенеджерЗаписи.Фотография = Новый ХранилищеЗначения(СжатаяКартинка.ПолучитьДвоичныеДанные());
МенеджерЗаписи.Записать(Истина);
КонецЦикла;
Протестировано в ЗУП 3.1.23.63, 1С:Предприятие 8.3 (8.3.20.1674).