Как во внешней обработке по двум одинаковым по наименованию видам номенклатуры, удалить номенклатуру

1. user867197 21.04.23 11:29 Сейчас в теме
Процедура ПодготовитьДанныеДляПечатиДополнительно(ДанныеДляПечати)  
	
	ДанныеПечати	= ДанныеДляПечати.РезультатПоШапке.Выбрать();
	ДанныеПечати.Следующий();
	
	ТаблицаВидыНоменклатурыДляПроизводства	= ДанныеДляПечати.ВидыНоменклатурыДляПроизводства.Выгрузить(); 
	
	Товары			= ДанныеДляПечати.РезультатПоТабличнойЧасти.Выгрузить();  
	
	ВидНоменклатуры_ДП=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Дверное полотно");  
	ВидНоменклатуры_Накладка=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Накладка");       
	ВидНоменклатуры_Портал=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Портал");
	ВидНоменклатуры_Фрамуга=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Фрамуга");
	ВидНоменклатуры_Стеноваяпанель=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Стеновая панель");
	ВидНоменклатуры_Стекло=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Стекло");
	ВидНоменклатуры_Прочее=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Прочее");
	ВидНоменклатуры_Фурнитура=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Фурнитура");	
	ВидНоменклатуры_Фурнитура=Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Фурнитура");
	
	//только для вида номенклатуры кроме "Дверное полотно" 
	//+только кроме характеристик с цветом "эмаль" 
	ПодстрокаХарактеристикиПоиск="эмаль";
	Сч = 0;
	Пока Сч < Товары.Количество() Цикл
		СтрокаТаблицы = Товары.Получить(Сч); 
		ТекущаяХарактеристикаСтрока=нрег(Строка(СтрокаТаблицы.Характеристика));
		Если СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_ДП Тогда
			Товары.Удалить(СтрокаТаблицы); 
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Накладка Тогда
			Товары.Удалить(СтрокаТаблицы);     
        	ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Портал Тогда
			Товары.Удалить(СтрокаТаблицы);   
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Фрамуга Тогда
			Товары.Удалить(СтрокаТаблицы);
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Стеноваяпанель Тогда
			Товары.Удалить(СтрокаТаблицы);  
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Стекло Тогда
			Товары.Удалить(СтрокаТаблицы);
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Прочее Тогда
			Товары.Удалить(СтрокаТаблицы);
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Фурнитура Тогда
			Товары.Удалить(СтрокаТаблицы);   
		ИначеЕсли СтрокаТаблицы.ВидНоменклатуры = ВидНоменклатуры_Фурнитура Тогда
			Товары.Удалить(СтрокаТаблицы);	
		ИначеЕсли Найти(ТекущаяХарактеристикаСтрока,ПодстрокаХарактеристикиПоиск)>0 Тогда
			Товары.Удалить(СтрокаТаблицы);    
		Иначе 
			Сч = Сч + 1;
		КонецЕсли; 
	КонецЦикла;
Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 71 21.04.23 12:17 Сейчас в теме
(1) В таком виде - никак.
Нужны другие отличительные признаки у видов номенклатуры.
karamazoff; +1 Ответить
4. Jeka86 22.04.23 10:19 Сейчас в теме
(1) Вы хотите что бы в табличной части Товары не было дублирования строк с одинаковым видом номенклатуры, верно?

1. Дверное полотно
2. Накладка
3. Фурнитура
4. Фурнитура
6. user867197 23.04.23 08:40 Сейчас в теме
(4)
(1)всем спасибо разобрался
3. vlhown 22.04.23 00:24 Сейчас в теме
(1) Вы можете отдельно, вне обработки, получить ГУИДы нужных Вам элементов, а внутри обработки использовать конструкцию
ВидНоменклатуры_ДП = Справочники.ВидыНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИД)); // Дверное полотно

или
ВидНоменклатуры_ДП = XMLЗначение(Тип("СправочникСсылка.ВидыНоменклатуры"), ГУИД); // Дверное полотно
5. karamazoff 95 22.04.23 12:10 Сейчас в теме
капец! Не лучший метод удалять дубли при отборе для вывода на печать. Определитесь по какому критерию хотите рубить дубли, и сделайте это отдельной обработкой
7. user856012 13 23.04.23 11:53 Сейчас в теме
Ну что же, за 5 лет на форуме автор в совершенстве освоил искусство создавать и закрывать темы. :-)
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)