Удаление лишних свойств номенклатуры. УТ

Иногда в карточке товара остаются лишние свойства. Они при выводе в карточках выводятся как перечеркнутые.

Клиент поставил задачу удалить эти свойства.

Я решил сгруппировать товары по группам, потому что у меня список свойств определяется группой. Поэтому перебираю группы и товары внутри группы.

На всякий случай выгрузил номенклатуру обработкой выгрузки номенклатуры.

Перед тем, как выполнять реальное удаление с галочкой «Записывать», прогнал сначала без галочки, получил протокол и выборочно просмотрел.

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

		КонецЦикла;
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура КомандаВыполнить(Команда)
	КомандаВыполнитьНаСервере();
КонецПроцедуры

Среда: УТ 11.4.13.46. Объем: 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован.