Как быстро найти максимальное значение кода справочника? #110601


#0 by Клон
Собственно
#1 by Директор PR отдела
Тебе на сколько быстро надо найти максимальное значение кода справочника? Кстати, какого?
#2 by ДенисЧ
#3 by fabrikant
Попробуй так, хотя не уверен
#4 by igork1966
Попытаться создать новый? ;-)
#5 by igork1966
Не разу не задавался целью (узнать). Но разве префикс не входит в сортировку по коду? Если есть префиксы и ответ на мой вопрос "да", то результат может быть неверным.
#6 by fabrikant
Если есть префикс, значит код - строка. "A12""B01"
#7 by romix
Создать новый элемент, там будет уже новый код. Не сохранять его. Но для полной уверенности надо еще знать цель зачем это нужно. Если для обмена между базами, то надо очень осторожно к этому подойти, и делать не так.
#8 by igork1966
Ага. А кто тебе сказал что код с префиксом "А" появился первым. В общем случае это не так.
#9 by NS
К сожалению в 1С созданный системой код легко может оказаться неуникальным...
#10 by fabrikant
Не нужно путать теплое с мягким. Вопрос был не в том какой элемент появился позже, а какой раньше. А как найти максимальный код. Так как в данном случае код строка, то и методы сравнения должны использоваться как для сравнения строки. Предложенный метод позволяет получить самую большую строку. А если нужен максимально большое число выделенное из кода как правая (числовая) часть. То это совсем другая песня.
#11 by romix
Да ну? И че тогда произойдет со вторым элементом, который юзер попытается сохранить?
#12 by fabrikant
Будет сказано код неуникальный. сосите ноги.
#13 by NS
Тупой вопрос. Если стоит контроль уникальности - система скажет
#14 by fabrikant
Доказательство лажовости метода 1)открыть базу под тремя разными пользователями 2)в первом окне открыть форму нового элемента (не записывать) 3)во втором окне открыть форму нового элемента (не записывать) 4)в третьем окне узнать мексимальный код методом 5)закрыть новые элементы несохраняя 6)обломаться и заплакать
#15 by 556
:) в базу знаний!
#16 by igork1966
Я воспринял эту фразу по-другому. Боюсь мы не сможем за клона сказать что именно подразумевалось. И главное зачем это надо.
#17 by vasinok
В предложенной ситуации любой метод будет "лажать".
#18 by NS
Не любой.
#19 by vasinok
Пример, пожалуйста.
#20 by igork1966
В разделенном режиме ЛЮБОЙ.
#21 by NS
Спокойно - можно сделать альтернативный нумератор, можно записывать новый код в глобыльную ТЗ, и при Записи/Закрытии обрабатывать. Методов куча. Просейший - просто код в константу писать, и в приЗаписи присваивать новый.
#22 by полностью
согласен с NS... не один из предложенных вариантов не дает 100% уверености в получении максимального кода
#23 by а вот
за ... надо ручки бить... избыточность данных... да и еще есть программная запись реквизитов
#24 by igork1966
"Просейший - просто код в константу писать, и в приЗаписи присваивать новый" Не взлетит. Ты подумай еще раз.
#25 by ТЕА
:)))) ща придет клон и выяснится что надо было иерархию отключить+сортирова по коду+спуститься вниз списка :))))
#26 by а если
элемент создают программно... и другой кодер... которму на чхать... на твои константы
#27 by NS
Взлетит. Ты просто попробуй.
#28 by NS
Объяснить кодеру про константу можно... И такой-же кусок можно вставить в модуль присвоения кода в обработке.
#29 by при условии
что тот кто делал данное будеи еще там... и захочет это сказать... а если на оборот... что скорее всего и произойдет
#30 by так что
вариант предложенный в дает 100%... и только он... все остальное не есть гуд
#31 by vasinok
Q: Как быстро найти максимальное значение кода справочника? A: сделать альтернативный нумератор
#32 by NS
Именно это я и сказал.
#33 by удачи
... в делах наших тяжких
#34 by igork1966
Ну да, я забыл ;-) что в 1С транзакция блокирует базу совсем. ;-) 1. Но смотри мы отклонились от сути. 2. Как долго просуществует правильный макс код после его получения, если с базой продолжат работать? ;-) В-общем все сводиться к тому, для чего это требуется-то? АВТОР АУ?
#35 by ТЕА
#36 by NS
Правильный код продержиться до Зафиксироватьтранзакцию
#37 by igork1966
Вот именно. Чтобы получить 100% правильный макс код, надо все действия по его получению и использованию выполнять в транзакции. Т.е. получить монопольный доступ к базе, см..
#38 by да ребятишки
... вы программеры... или как... Львы Барановы... все делается не просто, а очень просто... объяснять лень... ну думаю сами вкурите... что почем... и как играть в хокей с мячом
#39 by NS
Видимо не лады у кого-то с понятием "быстро"
#40 by а вообще
если внематочно прочитать сабж... то надо юзать metadata что типа metadata.reference(Kind).CodeLength
#41 by ТЕА
Не вижу что-то глобальной разницы... Пока оно будет запрашиваться-выгружаться, могут и новый элемент заколотить ведь?
#42 by не спорю
могут... но что мешаеть использовать блокировки... во всех других те же грабли... только другим боком... а что если двое одновремено захотят создать справочник...
#43 by ТЕА
поскольку скорость у любого разная, то рано или поздно разрулит.
#44 by vasinok
"Поздно" может растянуться на неопределенное время...
#45 by ну тогда
тебе еще одна задачка... а если справочник подчинен другому...
#46 by igork1966
Можно подумать что это что-то меняет в
#47 by ТЕА
вряд ли долго. и лучше вылететь с ошибкой? можно на пока 1=1 ограничить попытки, смягчить падение, сути дела это не меняет; вручную все равно дольше, если не сделать номер "плюс много" - ?? точнее
#48 by просто в
не слово как найти сам код...
#49 by найти максимально
использующий код в справочнике подчиненом другому справочнику... то есть когда у элемента справочника появляется понятие владелец... куда точнее...
#50 by ТЕА
два часа отжимаемся. а клон давно ушла(шел) :))
#51 by vasinok
Вот приедет автор, автор нас рассудит...
#52 by да уж
не суди и не судимым будешь
#53 by Клон
Все супер. Особенно понравилось А цель моей задачи слишком незначительна для таких решений
#54 by vasinok
>А цель моей задачи слишком незначительна для таких решений Именно это я и имел в виду в .
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям