Size: a a a

1С, БСП, DevOps и Архитектура

2020 November 18

RC

Ruslan Chekushko in 1С, БСП, DevOps и Архитектура
Скажите, можно ли в параметр запроса передать строку с контролем регистра символов? :)
источник

АМ

Алексей М. in 1С, БСП, DevOps и Архитектура
Ruslan Chekushko
Скажите, можно ли в параметр запроса передать строку с контролем регистра символов? :)
ВРег() в помощь
источник

RC

Ruslan Chekushko in 1С, БСП, DevOps и Архитектура
Алексей М.
ВРег() в помощь
Каким образом? Параметры "Строка" и "строка" разные элементы справочника.
Как однозначно найти элемент?)
источник

АМ

Алексей М. in 1С, БСП, DevOps и Архитектура
Ruslan Chekushko
Каким образом? Параметры "Строка" и "строка" разные элементы справочника.
Как однозначно найти элемент?)
СТРОКА = СТРОКА
источник

АМ

Алексей М. in 1С, БСП, DevOps и Архитектура
Ruslan Chekushko
Каким образом? Параметры "Строка" и "строка" разные элементы справочника.
Как однозначно найти элемент?)
если вы хотите однозначно найти элемент справочника не имея при этом жестких критерив поиска - сохраняйте его ссылку в каком то статичном параметре
источник

АМ

Алексей М. in 1С, БСП, DevOps и Архитектура
либо делайте предопределённые элементы
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Ruslan Chekushko
Скажите, можно ли в параметр запроса передать строку с контролем регистра символов? :)
Нет
источник

RC

Ruslan Chekushko in 1С, БСП, DevOps и Архитектура
Да, но на входе у меня есть только строка( больше ни каких данных нет
источник

АМ

Алексей М. in 1С, БСП, DevOps и Архитектура
Ruslan Chekushko
Да, но на входе у меня есть только строка( больше ни каких данных нет
сочувствую
источник

A

Alex in 1С, БСП, DevOps и Архитектура
В SQL LIKE не умеет искать с учетом регистра, так что со стороны 1С как ни танцуй с бубном, такой *запрос* не нарисовать
источник

RC

Ruslan Chekushko in 1С, БСП, DevOps и Архитектура
Мда, получается только НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)? :))
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Можно предварительно отобрать запросом по лайку, а потом в выборке проверить точно
источник

RC

Ruslan Chekushko in 1С, БСП, DevOps и Архитектура
мм...я правильно понял, получить запросом элементы которые соответвуют, а потом проверить платформой регистр? Мы таким образом только ограничим выборку?
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Ruslan Chekushko
мм...я правильно понял, получить запросом элементы которые соответвуют, а потом проверить платформой регистр? Мы таким образом только ограничим выборку?
верно
источник

‌‌‎infactum in 1С, БСП, DevOps и Архитектура
Alex
В SQL LIKE не умеет искать с учетом регистра, так что со стороны 1С как ни танцуй с бубном, такой *запрос* не нарисовать
Вот как раз в SQL LIKE работает согласно установленному collation. Поэтому он может быть и нечувствителен к регистру и даже е/ё не различать.
источник

RC

Ruslan Chekushko in 1С, БСП, DevOps и Архитектура
с русскими символами еще ладно)
А вот с латинскими плохо 😩
источник

A

Alex in 1С, БСП, DevOps и Архитектура
‌‌‎infactum
Вот как раз в SQL LIKE работает согласно установленному collation. Поэтому он может быть и нечувствителен к регистру и даже е/ё не различать.
Гдето читал, что если Case Insensitive отключить полю, для базы 1С, то потом можно много интересных ошибок словить )
источник

‌‌‎infactum in 1С, БСП, DevOps и Архитектура
Трогать эти настройки для платформы конечно не стоит)
Но речь же была про чистый TSQL.
В целом то COLLATE явно должен всеми движками СУБД поддерживаться, с которыми платформа работает. Так что всегда можно пожелание заслать, чтобы такое в платформу добавили) Если конечно конкретный полезный кейс будет, а не просто костыля ради.
источник

A

Alex in 1С, БСП, DevOps и Архитектура
‌‌‎infactum
Трогать эти настройки для платформы конечно не стоит)
Но речь же была про чистый TSQL.
В целом то COLLATE явно должен всеми движками СУБД поддерживаться, с которыми платформа работает. Так что всегда можно пожелание заслать, чтобы такое в платформу добавили) Если конечно конкретный полезный кейс будет, а не просто костыля ради.
»Но речь же была про чистый TSQL.
Да, тут Вы правы. Там поведение хранения (а следовательно поиска) настраиваемое.
источник

‌‌‎infactum in 1С, БСП, DevOps и Архитектура
Alex
»Но речь же была про чистый TSQL.
Да, тут Вы правы. Там поведение хранения (а следовательно поиска) настраиваемое.
Не обязательно прям на уровне хранения менять.
Можно примерно так:
SELECT *
FROM t1
WHERE k LIKE _latin1 'Müller' COLLATE latin1_german2_ci;
источник