Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Преобразование строки "110" в число "110"

Преобразование строки "110" в число "110"
Я
   oqjawa
 
26.11.18 - 10:30
Здравствуйте,
есть запрос

ВЫБРАТЬ
    Сотрудники.Наименование КАК Наименование,
    Сотрудники.Реквизит1 КАК Реквизит1
ИЗ
    Справочник.Сотрудники КАК Сотрудники

/////////////////////////

Сотрудники.Реквизит1 = Строка, но в этот реквизит заносят только цифры, мне необходимо сделать сортировку по полю Реквизит1 но чтобы сортировка была как у числа а не как у строки.. 
Каким образом возможно это реализовать?
 
 
   Вафель
 
1 - 26.11.18 - 10:33
изменить у реквизита
   Волшебник
 
2 - 26.11.18 - 10:33
заведи числовой Реквизит2
   Волшебник
 
3 - 26.11.18 - 10:34
Все числа приведи к одной длине, например, "1" к "000001"
   oqjawa
 
4 - 26.11.18 - 10:35
Немогу, конфигурация типовая, добавить доп реквизит можно не внося изменения но придется данные перекидывать с одного реквизита на другой, а это тоже работа
   oqjawa
 
5 - 26.11.18 - 10:36
про числа интересно, а возможно это сделать прям в запросе?
   Вафель
 
6 - 26.11.18 - 10:36
если это доп реквизит, то новый можно не заводить, а просто сменить тип и перезаписать данные
   oqjawa
 
7 - 26.11.18 - 10:37
это не доп реквизит
   Вафель
 
8 - 26.11.18 - 10:38
тогда нули дописывай
   catena
 
9 - 26.11.18 - 10:38
(5)Можно. Но тебе не понравится.
   oqjawa
 
10 - 26.11.18 - 10:39
(9) и почему же мне не понравится?
 
 Рекламное место пустует
   oqjawa
 
11 - 26.11.18 - 10:40
(8) вот это как раз мне и не понравится))
   impulse9
 
12 - 26.11.18 - 10:41
   lodger
 
13 - 26.11.18 - 10:42
согласно СП в запросе нет преобразования типов. есть только приведение, но это не ваш случай.
   catena
 
14 - 26.11.18 - 10:43
(10)Расскажи потом свои впечатления от (12)
   oqjawa
 
15 - 26.11.18 - 10:43
(12) спасибо, что-то аппетит пропал, я видел этот пост, и к моему сожалению мало что переживал там
   oqjawa
 
16 - 26.11.18 - 10:43
а вам как?
   Aleksey
 
17 - 26.11.18 - 10:44
(13) т.е. выразить как число не поможет?
   catena
 
18 - 26.11.18 - 10:44
(16)А мы не сортируем строки как числа))
   oqjawa
 
19 - 26.11.18 - 10:46
(10) и это преобразование строк в таблицу, но хороший вариант (3) может кто знает куда идти))
   oqjawa
 
20 - 26.11.18 - 10:48
(16), хорошо я тоже не хочу сортировать строки как числа,
но что мне делать если разработчики используют строковый тип данных, как мне на печать вывести данные по порядку, чтобы было
1
5
10
11
110
120


а не
1
5
10
110
11
120
   oqjawa
 
21 - 26.11.18 - 10:49
как это называется, вроде "Лидирующие нули"?
   catena
 
22 - 26.11.18 - 10:49
(20)Дописать лидирующие нули
   иубиповец
 
23 - 26.11.18 - 10:49
Или 3, или выгрузить в тз, создать колонку типа число, пройтись по всем элементам в новую колонку внести число, тз как параметр передать в запрос обратно и с ней дальше работать.
   catena
 
24 - 26.11.18 - 10:49
(19)В смысле, код дать? Еще и пальцы за тебя загнуть?

к = Прав("00000000000000"+к,ДлинаРеквизита)
   lodger
 
25 - 26.11.18 - 10:49
(20) сортировать постобработкой. после запроса.
   lodger
 
26 - 26.11.18 - 10:52
или как в (23), делать многоэтапный запрос.
1) сформировать запрос, дополнить полем с 0, выполнить запрос.
2) выгрузить в ТЗ, заполнить нолики числами, сортировать ТЗ
3) сформировать запрос с использованием ТЗ. работать дальше.
   Конструктор1С
 
27 - 26.11.18 - 11:02
ВЫРАЗИТЬ(Сотрудники.Реквизит1 КАК ЧИСЛО(10,0))
не?
   oqjawa
 
28 - 26.11.18 - 11:06
(27) Ошибка - не совместимые типы "ВЫРАЗИТЬ", нельзя выражать строку числом, типы должны быть одинаковые как я понял
   catena
 
29 - 26.11.18 - 11:11
(27)У нас тут, конечно, сплошные тролли, но не на столько же))
   Мандалай
 
30 - 26.11.18 - 11:22
Подстрока может помочь, но только если ты знаешь итоговую длину строки заранее.
   МихаилМ
 
31 - 26.11.18 - 12:31
(0)
разбейте Вашу задачу на подзадачи
1) "узнать длину строки в запросе" - поиском по форуму
+ "убрать лидирующие нули в запросе"

2) Подстрока("000000000000000000000000"+Реквизит1,24+ДлинаСтрокиБезЛидирующихНулей-ДлинаРеквизита ) 

естественно "000000000000000000000000" и 24 и ДлинаРеквизита  нужно заменить в тексте запроса на ресчетные
   Fragster
 
32 - 26.11.18 - 12:37
уже (4) бы сделал


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует