8.х Формат числа в СКД

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем 1chelp, 4 окт 2016.

  1. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Есть такая функция:
    Код:
    Функция ПолучитьОплатыПоКредитору(НачалоПериода,КонецПериода,Кредитор)
        Перем СхемаКомпоновки;
       
        СхемаКомпоновки = ПолучитьОбщийМакет("КУ_ОплатыПоКредитору");
    
        КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
        КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
    
        Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    
        Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
        Если Параметр <> Неопределено Тогда
            Параметр.Значение = НачалоПериода;
            Параметр.Использование = Истина;
        КонецЕсли;
       
        Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
        Если Параметр <> Неопределено Тогда
            Параметр.Значение = КонецПериода;
            Параметр.Использование = Истина;
        КонецЕсли;
       
        Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Кредитор"));
        Если Параметр <> Неопределено Тогда
            Параметр.Значение = Кредитор;
            Параметр.Использование = Истина;
        КонецЕсли;
    
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
        ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
    
        Результат = Новый ТаблицаЗначений;
    
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
        ПроцессорВывода.УстановитьОбъект(Результат);
        ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
        Возврат Результат;
                              
    КонецФункции
    
    в скд в Оформление настраиваю формат чисел ЧДЦ=2; ЧРД=.; ЧГ=0 но на результат это ни как не влияет, помогите пож разобраться
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не понял. Вы выводите результат компоновки в таблицу значений. Где и на какой результат должно повлиять оформление?
  3. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Да, вывожу результат в ТЗ, оформления должно повлиять на числа из ТЗ, они должны выглядеть 1234.12, сейчас 1,234.12
  4. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    А где имено вы настраиваете формат. у данной компановки?
    простоу вас идет закгрузка настроек по умолчанию.

    СхемаКомпоновки = ПолучитьОбщийМакет("КУ_ОплатыПоКредитору");

    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
    т.е те настройки что у компановки в конфигураторе по умолчанию стоят
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    непонятно... с чего бы это?
    может я чего-то не понимаю, вы как данные из ТЗ смотрите?
  6. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Формат настраиваю в макете КУ_ОплатыПоКредитору в вкладке Наборы данных в колонке Оформление
    конвертирую их в строку JSON
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    /vanga mode on
    Установлена неверная локализация ОС/конкретной БД 1С.
    /vanga mode off
  8. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Формат настраиваю в макете КУ_ОплатыПоКредитору в вкладке Наборы данных в колонке Оформление
  9. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Попробуйте сделать это не через колонку оформление, а через колоку Выражение представляния прописав там что то типа
    Формат(РасходныеНакладные.СуммаДок, "ЧДЦ=2")
    --- Объединение сообщений, 4 окт 2016 ---
    Ну и в компановке для этого поля тип значения пропишите прям жестко число и т.д
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вообще нечего не понимаю.
    1) Таблица значений каким образом сериализуется в json?
    2) Каким образом оформление в макете СКД должно повлиять на таблицу значений -> а потом на то что получается на выходе json?
  11. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Пробовал не помогает
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    Что значит "пробовал не помогает" в смысле локализации ОС/БД?
  13. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Давайте пока оставим JSON,
    Нет, пробовал формат в Выражение представляния, в настройках ОС сделал изменения, перезапустил ОС все равно тоже самое

    Вложения:

  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    Настройки локализации БД какие? Настройки локализации запуска клиента 1С какие?
  15. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Объясните пож где это смотреть
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Номад я допускаю что твое предположение где-то близко к истине, но есть НО.
    Насколько я понимаю формат чисел как таковой в json не формализован. Но. Число ведь должно быть числом насколько я понимаю, т.е. ну близко к каноническому представлению. Т.е. xxx.x. Ты хочешь сказать что 1С реализовали свое преобразование на пофиг, т.е. в зависимости от локали ОС? Как стороннее приложение должно понять что 1,256.8 - это число (если текущий формат вывода ОС так установлен)? Не могли же 1С так лажануться.

    Есть еще вариант - что в json оно сериализуется как строка, а не как число. Тогда да, формат такой объясним, и он может браться из настроек ОС/БД.

    В любом случае - при чем здесь настройки оформления СКД мне вообще не понятно.
    --- Объединение сообщений, 4 окт 2016 ---
    1chelp - результирующий json покажи.
  17. TopicStarter Overlay
    1chelp
    Offline

    1chelp

    Регистрация:
    29 янв 2016
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Все нашел Адмнинистрирование-> Региональные установки ИБ. Всем спасибо!
  18. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    эм.. в смысле оставим? я так понимаю вопрос исключительно в этом. Еще раз если я что-то понял из вопроса - настройки оформления СКД - вообще никак не помогут.
  19. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    717
    Баллы:
    204
    JSON в конечном итоге, т.е. передаваемые значения - строка :)
    --- Объединение сообщений, 4 окт 2016 ---
    Я так понимаю, формат чисел в JSON должен задаваться дополнительно, если не задан, то в том же формате, что и локализация в ОС/БД.
    Последнее редактирование: 4 окт 2016
  20. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    я понимаю что строка. Но в сам же формат встроено указание типа. Типа:
    "price": {
    "type": "number",
    "value": 0
    }

    если написать что
    "price": {
    "type": "number",
    "value": 1,267.5
    }
    то стороннее приложения я так думаю ругнется.

    Более того стороннее приложение ругнется я так думаю даже например на такое
    "price": 1'325,15

    а если передавать это
    "price": "1'325,15" - то смысл в такой сериализации? чтобы в приемнике сидеть корячиться и парсить строку?

    ну и вот
    Так я не зря спрашивал каким образом сериализуется. Это раз.
    И два, то что я писал выше, неужели 1С могли сделать сериализацию, опираясь на локальные настройки ОС/БД? Это как минимум не правильно.

Поделиться этой страницей