Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / номер документа / 9 сообщений из 9, страница 1 из 1
06.03.2012, 14:47
    #37693545
Бахрам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
Всем привет!
Мне необходимо в ТиС из номера документа. которое хранится в строковом представлении (также может добавляться префикс документа) получить числовое значение, как это сделать
...
Рейтинг: 0 / 0
06.03.2012, 14:48
    #37693546
Бахрам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
БахрамВсем привет!
Мне необходимо в ТиС из номера документа. которое хранится в строковом представлении (также может добавляться префикс документа) получить числовое значение, как это сделать

например, СТ000000001 в 1, СТ00000005 в 5 и т.д.
...
Рейтинг: 0 / 0
06.03.2012, 14:59
    #37693578
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
Бахрам, ну, если префикс известен и руками никто номера не ставит свои, тогда просто:
1) от строки номера отбрасываем префикс
2) оставшуюся подстроку преобразуем в число
...
Рейтинг: 0 / 0
06.03.2012, 15:17
    #37693621
Бахрам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
DmitriyZБахрам, ну, если префикс известен и руками никто номера не ставит свои, тогда просто:
1) от строки номера отбрасываем префикс
2) оставшуюся подстроку преобразуем в число
Так ведь этот префикс может, а может и не быть
...
Рейтинг: 0 / 0
06.03.2012, 15:34
    #37693665
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
Бахрам,
так ведь и 1С тут ни при чем - обычная обработка строк, начальный уровень программирования.
При такой структуре номера
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
к=стрДлина(номер);
пока к>0 цикл
  если найти("0123456789",прав(номер,к,1))=0 тогда прервать; иначе к=к-1; конецЕсли;
конецЦикла; 
если к=0 тогда 
  сообщить("нет здесь числа в конце строки!");
  НомерЧисло=0;
иначе 
  НомерЧисло=число(прав(номер,к+1));
конецЕсли;
...
Рейтинг: 0 / 0
06.03.2012, 17:03
    #37693921
Бахрам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
pailБахрам,
так ведь и 1С тут ни при чем - обычная обработка строк, начальный уровень программирования.
При такой структуре номера
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
к=стрДлина(номер);
пока к>0 цикл
  если найти("0123456789",прав(номер,к,1))=0 тогда прервать; иначе к=к-1; конецЕсли;
конецЦикла; 
если к=0 тогда 
  сообщить("нет здесь числа в конце строки!");
  НомерЧисло=0;
иначе 
  НомерЧисло=число(прав(номер,к+1));
конецЕсли;



Примерно так и сделал, просто думал есть какой нибудь метод получше.
...
Рейтинг: 0 / 0
06.03.2012, 17:23
    #37693950
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
ВЫБОР
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 1, 1) = "0"
ТОГДА ""
ИНАЧЕ ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 1, 2) + "-"
КОНЕЦ + ВЫБОР
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 7) = "0000000"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 11, 1)
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 6) = "000000"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 10, 2)
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 5) = "00000"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 9, 3)
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 4) = "0000"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 8, 4)
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 3) = "000"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 7, 5)
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 2) = "00"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 6, 6)
КОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 1) = "0"
ТОГДА ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 5, 7)
ИНАЧЕ ПОДСТРОКА(ТаблицаСчетов.Счет.Номер, 4, 8)
КОНЕЦ КАК Номер,
...
Рейтинг: 0 / 0
06.03.2012, 17:36
    #37693982
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
Программист 1с, у ТС 7.7 :)
...
Рейтинг: 0 / 0
06.03.2012, 18:19
    #37694079
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
номер документа
сорри "тис" не увидел.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / номер документа / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]