Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 03:46

Присоединенные файлы номенклатуры

Автор bony_ann, 24 апр 2019, 09:11

0 Пользователей и 1 гость просматривают эту тему.

bony_ann

Помогите, пожалуйста, удалить фото, присоединенные к номенклатуре. При простой установке пометки на удаление файла, ссылается на саму номенклатуру.

&НаСервере
Процедура ОчисткаРанееЗагруженныхФайловИзНоменклатуры()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.ФайлКартинки.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ФайлКартинки <> ЗНАЧЕНИЕ(Справочник.НоменклатураПрисоединенныеФайлы.ПустаяСсылка)";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектНоменклатуры = Выборка.Ссылка.ПолучитьОбъект();
ОбъектНоменклатуры.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
ОбъектНоменклатуры.Записать();

ОбъектНоменклатураПрисоединенныеФайлы = Выборка.ФайлКартинкиСсылка.ПолучитьОбъект();
ПутьНахожденияФайлаНаДиске = ОбъектНоменклатураПрисоединенныеФайлы.Том.ПолныйПутьWindows + ОбъектНоменклатураПрисоединенныеФайлы.ПутьКФайлу;
Попытка
УдалитьФайлы(ПутьНахожденияФайлаНаДиске);
Исключение
ВызватьИсключение "Ошибка удаления файла"
КонецПопытки;

ОбъектНоменклатураПрисоединенныеФайлы.Удалить();
КонецЦикла;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураПрисоединенныеФайлы.Ссылка
|ИЗ
| Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектНоменклатураПрисоединенныеФайлы = Выборка.Ссылка.ПолучитьОбъект();
ПутьНахожденияФайлаНаДиске = ОбъектНоменклатураПрисоединенныеФайлы.Том.ПолныйПутьWindows + ОбъектНоменклатураПрисоединенныеФайлы.ПутьКФайлу;
Попытка
УдалитьФайлы(ПутьНахожденияФайлаНаДиске);
Исключение
ВызватьИсключение "Ошибка удаления файла"
КонецПопытки;

ОбъектНоменклатураПрисоединенныеФайлы.Удалить();
КонецЦикла;

НайденныеКаталоги = НайтиФайлы(Константы.ТомХраненияФайловДляКартинок_8Марта.Получить().ПолныйПутьWindows,"*");
Для Каждого ПутьКаталога Из НайденныеКаталоги Цикл
Попытка
УдалитьФайлы(ПутьКаталога.ПолноеИмя);
Исключение
ВызватьИсключение "Ошибка удаления файла"
КонецПопытки; 
КонецЦикла

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

Выводит сообщение об ошибке, в чем проблема?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск