Как в запросе получить форматированную строку из номера? #758497


#0 by Stim
Есть номер документа типа БП-0000012 00001023 и пр Нужно в запросе получить из них значения: "12" "1023" как это можно сделать? в число я так понимаю, бесполезно номер переводить?
#1 by Горогуля
не надо заниматься хренью
#2 by spectre1978
в цикле пробежаться по номеру, если очередной символ находится в строке "0123456789", то добавить его к временной строке, иначе переход к следующему символу. Затем вернуть Число (Временная строка).
#3 by Stimcool
Надо в запроосе
#4 by Stimcool
не можешь - так и скажи!
#5 by User_Agronom
Была подобная задача. Решал в три этапа: 1. Получал запросом список документов и необходимых результатов. Выгружал в ТЗ 2. По ТЗ мчался циклом меняя значения столбца "Номер" 3. Полученную ТЗ передавал в новый запрос, с окончательными танцами и плясками. Может и можно извернутся как-то, но времени на разработку потребуется в разы больше.
#6 by spectre1978
сорьки, не увидел. Тогда дохлый номер. Только как в
#7 by DrShad
В поиск уже было преобразование строки в число запросом
#8 by RomanYS
ВЫБРАТЬ     2 ВЫБРАТЬ     3 ВЫБРАТЬ     4 ВЫБРАТЬ     5 ВЫБРАТЬ     6 ВЫБРАТЬ     7 ВЫБРАТЬ     8 ВЫБРАТЬ     9 ВЫБРАТЬ     10 ВЫБРАТЬ     11 ВЫБРАТЬ     12 ВЫБРАТЬ     13 ВЫБРАТЬ     14 ВЫБРАТЬ     15 ;     Доки.Ссылка, остальным камнями(и другими каками) не кидаться, написано здесь и сейчас для проверки теоретической возможности :)
#9 by Горогуля
убеди
#10 by Ildarovich
Вот статья на эту тему: . Там есть нужное решение. Статья называется Выразить строку как число и строку как дату в запросе .
#11 by Горогуля
дада. БП0012-кака
#12 by RomanYS
НомерНачинаяСПервойЗначащейЦифры = "12-кака" Всё как заказывал ТС ))
#13 by Горогуля
это где он так? ;)
#14 by DrShad
В и такие беды решаются
#15 by Горогуля
БП00-00034 ещё могу. Но не буду - агроном просил
#16 by Горогуля
радон, Роман
#17 by RomanYS
его примеры попадут 100%, других он не давал БП00-00034 даст "34", не вижу никаких вопросов что такое "радон"?
#18 by ДенисЧ
Какую-то фигню вы тут несёте...
#19 by ДенисЧ
Газ такой...
#20 by Горогуля
это пардон по мнению свихнувшейся самозамены планшета
#21 by RomanYS
т.е. пытается меня отравить?  :)
#22 by ДенисЧ
Ты уже отравлен, не расстраивайся
#23 by Горогуля
лениво думать.. БП01-0003 - это 3?
#24 by Горогуля
В общем, я за женщину для ТС. Хотя бы резиновую. А то хочет всякую ересь
#25 by DrShad
ты бы почитал для начала
#26 by RomanYS
"1-0003" возвращает подстроку, начиная с первой значащей (не 0) цифры. Понятно, что можно модифицировать, так чтобы получилось "3". Что хочет ТС в такой ситуации - неизвестно. он вроде не жаловался
#27 by Горогуля
чукча не читатель
#28 by spectre1978
Языку запросов 1С явно не хватает процедурного расширения. Мож, в версии 9 платформы запилят? :)
#29 by DrShad
Всего там хватает
#30 by RomanYS
мне тоже хватает не хватает функционала запросов - используй СКД, например
#31 by rsv
Да в принципе в языке запросов 1С "в число я так понимаю, бесполезно номер переводить? " этого вы не сделаете без доп.надстройки СКД.  А так курить функции строковые  или иные СУБД где база живет
#32 by rsv
select convert( int,'00001023')   дает что нужно . Отсечь буквы - догадаетесь.
#33 by Stimcool
ты не похож на английскую королеву
#34 by Stimcool
спасибо, я завтра проверю Зы. Эта штука нули в номере все не отсечет?
#35 by RomanYS
прочитай
#36 by Stim
Спасибо, работает
#37 by Stim
зы. если кому интересно - стандартный клиент-банк в 1С работает так: Берет таблицу файла и соединяет её с таблицей платежек - по дате и по номеру счета контрагента. Если в один день по контрагенту было несколько платежек, то на строку таблицы будет несколько таких платежек. Потом в цикле он перебирает эти платежки, отсекает от номера документа все лишнее, находит/не находит платежку, соответствующую строке файла. Проблема в том, что когда по одному контрагенту в день около 3 тыс платежек - получается выборка с 3000*3000 строк и клиент-банк медленно умирает
#38 by Горогуля
опять не убедил
#39 by Stim
какой ты требовательный!
#40 by Stim
+ я начинаю видеть в тебе английскую королеву
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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