поиск и выбор групп в запросе с кавычками и без.

1. Farhat95 28.11.22 23:32 Сейчас в теме
Доброго времени суток! Есть обработка которая забирает из почты заказы и поступления. Проблема в том что у нам группы половина в кавычках. При поиске групп обработка не видит тех которые в кавычках и создает дубли только без "". Вопрос в том, как сделать так чтобы он при поиске не видел эти "" и выбирал именно те группы а не создавал новые.

Функция НайтиСоздатьГруппуТовара(Знач СоздаваемаяПодгруппа,Знач ГлавнаяГруппа = неопределено) Экспорт
	//найдем каталоги
	Если ЗначениеЗаполнено(СоздаваемаяПодгруппа) тогда
		Если ГлавнаяГруппа = неопределено тогда
			ЗапросКаталогНоменклатуры = новый запрос("ВЫБРАТЬ
			|	Номенклатура.Ссылка
			|ИЗ
			|	Справочник.Номенклатура КАК Номенклатура
			|ГДЕ
			|	Номенклатура.ЭтоГруппа = Истина
			|	И Номенклатура.Наименование = &Наименование");
			ТекГлавнаяГруппа = неопределено;
		иначе
			Если ТипЗнч(ГлавнаяГруппа) <> Тип("СправочникСсылка.Номенклатура") тогда
				ТекГлавнаяГруппа = НайтиСоздатьГруппуТовара(ГлавнаяГруппа);
			Иначе
				ТекГлавнаяГруппа = ГлавнаяГруппа;
			КонецЕсли;
			
			ЗапросКаталогНоменклатуры = новый запрос("ВЫБРАТЬ
			|	Номенклатура.Ссылка
			|ИЗ
			|	Справочник.Номенклатура КАК Номенклатура
			|ГДЕ
			|	Номенклатура.ЭтоГруппа = ИСТИНА
			|	И Номенклатура.Наименование = &Наименование
			|	И Номенклатура.Родитель = &ГлавнаяГруппа");
			
			ЗапросКаталогНоменклатуры.УстановитьПараметр("ГлавнаяГруппа", ТекГлавнаяГруппа);
		КонецЕсли;
		ЗапросКаталогНоменклатуры.УстановитьПараметр("Наименование", СоздаваемаяПодгруппа);
		ВыборкаКаталога = ЗапросКаталогНоменклатуры.Выполнить().Выбрать();
		Если ВыборкаКаталога.Следующий() тогда
			//КаталогБезКовычек = СтрЗаменить(ВыборкаКаталога.Ссылка,"""",""); 
			//КаталогНоменклатуры = КаталогБезКовычек;
			КаталогНоменклатуры   =  ВыборкаКаталога.ссылка;
		иначе
			КаталогНоменклатурыОбъект = Справочники.Номенклатура.СоздатьГруппу();
			Если ЗначениеЗаполнено(ТекГлавнаяГруппа) тогда
				КаталогНоменклатурыОбъект.Родитель = ТекГлавнаяГруппа;
			КонецЕсли;
			КаталогНоменклатурыОбъект.Наименование = СоздаваемаяПодгруппа;
			КаталогНоменклатурыОбъект.Записать();
			КаталогНоменклатуры =КаталогНоменклатурыОбъект.Ссылка; 
			Сообщить("Создана группа "+СоздаваемаяПодгруппа);
		КонецЕсли;
		Возврат КаталогНоменклатуры;
	Иначе
		Возврат Справочники.Номенклатура.ПустаяСсылка();
	КонецЕсли;
КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 29.11.22 06:18 Сейчас в теме
(1)
Либо использовать конструкцию
Подобно &Наименование и Запрос.УстановитьПараметр("Наименование", "%" + Наименование + "%")

Либо использовать конструкцию
Номенклатура.Наименование В (&Наименование, """" + &Наименование + """") и Запрос.УстановитьПараметр("Наименование", Наименование)
3. Farhat95 07.12.22 10:47 Сейчас в теме
(2)Спасибо, сегодня проверю и скажу что получилось!
4. Farhat95 07.12.22 22:21 Сейчас в теме
(2)ЗапросКаталогНоменклатуры.УстановитьПараметр("Наименование", "%"+СоздаваемаяПодгруппа+"%");

Вот так получается по первому способу?
5. nomad_irk 76 08.12.22 08:59 Сейчас в теме
(4)да, если СоздаваемаяПодгруппа строкового типа
6. Farhat95 09.12.22 08:46 Сейчас в теме
(5)Короче теперь он создает копии даже тех которые сам же создал ) что то не учли походу.
7. anton13m 3 09.12.22 09:02 Сейчас в теме
(6)
Условие в запросе изменили?
9. Farhat95 09.12.22 09:19 Сейчас в теме
(7) неа. Только строку как в (4) сделал.
10. anton13m 3 09.12.22 09:23 Сейчас в теме
(9)
Поэтому и не ищет, у вас в условии запроса ищет по наименованию
Номенклатура.Наименование = &Наименование

а в параметр вы передаете
"%"+СоздаваемаяПодгруппа+"%"

Измените в запросе поиск на ПОДОБНО.
Но в таком случае для строки "Группа" данный запрос найдет все группы в которых есть слово "Группа"
11. Farhat95 09.12.22 09:24 Сейчас в теме
я вместо = &Наименование сделал ПОДОБНО &Наименование
8. Zevzm 09.12.22 09:10 Сейчас в теме
(6) Не проще один раз группы выбрать и удалить из них все кавычки и затем в функцию поиска и создания всегда передавать имя без кавычек?
12. Farhat95 09.12.22 09:25 Сейчас в теме
(8) Вот даже не знаю что проще. Мне главное чтобы проблема ушла
Оставьте свое сообщение

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