Имя: Пароль:
1C
1C 7.7
v7: Регистры и строки
0 SiMBa_R38
 
19.08.20
09:50
Здравствуйте.
Создал регистр ОстаткиКИЗ, и измерение к нему КИЗ Строка 100; и Ресурс Количество Число целое 2
Выполнил приход двух КИЗ 0104660077310172210z00NnY 10 и 0104660077310172210z00Nny 10

Столкнулся с такой проблемой: поиск по итогам дает только ту позицию которая была первой в данном случае итог всегда даст 0104660077310172210z00NnY, и никогда не вернет 0104660077310172210z00Nny
т.е.
РегКИЗ = СоздатьОбъект("Регистр.КИЗ");
РегКИЗ.УстановитьФильтр("0104660077310172210z00Nny");
РегКИЗ.ВыбратьИтоги();
РегКИЗ.ПолучитьИтог(); // всегда = 0

если сделать
РегКИЗ.УстановитьФильтр("0104660077310172210Z00NNY"); // тоже даст 0

mssql 2000sp4
Через entManager сделал запрос к итоговой таблице, в ней числится два раза
select * from RG723 where sp7504 = '0104660077310172210z00NnY                                                                           '
0104660077310172210z00NnY
0104660077310172210z00NnY

При этом select * from RА723 where sp7504 = '0104660077310172210Z00NNY                                                                           ' возвращает обе строки, из чего я делаю вывод что у меня как-то не правильно sql всё это время настроен.

Как включить регистрозависимость на регистрах? И через ТиИ пересчёт итогов в случае включения регистрозависимости исправит ситуацию?
1 FIXXXL
 
19.08.20
09:52
(0) сделай свои кизяки справочником и не насилуй платформу
2 SiMBa_R38
 
19.08.20
09:59
(1) кизяков много, показалось что через регистры будет более гармонично существовать: + строка - строка, на остатке 0, и забыли про киз.
А справочником им всем существовать хочется. Они же сущности. Копию сделал, пробую поменять Collate на столбце.
3 Ёпрст
 
19.08.20
10:32
(0) никак
4 Ёпрст
 
19.08.20
10:32
не исправит
5 Ёпрст
 
19.08.20
10:34
Поможет только если ты сам будешь прямым запросом инсёртить в ra и сам же толкать итоги в rg
6 vcv
 
19.08.20
11:01
(2) Более гармонично затолкать КИЗ в справочник. А в регистре измерение типа справочника.
Можно будет в этот справочник заталкивать доп.информацию. Поставщик, приходный документ, дату прихода, дату КИЗ, итд. Сегодня может и не надо, а что будет через пять лет, загадывать не будем.
Удобней исправлять ошибки если пользователь опечатался в КИЗ.
Проще с реструктуризацией, если вдруг родное государство решит, что текущий КИЗ коротковат, или новые требования к формату выдвинет.
Полезно для быстродействия не раздувать размер регистра немаленькими строковыми полями.
7 vladko
 
19.08.20
11:08
Я тоже за справочник. Строки в измерения регистра пихать не комильфо
8 Ёпрст
 
19.08.20
11:10
(7) да пусть пихает, еще и индекс повесить на такое измерение.
Зато период потом очень весело будет открываться и таблички припухнут..здорово же, не ?
9 Salimbek
 
19.08.20
11:19
(0) Храни КИЗ-ы сконвертированные, например, в base64, или еще как-то.
10 SiMBa_R38
 
19.08.20
11:37
(3) (4) (5) Поставил Collate на колонку и сделал ТиИ. Помогло. Итоги разделились.
(8) RG и так индекс висит на измерении.
(9) мысль... но думаю перекидываться буду в справочник.

В общем, критику принял.
Действительно храниться в справочнике все же экономнее, не смотря на то что элемент продолжит существовать в базе, в регистре будет записано два раза по 9 символов (приход, расход), а не два раза по 100.
11 victuan1
 
20.08.20
05:13
Вообще строка длиной 100 даже мало, т.к. есть КИЗы длиной 226 символов (это если хранить полный КИЗ с криптохвостом).
12 victuan1
 
20.08.20
05:17
м 240 симв. есть.
(0) и как ты хранишь в строке спецсимволы, например симв(29)?
Первое же ТИИ для проверки физ.целостности порушит такие строки.
13 SiMBa_R38
 
20.08.20
06:48
(11) Не встречались: 25 символов блок, 30-40 короб.
(12) "#29 " обрезаются к ЧЗ без них запрос идет, поэтому хранить их смысла нет. А вот коробку иногда приходится переворачивать порядок из ЭДО приходит (01)#14(21)#N(240)#N, а в DM зашит (01)#14(240)#N(21)#N, благо #29 разделены, и на сверке их подгоняю.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.