Поиск в справочнике номеров... #108311


#0 by Кошмарик
Подскажите, пожалуйста, каким образом можно в справочнике, скажем, Номенлатура, выявить повторяющиеся коды, ведь 365 и 00365 по сути один и тот же номер, вот я и хотел выявить задвоенные номера. Просто собираюсь привести коды справочника к формату 000000.
#2 by Птица
sql - запросом, например..или так:заполни ТЗ:тз.Элемент = Спр.ТекущийЭлемент;далее, выгружаешь в другую тз и сворачиваешь по колонке код:
#3 by NS
Умен бестия...ТЗ1.Свернуть("Код, Единички");в ТЗ1 не останется элементов... только коды,А когда будешь в ТЗ искать по коду (ТЗ.НайтиЗначение) - тут словишь тормоза.Не проще ли ?
#4 by Дурочка 1С
Выявить не вопрос. Хорошо бы сначала решить что делать с такими "дублями".
#5 by Птица!
может, и проще... смотря сколько окажется дублей_____а еще, возможно и не надо искать дубли, а сделать так:заполни ТЗ:
#6 by Птица!
+5 А в справочнике должна быть включена уникальность, разумеется
#7 by NS
Будет быстрее, даже при одном дубле.
#8 by Чучундер
+6 Только выглядеть должно так, наверное:Исключение....
#9 by pvase
А не проще просто прокодировать все с нуля? Только попытку надо использовать в момент записи.
#10 by Птица,
7. возможно. :)8. а там один Записать есть в конце, и "продолжить" совсем необязательно ставить: если попытка удалась , исключение и так не будет отрабатывать..
#11 by Птица
9, точно, ступила!записать, разумеется, должно быть внутри попытки
#12 by Чучундер
Ну так, все-таки получается что должно быть как в ...
#13 by Птица
ага, получается. кроме продолжить ;)с "продолжить" по-прежнему не согласна.
#14 by Чучундер
То есть типа так:+6 Только выглядеть должно так, наверное:Исключение....Записать;....и нафига при удачной попытке тогда нужны _ДВЕ_ записи?
#15 by andrey1111
Кошмарик понял, что не его это... :)
#16 by Птица
Чучундер, разумеется внутри исключения тоже Спр.Записатья посчитала это очевидным и не упомянула :)
#17 by Птица
+16тогда Спр.Записать перед концом цикла и вовсе не нужно, что тоже очевидно :)
#18 by Чучундер
+17 - ну все, глумиться начала или как? Не пойму....Если Записать перед концомцикла убрать - в результате обработки исключения новый код так и останется незаписанным...Все-таки у птиц - ветекр в голове - жизнь у них такая ;-)
#19 by Птица!!!
+18 кто-то из нас глумится, это точно! :)пока спр.получитьЭлемент = 1 циклПопытка
#20 by NS
не нужны никакие попытки.
#21 by Чучундер
+19 Ну, точно не я ;-)Все ок, согдасен, записать можно несколько рабочих вариантов, только не так как в (5-10-11-16-17) - тебе потребовалось 5 попыток чтобы получить рабочий код, а мне - всего одна ;-) А все потому, что при описании кода можно опускать подробности записи операторов, но не сами операторы, хи-хи...1:0 в мою пользу....
#22 by Птица.
+21хи-хи!это тебе понадобилось пять попыток чтобы понять, :))
#23 by Чучундер
$-(
#24 by Птица :-)
не переживай!
#25 by Чучундер
абыдна, да!
#26 by Кошмарик
to 15 Отсутствовал я временно :)А как это можно реализовать при помощи "пузырькового" метода, у меня что-то никак не получается :(
#27 by Дурочка 1С
Выкатывай пузырь - методы найдутся...Скажи, лучше, что ты планируешь делать с дублями?
#28 by Кошмарик
Выкачу :)С дублями: МаксНомер + 1. Так будет правильнее?
#29 by Чучундер
+26 +27 А если нет никаких увязок с внешней базой данных - универсальной обработкой перенумеровать все чохом.
#30 by Птица
ну так и смотри++зачем пузырьки? :)
#32 by Дурочка 1С
>> Так будет правильнее?     Я не знаю.Если коды в базе не имеют значения, попробуй просто поставить тип кода числовой, сохранись (она там полает, что коды не уникальны и присвоит им уникальные), а потом опять верни тип кода строковый - она тебе нолики пририсует.
#33 by Птица
29 иногда бывает, что пользователи привыкают к кодам..
#34 by Кошмарик
+30 Согласен, довольно полная картина получилась, спасибо!
#35 by Птица
31 а что там мылить-то? перерисвоение кодов в цикле?!32. интересный вариант. пожалуй, самый оптимальный, если так и естьне знала, что при переходе с числового на текстовый нолики добавляются.
#36 by Кошмарик
+32 Получается самый простой вариант.Птице, Дурочке 1С, Чучундеру, NS - величайшее спасибо, помогли мне сэкономить кучу времени, низкий вам поклон ;)
#37 by Птица
проверила 32 - нифига неуникальные не перенумеровываются:Коды "077","0077","000077","00077" при изменении типа на числовой молча перешли в код 77, а потом так же молча - в "000077". 1С не пискнула. контроль уникальости был все время включен
#38 by Дурочка 1С
Сейчас я тоже попробую. Может, я конечно с документами путаю, но такое точно было. Сто пудей!
#39 by Кошмарик
А у меня все получилось! Действительно самый простой способ, если не нужна привязка к кодам
#40 by Птица
то есть, 1с ругалась на неуникальность?хм, а у меня нет. релиз 24, sql, база дбф
#41 by Дурочка 1С
У меня тоже на справочники не ругается и не перенумеровывает (25 релиз), на документы ругается, но не перенумеровывает (хотя номер показывает). Значит что-то в движке все-таки правят. Взять бы релиз так ... 15, 18?
#42 by Птица
во. проверка уникальности начинается, если уменьшить длину кода, и то в этом случае:1С тупо ругается, что коды не уникальны и отказывается преобразовывать. :)
#43 by Кошмарик
+40 1c на уникальность не ругалась+41 +42 - релиз 25, Бухгалтерия - все получилось с первого раза :)
#44 by ОбезьянаСГранатой
43 и правда, кошмарик... :)41 попробовала на 15-м - та же фигня... ну и фиг с ней.. :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С