Неверно работает "Сгруппировать по" в запросе со строковыми значениями

1. Deryni 23 03.04.18 14:30 Сейчас в теме
Имеется простой запрос, выбирающий данные из табличной части документа и соединящий их с другой таблицей, где хранится строковое представление модели телефона.
Модель телефона в документе задаётся тремя реквизитами ТЧ: Номенклатура, Цвет, Сертификация (все справочники).
Соответствие - ТЧ справочника где также есть Номенклатура, Цвет, Сертификация и Модель - строка длиной 200.

Запрос:

ВЫБРАТЬ
	СУММА(ЗаказПоставщикуТовары.Количество) КАК Количество,
	ЗаказПоставщикуТовары.Номенклатура,
	ЗаказПоставщикуТовары.Цвет,
	ЗаказПоставщикуТовары.Сертификация,
	СоответствияПрайсовСоответствие.НаименованиеВПрайсе КАК Модель
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СоответствияПрайсов.Соответствие КАК СоответствияПрайсовСоответствие
		ПО ЗаказПоставщикуТовары.Номенклатура = СоответствияПрайсовСоответствие.Номенклатура
			И ЗаказПоставщикуТовары.Цвет = СоответствияПрайсовСоответствие.Цвет
			И ЗаказПоставщикуТовары.Сертификация = СоответствияПрайсовСоответствие.Сертификация
			И (СоответствияПрайсовСоответствие.Ссылка = &СПрайса)
ГДЕ
	ЗаказПоставщикуТовары.Ссылка.ПроработкаЗакупки = &ПроработкаЗакупки
	И ЗаказПоставщикуТовары.Ссылка.ПроработкаЗакупки <> ЗНАЧЕНИЕ(Документ.ПроработкаЗакупки.ПустаяСсылка)
	И НЕ ЗаказПоставщикуТовары.Ссылка.ПометкаУдаления

СГРУППИРОВАТЬ ПО
	ЗаказПоставщикуТовары.Номенклатура,
	ЗаказПоставщикуТовары.Цвет,
	ЗаказПоставщикуТовары.Сертификация,
	СоответствияПрайсовСоответствие.НаименованиеВПрайсе
Показать


Как видно, проблем не должно быть. Но, если убрать из запроса группировку по одной из моделей получается вот что:

5,000 | Xiaomi Mi 5X 64Gb | Gold | orig | Xiaomi Mi 5X 64Gb Gold
5,000 | Xiaomi Mi 5X 64Gb | Gold | orig | Xiaomi Mi 5x 64Gb Gold

строка из документа задвоилась, что верно потому, что в соответствии эта Номенклатура, Цвет, сертификация встречается 2 раза. Строковое же представление отличается одной буквой. Это маленькая латинская x. В первой строке она - большая, во второй - маленькая.

А вот если сделать запрос с группировкой, получается вот такая фигня:
10 | Xiaomi Mi 5X 64Gb | Gold | orig | Xiaomi Mi 5X 64Gb Gold

Т.е. оно почему-то не различает маленькую и большую x
По теме из базы знаний
Найденные решения
4. SlavaKron 03.04.18 17:01 Сейчас в теме
(3) В рамках запроса 1С никак. Обрабатывайте результат запроса в коде.
5. ipoloskov 162 03.04.18 17:03 Сейчас в теме
(3) можно рассчитать хэш строки, и группировать по хэшу.
https://infostart.ru/public/336783/

Или же ввести в справочник СоответствияПрайсовСоответствие служебное поле "НаименованиеСЖесткимРазличиемЗаглавныхИСтрочныхБукв", которое определять при записи как
УказательЗаглавнойБуквы = "ччч";
Для к = 1 По СтрДлина(НаименованиеВПрайсе) Цикл
Символ = Сред(НаименованиеВПрайсе, к, 1);
НаименованиеСЖесткимРазличиемЗаглавныхИСтрочныхБукв = НаименованиеСЖесткимРазличиемЗаглавныхИСтрочныхБукв 
+ ?(ЭтоЗаглавнаяБуква(Символ), УказательЗаглавнойБуквы ,"") 
+ Символ;
КонецЦикла;

и группировать по нему
8. JohnGalt 57 03.04.18 17:42 Сейчас в теме
По номеру строки ТЧ Соответствие справочника СоответствияПрайсов можно группировать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user774630 03.04.18 16:30 Сейчас в теме
Да, на регистр внимания не обращает
ВЫБРАТЬ
	"гОрод" КАК Название
ПОМЕСТИТЬ ВТ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"город"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"город"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"ГОРОД"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"гОрод"
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ВТ.Название
ИЗ
	ВТ КАК ВТ
Показать


вернет 1 строку, самую первую
Ну и если использовать не группировку, а через ОБЪЕДИНИТЬ (без слова ВСЕ), то результат объединения будет тоже 1 строка
3. Deryni 23 03.04.18 16:52 Сейчас в теме
4. SlavaKron 03.04.18 17:01 Сейчас в теме
(3) В рамках запроса 1С никак. Обрабатывайте результат запроса в коде.
5. ipoloskov 162 03.04.18 17:03 Сейчас в теме
(3) можно рассчитать хэш строки, и группировать по хэшу.
https://infostart.ru/public/336783/

Или же ввести в справочник СоответствияПрайсовСоответствие служебное поле "НаименованиеСЖесткимРазличиемЗаглавныхИСтрочныхБукв", которое определять при записи как
УказательЗаглавнойБуквы = "ччч";
Для к = 1 По СтрДлина(НаименованиеВПрайсе) Цикл
Символ = Сред(НаименованиеВПрайсе, к, 1);
НаименованиеСЖесткимРазличиемЗаглавныхИСтрочныхБукв = НаименованиеСЖесткимРазличиемЗаглавныхИСтрочныхБукв 
+ ?(ЭтоЗаглавнаяБуква(Символ), УказательЗаглавнойБуквы ,"") 
+ Символ;
КонецЦикла;

и группировать по нему
6. Deryni 23 03.04.18 17:31 Сейчас в теме
(5) В данном случае мне проще свернуть в ТЗ потом уже. Там всё ок.
Интересно для 1С : "it's not a bug it's a feature"?
7. Deryni 23 03.04.18 17:41 Сейчас в теме
(5)Тогда уже проще рассчитывать этот самый хэш там же в справочнике и писать туда.
ipoloskov; +1 Ответить
8. JohnGalt 57 03.04.18 17:42 Сейчас в теме
По номеру строки ТЧ Соответствие справочника СоответствияПрайсов можно группировать
9. Deryni 23 03.04.18 17:45 Сейчас в теме
(8) вот это, пожалуй лучшее решение.
Оставьте свое сообщение

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