|
Значение поля Код не уникально | ☑ | ||
---|---|---|---|---|
0
R0mbes
31.05.12
✎
13:03
|
Кто может подсказать в чем может быть проблема?
Есть справочник номенклатура, в нем 211 000 позиций , длина кода = 8 знаков, т.е. еще 2 свободных разряда, но при записи элемента справочника программа ругается что значение поля "Код" не уникально! |
|||
1
Buster007
31.05.12
✎
13:04
|
значит кто-то поменял код вручную )
|
|||
2
Kavar
31.05.12
✎
13:04
|
(1)+1
Делать перенумерацию кодов. |
|||
3
ale-sarin
31.05.12
✎
13:05
|
(0) Ищите номенклатуру с длиной кода не 8, а меньше.
|
|||
4
Александр_
Тверь 31.05.12
✎
13:05
|
(2) хороший совет. Особенно если есть обмен с 10 базами (1С не 1С), и синхронизация по коду.
|
|||
5
R0mbes
31.05.12
✎
13:06
|
(1) а как отследить неверный код ? я делаю сортировку у меня последний элемент 00211....
По идеи должен браться последний и прибавляться 1 |
|||
6
rbcvg
31.05.12
✎
13:06
|
ПоискИЗаменаДублирующихсяЭлементов.epf
|
|||
7
Kavar
31.05.12
✎
13:10
|
(4) Можешь что-то другое предложить? в любом случае перенумеровывать надо, хотя бы начиная с "кривого" элемента.
|
|||
8
R0mbes
31.05.12
✎
13:10
|
(6) дублей нету, только что запустил ее
|
|||
9
R0mbes
31.05.12
✎
13:11
|
(7) так как найти этот кривой элемент ?
|
|||
10
inka
31.05.12
✎
13:11
|
(8) его и не должно было быть. объект же не записывается
|
|||
11
Александр_
Тверь 31.05.12
✎
13:12
|
(7) а ты из (0) понял в какой это момент происходит?
Может у него обработка, которая по своему алгоритму выдает номер? Может у него при обмене в каких-то базах коды совпали... и т.д. и т.п. |
|||
12
inka
31.05.12
✎
13:12
|
А если поискать объект с кодов который хотите записать?
|
|||
13
inka
31.05.12
✎
13:13
|
(9) - отсортируйте по коду и поищите коды с длиной меньше 8
|
|||
14
Kavar
31.05.12
✎
13:16
|
(9) При создании нового элемента какой-то код же присваивается? вот его и ищи.
|
|||
15
R0mbes
31.05.12
✎
13:19
|
(14) в отладчике на событии "Перед записью" значение поля код = " ",
(9) я отсортировал по коду но не могу никак найти код с длиной меньше 8 =( |
|||
16
R0mbes
31.05.12
✎
13:19
|
(14) как узнать какой код присваивается ?
|
|||
17
inka
31.05.12
✎
13:20
|
(15) - поищите код оканчивающийся на букву
|
|||
18
inka
31.05.12
✎
13:20
|
(16) - Посмотреть :)
|
|||
19
R0mbes
31.05.12
✎
13:23
|
(18) событие "ПриУстановкеНовогоКода" там посмотреть ?
|
|||
20
Vitamax3
31.05.12
✎
13:26
|
Как вариант. Если при создании спр.Номенклатура создается ещё
зависимый справочник - например ЕдиницаИзмерения, и там кто-то пошуровал ручками по коду, то ошибка может иметь отношение ко второму справочнику. ИМХО. |
|||
21
R0mbes
31.05.12
✎
13:27
|
(20) спасибо за наводку, сейчас гляну )
|
|||
22
R0mbes
31.05.12
✎
13:48
|
(20) не там все чисто (
|
|||
23
Irek-kazan
31.05.12
✎
13:50
|
база случаем не на сиквеле?
|
|||
24
R0mbes
31.05.12
✎
13:52
|
(23) на чем ?))) клиент - серверный вариант работы (база на MSSQL)
|
|||
25
Irek-kazan
31.05.12
✎
13:54
|
ну тогда прямой запрос к базе на предмет задвоения
Select count(code), code from table group by code having count(code)>1 |
|||
26
Случайный прохожий
31.05.12
✎
13:56
|
(25) не проканает. В данный момент в базе нет задвоения. Задвоение создается при попытки записи нового элемента.
|
|||
27
Vitamax3
31.05.12
✎
13:56
|
(25) так он и не может записать дубль
|
|||
28
Vitamax3
31.05.12
✎
13:57
|
(0) какая конфигурация?
|
|||
29
inka
31.05.12
✎
13:57
|
(27) - Все таки поищите код оканчивающийся на букву
|
|||
30
Irek-kazan
31.05.12
✎
13:58
|
Может тады профайлерем посмотреть что пытается записать в базу в момент создания элемента?
|
|||
31
Случайный прохожий
31.05.12
✎
13:59
|
После сортировки как выглядит код последнего элемента? Полностью напиши (с пробелами и т.п)
|
|||
32
Vitamax3
31.05.12
✎
13:59
|
+(31) и первого
|
|||
33
hhhh
31.05.12
✎
14:01
|
(22) отсортируйте справочник по коду, тогда самый нижный элемент и будет то, что вы ищете.
|
|||
34
R0mbes
31.05.12
✎
14:21
|
Последний элемент : "00211746 "
Первый элемент: "00000001 " (29) запустил такую обработку: <code> Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код КАК Код |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Код"; Результат = запрос.Выполнить().Выбрать(); й=0; Пока Результат.Следующий() Цикл й=й+1; Код = Результат.Код; Попытка Номер = Число(Код); Код = СокрЛП(Код); Если СтрДлина(Код)<8 Тогда Сообщить(Код); КонецЕсли; Исключение Сообщить(Код); КонецПопытки; КонецЦикла; сообщить(й); КонецПроцедуры </code> В результате не выдало ошибок. Т.е. все коды можно перевести в число (30) А как это сделать ? |
|||
35
R0mbes
31.05.12
✎
14:24
|
(28) конфигурация комплексная автоматизация
|
|||
36
Vitamax3
31.05.12
✎
14:24
|
Попробуй ручками в карточке с последним кодом поставить
00211747 и записать. |
|||
37
R0mbes
31.05.12
✎
14:25
|
Может и правда дело не в этом справочнике, а в каком то другом ?
|
|||
38
R0mbes
31.05.12
✎
14:25
|
(36) секунду
|
|||
39
Vitamax3
31.05.12
✎
14:26
|
(37) если запишет, то в другом 99% ;)
|
|||
40
R0mbes
31.05.12
✎
14:28
|
записал, потом при следующем создании выдал другую уже ошибку , ура что-то становится яснее:
В данной транзакции уже происходили ошибки "Не удалось записать единицу хранения остатков: {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1396)}: Ошибка при вызове метода контекста (Записать): Значение поля "Код" не уникально" |
|||
41
Vitamax3
31.05.12
✎
14:36
|
А в (0), что без открытия формы создавал?
|
|||
42
R0mbes
31.05.12
✎
14:37
|
(41) с открытие но ошибка только сейчас выдалась ..
не понимаю где теперь искать концы |
|||
43
Случайный прохожий
31.05.12
✎
14:40
|
Ищи подвох в единицах хранения остатков :)
|
|||
44
Vitamax3
31.05.12
✎
14:44
|
+(43) повтори свою обработку для справочника ЕдиницыИзмерения
и выдай первый код и последний |
|||
45
R0mbes
31.05.12
✎
14:50
|
(44) я сделал как ты и сказал в (36) - присвоил последнему элементу справочника "ЕдиницыИзмерения" код на единицу больше и все заработало, спасибо тебе !!!! Но причину я так и не могу понять, мистика ))
Спасибо всем ! я уже 2 часа вожусь с этой проблемой !!!! если бы не вы... было бы гораздо дольше =) |
|||
46
Vitamax3
31.05.12
✎
14:57
|
(45) ))) "2 часа вожусь" ветка с 13:03 по 14:50 - быстро ты сдался однако.
|
|||
47
R0mbes
31.05.12
✎
15:15
|
(46) ну мои знания через 30 минут иссякли ! я перепробывал все что знал ) а на этом форуме обитают профи =)) мне это очень нравится !
|
|||
48
Vitamax3
31.05.12
✎
15:29
|
(47) заходи ещё. Набирайся опыта сидя на мисте. Если шефа убедишь )))
P.S. А коды не выложил по ЕдиницыИзмерения ((. Мистика как то напрягает, может вылезти боком. |
|||
49
R0mbes
01.06.12
✎
00:40
|
(48) Да босс одобрил это дело, мистика это точно. а коды там ничего подозрительного не было цифры и вначале и в конце...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |