1С скд дата без времени

Использование дат

Для многих отчетов необходимо дать возможность пользователю указывать период, за который необходимо получить отчет. Часто данные периоды требуется указывать не с точностью до секунды, а с точностью до дня. Для того чтобы пользователь имел возможность ввести в параметрах данных дату без времени, достаточно указать в описании параметра данных тип параметра Дата с указанием состава даты "Дата".

После этого пользователь сможет вводить в параметры данных только значения дат, без времени.

Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .

ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты

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

Использование стандартных периодов

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

Для того чтобы задействовать данную возможность следует добавить в схему компоновки данных параметр типа СтандартныйПериод , а в параметрах – датах указать соответствующие выражения и запретить их редактирование пользователем.

После такой доработки схемы компоновки пользователю будет доступен для редактирования только параметр Период , значения которого при помощи выражений будут помещены в параметры ПериодНачало и ПериодКонец .

Пользователь будет редактировать параметр в следующем виде:

Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 01.01.2019 , а в качестве значения параметра ПериодКонец будет использоваться дата 31.01.2019 .

Реальные значения дат для стандартного периода определяются при исполнении отчета. Таким образом, если выполнять отчет с установленным периодом Этот месяц в январе 2020-го года, то отчет будет исполняться с 01.01.2020 по 31.01.2020 , а если выполнять в феврале 2020-го года, то с 01.02.2020 по 29.02.2020

Читайте также:  Установка blackarch на жесткий диск

Заметим, что даты начала и конца стандартного периода также содержат и время. Причем, начальная дата имеет время 00:00:00 , а конечная дата 23:59:59 , таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА .

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

// Примеры форматирования дат
А = Формат(‘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 г.

Читайте также:  1С картинка в таблице значений

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

А) Как дату для дальнейшего использования

В этом случае лучше всего воспользоваться функцией НачалоМинуты(), например, так:

Б) Как строку для вывода на печать

Здесь мы можем либо привести значение, полученное на предыдущем шаге, к строке:

Либо воспользоваться функцией Формат() и в одно действие получить нужное представление даты:

Оцените статью
Добавить комментарий

Adblock detector