Имя: Пароль:
1C
 
Преобразовать число до 2 -х знаков
, , ,
0 Стажер_1С
 
11.07.18
13:14
Добрый день! Вопрос в след-ем.
У меня есть число 555
Мне надо,чтобы при выводе выходило 555,00
Через Формат(555,"ЧДЦ=2; ЧН=Ноль") не  предлагать,так как переменная становится строкой!А мне надо чтобы было число
Если сделать Число(Формат(555,"ЧДЦ=2; ЧН=Ноль")), то нули стираются
кто знает как сделать?
1 NikVars
 
11.07.18
13:15
(0) Теперь скажи, в каком месте ты перепутал значение с отображением значения.
2 Mihasya
 
11.07.18
13:16
В ячейке табличного поля выставить формат, не?
3 assasu
 
11.07.18
13:18
555 = 555,00. вопрос пустой
4 ololoraise
 
11.07.18
13:18
(0) Число 555 и 555,00 равны. Строка "555" и "555,00" не равны.
5 NikVars
 
11.07.18
13:20
Еще не рассмотрен вариант "555.00".
6 Мимохожий Однако
 
11.07.18
13:21
(0) Стесняюсь спросить, в каком месте ты пытаешься это сделать? В реквизите объекта или реквизите формы?
7 NikVars
 
11.07.18
13:21
В файле, в печатной форме...
8 Мимохожий Однако
 
11.07.18
13:22
(7) Не подсказывай ))
9 Стажер_1С
 
11.07.18
13:25
Сейчас объясню. Я заполняю запрос таблицу,которая на форме.При выводе на форму,я поставила формат,и он показывает 555,00. Но потом я снова работаю я этим числом. То есть беру значения из таблицы и записываю его в пакет xdto.Проблема в том,что образе заполнения понимает только число с точностью до 2-х знаков. У меня реквизит выводиться как надо на форму.
10 _Дайвер_
 
11.07.18
13:28
(9) А тип реквизита на форме у тебя какой? Вангую что строка...
11 Мимохожий Однако
 
11.07.18
13:28
(9) А теперь расшифруй слова "Таблица, которая на форме". И самое главное- выкладывай сюда код. Возможно, эта промежуточная таблица не нужна вообще.
12 Стажер_1С
 
11.07.18
13:29
Да на форме число!! Нормально у меня все на форме
вот при изображения,отладкой остановка, когда я уже работаю с числом, после записывания его на форму
https://ibb.co/bv8aHT
13 Мимохожий Однако
 
11.07.18
13:31
(12) На вопросы ответь. Кричать не надо, девушка.
14 catena
 
11.07.18
13:31
(12)Пиши в хдто форматом.
15 Стажер_1С
 
11.07.18
13:32
Суть задача. Я заполняю таблицу на форме.Внешняя обработка.Форма,как форма. Таблица нужна,так как пользователь смотрит данные и если надо то редактирует. Далее при нажатие на кнопку загрузить, я пробегаюсь по каждой строке таблицы и записываю значения вв пакеты xdto.таким образом формируя файл xml для выгрузки в пенсионку
16 Мандалай
 
11.07.18
13:33
Загони в отладчик, да экспериментируй в удовольствие.
17 Стажер_1С
 
11.07.18
13:33
Извините,не кричу я)
У меня есть формат,и там число с точностью до двух.Проблема в том,что есть число как 555, и получается что такое число не соответствует формату
18 Стажер_1С
 
11.07.18
13:35
Да я не знаю,как  экспериментировать.Пробывала сначала формат(..) а потом снова в число,но нули стираются.Если на форме он и отражает нули,то в конф при отладке он автоматом убирает нули
19 Мимохожий Однако
 
11.07.18
13:35
(17) Помести эту таблицу в табличную часть обработки и при корректировке работай с ней. А число 555 всегда останется таким же, даже, если нарисуешь десяток нулей после запятой. Проблем в момент записи в пакет
20 catena
 
11.07.18
13:35
(18)Не надо в число. При формировании хмл пиши Формат и все. И усвой разницу между значением и отображением.
21 Мимохожий Однако
 
11.07.18
13:36
*Проблема в момент записи . Код показывай, не стесняйся. Все уже здесь
22 Стажер_1С
 
11.07.18
13:37
ок
24 Стажер_1С
 
11.07.18
13:38
ошибка в этой строке:
    tFactAssignment_XDTO.assignment_info.monetary_form.amount =ТекСтр.Сумма;
25 Стажер_1С
 
11.07.18
13:39
текстр.сумма должна быть число в двумя знаками
26 catena
 
11.07.18
13:40
(24)Вот в этой строке и пиши Формат
27 Мимохожий Однако
 
11.07.18
13:40
=Формат(ТекСтр.Сумма,... пробовала?
28 Стажер_1С
 
11.07.18
13:41
нельзя так,я же писала, формат() дает значение с типом строка. А мне надо чтобы было число, иначе не будет записи.только число
29 Стажер_1С
 
11.07.18
13:43
хоть кто-нибудь,пожалуйста,я уже не знаю как.я неделю разбиралась как связать 8 пакетов между собой....
30 Стажер_1С
 
11.07.18
13:44
А если костыль? После записи xml,прочитать его и найти все цифры которые не имеют 2 -х знаков и записать как надо?я уж делаю так с одни пространством?
31 Мимохожий Однако
 
11.07.18
13:44
Вот эти строки мне нравятся
..
НовТабл = Новый ТаблицаЗначений;
НовТабл = Таблица.Выгрузить().Скопировать();
32 catena
 
11.07.18
13:47
(28)Еще раз. Число - это тип, ты можешь даже жестко типизировать количество знаков, но это никак не повлияет на отображение, это повлияет на твою возможность записать больше знаков, чем в типизации.

Отображение - это то, как оно выглядит глазками. И иногда с самим типом тоже не связано. Может отображаться 2 знака, а на самом деле там их много.

А теперь по буквам копируй, что у тебя происходит, если написать:
tFactAssignment_XDTO.assignment_info.monetary_form.amount =Формат(ТекСтр.Сумма,"ЧДЦ=2");
33 hhhh
 
11.07.18
13:47
(29) проверь в самом объекте tFactAssignment_XDTO. Точно там у тебя жестко задано длина дробной части = 2?
34 Стажер_1С
 
11.07.18
13:48
Да там так надо было,у них косяк в базе с фио большой,пришлось таким путем обойти.
35 Стажер_1С
 
11.07.18
13:48
Сейчас все пришлю
36 Стажер_1С
 
11.07.18
13:50
Ошибка:
{ВнешняяОбработка.Риц_ВыгрузкаЕГИССО2.Форма.Форма(225)}: Ошибка при установке значения атрибута контекста (amount)
                tFactAssignment_XDTO.assignment_info.monetary_form.amount = Формат(ТекСтр.Сумма,"ЧДЦ=2");
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: '1 398,94' не соответствует простому типу: {urn://egisso-ru/types/basic/1.0.4}tMoney
Значение не соответствует образцу
37 Garykom
 
гуру
11.07.18
13:50
А потом будут удивляться "А что это мне пенсия неправильно посчитана"
38 catena
 
11.07.18
13:51
(36)В форматной строке добавь группировку.
39 Garykom
 
гуру
11.07.18
13:51
"XMLСтрока" желательно использовать при записи в XML значений
40 Стажер_1С
 
11.07.18
13:51
По поводу дробной части,да тип значений имеет четкий образец: [0-9]+[.,]\d{2}
41 catena
 
11.07.18
13:51
Ну и (33)+, проверить тип в пакете не помешает.
42 catena
 
11.07.18
13:52
(40)пф... Группировку добавь в форматную строку.
43 Стажер_1С
 
11.07.18
13:53
Так а как добавить группировка?)
44 hhhh
 
11.07.18
13:53
(40) тип по-другому пишется в xdto. integer, real и так далее. А вы какой-то формат строк пишете.
45 Стажер_1С
 
11.07.18
13:54
Тип в пакете число,я же прислала образец
46 catena
 
11.07.18
13:54
(43) пкм на кавычках в формате - открыть конструктор форматной строки
47 Стажер_1С
 
11.07.18
13:55
Базовый тип простая строка,но образец ограничивает и заставляет писать число,это xdto и не один пакет в нем
48 Стажер_1С
 
11.07.18
13:56
там три выбора группировки,какую мне надо?
49 novichok79
 
11.07.18
13:57
(0) окр(твоечисло, 2)?
50 hhhh
 
11.07.18
13:57
(45) не просто число должно быть. ЕЕсли просто число, , тогда жестко 555 должно быть, всё правильно тогда.
51 catena
 
11.07.18
13:59
(48)тебе надо убрать неращрывный пробел между разрядами, ну таи же даже пример резкльтата показан. Просто галочку на группировке поставь
52 catena
 
11.07.18
13:59
"Базовый тип простая строка,"

А так долго сопротивлялась
53 Стажер_1С
 
11.07.18
14:00
СПАСИТЕЛЬ МОЙ!!!!!ТЫ ВЕЛИКОЛЕПЕН! ПОМОГЛО
Формат(ТекСтр.Сумма,"ЧДЦ=2; ЧН=Ноль; ЧГ=0");
54 Стажер_1С
 
11.07.18
14:01
СПАСИБО ВСЕМ,ВЫ ВСЕ ПРОСТО ЧУДО!надо почитать про группировку,никогда не использовала
55 _Дайвер_
 
11.07.18
14:03
(45) Вот Формат(ТекСтр.Сумма , "ЧДЦ=2; ЧГ=0");
56 hhhh
 
11.07.18
14:03
(53) всё ж таки Катена - это не спаситель. А спасительница. Вам с русским языком тоже надо разобраться
57 _Дайвер_
 
11.07.18
14:05
У меня  тоже был такой момент при загрузке xml файла из 1С, число не читал падла, а передавал именно число, даже тему поднимал вроде как для этого ))) Все дело было в группировке числа! Блин)))
58 _Дайвер_
 
11.07.18
14:08
(57) Хотя нет,тему не создавал, сам возился с этим целый рабочий день
59 Стажер_1С
 
11.07.18
14:14
Я сама бы не дошла честно,если я неделю разбиралась как 8 пакетом между собой связать....Спасибо еще раз.
P.S. а рус-1 мое слабое место, когда быстро пишу)
Программист всегда исправляет последнюю ошибку.