Имя: Пароль:
1C
 
Уникальность регистра сведений по высоте букв измерения
,
0 pumba055
 
07.12.20
12:46
Коллеги, создаю в регистре сведений одно измерение.
Пишу в него значения "м" и "М" и 1С не дает записать, пишет что запись с такими ключевыми полями уже создана хотя высота букв разная как мы видим.
Вопрос - как мне записать две записи?
1 ГдеСобака Зарыта
 
07.12.20
12:47
Латиницей пиши
2 H A D G E H O G s
 
07.12.20
12:48
Не писать в измерения строки.
3 pumba055
 
07.12.20
13:03
не могу не писать в измерения у меня в нем соответствие перечисления пол физ. лица и название в базе источника где от них может прилететь и "м" и "М"
4 ДенисЧ
 
07.12.20
13:06
(3) А у тебя пол "м" как-то отличается от пола "М" ?
По длине... достоинства?
5 H A D G E H O G s
 
07.12.20
13:07
Дичь какая. Ну обработай это кодом, либо, если предполагается всё европейское многообразие полов в количестве 60 штук с ...инами и андрогинами - заведи под это дело справочник соответствия.
6 polosov
 
07.12.20
13:07
Вот у людей проблемы...
7 pumba055
 
07.12.20
13:08
если у меня в регистре "м" записано, а в данных придет "М" то в своем регистре соответствия через наименование я не найду перечисление 1С
8 Масянька
 
07.12.20
13:08
(3) При  проверке введенного значения приводи в верхнему/нижнему регистру.
9 Масянька
 
07.12.20
13:09
(4) Про женщин - даже предполагать страшно... :))))))))))))))))))))))))))
10 pumba055
 
07.12.20
13:09
Справочник не подойдет, данных будет очень много
11 ДенисЧ
 
07.12.20
13:09
(7) Дарю знание о функции НРег()
12 Масянька
 
07.12.20
13:10
(10) Ты точно 8 (восемь) лет с копейками занимаешься эской?
13 ДенисЧ
 
07.12.20
13:10
(10) М, м... Ж...ж ... Ещё сколько будет?
14 Масянька
 
07.12.20
13:10
(11) Это для мужчин. А для женщин - использовать ВРег().
15 DrShad
 
07.12.20
13:10
(11) верни ему СП
16 Масянька
 
07.12.20
13:11
(14) Тьфу, блин... Наоборот.
17 pumba055
 
07.12.20
13:11
НРег функция кода, а в запросах функций со строками нет, кроме одной. А тут поиск... на больших объемах
18 ДенисЧ
 
07.12.20
13:12
(14) ВГлуб()...
(15) Заплатит - верну )))
19 ДенисЧ
 
07.12.20
13:12
(17) Зато в СКД есть.
20 DTX 4th
 
07.12.20
13:13
Ниче не понял, но если проблема в (0) актуальна, то я за справочник. Других вариантов не видно
21 H A D G E H O G s
 
07.12.20
13:13
Походу мы нашли еще одного из Ливингстаров.
22 pumba055
 
07.12.20
13:13
в запросах нет
23 ДенисЧ
 
07.12.20
13:13
(22) В СКД - есть.
24 H A D G E H O G s
 
07.12.20
13:15
Еще и большие объемы.
25 youalex
 
07.12.20
13:15
(0)
если ты в запросе сопоставляешь, то какая разница
26 Масянька
 
07.12.20
13:15
(22) Всё пропало...
А я думаю, почему мне смс-ки пишут: "Пап переведи денег"...
27 H A D G E H O G s
 
07.12.20
13:18
(0) Пишем в регистр значение перечисления Пол
Мужской
Женский

Значение перечисления вычисляем поиском в справочнике
НаименованиеПола, строка
Пол, перечисление

Примеры записей справочника

М
Мужской

м
Мужской

Муж.
Мужской

мж.
Мужской

Жен.
Женский.

и.т.д.
28 pumba055
 
07.12.20
13:19
я в запросе сопоставляю через р-р соответсвия по имени "м" или "М" должно найтись
29 H A D G E H O G s
 
07.12.20
13:19
Епстественно, НаименованиеПола - это типовой реквизит Наименование, чтобы использовать встроенный индекс.
30 pumba055
 
07.12.20
13:20
создавать регистр, а к нему еще и справочник
31 youalex
 
07.12.20
13:21
(28) В запросе стандартно "м" = "М"
32 youalex
 
07.12.20
13:22
(31) + собственно поэтому у тебя и ругается при второй записи
33 pumba055
 
07.12.20
13:25
по всем данным такое может быть, не только пол физ. лица - задолбаешься через запросы руками все прописывать и не хочется, для этого как раз и регистр создаю - где в нему и пропишу соответствие. А если у меня появится еще и третий пол средний - мне чего всю работу в 100 местах исправлять в коде... поэтому регистр соответствия
34 d4rkmesa
 
07.12.20
13:25
(0) http://catalog.mista.ru/1c/articles/995591/
Тему читали(сама статья не очень интересная, можно сразу с конца читать)? В комментах предложили данные преобразовывать в двоичные для ключа поиска через ПолучитьДвоичныеДанныеИзСтроки(НаименованиеСРегистром), допустим, эти измерение РС. Представление можно хранить отдельно в ресурсе или реквизите.
35 pumba055
 
07.12.20
13:26
р-р соответствия для всего, не только для пола физ. лица, это так к примеру
36 d4rkmesa
 
07.12.20
13:26
(34) Измерение РС - строкового типа, опять-таки.
37 pumba055
 
07.12.20
13:28
ПолучитьДвоичныеДанныеИзСтроки(НаименованиеСРегистром) - это опять же пляски с одной записью, я хочу запросы чтобы на организацию данных чтобы запросы с такими данными нормально работали
38 1Сергей
 
07.12.20
13:28
Есть приверженцы небинарных полов?
39 pumba055
 
07.12.20
13:31
короче в измерение добавляю признак высокий регистр, как лучше сделать не знаю, так зато уже 3-е записи не создадут руками пользователи в этом р-ре как раз сработает проверка уникальности
40 1Сергей
 
07.12.20
13:32
(39) Вариант сразу записвать правильный гендер не рассматривается в принципе?
41 Serg_1960
 
07.12.20
13:33
Если мне память не изменяет, то когда-то давно, когда Земля была теплая и по ней бегали мамонты, регистронезависимость устанавливалась в серверах баз данных (сам однажды нарвался на отличия в результатах запросов в MS SQL и PostgreSQL... но сейчас эти детские болезни устранены в современных платформах.
42 Масянька
 
07.12.20
13:33
(39) Пользователь должен НЕ СОЗДАВАТЬ, а ВЫБИРАТЬ из предложенного списка.
ПСЫ М - может быть англицкой раскладки.
43 Timon1405
 
07.12.20
13:34
(39) муЖской как отработает проверка уникальности?
44 H A D G E H O G s
 
07.12.20
13:37
(41) Ну уж точно не стоит менять collation, это смерть и ад.
45 pumba055
 
07.12.20
13:37
заказчик капризный и данные нам дает в таком виде сначала над этими данными глумится, а потом нам отдает.....
Поэтому да --> Вариант сразу записвать правильный гендер не рассматривается
46 H A D G E H O G s
 
07.12.20
13:37
А в запросе поменять collation, 1С не умеет.
47 pumba055
 
07.12.20
13:38
может коды дать объектов, может наименования - вообщем крутимся)
48 pumba055
 
07.12.20
13:40
Если бы 1С в запросах при соединении скажем он мог джойнить строки без учета регистра, но эта нужна SQL функция такая, в 1С я ее не нашла
49 Serg_1960
 
07.12.20
13:40
(44) Расслабься. Я не предлагаю это изменять, - я предлагаю даже не пытаться пробовать это делать :)
50 H A D G E H O G s
 
07.12.20
13:42
(49) Да я вообще расслаблен.
https://youtu.be/M3fbg2rAe-I
51 ptiz
 
07.12.20
13:51
Трэш какой-то. Зачем ТС всё хочет сделать через задний проход, не пойму.
53 Масянька
 
07.12.20
13:54
(51) Судя по всему: обрабатывается входящая инфа, где пол может быть буквой (разные регистры), кодом, еще чем-то...
Но вводных мало...
54 Serg_1960
 
07.12.20
14:16
(53) Как я понял, у автора обмен с регистрозависимой базой данных (не 1С) - автор желает создать регистр соответствия строковых значений. Попытка писать соответствия в измерения - не прошла.
55 DTX 4th
 
07.12.20
14:16
(39) 🙈
Чем справочник не угодил?
56 Serg_1960
 
07.12.20
14:22
Не принципиально, справочник это или регистр, - индексы, запросы и другие операции с базой данных выполняются без учета регистра. Автору нужно менять подход.
57 pumba055
 
07.12.20
14:25
тут поменять можно только заказчика)
58 pumba055
 
07.12.20
14:25
справочник на сколько я знаю не предназначен под большие объемы данных или я ошибаюсь?
59 acht
 
07.12.20
14:26
(57) Тебе заказчик, что-ли базу проектирует?
60 Масянька
 
07.12.20
14:27
(58) А всю задачу озвучить не вариант? Или так и будем гадать? Кто на чем...
61 Ненавижу 1С
 
гуру
07.12.20
14:29
(58) да, 100'000 позиций номенклатуры это просто ерунда
62 DTX 4th
 
07.12.20
14:31
(56) Можно при получении данных пройтись по всем строкам и получить для них нужных элемент справочника. Делается без запросов в цикле. Ну а дальше все просто.

(58) Обычная скулевская таблица. Тот регистр только в профиль.
63 pumba055
 
07.12.20
14:33
у нас в соединении в запросах 1С строки соединяются без учета регистра сейчас выяснилось, т.е. 'м' найдет 'М' и соответственно не только буквы например 'Муж' найдет 'муж', т.е. впринципе я тогда думаю и одной строки в регистре будет достаточно и не важно высокий регистр или низкий
64 pumba055
 
07.12.20
14:34
запросы в цикле не люблю, в 1С использую запросы в цикле только в рекурсивных вещах, т.к. нет рекурсивных запросов
65 DTX 4th
 
07.12.20
14:35
(63) Т.е. все это время ты могла изначально класть в регистр НРег(Строки)?

(64) Не понял, в бой уже запросы в цикле пошли?)
66 pumba055
 
07.12.20
14:35
ой, птьфу, не правильно прочитала про запросы в цикле что человек написал - глаза разъезжаются  - один глаз в чат, другой по работе
67 pumba055
 
07.12.20
14:36
нет, в регистре будет не важно как заведут 'м' или 'М' потому что соединение таблиц в 1С без учета регистра поэтому все равно найдется любой вариант
68 youalex
 
07.12.20
14:51
(67) ура!
69 Йохохо
 
07.12.20
14:56
(67) а "М." м?
70 Serg_1960
 
07.12.20
15:06
В принципе, проблему (0) можно решить измерениями регистра: два измерения - соответствие строк, третье измерение - хэш регистрозависимой строки. Если я правильно понял проблему потому, что ". потому, что "ой, птьфу, не правильно прочитала - один глаз в чат, другой по работе"(с)
71 MyNick
 
07.12.20
15:09
(58) Зато регистр сведений любит в измерениях строки... И желательно чтобы вариативность была адовая.
Шобы платформа устала виртуальные таблицы строить.
72 pumba055
 
07.12.20
15:59
Serg_1960 не поняла что за хэш регистрозависимой строки
73 H A D G E H O G s
 
07.12.20
16:05
(72) Хранить и искать не строку, а ее хеш.
Новый ХешированиеДанных(<ХешФункция>)
74 Кир Пластелинин
 
07.12.20
16:06
(72) -хэш-сумма вестимо переданной строки. ХешированиеДанных()
75 Serg_1960
 
07.12.20
16:09
(72) Вам слово "хэш" непонятно? Это хэш-сумма функции хэширования. Функция "чувствительна" к регистру букв в строке. Поэтому, например, строки с "М" и "м" будут различаться хэш-суммами.
86 sqr4
 
07.12.20
16:42
ну как я понял. Тут либо отказаться от регистра сведений, либо приводить к единому регистру строки все входящие данные до попадания в запрос, либо делать еще одно измерение и и добавлять еще одно условия соединения в запросы.
88 Serg_1960
 
модератор
07.12.20
16:43
Правило 2. "Флейм и оффтопик в тематических разделах 1С и IT не допускается".
90 Serg_1960
 
07.12.20
16:51
Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
    Хеш.Добавить("СтрокаСодержитМ");
    Сообщить(СтрЗаменить(Хеш.ХешСумма, " ", ""));    // 9EF7FA8FAB3159112785E9C29E8B6736
        
    Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
    Хеш.Добавить("строкасодержитм");
    Сообщить(СтрЗаменить(Хеш.ХешСумма, " ", ""));    // F0D018BDB196A0167969814134043B28
93 Dmitrii
 
гуру
07.12.20
17:40
(39) >> короче в измерение добавляю признак высокий регистр.

А язык? Вдруг придёт m (male) или w (women) или f (female)?
94 H A D G E H O G s
 
07.12.20
17:47
(93) Там еще приползут андрогины...
95 novichok79
 
07.12.20
18:26
наименование - "мальчик, девочка, моргенштерн"
пол - перечислениессылка.полфизлица.
если соответствие не используется у справочника есть пометка удаления

зачем сюда регистр??? какая-то дичь
96 novichok79
 
07.12.20
18:26
всю тему не читал
97 mistеr
 
07.12.20
18:40
Решение простое, на самом деле.
Искать значение перечисления не запросом, а в коде, в момент получения данных из источника. В Соответствии, например.
А хранить можно хоть в регистре, хоть в справочнике, без разницы.