Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Раскрыть
titleОчистка двоичных данных из справочника Файлы
Блок кода
Процедура ПередатьВсеФайлыВЯндексОблако()
    ЗапросФайлов = Новый Запрос;
	ЗапросФайлов.Текст = 
		"ВЫБРАТЬ
		|	Файлы.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.Файлы КАК Файлы
		|ГДЕ
		|	Файлы.МестоХраненияФайла = ЗНАЧЕНИЕ(Перечисление.РВ_МестоХраненияФайла.ВИнформационнойБазе)";			
	РезультатЗапросаФайлов = ЗапросФайлов.Выполнить();			
	ВыборкаДетальныеЗаписиФайлов = РезультатЗапросаФайлов.Выбрать();			
	Пока ВыборкаДетальныеЗаписиФайлов.Следующий() Цикл
		Попытка
			РезультатПередачи = ПередатьФайлВЯндексОблако(ВыборкаДетальныеЗаписиФайлов.Ссылка);
		Исключение
			РезультатПередачи = ОписаниеОшибки();
		КонецПопытки;
		Если РезультатПередачи = Истина Тогда
			ФайлОбъект = ВыборкаДетальныеЗаписиФайлов.Ссылка.ПолучитьОбъект();
			ФайлОбъект.МестоХраненияФайла = Перечисления.РВ_МестоХраненияФайла.YandexCloud;
			ФайлОбъект.Данные = Новый ХранилищеЗначения(Неопределено);
			Попытка
				ФайлОбъект.Записать();
			Исключение
				Ошибка = НСтр("ru = 'Не удалось изменить место хранения фото'");
				Ошибка = Ошибка + ". " + НСтр("ru = 'Ошибка'") + ": " + ОписаниеОшибки();
				Сообщить(Ошибка);	
			КонецПопытки;
		Иначе
			Ошибка = НСтр("ru = 'Не удалось передать фото в ЯндексОблако'");
			Ошибка = Ошибка + ". " + НСтр("ru = 'Ошибка'") + ": " + РезультатПередачи;
			Сообщить(Ошибка);
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

...

Сжатие и

...

На этом можно было бы и закончить, но мне для быстрого отображения фото в тонком клиенте 1С нужны небольшие “снимки” размером примерно 1024х768, а для отображения в виде компактной галереи - готовые пиктограммы размером 100х100.

Для этого я делаю следующее:

  • В бакете, куда прилетают фотки, создаю Триггер, называю его autoresize. При создании в префикс ключа объекта вписываю имя папки, для которой будет выполняться триггер:

    Image Removed
  • В разделе “настройки функции” указываю имя облачной функции, которую необходимо выполнить после создания объекта. В моем случае это функция, написанная на Python, которая и создает пиктограмму и “снимок” с фото

Далее я могу в тонком клиенте 1С или в мобильном приложении быстро отображать снимки как угодно.

...

поворот фото

Что еще можно сделать с файлами в Облаке, я описала здесь: сжатие и поворот фото. Триггеры и Cloud Functions