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

Помогите написать обработку пометка на удаление

Автор Pavel779, 26 июн 2012, 16:45

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

Pavel779

Хочу написать обработку пометка на удаление с помощью запроса.
Запрос составил правильно. Но все равно не работает помогите разобраться:


&НаКлиенте
Процедура Пометка(Команда)

ПометкаНаУдалениеНаСервере();

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


&НаСервереБезКонтекста
Процедура ПометкаНаУдалениеНаСервере()



Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.Предопределенный";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ВыборкаДетальныеЗаписи.Получить();

ВыборкаДетальныеЗаписи.УстановитьПометкуУдаления(Истина);



КонецЦикла;




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


sadovod

С помощью запросов можно только читать данные, а вот модифицировать нельзя...
Нужно сделать примерно так:

   выборка = Справочники.Номенклатура.Выбрать();
   Пока выборка.Следующий() Цикл
      Если НЕ (Выборка.Предопределенный ИЛИ Выборка.ЭтоГруппа) Тогда
         спрОбъект = выборка.ПолучитьОбъект();
         спрОбъект.ПометкаУдаления = Истина;
         спрОбъект.Записать();
      КонецЕсли;
   КонецЦикла;


PS. А ведь иногда не хватает в языке запросов 1С секции UPDATE, не правда ли? :)

sadovod

Или лучше вместо моего фрагмента

   спрОбъект.ПометкаУдаления = Истина;
   спрОбъект.Записать();

сделать как у вас с помощью метода УстановитьПометкуУдаления(<ПометкаУдаления>, <ВключаяПодчиненные>)

   спрОбъект.УстановитьПометкуУдаления(Истина,Истина);


Pavel779

Я так полагаю, что с помощью запроса это сделать нельзя?

Dethmontt

С помощью запроса можно только получить список который бы будешь обходить в цикле и помечать на удаление....
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Pavel779

А можете мой запрос доделать. Почему он не работает.

Dethmontt

Тебе же написали почему!
Потому что нужно получатьОбъект!!
Заменить ----
ВыборкаДетальныеЗаписи.Получить();
ВыборкаДетальныеЗаписи.УстановитьПометкуУдаления(Истина);
\НА вот так
ВыборкаДетальныеЗаписи.Номенклатура.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Pavel779

И последний вопрос.
Почему когда ставишь "." подсказка то вылезает то нет.

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Pavel779

Просто с подсказкой легче. сразу знаешь, что можно использовать а что нет....

Теги:

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

Рейтинг@Mail.ru

Поиск