Имя: Пароль:
1C
 
Уникальный индекс в справочнике
1 YellowRabbit
 
05.09.08
04:34
Есть ИЗДЕЛИЯ, разного РАЗМЕРА, которые подвергаются ОБРАБОТКЕ и это что-то СТОИТ.
По привычке набросал макет таблицы:
изделие
размер
обрабока
расценка
Index (изделие,размер,обработка) Unique

при реализации этого справочника (ну это же по идее справочник, правильно?) столкнулся с тем, что не могу найти в системе, где задать уникальный индекс по этим трём полям.
Начинаю думать, что неправильно что-то в консерватории, то бишь у меня в голове.
Подскажите, как решается эта проблемка в 1С (в MySQL я даже не задумывался, что это проблемой может быть).
2 КонецЦикла
 
05.09.08
04:37
науа? у писателей так не принято
в принципе можно добавить свой индекс в таблицу, только после реструктуризации пересоздавать его
а так элементы для СКЛ все равно уникальны :)
3 ASV
 
05.09.08
04:38
(0) код элемента
4 КонецЦикла
 
05.09.08
04:40
(3) Но мистер Холмс... не распухнид ли код?
5 YellowRabbit
 
05.09.08
05:17
Понятненько.

Код. По 8 разрядов на код каждой записи, в принципе, проверка  есть/нет должна работать быстро. Да и получить/установить не должна тормозить. Нравится.

Свой индекс. Насчёт ускорения или замедления никаких предположений пока нет, надо подумать, как ловить ситуацию "есть".

Спасибо.
6 Яндекс
 
05.09.08
05:48
а может стоит глянуть в сторону зорбит кея?
7 YellowRabbit
 
05.09.08
07:20
Это что за зверушка? Я просто не слышал об этом.
8 dk
 
05.09.08
08:08
а в чем проблема проверить при записи на уникальность ключа?
правда может тормозить :)
9 YellowRabbit
 
08.09.08
02:03
Тормозить, это не то слово :)
10 Яндекс
 
08.09.08
06:22
чет саму ветку не нашел... видать на старые ветки кэша сбросилась...

Процедура Инициализация()
   перем к;
   randseed=172863748;
   Для к=1 по 100000 цикл
       random();
       а[к]=randseed;
       random();
       а[к]=а[к]*2147483648+randseed;
   Конеццикла;    
КонецПроцедуры    
Функция ПолучитьCRC(стр)
   перем к,м;
   CRC=0;  
   м=0;
   Для к=1 по стрдлина(стр) цикл  
       CRC=CRC+а[м+кодсимв(сред(стр,к,1))];  
       м=м+255;
   КонецЦикла;    
   сообщить(CRC);
   возврат CRC%4611686018427387904;
КонецФункции    

автор оного http://www.forum.mista.ru/users.php?action=show&id=1763


преобразуешь свои "изделие", "размер", "обрабока", "расценка" в строку... получаешь КРК ... результат используешь как индекс
2 + 2 = 3.9999999999999999999999999999999...