Обрезать код номенклатуры #753436


#0 by fury21
Здр! Помогите обрезать код номенклатуры. Сейчас формат может быть или ГА-00000691 или 00-00000012 (ГА или 00) спереди. Для выгрузки на сайт нужно удалить спереди первые 3 символа и все нули, так, что бы остались только цифры начиная с 1 и до 9. Т.е. из 00-00000012 сделать просто "12", а из ГА-00000691 сделать "691". Кол-во нулей спереди разное всегда. Спасибо!
#1 by Molinor
Сред, Формат
#2 by Апош
+ получить номер на печать, спинной мозг
#3 by Fedor-1971
Вариант Число(сред(Номер,4)) - только если дальше попадутся буквы - будет ошибка
#4 by НЕА123
ОбрезанныКод = Формат(Число(СтрПолучитьСтроку(СтрЗаменить(Код,"-",Символы.ПС),2)),"ЧГ=");
#5 by ssh-2013
Универсально можно сделать так: цикл перебора символов начиная с конца строки к началу. Как только встречается первое не число цикл прервать и Формат(Число) от того что получено в цикле. Проверить на цифру можно например так:
#6 by Serg_1960
"Кол-во нулей спереди разное всегда" - зато длина кода - число постоянное. Намёк понят?
#7 by Nuobu
+1
#8 by Serg_1960
Перебор с начала к концу ни чем не хуже (подначил) "Написать алгоритм сложнее всегда проще, чем наоборот"(я) Не плюсуй. В типовой функции из документа номер (а не код из справочника). Переделывать нет смысла.
#9 by Serg_1960
Типовая функция из типовой конфигурации - выделение числа из строки, где число - в начале строки:
#10 by ssh-2013
> Перебор с начала к концу ни чем не хуже поделись вариантом
#11 by fury21
Как то все сложно. Первые 3 символа можно просто отрезать, а потом убрать все нули. Как удалить именно нули спереди? И как этот код потом вставить в выгрузку?
#12 by Serg_1960
Функция, аналогичная , но число - в конце строки:
#13 by Serg_1960
Не читатель? См. - преобразование в число "отрезает" ведущие нули.
#14 by ssh-2013
если префикс будет "01-" ? Может у него такого и нет, в этом смысле более универсально
#15 by Апош
>Как то все сложно дело в том, что программирование предполагает наличие мозга. в данной задаче ну хоть какого-нибудь
#16 by fury21
Если в самом начале отрезать первые 3 символа то останутся только цифры
#17 by ssh-2013
> Как то все сложно. (
#18 by Ildarovich
Вот вариант без преобразования в число:
#19 by Serg_1960
А ты проверь . Встретив "-" набор будет сброшен в ноль и продолжен далее.
#20 by ssh-2013
ок
#21 by Апош
во что оно превратит "мама родная"?
#22 by Nuobu
В ноль
#23 by Fedor-1971
в "а0родная"
#24 by Апош
а правильно было бы в ноль, да
#25 by Serg_1960
Оно маму родную превращает в абракадабру :)
#26 by fury21
Преобразование в число добавляет к коду пробел на каждую тысячу (вместо 1180 пишет 1 180). Как обратно в строку преобразовать?
#27 by ДенисЧ
"Преобразование в число добавляет к коду пробел" Ничего никуда не добавляет. А если кому добавляет - могу продать резиновую киянку. Для рихтования рук.
#28 by Апош
форматом
#29 by Апош
кстати, да. сколько получается после добавления?
#30 by fury21
При таком коде СтрЗаменить(Строка(Число(Сред(Номенклатура.код, 4))), " ", "") в выгрузку попадает <Артикул>1 108</Артикул> А мне пробел этот не нужен, как его убрать?
#31 by НЕА123
давай до завтра оставим.
#32 by fury21
В итоге вот такая строка решила проблему, всем спасибо Формат(Число(Сред(Номенклатура.код, 4)), "ЧГ=") Нужно ли ее обратно в строку переводить?
#33 by ДенисЧ
Ты, главное, не читай справку... Особенно пояснения по возвращаемому функцией типу значения...
#34 by НЕА123
+1
#35 by dka80
УниверсальныйПодборИОбработкаОбъектов.epf
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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