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

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

Функция НайтиСоздатьГруппуТовара(Знач СоздаваемаяПодгруппа,Знач ГлавнаяГруппа = неопределено) Экспорт
	//найдем каталоги
	Если ЗначениеЗаполнено(СоздаваемаяПодгруппа) тогда
		Если ГлавнаяГруппа = неопределено тогда
			ЗапросКаталогНоменклатуры = новый запрос("ВЫБРАТЬ
			|	Номенклатура.Ссылка
			|ИЗ
			|	Справочник.Номенклатура КАК Номенклатура
			|ГДЕ
			|	Номенклатура.ЭтоГруппа = Истина
			|	И Номенклатура.Наименование = &Наименование");
			ТекГлавнаяГруппа = неопределено;
		иначе
			Если ТипЗнч(ГлавнаяГруппа) <> Тип("СправочникСсылка.Номенклатура") тогда
				ТекГлавнаяГруппа = НайтиСоздатьГруппуТовара(ГлавнаяГруппа);
			Иначе
				ТекГлавнаяГруппа = ГлавнаяГруппа;
			КонецЕсли;
			
			ЗапросКаталогНоменклатуры = новый запрос("ВЫБРАТЬ
			|	Номенклатура.Ссылка
			|ИЗ
			|	Справочник.Номенклатура КАК Номенклатура
			|ГДЕ
			|	Номенклатура.ЭтоГруппа = ИСТИНА
			|	И Номенклатура.Наименование = &Наименование
			|	И Номенклатура.Родитель = &ГлавнаяГруппа");
			
			ЗапросКаталогНоменклатуры.УстановитьПараметр("ГлавнаяГруппа", ТекГлавнаяГруппа);
		КонецЕсли;
		ЗапросКаталогНоменклатуры.УстановитьПараметр("Наименование", СоздаваемаяПодгруппа);
		ВыборкаКаталога = ЗапросКаталогНоменклатуры.Выполнить().Выбрать();
		Если ВыборкаКаталога.Следующий() тогда
			//КаталогБезКовычек = СтрЗаменить(ВыборкаКаталога.Ссылка,"""",""); 
			//КаталогНоменклатуры = КаталогБезКовычек;
			КаталогНоменклатуры   =  ВыборкаКаталога.ссылка;
		иначе
			КаталогНоменклатурыОбъект = Справочники.Номенклатура.СоздатьГруппу();
			Если ЗначениеЗаполнено(ТекГлавнаяГруппа) тогда
				КаталогНоменклатурыОбъект.Родитель = ТекГлавнаяГруппа;
			КонецЕсли;
			КаталогНоменклатурыОбъект.Наименование = СоздаваемаяПодгруппа;
			КаталогНоменклатурыОбъект.Записать();
			КаталогНоменклатуры =КаталогНоменклатурыОбъект.Ссылка; 
			Сообщить("Создана группа "+СоздаваемаяПодгруппа);
		КонецЕсли;
		Возврат КаталогНоменклатуры;
	Иначе
		Возврат Справочники.Номенклатура.ПустаяСсылка();
	КонецЕсли;
КонецФункции
Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 67 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 67 08.12.22 08:59 Сейчас в теме
(4)да, если СоздаваемаяПодгруппа строкового типа
6. Farhat95 09.12.22 08:46 Сейчас в теме
(5)Короче теперь он создает копии даже тех которые сам же создал ) что то не учли походу.
7. anton13m 2 09.12.22 09:02 Сейчас в теме
(6)
Условие в запросе изменили?
9. Farhat95 09.12.22 09:19 Сейчас в теме
(7) неа. Только строку как в (4) сделал.
10. anton13m 2 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) Вот даже не знаю что проще. Мне главное чтобы проблема ушла
Оставьте свое сообщение
Вакансии
Программист 1С
Киров (Кировская обл.)
зарплата от 100 000 руб.
Полный день

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

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

1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)