не могу найти решение

1. user1706895 28.11.21 16:30 Сейчас в теме
Привет всем...

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

КонецПроцедуры
Показать




С этом кодом я могу удалить
Определенные товары из документа.
Например в документе есть
Товар по именем Товар1.2 , этот товар
Находится в родителе Родитель1
Я могу указать его наименование , и
Удалить из документа все записи
Этого товара.
Но требуется сделать что-то другое!


ЗАДАЧА ТАКАЯ !
Например в этот раз мне нужно удалить из документа ВСЕ те записи, которые находятся в Родитель2.
А в следующий раз понадобится удалить те ЗАПИСИ, которые находиться в Родитель3 или Родитель1
В коде я не могу указать родителя !!! ПОМОГИТЕ !!!
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. ishelper 28.11.21 18:49 Сейчас в теме
(1)
ПОМОГИТЕ !!!
Хирург модератор в таких случаях радикально помогает...
(3)
// либо просто сделать
Еще проще - забанить автора за оформление темы: "украсил" свой вопль тегами всех возможных конфигураций, в том числе - 7.7. Спрашивается - они тут каким боком вообще?

При этом свою конфигурацию не счел нужным указать.

P.S. Я понимаю - новичок на форуме, но голову-то включать иногда нужно?
2. XAKEP 28.11.21 17:23 Сейчас в теме
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)

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

КонецПроцедуры
Показать
3. BackinSoda 28.11.21 17:36 Сейчас в теме
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)

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

КонецПроцедуры
Показать


// либо просто сделать

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

Если ЗаписатьДок тогда
   Док.Записать();
Конецесли;
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот