|
Преобразовать строку в число Запрос 1С | ☑ | ||
---|---|---|---|---|
0
Gossar1C
30.04.13
✎
15:05
|
Здравствуйте. Тема может быть бабабаян, но можно ли как то в СКД преобразовать строковое поле в число?
|
|||
1
eklmn
гуру
30.04.13
✎
15:07
|
||||
2
Волшебник
30.04.13
✎
15:07
|
(0) Нельзя
|
|||
3
Gossar1C
30.04.13
✎
15:08
|
Просто есть строковое поле ЗаказКлиента.ПроцентОтПрайса и содержит он только дробное числовое значение, но под типом строка, а нужно это все в отчете посчитать...
|
|||
4
Волшебник
30.04.13
✎
15:08
|
(3) ВЫРАЗИТЬ(Поле КАК Число(15,3))
|
|||
5
ЧашкаЧая
30.04.13
✎
15:08
|
В СКД можно вызвать функцию общего модуля.
|
|||
6
ThreeTONE
30.04.13
✎
15:09
|
выбор когда поле = "1" тогда 1
когда поле = "2" тогда 2 когда поле = "3" тогда 3 ... |
|||
7
drcrasher
30.04.13
✎
15:09
|
(1) ну зачем, если есть миста?
(4) точно? оно вроде как для полей одного типа |
|||
8
drcrasher
30.04.13
✎
15:10
|
(6) бггг )
а как будет выглядеть полная конструкция для условия "дробное числовое значение, но под типом строка"? |
|||
9
Птица
30.04.13
✎
15:10
|
интересно, кто же догадался процент хранить в строке?..
|
|||
10
Волшебник
30.04.13
✎
15:12
|
(3) создай новое поле типа число, перегони туда данные обработкой, используй его в запросе
|
|||
11
Gossar1C
30.04.13
✎
15:12
|
(9) предыдущий одинэснег -_-
|
|||
12
Gossar1C
30.04.13
✎
15:12
|
(10) да как вариант, спасибо)
|
|||
13
drongo-god
30.04.13
✎
15:12
|
(4) думаю не получится.
не умеют запросы в 1с преобразовывать типы |
|||
14
Aprobator
30.04.13
✎
15:13
|
(10) а если док в закрытом периоде?
|
|||
15
bahus
30.04.13
✎
15:13
|
Можно с использованием функции из общего модуля. В вычисляемых полях добавляешь поле и пишешь что-то вроде ОбщегоНазначения.ПреобразоватьСтрокуВЧисло(Строка)
|
|||
16
Волшебник
30.04.13
✎
15:13
|
(14) Объект.ОбменДанными.Загрузка = Истина
|
|||
17
MSII
30.04.13
✎
15:14
|
А вообще взять и вынести в свойство/доп.реквизит. И документы перезаписывать не нужно.
|
|||
18
Aprobator
30.04.13
✎
15:16
|
(16) я не про то. Остатки могут съехать и т.п..
|
|||
19
Волшебник
30.04.13
✎
15:17
|
(0) Измени тип этого поля на составной, в список типов добавь число. Все данные обработай, преврати в числа и запиши. Затем строку убери из списка типов.
|
|||
20
Волшебник
30.04.13
✎
15:17
|
(18) От простой записи документа остатки не поплывут. Мы же без проведения
|
|||
21
Gossar1C
30.04.13
✎
15:18
|
(15) спасибо, попробую найти эту функцию
|
|||
22
Волшебник
30.04.13
✎
15:19
|
(21)
Функция ПреобразоватьСтрокуВЧисло(Строка) Возврат Число(Строка); КонецФункции |
|||
23
Aprobator
30.04.13
✎
15:20
|
(20) а млин, все еще 7 кой местами живу )
|
|||
24
Gossar1C
30.04.13
✎
15:20
|
(22) а в модуле объекта разместить если? с экспортом или надо в общий модуль?
|
|||
25
Волшебник
30.04.13
✎
15:21
|
(24) надо в общий модуль
|
|||
26
Gossar1C
30.04.13
✎
15:25
|
(25) хм преобразовывать не хочет, может потому что дробная часть есть? За помощь спасибо, попробую сам додумать)
|
|||
27
Волшебник
30.04.13
✎
15:28
|
(26) разделитель целой и дробной части какой? должна быть точка.
удали из строки все пробелы, включая неразрывные Функция ПреобразоватьСтрокуВЧисло(Строка) Строка = СокрЛП(Строка); Строка = СтрЗаменить(Символы.НПП,""); Строка = СтрЗаменить(",","."); Возврат Число(Строка); КонецФункции |
|||
28
Птица
30.04.13
✎
15:29
|
(22) + Экспорт
|
|||
29
Maxus43
30.04.13
✎
15:30
|
Сообщить(Число(" 25,6"));
Сообщить(Число("25.6 ")); всё работает, скорее дело в левых символах, типа НПП. сам разделитель неважен |
|||
30
bahus
30.04.13
✎
15:31
|
Если отчет программно формируется - нужно в инициализации построителя поставить истину последним параметром:
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,ДанныеРасшифровки, Истина); |
|||
31
bahus
30.04.13
✎
15:33
|
*..инициализации процессора компановки..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |