Перейти к содержимому

Как ввести дату в запросе 1с

  • автор:

Как ввести дату в запросе 1с

можно ли задать дату в запросе не параметром а непосредственно в формате ‘03.08.2012 11:30:00’? важно отобрать с точностью до секунды и не учитывая параметры.

ДАТАВРЕМЯ(2012,01,01)
только накуа

Параметром еще проще

Выбрать
.
&ДатаПараметр КАК ДатаМоя

(3) важно же

(2) а время как установить?
(3) есть записи регистра с разностью во времени по ним идет печать а отчет на скд не воспринимает время в дате, по этому решил править в запросе, вот и узнаю как в запросе задать дату время

>>а отчет на скд не воспринимает время в дате

(7) ну два параметра даты там, а время некуда вводить
(8)Состав даты -Дата время
(9) так и стоит
но в поле только дата ((((
как время задать не пойму((( если (9) учтено
ДАТАВРЕМЯ(2012,12,21,13,14,15) нет?
(13) в запросе прям? счас попробую
Честно говоря, это странный запрос, в котором зашита дата. Какая-бы то ни была.
(13) дата и время в обратном порядке?
(15) да для одноразового пользования, . критическая ситуация
Дата в обратном, время прямо
ДАТАВРЕМЯ(Год,Месяц,Число,Час,Минута,Секунда)

Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута, секунда. Последние три указывать необязательно.

Максимальная дата которую возможно задать при помощи литерала ДАТАВРЕМЯ – 31.12.3999 23:59:59.

В запрос могут передаваться параметры (см. описание объекта Запрос). Значения параметров могут использоваться в выражениях языка запросов, для этого необходимо указать символ “&” и после него .

Текущая дата в запросе

В данной статье будет рассмотрено определение текущей даты в запросах в 1С 8.3, а именно: сделан обзор на общее понятие и организацию даты в запросах 1С 8.3, осуществлена проверка на пустую дату в запросе с примером, определено, как прописывать любую произвольную дату в языке запросов и рассмотрен пример вызова текущей даты в запросе 1С.
При помощи запросов в системе 1С 8.3 можно осуществить и провести почти любое действие или процедуру для получения информационных данных внутри платформы 1С. Тип «Дата» является одним из самых распространённых информационных типов.
Стоит отметить, что в системе 1С можно выполнять сортировку по датам и времени, при этом сортировка должна быть кратна секунде.
Ещё стоит знать и отличать, что временной момент в какой-либо документации не одно и то же с датой. Например, если есть документация с различием в секунду, то по дате сортировка по дате и времени не будет выполняться корректно, в этом случае как раз необходимо воспользоваться временным моментом.
Отображение даты происходит согласно настройкам в операционной системе в компьютере.

2. Пустая дата в запросах 1С

Для начала, сделаем проверку значения по пустой дате в запросе. Как пример, пусть существуют в справочнике некоторые счета от банка, и нужно сделать выборку с теми счетами, которые не были закрыты. Поможет в определении того, что счёт не был закрыт, значение пустой даты, которое присвоено полю «ДатаЗакрытия». В этом случае запрос с проверкой на пустую дату будет выглядеть следующим образом:

Рис. 1 Проверка на пустую дату в запросе в 1С

3. Любая дата в запросе в 1С 8.3

Рассмотрим следующую функцию, в которой можно задавать любую дату для запроса в 1С 8.3 – функцию «ДатаВремя». Допустим, необходимо отобрать всю возможную документацию с наименованием «Счёт на оплату покупателю» за февраль. В таком случае текст запроса будет выглядеть так:

Рис. 2 Пример использования функции ДатаВремя

4. Текущая дата в 1С

Рассмотрим случай, когда необходимо получить текущую дату внутри запроса. Аналогов метода «ТекущаяДата()» для запросов в системе 1С нет, так что необходимо будет передать значение текущей даты в 1С через параметр в запрос, как показано в примере на скриншоте далее:

Рис. 3 Передать значение текущей даты в 1С через параметр в запрос

5. Примеры различных действий с датой в запросе 1С 8.3

Далее будут представлены различные иные манипуляции с датой в системе 1С: Рассмотрим, как будет выглядеть полученное посредствам запроса определение начала нынешнего месяца:
Рис. 4 Выбор начала месяца с датой в запросе 1С 8.3
Конец года, можно определить при помощи следующей строчки в запросе:
Рис. 5 Конец года – дата в запросе 1С 8.3
Далее представлено получение полудня в текущей дате внутри запроса:
Рис. 6 Полдень текущей даты в запросе в 1С
Также бывают ситуации, когда нужно получить только дату без учёта точного времени. В этом случае поможет следующая строка для запроса:
Рис. 7 Только дата в запросе 1С 8.3
Иногда необходимо, чтобы дата служила константой внутри запроса, тогда воспользуемся следующей операцией:
Рис. 8 Дата в запросе 1С 8.3 как константа
Последнее действие – это задание максимально точной даты, то есть точность до секунды, это действие может реализовать следующий запрос:
Рис. 9 Точная дата в запросе 1С 8.3
Специалист компании «Кодерлайн» Айдар Фархутдинов

Дата в запросе 1С 8.3

Дмитрий Никитин

Тип «Дата» в 1С входит в число 4 основных типов данных наряду с числом, строкой и булево. В конфигурациях даты встречаются повсеместно – при разработке невозможно избежать работы с этим типом данных. Поэтому лучше начинать писать запросы, уже понимая, как обрабатывать даты, какие есть возможности для работы с ними, как они хранятся, а до этого «безопаснее» использовать услуги программистов по доработке 1С, которые предоставляют большинство компаний-франчайзи. Рассмотрим на примерах все нюансы написания запросов с различными датами.

Примеры работы с датами в запросах 1С

В первую очередь, необходимо получить дату в запросе в нужном формате – со временем или без него. Выполнить эту задачу можно несколькими путями:

  1. Передать через параметр. Получить текущую дату сеанса можно только этим методом;
  2. Получить дату в запросе из поля выборки;
  3. Преобразовать из числовых значений с помощью функции ДАТАВРЕМЯ().

Самой распространенной задачей при работе с документами является проверка на пустую дату в запросе 1С. В этом случае легче всего сравнить переменную или поле с пустой датой, которая получается с помощью функции ДАТАВРЕМЯ(1,1,1):

 ДАТАВРЕМЯ (1, 1, 1) 

Аналогичной командой можно получить произвольную дату и время в запросе. При этом их можно указать с точностью до секунды, задав в качестве параметров 6 чисел. Если же используется только 3 числа, то часы, минуты и секунды будут приравнены к 0 (начало дня). Например, нам необходимо в запросе выбрать документы за первые 10 дней января 2018 года:

 ВЫБРАТЬ ПоступлениеНаРасчетныйСчет.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет ГДЕ ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ ДАТАВРЕМЯ(2018, 1, 1, 0, 0, 0) И ДАТАВРЕМЯ(2018, 1, 10, 23, 59, 59) 

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

Если вы часто работаете с датами в запросе, то вы должны знать эти команды:

  • НАЧАЛОПЕРИОДА. В качестве параметров указывается дата и промежуток времени, в разрезе которого необходимо получить начало даты. Используется, чтобы преобразовать дату к формату без времени. Для этого необходимо задать второй параметр – «ДЕНЬ»;
 НАЧАЛОПЕРИОДА(, ) НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) 
  • КОНЕЦПЕРИОДА. Аналогичная команда, возвращающая последнюю дату в разрезе указанных в параметрах единиц;
  • ДОБАВИТЬКДАТЕ. Позволяет получить дату, большую на заданное количество указанных единиц времени. В качестве параметров функции указывают дату, единицу измерения времени и число;
 ДОБАВИТЬКДАТЕ(, , ) ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, 10) 
  • РАЗНОСТЬДАТ. Получает разницу между датами в указанных единицах измерения;
 РАЗНОСТЬДАТ(, , ) РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ) 
  • ДЕНЬНЕДЕЛИ. Вернет порядковый номер одного из дней недели.

Грамотно применяя эти функции, разработчик может решать достаточно нетривиальные задачи. К примеру, получение наименования дня недели текущей даты в запросе в виде строки:

 ВЫБОР КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 1 ТОГДА "понедельник" КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 2 ТОГДА "вторник" КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 3 ТОГДА "среда" КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 4 ТОГДА "четверг" КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 5 ТОГДА "пятница" КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 6 ТОГДА "суббота" ИНАЧЕ "Воскресенье" КОНЕЦ 

Преобразование типов в запросе 1С из числа или строки в дату – трудоемкое занятие. Из чисел можно получить дату с помощью функции ДАТАВРЕМЯ, из строки – комбинируя функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА ТОГДА ИНАЧЕ. Исходя из этого, разработчики предпочитают получать дату из других типов в модуле и передавать ее в запрос с помощью параметра. К сожалению, это не всегда реализуемо, поэтому приходится менять формат даты в запросе.

Есть возможность указать дату в запросе 1С в качестве параметра для получения данных из виртуальных таблиц регистров. В этой роли также можно использовать все вышеперечисленные функции. Но здесь важно не допустить, чтобы пустая дата в запросе 1С могла сказаться на конечном результате выполнения кода, поэтому обязательно надо делать проверку.

Надеемся, статья была вам полезна. Если у вас остались вопросы по указанию даты в запросе, обратитесь к нашим специалистам в рамках консультационных услуг по 1С, мы обязательно вам поможем.

Как в 1С прибавить к дате 1 день?

Дата в программе 1С

Дата в программе 1С – примитивный тип данных. Дату можно задать прямо в коде программы 1С, в одинарных кавычках: первые 4 цифры — это год, затем 2 цифры — это месяц, и последние – день.

задать командой Дата ()

Дату можно задать командой Дата () и указать параметры этой команды в скобках, из которых будет сформирована дата.

КОД Ввести Дату ()

Чтобы присвоить переменной «Дата» какое-либо значение, мы сначала определяем переменную, где будет храниться дата и присваиваем ей начальное значение 01.01.0001 00:00:00 – представление пустой даты. В команде «Ввести Дату ()» указываем переменную, в которую будет помещено введенное значение.

Пустое значение даты 1С

Начальное или «Пустое» значение даты 1С можно вводить и так:

Дата () имеет формат год – месяц – день – час – минута – секунда, то есть дата содержит не только дату, но и время. Текущую дату и время в системе можно получить следующим образом:

Дата () имеет формат год месяц

Прибавить к дате день

Явно указать нужную дату можно с помощью литералов встроенного языка запросов 1С «ГГГГММДДЧЧММСС», «20200825000012» – получим 25.08.2020 00:00:12 Либо через функцию Дата () или ДатаВремя ()\

Прибавить к дате день в 1С

Кроме того, в программах 1С возможно сложить две даты. Делается это следующим образом:

2. Прибавить к дате день в 1С – решение задачи

используя функцию КонецДня

Выше мы перечислили основные манипуляции с типом данных Дата, изначально предусмотренные в 1С. Однако нет специальной встроенной функции, которая бы прибавляла к дате день в 1С, хотя у пользователей иногда возникает такая потребность. Далее попробуем разобраться, как реализовать подобное. Итак, есть несколько вариантов решения этой задачи. Первый – прибавить к дате день в 1С при помощи оператора «+» секунды. Например, используя функцию КонецДня() :

используя функцию в 1С

Мы прибавляем секунду к 25.08.2020 23:59:59 и получаем следующий день 26.08.2020 00:00:00 Для прибавления целого дня, нужно прибавить количество секунд в одном дне. Количество секунд в сутках 60*60*24 = 86400 секунд.

код используя запрос

Второй способ – используя запрос:

единицаИзмерения

Функция «ДобавитьКДате(, , )» – встроенная функция языка запросов 1С. Функция позволяет добавить и вычесть из даты нужное количество времени в произвольном количестве. ЕдиницаИзмерения – определяет единицу времени (год, месяц, день, час, минута, секунда).

Специалист компании ООО «Кодерлайн» Волкова Ольга Алексеевна

Вас могут заинтересовать следующие статьи:

94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) —> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) —>

Вас могут заинтересовать следующие вебинары:

1С: Конвертация данных [1] => Конвертация данных [2] => Программирование в 1С [3] => Как сделать в 1С [4] => 1С:Бухгалтерия [5] => Отчеты в 1С [6] => Обмен между базами [7] => Закрытие месяца [8] => 1С:Управление производственным предприятием [9] => 1С: Розница [10] => 1С: CRM [11] => Оценка задач [12] => СКД [13] => РСБУ [14] => Администрирование 1С [15] => Оптимизация [16] => 1С: ERP [17] => Моделирование [18] => Продажи [19] => 1С: Управление торговлей [20] => Бюджетирование [21] => HTTP [22] => Управление проектами [23] => MS SQL Server [24] => МСФО [25] => БУ [26] => Внедрение ERP [27] => com-объекты [28] => 1С: WMS Управление складом [29] => Перенос данных [30] => Торговое оборудование [31] => 1С: Сценарное тестирование [32] => 1С: Колледж [33] => Запросы 1С [34] => LINUX [35] => WEB [36] => Лицензии 1С [37] => 1С:Зарплата и Управление Персоналом [38] => 1С: Документооборот [39] => Excel [40] => ADO [41] => Транспортная логистика [42] => Внедрение [43] => Техническое задание [44] => Отчетность [45] => Ценообразование [46] => 1С:Комплексная автоматизация [47] => Производство [48] => Интеграция 1С [49] => Планирование [50] => Налоги [51] => Отпуск [52] => Полезные обработки [53] => Расширение конфигурации [54] => XML [55] => Word [56] => WEB-сервисы 1С [57] => Лизинг [58] => 1С:Управление нашей фирмой [59] => 1С:Управление корпоративными финансами [60] => 1С: Аренда и управление недвижимостью [61] => Правила обмена [62] => 1С: Платформа [63] => Финансовый учет ) —>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *