Формат даты в скд

Формат даты в скд

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. При использовании функции Формат в некоторых случаях следует использовать функцию НСтр при создании форматной строки (формат представления или редактирования дат, Булево значения и т.п.) . При этом форматная строка, задаваемая в свойствах метаданных (форм), подлежит локализации всегда, также, как синоним.

1.1. Форматирование дат

для вывода дат следует учитывать, что в различных странах приняты различные порядок следования и разделители для составных частей даты.

Например, одна и та же дата: 20.12.2012 – для России, 12/20/2012 – для США.

Поэтому вместо явного задания формата даты рекомендуется использовать локальный формат даты (ДЛФ).

В случаях, когда использовать локальный формат даты не получатся, и требуется задать произвольный формат (ДФ) или указать представление пустой даты (ДП) нужно применять функцию НСтр к форматной строке, чтобы при локализации оставалась возможность переопределить выводимый формат:

1.2. Форматирование числа

Следует применять функцию НСтр к форматной строке в случае, когда
• для числа задается нечисловое представление нулевого значения (ЧН) ;
• указан шаблон форматирования числа (ЧФ);
• переопределяется разделитель дробной части (ЧРД).

1.3. Форматирование Булево

Для вывода Булево значения пользователю всегда применяйте функцию НСтр к форматной строке.

1.4. Не следует переопределять поведение отображения локализации данных по умолчанию – формат отображения операционной системы. При использовании функции Формат следует избегать использовать параметр «L=».

2. При задании формата в полях ввода в формах и полях отчетов на базе СКД также рекомендуется локальный формат даты. Использовать другие форматы допустимо, если по сути решаемой задачи локальный формат не подходит – тогда форматная строка будет переводиться при переводе конфигурации.

3. При переопределении стандартных представлений полей в отчетах на базе СКД следует придерживаться тех же правил, что и в коде модулей. Например, неправильно:

Читайте также:  Как открыть файл ahk

"N " + ВОтветНаНомер + " от " + Формат ( ВОтветНаДата , "ДФ=dd.MM.yyyy" )

правильное выражение, по которому вычисляется представление поля:

4. В случае, когда требуется передача значения в машиночитаемом виде, вне зависимости от информационной системы и настроек локализации, применяемых в ней, вместо локализации значения следует выполнить сериализацию. Локализацию дат нужно использовать всегда, когда это возможно. В тех случаях, когда это технически нецелесообразно, допускается отказываться от локализации. Например, при генерации файла формата XML, поддерживаемого банк-клиентом системы, специфичной для России.

В общем случае для сериализации рекомендуется использовать метод XMLСтрока .

Для десериализации XMLЗначение . Или метод ПривестиЗначение объекта ОписаниеТипов .

4.1. Сериализация дат

При разработке собственных форматов передачи данных между различными системами рекомендуется сериализовать дату в формате ISO: "ГГГГ-ММ-ДДTЧЧ:ММ:ССZ", например "2009-02-15T00:00:00Z" (соответствует типу dateTime схемы XML см. http://www.w3.org/TR/xmlschema-2/#dateTime).

Строка = Формат ( Дата , "ДФ=гггг-ММ-ддTЧЧ:мм:сс" ) ; // Сериализация

4.2. Сериализация числа

Строка = XMLСтрока ( Число ) ; // Сериализация
Число = XMLЗначение ( Тип ( "Число" ) , Строка ) ; // Десериализация

Задача: вывести на форму отчета (на СКД) поле стандартного периода.

От предыдущего “программиста” достались мне пару отчетов (система компоновки данных), где ужасно не удобно на форме приходилось устанавливать отбор по периоду с помощью двух реквизитов “НачалоПериода” и “КонецПериода”:

Мне показалось это издевательством над пользователями – ну может быть он реально их недолюбливал и специально усложнял им жизнь.

За пару минут справляем на более рабочий вариант:

“СтандартныйПериод” в параметрах макета СКД.

  • Добавляем параметр “СтандартныйПериод” – тип “СтандартныйПериод”;
  • Отключаем у него ограничение доступности;
  • В колонке “Выражение” у параметров “НачалоПериода” и “КонецПериода” указываем соответственно “&СтандартныйПериод.ДатаНачала” и “&СтандартныйПериод.ДатаОкончания”;
  • Устанавливаем у этих параметров ограничение доступности.

В настройках выводим новый параметр на форму:

Получаем удобный параметр на форме и довольных пользователей:

Бонус! Видео пример вышеописанных действий:

Если нужно вывести в отчете типа Январь 2015 г., то в Формате пишем ДФ=’ММММ гггг ”г.”’

Читайте также:  Call of duty хронология выхода игр

// Примеры форматирования дат
А = Формат(‘20020820153309’, "ДФ=""дд ММММ гггг ‘г.’ ЧЧ:мм:сс""");
// А = "20 августа 2002 г. 15:33:09"
А = Формат(‘20020820153309’, "ДФ=""дд/ММ-гггг""");
// А = "20/08-2002"
А = Формат(‘20020820153309’, "ДЛФ=ДД");
// А = "20 августа 2002 г.";
А = Формат(‘20020820153309’, "ДЛФ=Д");
// А = "20.08.2002";
А = Формат(‘20020820153309’, "ДЛФ=В");
// А = "15:33:09";

Формат, функция форматирования значений

Формат, функция форматирования значений
Код 1C v 8.х
//Функция формирует удобное для чтения представление значений.
// Примеры форматирования чисел
ЗначФормат = Формат(123456.789, "ЧЦ=10; ЧДЦ=2"); // ЗначФормат = "123 456,79"
ЗначФормат = Формат(123456.789, "ЧГ=0; ЧДЦ=2"); // ЗначФормат = "123456,79"
ЗначФормат = Формат(123456.789, "ЧРД=’-‘"); // ЗначФормат = "123 456-789"
ЗначФормат = Формат(-123456.789, "ЧО=0"); // ЗначФормат = "(123 456,789)";
ЗначФормат = Формат(13, "ЧЦ=5; ЧВН=; ЧГ=0"); // ЗначФормат = "00013";
//В 8 версии для вывовода чисел прописью используется ЧислоПрописью
ЧислоПрописью(Сумма, "L=ru_RU", Валюта.ПараметрыПрописиНаРусском)
ЧислоПрописью(1457.25,"L=en_US","dollar, dollars, cent, cents, 2"); // One thousand four hundreds fifty seven dollars 25 cents.
ЧислоПрописью(Сумма,"Рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2");
//Пример представления Числа в виде Даты
ЗначФормат = Формат(25021949, "ЧЦ=8; ЧРГ=.; ЧВН=; ЧГ=4,2,0"); // ЗначФормат = "25.02.1949"
// Примеры форматирования дат
ЗначФормат = Формат(‘20020820153309’, "ДФ=""дд ММММ гггг ‘г.’ ЧЧ:мм:сс"""); // ЗначФормат = "20 августа 2002 г. 15:33:09"
ЗначФормат = Формат(‘20020820153309’, "ДФ=""дд/ММ-гггг"""); // ЗначФормат = "20/08-2002"
ЗначФормат = Формат(‘20020820153309’, "ДФ=’q ""кв."" yyyy’"); // ЗначФормат = "3 кв. 2002";
ЗначФормат = Формат(‘20020820153309’, "ДФ=’""Итого"" q ""квартал""’") ; // ЗначФормат = "Итого 3 квартал";
ЗначФормат = Формат(‘20020820153309’, "ДФ=’ММММ гггг’"); // ЗначФормат = "Август 2002 г.";
ЗначФормат = Формат(‘20020820153309’, "ДЛФ=ДД"); // ЗначФормат = "20 августа 2002 г.";
ЗначФормат = Формат(‘20020820153309’, "ДЛФ=Д"); // ЗначФормат = "20.08.2002";
ЗначФормат = Формат(‘20020820153309’, "ДЛФ=В"); // ЗначФормат = "15:33:09";
ЗначФормат = Формат(‘20020820153309’, "ДФ=HHmmssyyyyMMdd"); // ЗначФормат = "15330920020820";
ЗначФормат = Формат(‘20020820153309’, "ДФ=HH:mm:ss yyyy MM dd"); // Время 24 часа – ЗначФормат = "15:33:09 2002 08 20";
ЗначФормат = Формат(‘20020820153309’, "ДФ=hh:mm:ss yyyy MM dd"); // Время 12 часов – ЗначФормат = "03:33:09 2002 08 20";
Формат(Дата(2009, 1, 1), "ДЛФ=DD") + ", " + ОпределитьДеньНедели(ДеньНедели(Дата(2009, 1, 1))); // 1 января 2009 г., Четверг (Смотрите в "Работаем с Датами" Функция Определить день недели)
Формат(Дата(2009, 1, 1), "ДФ=ММММ") + ", " + Формат(Дата(2009, 1, 1), "ДФ=yyyy") + " г."; // Январь, 2009 г.
Формат(НачалоНедели(Дата(2009, 1, 1)), "ДФ=’dd MMMM yyyy’") + " г. – " + Формат(КонецНедели(Дата(2009, 1, 1)), "ДФ=’dd MMMM yyyy’") + " г."; // 29 декабря 2008 г. – 04 января 2009 г.
// ДЕКАДУ нельзя вывести через формат, но можно так:
Строка(Цел(День(Дата(‘20020820153309’)) / 10) + 1)+" декада" = 2 декада
// Примеры форматирования логических выражений
ЗначФормат = Формат(Истина, "БЛ=Отсутствует; БИ=Доступен"); // ЗначФормат = "Доступен";
ЗначФормат = Формат(Ложь, "БЛ=Нет; БИ=Да"); // ЗначФормат = "Нет";
Код 1C v 7.x
// Символы, определяющие тип форматируемых данных:
// Ч — число (Англоязычный синоним: N)
ЗначФормат = Формат(123.15, "Ч(0)10.2") // 0000123.15
Долг = Строка(Формат(Долг(), "Ч12.2")) + " " + Валюта.Сокр_назв;
// Возможен вывод денежных величин и просто целых чисел прописью. В этом случае форматная строка должна иметь вид "ЧПДС".
// Наличие буквы "П" (в английском варианте для аналогичной цели используется буква "S") определяет сам факт вывода числа прописью.
// Символ "Д" (в английском варианте — "M") обозначает вывод денежной величины и является необязательным.
// Символ "С" (в английском варианте — "H") также необязателен и означает вывод с копейками.
ИтогоСуммаПрописью = Формат(Итог("Сумма"), "ЧПДС");
КоличествоНаименованийПрописью = Формат(КоличествоСтрок(), "ЧП");
// С — строка (Англоязычный синоним: S)
// "Сn", где n — положительное целое число определяющее ширину поля, в котором будет размещаться строка.
// В случае, если ширина поля превосходит длину строки сформатированная строка будет дополнена справа пробелами, если же ширина поля меньше длины строки — строка будет усечена справа.
// Д — дата (Англоязычный синоним: D)
ДатаДокумента = Формат(Док.ДатаДок,"Д ДД.ММ.ГГ"); //12.03.08
ДатаДокумента = Формат("01.01.1999", "Д(0)ДДММММГГГГ"); // 01 Января 1999 г.

Ссылка на основную публикацию
Усики для автомобильной антенны
Убираясь в бардачке я наткнулся на ремкомплект антенных усиков — лежит наверно уже полгода, всё наклеить не могу, то забываю,...
Телефонный шлюз что это
VoIP-шлюз — это межсетевой шлюз, предназначенный для перевода трафика между сетями различных типов. VoIP-шлюзы можно разделить на многоканальные и одноканальные:...
Телефонная клавиатура на компьютере
Виртуальная клавиатура выручит Вас, когда выйдет из строя основное физическое устройство ввода, полностью или частично ( поломается несколько клавиш )....
Усиление сигнала интернета на даче своими руками
С наступление дачного сезона, я озадачился установкой хорошего скоростного интернет на даче, у нас голосовая связь работает без проблем, а...
Adblock detector