Имя: Пароль:
1C
1С v8
Длина индекса
,
0 Симпатяга
 
08.02.16
08:50
Добрый день!
Есть регистр "даты отгрузок".
В нем есть измерения "Наименование заказчика".
Длина 1000 символов.
Не индексируется.
Двигается заказом покупателя.
При проведении заказа с длинным наимнованием заказчика выдает ошибку "Длина ключа индекса превышает максимально допустимую".
Удаляю поле - все Ок.
Добавляю - ошибка.
Поле не участвует в индексе, но ругается на него.
Сейчас запустил ТИИ - но по ощущениям не поможет.
Что я упустил?
1 Симпатяга
 
08.02.16
08:50
(0) + регистр накопления
2 Провинциальный 1сник
 
08.02.16
08:52
Основной вопрос - зачем?
3 Симпатяга
 
08.02.16
08:53
(2) вопрос был другой.
4 Cyberhawk
 
08.02.16
08:53
Ты забываешь про остальные индексы, куда твое поле входит...
5 Провинциальный 1сник
 
08.02.16
08:54
(3) В 1с не принято использовать измерения-строки, это дурной тон. Используй справочник "Заказчики" в качестве измерения.
PS Любое измерения в регистре индекируется, так устроены регистры.
6 Cyberhawk
 
08.02.16
08:54
А если отвечать конкретно на вопрос, то упустил ты документацию
7 los_hooliganos
 
08.02.16
08:55
А зачем такое измерение???? Засунь его в реквизит
8 Симпатяга
 
08.02.16
08:55
(4) так если стоит "не индексировать"- поле входит в индексы? Причем есть еще один регистр, в нем точно такое же поле - но всё работает.
9 los_hooliganos
 
08.02.16
08:55
А если все таки нужны итоги по наименованию заказчика, сделай его справочником. И ставь ссылку на справочник в измерение
10 Cyberhawk
 
08.02.16
08:56
(8) 1С при создании регистра накопления по умолчанию создает индекс (один) из периода и всех измерений для итоговых таблиц этого регистра
11 Симпатяга
 
08.02.16
08:57
(9) не получится. наименования заказчика всегда уникальны. в каждом заказе.
Заказ нужно закрывать по наименованию заказчика
12 Симпатяга
 
08.02.16
08:58
(10) Тогда почему все работает на ргистре накопления "ЗакзаыПокупателей" с точно таким же полем.
13 фобка
 
08.02.16
08:58
(11) 1 заказ = 1 наименование?
14 Cyberhawk
 
08.02.16
08:59
(12) Покажи на картинке структуру этого регистра в дереве метаданных и тип твоего строкового измерения
15 anatoly
 
08.02.16
09:01
база файловая?
я работал в одной дочке Уралмаша - тамошние суровые проги по 5 измерений "строка 200" создавали и не парились. не знали куда еще денег потратить...
а вообще за измерение "строка 1000" надо убивать изощренным методом.
и потом приводить в пример на вопрос про длину индекса.
16 Симпатяга
 
08.02.16
09:02
(14) http://s017.radikal.ru/i416/1602/6a/e22dd281fc8b.jpg (15) База скульная
17 Cyberhawk
 
08.02.16
09:03
(16) Так у тебя длина переменная - повезло, не встретилось там в таблице остатков пока наименования, которое вкупе с остальными измерениями превысит длину 1024
18 Симпатяга
 
08.02.16
09:05
(17) встретилось. один и тот же заказ провожу. По этому регистру проводится, по другому нет. Причем в этом гораздо больше измерений. "Плохой регистр" не  могу показать.идет ТИИ
19 los_hooliganos
 
08.02.16
09:06
ограничение на индекс для файловой базы 1920 байт.
20 los_hooliganos
 
08.02.16
09:06
Видимо сам скуль офигел от такого индекса :)))
21 Симпатяга
 
08.02.16
09:06
(19) Файловый вариант информационной базы
Единственным ограничением на использование индекса при использовании СУБД, встроенной в 1С:Предприятие, является максимально допустимая суммарная длина ключа в индексе, равная 1920 байт. При попытке создания индекса с длиной ключа, превышающей 1920 байт, будет выдано сообщение об ошибке.

Клиент-серверный вариант информационной базы
Клиент-серверный вариант информационной базы подразумевает использование Microsoft SQL Server в качестве СУБД. В Microsoft SQL Server определены следующие ограничения на использование индексов:

максимальное количество полей, участвующих в индексе, равно 16.
максимально допустимая суммарная длина ключа в индексе равна 900 байт.
Важно иметь в виду, что в процессе определения объектов метаданных 1С:Предприятие при попытке создания индекса, включающего более 16 полей, в клиент-серверном варианте ИБ индекс усекается справа до 16. Это повышает надежность работы системы, но может привести к некоторому снижению производительности операций над соответствующими таблицами из-за ухудшения качества усеченных индексов.
22 los_hooliganos
 
08.02.16
09:07
900/2 = 450 = 449

Сделай строку 449 или даже 400
23 Симпатяга
 
08.02.16
09:08
(22) не уместится(
24 los_hooliganos
 
08.02.16
09:09
(23) Тогда реализуй отдельным справочником и ссылку на него в измерение
25 Провинциальный 1сник
 
08.02.16
09:10
Учтите, что измерения в регистре всегда участвуют в составном индексе. То есть, если у вас несколько измерений - их длины надо складывать. Именно поэтому и не надо хранить там строки.
26 Симпатяга
 
08.02.16
09:11
(25) я всё понимаю. Почему в регистре, на которуй я давал картинку, все работает?
27 Симпатяга
 
08.02.16
09:14
http://s020.radikal.ru/i708/1602/f4/3a314f4d98a1.png
В левом не работает, в правом работает!
28 los_hooliganos
 
08.02.16
09:16
(27) Блин что это за имя заказчика с длиной 1000 символов?? :))
29 Симпатяга
 
08.02.16
09:16
(28) 9086010 'Задвижка шиберная DN 700 РN 1,6 МПа. Перепад рабочего давления на затворе 1,6 МПа. Под сварное соединение с трубопроводом. Вид климатического исполнения У1. Герметичность затвора по классу "А" по ГОСТ Р 54808-2011. Под электропривод "ЭПЦМ-4000" Г.18. C заводским антикоррозионным покрытием, подземная часть по ОТТ-25.220.01-КТН-215-10. Надземная часть - по РД-23.040.01-КТН-149-10. Категория коррозионной активности атмосферы С3. В несейсмостойком исполнении С0. Присоединяемая труба 720х8 с классом прочности К56 первого уровня качества по ОТТ-23.040.00-КТН-051-11. Установка - надземно. Рабочая среда - нефть по ГОСТ Р 51858-2002. Тип присоединения к электроприводу  "Г"
30 los_hooliganos
 
08.02.16
09:17
(29) Что мешает засунуть это в реквизит???
31 Провинциальный 1сник
 
08.02.16
09:17
(26) Вы работаете за пределами "зоны безопасной эксплуатации" системы. Чего же вы хотите? Вам ясно говорят - так делать не надо. Хотите хранить в регистрах полное досье заказчика - используйте реквизиты, а не измерения. Измерения для другого предназначены.
32 Симпатяга
 
08.02.16
09:19
(30) в одном и том же заказе куча строк с одинаковой номенклатурой, но разными наименованиями заказчика.
Нужно видеть, какие позиции грузятся, какие нет.
33 los_hooliganos
 
08.02.16
09:21
(32) Я так понимаю это набор характеристик, вот ссылки на этот набор и нужно хранить как я понимаю.
34 Cyberhawk
 
08.02.16
09:23
(18) Ты на комбинацию измерений обращай внимание, а не на одно свое
35 vde69
 
08.02.16
09:24
(16) покажи того человека который делал такой регистр!!!! и какая это конфигурация (вижу поддержку, кубики)

нафига цену включили в измерение??? я понимаю, что это некая табличная часть документа, но логично было оставить ключь "номер строки" а все эту мутотень вынести в реквизиты и ресурсы

а автору советую это поле вынести из регистра в реквизит заказа
36 rs_trade
 
08.02.16
09:27
А почему нельзя измерение строку делать? Расскажите. Очень интересно.
37 vde69
 
08.02.16
09:28
(36) по тому, что места в индексе занимают больше чем ссылка
38 Провинциальный 1сник
 
08.02.16
09:29
(36) Потому что все измерения включаются в один индекс, а у СУБД есть ограничения на длину индекса. В случае ссылок это по 16 байт, в случае строк - по факту.
39 rs_trade
 
08.02.16
09:32
(37)(38) ну понятно что не надо строки 1000 в индексы фигачить. а по факту если сильно надо, то все можно. никто не умрет от индекса по строке 20.
40 ЧеловекДуши
 
08.02.16
09:32
(0) 1000 символов, вы загнули.
Ты бы хоть раз прошелся бы запросиком. И выяснил бы максимальную длину ;)
41 Бледно Золотистый
 
08.02.16
09:32
(35) УППшное что-то. Там и цена в измерении этого регистра типовое.
42 ЧеловекДуши
 
08.02.16
09:33
+(0) ...Что я упустил?

ПятницО :)
43 Симпатяга
 
08.02.16
09:34
(35) ахахахахах. с ценой - это в москву звони, в 1с.
44 ЧеловекДуши
 
08.02.16
09:34
(8) Да, поле входит в индекс :)
45 ЧеловекДуши
 
08.02.16
09:35
(35) Реально. Цена в Измерении? :)
...Все же Пятничная ветка :)...
46 Бледно Золотистый
 
08.02.16
09:35
(43) Весельчак, колись кто додумался в измерение строку(1000) запихать? Сам?
47 ЧеловекДуши
 
08.02.16
09:35
(36) Если строка не превысит 36 символов, то почему бы и нет ;)
48 Lama12
 
08.02.16
09:35
(0) Измерение - значит индексируется. Галка индексировать - это другие индексы.
Сделай справочник в него пиши строки хоть по 5000 символов. Этот справочник используй для измерения.
49 George Wheels
 
08.02.16
09:36
(29) Так в измерениях же есть и Договор и Номенклатура и Характеристика и Заказ. Этого недостаточно?
50 Симпатяга
 
08.02.16
09:38
(49) учет по характеристикам не ведется. наследие 5 летней давности осталось. оттуда же и строка(1000)
51 Симпатяга
 
08.02.16
09:38
(45) а насчет цены - типовое измерение УПП. наплевался уже с ним.
52 George Wheels
 
08.02.16
09:41
(50) Ну тогда сделать справочник НаименованияЗаказчиков и использовать его в измерении.
53 itlikbez
 
08.02.16
09:46
(29) 682 символа.
54 Симпатяга
 
08.02.16
09:48
(53) +100500 Первое попавшееся взял
55 itlikbez
 
08.02.16
10:01
(54) В одном регистре больше измерений в другом меньше. В этом ответ на твой вопрос почему в другом регистре проблем пока еще нет.
56 Симпатяга
 
08.02.16
10:02
(55) так все наоборот получается. В том,где больше измерений - все работает.
57 Симпатяга
 
08.02.16
10:31
по первому регистру работает все потому, что в индексе он занимает место ниже 16-го. не используется для индекса.
всем спасибо.