Ну, в общем, сам разобрался. Вот решение:
ДанныеКартинки - Двоичные данные исходной картинки.
Функция ПолучитьПревьюКартинки(ДанныеКартинки) Экспорт
Картинка = Новый Картинка(ДанныеКартинки, Истина);
Размер = ДанныеКартинки.Размер();
МаксимальныйРазмер = 1024*300; //Превью делаем, только если размер исходной картинки больше 300Кб
Если Размер > МаксимальныйРазмер Тогда
ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(Картинка);
Попытка
Если Картинка.ПлотностьПоВертикали() >= 150 Тогда
ОбрабатываемаяКартинка.УстановитьПлотность(72, 72);
КонецЕсли;
Исключение
КонецПопытки;
//ОбрабатываемаяКартинка.Масштабировать(Макс(10,Окр(100*МаксимальныйРазмер/Размер)));
Ширина = Картинка.Ширина();
МаксимальнаяШирина = 150;
Если Ширина > МаксимальнаяШирина Тогда
ОбрабатываемаяКартинка.УстановитьРазмер(МаксимальнаяШирина,Окр(Картинка.Высота()/Ширина*МаксимальнаяШирина));
КонецЕсли;
Картинка = ОбрабатываемаяКартинка.ПолучитьКартинку();
КонецЕсли;
Возврат Картинка.ПолучитьДвоичныеДанные();
КонецФункции
За основу взял алгоритм от
[email protected], за что ему большая благодарность.