![]() |
![]() |
![]() |
|
Подскажите как программно установить проверку уникальности кода в справочни | ☑ | ||
---|---|---|---|---|
0
Platon
11.10.04
✎
08:54
|
Необходимо изменить коды в одной из групп справочника но чтобы они были уникальны для всего справочникавопрос как это сделать.
Метод УстановитьНовыйКод(<префикс>) не проверяет на уникальность во всём справочнике по крайней мере если цикл внутри группы Если спр.НайтиПоНаименованию("Запчасти ОГМ",0,1) = 0 тогда Сообщить("Не найден"); Возврат; Иначе Род=спр.ТекущийЭлемент(); КонецЕсли; спр.ПорядокРеквизита("НомерР3"); спр.ИспользоватьРодителя(Род); спр.ВыбратьЭлементы(); Пока спр.ПолучитьЭлемент()=1 Цикл спр.УстановитьНовыйКод("52"); спр.Записать(); КонецЦикла; |
|||
1
Diter
11.10.04
✎
09:03
|
(0) Не может такого быть. чтобы УстановитьНовыйКод() давал дубль кода. Проверь ещё раз.
|
|||
2
Diter
11.10.04
✎
09:06
|
Может у тебя уже выбрана разрядность кода (число символов в коде)?
|
|||
3
Platon
11.10.04
✎
09:10
|
Я проверил и УстановитьНовыйКод()действительно присвоил существующий код.
Наверное дело в том что если присваиваеш код после ИспользоватьРодителя то он и контролирует уникальность внутри родителя. Но как с этим боротся? :( |
|||
4
Diter
11.10.04
✎
09:16
|
Как у тебя стоит уникальность кода в конфигураторе? В пределах подчинения или сквозная?
|
|||
5
Diter
11.10.04
✎
09:16
|
Всётаки проверь (2)
|
|||
6
Platon
11.10.04
✎
09:17
|
Разрядность кода по моему устанавливается толи по коду группы толи по коду первого элемента. Я меняю коды у уже существующих элементов с кодом тоже на 52.
|
|||
7
Шмисный
11.10.04
✎
09:20
|
у тя проблемы....
|
|||
8
Diter
11.10.04
✎
09:20
|
Ты не понял. Сколько у тебя символов разрешено в коде? Сколько занято сейчас? Может у тебя просто некуда добавлять "52" с сохранением уникальности.
|
|||
9
F427
11.10.04
✎
09:37
|
фигня какая то (с) Бекас...
|
|||
10
Platon
11.10.04
✎
09:38
|
(8)Да нет хватит. В справочнике элементов примерно 8000 из них чуть меньше 3000 с префиксом 52 а общая длина кода 8 символов т.е. ещё примерно 7000 кодов можно сгенерить с сохранением уникальности только с префиксом 52 т.е. 52****
|
|||
11
Diter
11.10.04
✎
09:42
|
Тип кода?
|
|||
12
Platon
11.10.04
✎
09:50
|
(11)Текстовый
|
|||
13
Diter
11.10.04
✎
10:00
|
Раз тип текстовый, то разрядность у тебя при вводе префикса номера уменьшается на два символа. Т.е. вместо 8 получается 6. если первые две цифры не "00" то будет возникать косяк с кодом (точнее с его уникальностью).
|
|||
14
Platon
11.10.04
✎
11:05
|
Похоже остаётся один вариант я сперва отключу контроль уникальности потом назначу всем элементам код равный "" затем в новом цикле назначу новый код как мне надо и потом в новом цикле проверю уникальность т.е если в друих родителях попадётся ещё одинаковый код то я снова изменяю код только у одного элемента
Может можно проще? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |