Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 05:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Удаление фото у проданной номенклатуры  (Прочитано 1397 раз)

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

Оффлайн sljusarenko

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-24
  • Сайт: 
  • Профессия: Ученик 1С
Работаю в фирме, продающей контрактные автозапчасти. В связи с тем, что весь товар б/у, возникла необходимость периодически удалять фотографии проданной номенклатуры из хранилища дополнительной информации, но не у всей, а проданной более 2-х недель назад (в это время может быть возврат).

Написал обработку для этого, вроде нормально все, кроме одного. А именно если мы недавно (не ранее 2-х недель) завели новую номенклатуру и в этот промежуток времени ее продали, то фото такого товара удаляются.
Бьюсь несколько дней, ничего путного на ум не приходит.

Может кто сталкивался с чем то похожим, подскажите как это можно реализовать?
Код моей обработки ниже

Процедура КнопкаВыполнитьНажатие(Кнопка)
ОчиститьСообщения();
i=0;
j=0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Ссылка,
| ТоварыНаСкладахОстаткиСейчас.КоличествоОстаток,
| ТоварыНаСкладахОстаткиРаньше.КоличествоОстаток,
| СпрНоменклатура.ОсновноеИзображение
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаС, ) КАК ТоварыНаСкладахОстаткиСейчас
| ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиСейчас.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаР, ) КАК ТоварыНаСкладахОстаткиРаньше
| ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиРаньше.Номенклатура
|ГДЕ
| (ТоварыНаСкладахОстаткиСейчас.КоличествоОстаток ЕСТЬ NULL) И
| (ТоварыНаСкладахОстаткиРаньше.КоличествоОстаток ЕСТЬ NULL) И
|   (СпрНоменклатура.ЭтоГруппа = ложь)

|УПОРЯДОЧИТЬ ПО
| Ссылка";

Запрос.УстановитьПараметр("ДатаС", ТекущаяДата());
Запрос.УстановитьПараметр("ДатаР", ТекущаяДата() -  14 * 60 * 60 * 24);

    Выборка=Запрос.Выполнить().Выбрать();
Количество = Выборка.Количество();
    Сообщить("Будут помечены на удаление все фотографии у " + Количество + " товаров.");
Пока Выборка.Следующий() Цикл
i = i + 1;
Состояние("Обработано " + i + " из " + Количество);
текТовар = Выборка.Ссылка.ПолучитьОбъект();
текТовар.ОсновноеИзображение = Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка();
текТовар.Записать();
//Сообщить(текТовар.ОсновноеИзображение);
ТабКартинок= ПолучитьТабКартинок(Выборка.Ссылка);
Для Каждого Стр Из ТабКартинок Цикл
j = j+1;
Об = Стр.Ссылка.ПолучитьОбъект();
    Об.УстановитьПометкуУдаления(Истина);
//Об.Удалить();
    КонецЦикла;
КонецЦикла;
    Предупреждение("Удаление завершено. Помечено фото на удаление: " + j);

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


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

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

КонецФункции;



Оффлайн Eugeneer

  • ****
  • Сообщений: 355
  • РЕПУТАЦИЯ: 28
  • КПД: 8%
  • SubSystems.Ru - разработки 1С
  • Регистрация: 2010-03-21
  • Компания: SubSystems.Ru
  • Профессия: Разработчик 1С
В типовых уже есть готовые процедуры удаления.
SubSystems.Ru - Автоматическая загрузка прайсов в 1С из Excel

Оффлайн sljusarenko

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-24
  • Сайт: 
  • Профессия: Ученик 1С
В типовых уже есть готовые процедуры удаления.

Забыл сказать,1С 8.3 конфигурация УТ 10.3 порядком измененная.
Я не понял, где в типовых? Напомню, что надо удалять фото не у всей проданной номенклатуры, а только если она продана 2 недели назад или более.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Автозапчасти

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
50 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 118
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal