Имя: Пароль:
1C
1C 7.7
v7: НЕ уникальность кодов
0 Woiager1984
 
15.07.11
12:51
Подскажите как перенумеровать не уникальные кода в справочнике бюджетка 7.7
1 Ёпрст
 
гуру
15.07.11
12:56
ючойз с диска итс
2 chief accountant
 
15.07.11
12:57
(0) Что за справочник?
3 Woiager1984
 
15.07.11
12:58
Номенклатура
4 Масянька
 
15.07.11
13:05
Справочник сортировать по коду.
Выборка элементов.
Установить новый код.
На infostarte посмотри.
5 chief accountant
 
15.07.11
13:08
(3) Откуда не уникальные?
6 Woiager1984
 
15.07.11
13:15
А бох знает откуда?
7 1Сергей
 
15.07.11
13:16
УРБД?
8 Woiager1984
 
15.07.11
13:18
Ага она самая!Обработка с ИТС перенумеровывает все элементы!
9 chief accountant
 
15.07.11
13:18
(6) тогда (1) вариант надежный
10 Woiager1984
 
15.07.11
13:20
ючойз перенумеровывает все элементы
11 aka AMIGO
 
15.07.11
13:20
(7)  во-во! только что исправлял один дубль-код, тоже урбд..

(0) попробуй вот этот г-код, будет-ли ругаться на "элемент не найден" :))

Процедура Сформировать()    
   СПК = СоздатьОбъект("Справочник.Номенклатура");
   СПК.ПорядокКодов();
   СПК.ВыбратьЭлементы();
   ОлдКод="";
   Пока СПК.ПолучитьЭлемент() = 1 Цикл
       Если ПустоеЗначение(ОлдКод)=1 Тогда
           ОлдКод=СПК.Код;
           Продолжить;
       КонецЕсли;
       Если СПК.Код = ОлдКод Тогда
           СПК.УстановитьНовыйКод("");
           СПК.Записать();
       Иначе
           ОлдКод = СПК.Код;
       КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры
12 chief accountant
 
15.07.11
13:20
(10) Это вопрос или утверждение?
13 Woiager1984
 
15.07.11
13:23
(10) это в моем случае,может неправильно пользуюсь!
14 Woiager1984
 
15.07.11
13:24
(11) ничего не дает!Отсортировал по коду,ну разные они все!
15 chief accountant
 
15.07.11
13:24
(13) А чего хочется-то?
16 Woiager1984
 
15.07.11
13:24
Если 0 убираешь,все хорошо при обновлении.
17 Woiager1984
 
15.07.11
13:25
Обновляю на 646 релиз при переносе остатков ругается на неуникальность кодов,0 убираю у элемента пропускает!
18 aka AMIGO
 
15.07.11
13:25
(14) значит, неуникальных кодов нет..
чего тогда искать?
19 aka AMIGO
 
15.07.11
13:26
(17) а, понятно в каком случае..
20 Woiager1984
 
15.07.11
13:26
Выполняется обновление информационной базы с редакции 6.1 на редакцию 6.2 (релиз 7.70.644 на релиз 7.70.645).
Не удается записать Консервы "Борщ со свежей капустой". Код не уникальный!
Выполняется обновление информационной базы с релиза 7.70.645 на релиз 7.70.646. а вот это что???
21 Ёпрст
 
гуру
15.07.11
13:28
(20) это неуникальность кода в другом справочнике, в единице измерения какой-нибудь.
22 Woiager1984
 
15.07.11
13:29
Нет пардон,смотрю действительно в справочнике одинаковые коды,посмотрел на борщ и рядом такой же код?))
23 aka AMIGO
 
15.07.11
13:30
морока с тобой.. )
24 Woiager1984
 
15.07.11
13:31
Ага!Вот как их перенумеровать,это морока,не охота в ручную перебивать))))
25 aka AMIGO
 
15.07.11
13:32
(24) ну, я-ж попросил тебя проверить г-код в (11).. ну, пожалуйста!.. ну что тебе стОит? :))
26 Woiager1984
 
15.07.11
13:33
(11) ничего не дает,не ругается.Уж прости!)
27 aka AMIGO
 
15.07.11
13:35
у себя я только перенумеровал код клиенту,
проца вот такая, морочиться долго не стал, пять строк - и баста! :)
Процедура Сформировать()    
   СПК = СоздатьОбъект("Справочник.Клиенты");
   СПК.НайтиПоНаименованию("Проектировщик Менько София Лаврентьевна",0); //вот у этого был дубль, зараза..
   СПК.Код = "Р08904";
   СПК.Записать();    
КонецПроцедуры

(26) что с тобой поделаешь?.. простил :)
28 Woiager1984
 
15.07.11
13:36
У меня не одна позиция,их много.
29 aka AMIGO
 
15.07.11
13:37
(28) вот я для многих позиций и написал в 11-м посте..
ладушки подумаю еще..
30 aka AMIGO
 
15.07.11
13:45
Вот этот должен-бы сообщать о дублях:

Процедура Сформировать()    
   СПК = СоздатьОбъект("Справочник.Номенклатура");
   СПК.ПорядокКодов();
   СПК.ВыбратьЭлементы();
   ОлдКод="";
   Пока СПК.ПолучитьЭлемент() = 1 Цикл
       Если ПустоеЗначение(ОлдКод)=1 Тогда
           ОлдКод=СПК.Код;
           Продолжить;
       КонецЕсли;
       Если СПК.Код = ОлдКод Тогда
           Сообщить("Дубль код: "+ СПК.Код+" "+СПК.Наименование);
       Иначе
           ОлдКод = СПК.Код;
       КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры
31 aka AMIGO
 
15.07.11
13:47
у меня нашелся дубль по этому коду
32 Woiager1984
 
15.07.11
13:47
Не не ищет!
33 chief accountant
 
15.07.11
13:51
(32) учоис юзал?
34 Woiager1984
 
15.07.11
13:52
(33)Пытаюсь!
35 chief accountant
 
15.07.11
13:53
(34) что не получается?
36 Woiager1984
 
15.07.11
13:56
Нажимаю найти элементы,как я понимаю все выбирает,Далее Ок и какие тут галочки ставить не пойму?
37 aka AMIGO
 
15.07.11
14:06
http://kubanphoto.ru/photos/6999/173112_prev3.jpg

работает г-код-то..
38 aka AMIGO
 
15.07.11
14:07
только ссылка не работает..

http://s016.radikal.ru/i337/1107/99/858651fe8f82.jpg
39 aka AMIGO
 
15.07.11
14:11
установлено следующее: находятся дубли, если коды идут с префиксом.
без префикса - не видать дублей кодов..
ну, это надо чуток код переделать..
40 aka AMIGO
 
15.07.11
14:24
ну, вот.. выяснил, что ПорядокКодов() почему-то не работает!!
коды 08904 у меня не идут подряд, а П02324 - подряд..
какая-то ерунда..
41 Woiager1984
 
15.07.11
14:27
Да вообще сижу в ручную выбираю.
42 aka AMIGO
 
15.07.11
14:29
+40 в БД присутствует файл ordnochk.prm, его распорядилась засунуть ГБ, что и выполнили сисадмины.
я так думаю, что в нем причина.. попробую индексировать по-новой, без ордноучек.прм..
43 aka AMIGO
 
15.07.11
14:35
(42) всё равно коды при выборке - не подряд.. всё, я не знаю, где еще копать.. извини..
44 Woiager1984
 
15.07.11
14:40
Да ничего!Я вручную подправил!Спасибо  aka AMIGO!
45 aka AMIGO
 
15.07.11
14:42
(44) вот и молодец..
а я увидел причину: ПорядокКодов() устанавливает в порядке кодов внутри каждой группы, но не по элементам во всем справочнике!
вот такая новость..
46 aka AMIGO
 
15.07.11
14:57
вот она, эта причина! - перед группой ТК коды элементов кончаются префиксом М-.., в группе ТК в самом начале опять без префикса, а потом уже префикс М-..
отметил эти последовательности синей черточкой..
в жкк про это ничего не написано...

вот, потому и не ищутся одинаковые коды: они в разных группах..
надо искать через ТЗ и свертку по коду..
запомню на будущее
47 aka AMIGO
 
15.07.11
14:58
48 aka AMIGO
 
15.07.11
15:00
+46 так что ПорядокКодов() фактически - это ПорядокПолныхКодов()