Как ввести дату в запросе 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С:Предприятие, Pascal, Паскаль
Решение вопросов, возникающие при автоматизации учета с помощью 1С:Предприятие. Паскаль.
Как ввести константу (Дату) в запрос 1С?
21.05.2013 |
Автор Дмитрий
Как ввести константу (Дату) в запрос 1С?
Один из вариантов, константу типа Дата использовать в методе УстановитьПараметр(Имя, Значение).
Имя — название параметра.
Значение — значение параметра.
Пример. Ввод даты 11.05.2011 00:00:00, с точностью до секунды.
Процедура КакВвестиКонстантуДатуВЗапрос() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка, | РеализацияТоваровУслуг.Дата |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата = &НаДату"; НаДату=(Дата("20110511")); Запрос.УстановитьПараметр("НаДату",НаДату); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Сообщить(" "+НаДату); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" "+ВыборкаДетальныеЗаписи.Ссылка); КонецЦикла; КонецПроцедуры
Константа записывается в виде «20110511».
![]()
Рубрика: 1С:Предприятие 8.2, Новости
Текущая дата в запросе
В данной статье будет рассмотрено определение текущей даты в запросах в 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С запросе
Текущая дата(и время) в запросе 1С получается только в качестве параметра.
- Получение дат
- Как передать текущую дату в запрос?
- Как получить начало текущего месяца?
- Конец текущего года?
- Как получить полдень текущей даты?
- Как получить дату без времени (0:00)
- Как задать дату-константу в запросе 1С?
- Возможно задать дату с точностью до секунды?
- А до милисекунды?
- Как получить номер текущего месяца?
- Сколько осталось до Нового года?
Получение дат
Как передать текущую дату в запрос?
Запрос = Новый Запрос ( «ВЫБРАТЬ &ТекущаяДата» ) ;
Запрос . УстановитьПараметр ( «ТекущаяДата» , ТекущаяДата ( ) ) ;
тзРезультатЗапроса = Запрос . Выполнить ( ) . Выгрузить ( ) ;Далее приводятся только тексты запросов.
Как получить начало текущего месяца?
Конец текущего года?
Как получить полдень текущей даты?
Добавим использование функции ДОБАВИТЬКДАТЕ(ДАТА,,ЧИСЛО)
Как получить дату без времени (0:00)
Как задать дату-константу в запросе 1С?
Возможно задать дату с точностью до секунды?
А до милисекунды?
Вычисления над датами
Разность в секундах,минутах,часах, днях, неделях получается при использовании функции РАЗНОСТЬДАТ(Дата1,Дата2,)
Как получить номер текущего месяца?
ВЫБРАТЬ
МЕСЯЦ(&ТекущаяДата) как ТекущийМесяц,
РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ТекущаяДата,ГОД),КОНЕЦПЕРИОДА(&ТекущаяДата,МЕСЯЦ),МЕСЯЦ) как ПолныхПрошедшихМесяцевКак получить день недели?
ВЫБРАТЬ
ДЕНЬНЕДЕЛИ(&ТекущаяДата) КАК НомерДня,
ВЫБОР
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 1
ТОГДА «понедельник»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 2
ТОГДА «вторник»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 3
ТОГДА «среда»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 4
ТОГДА «четверг»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 5
ТОГДА «пятница»
КОГДА ДЕНЬНЕДЕЛИ(&ТекущаяДата) = 6
ТОГДА «суббота»
ИНАЧЕ «Воскресенье»
КОНЕЦ КАК НаименованиеДняНеделиСколько осталось до Нового года?
ВЫБРАТЬ
&ТекущаяДата > ДАТАВРЕМЯ(2017, 1, 1) КАК НовыйГодНаступил,
ВЫБОР
КОГДА &ТекущаяДата > ДАТАВРЕМЯ(2017, 1, 1)
ТОГДА «Да, наступил»
ИНАЧЕ «Нет, не наступил»
КОНЕЦ КАК Ответ,
РАЗНОСТЬДАТ(&ТекущаяДата,ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2017, 1, 1),СЕКУНДА,-1),ДЕНЬ) как ОсталосьДней,
РАЗНОСТЬДАТ(&ТекущаяДата,КОНЕЦПЕРИОДА(&ТекущаяДата,ДЕНЬ),ЧАС) как ОсталосьЧасов,
РАЗНОСТЬДАТ(&ТекущаяДата,КОНЕЦПЕРИОДА(&ТекущаяДата,ЧАС),Минута) как ОсталосьМинут,
РАЗНОСТЬДАТ(&ТекущаяДата,КОНЕЦПЕРИОДА(&ТекущаяДата,Минута),Секунда) как ОсталосьСекунд
Что еще следует знать про дату в запросах?Дата в запросах может фигурировать не только в полях выборки, и вычислениях, но также передаваться, как параметры виртуальных таблиц.
- для среза последних значений в регистре сведений в качестве момента на которое берется значение. Если периодичность регистра не совпадает с переданным параметром, система обрежет лишние (секунда, дни в зависимости от), округления не происходит
- для остатков регистра накопления в качестве дата остатка
- для оборотов регистров бухгалтерии или регистра накопления (НачалоПериода,КонецПериода)
- других виртуальных таблиц
Допустимо задание дат-констант и использование параметров, также обработка их выше приведенными функциями.
Но нельзя дату передать в параметры виртуальных таблиц из полученных ранее в этом запросе полей выборки.
Сортировка даты в запросе производится в рамках секунды.
Момент времени документа не является датой, он сортирует более глубже, чем дата документа, т.е. при наличии документов в одну секунду времени, сортировка по дате производится в недопустимом порядке: например в виде представления. Используйте для этого момент времени.
Внешнее представление даты определяется представлением операционной системы, управлять из запроса, а также приводить в строковое представление в классическом запросе невозможно в отличии от СКД, где возможна пост-обработка и условное оформление.
Допускается применение функции МАКСИМУМ(),МИНИМУМ() к дата в запросе, как в группировке так и в итогах запроса.
Ошибка «неверные параметры» возникает в случае, когда вместо даты передается null, число или что-то иное.
Преобразовать строку в дату в запросе
Специальных функций нет. но возможно преобразование через функцию ПОДСТРОКА и конструкцию ВЫБОР КОГДА
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Расчеты.Параметр,
Расчеты.ВерныйПараметр,
ВЫБОР
КОГДА Расчеты.символ1 = «2»
ТОГДА 2
КОГДА Расчеты.символ1 = «1»
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ * 1000 + ВЫБОР
КОГДА Расчеты.символ2 = «0»
ТОГДА 0
КОГДА Расчеты.символ2 = «1»
ТОГДА 1
КОГДА Расчеты.символ2 = «2»
ТОГДА 2
КОГДА Расчеты.символ2 = «3»
ТОГДА 3
КОГДА Расчеты.символ2 = «4»
ТОГДА 4
КОГДА Расчеты.символ2 = «5»
ТОГДА 5
КОГДА Расчеты.символ2 = «6»
ТОГДА 6
КОГДА Расчеты.символ2 = «7»
ТОГДА 7
КОГДА Расчеты.символ2 = «8»
ТОГДА 8
ИНАЧЕ 9
КОНЕЦ * 100 + ВЫБОР
КОГДА Расчеты.символ3 = «0»
ТОГДА 0
КОГДА Расчеты.символ3 = «1»
ТОГДА 1
КОГДА Расчеты.символ3 = «2»
ТОГДА 2
КОГДА Расчеты.символ3 = «3»
ТОГДА 3
КОГДА Расчеты.символ3 = «4»
ТОГДА 4
КОГДА Расчеты.символ3 = «5»
ТОГДА 5
КОГДА Расчеты.символ3 = «6»
ТОГДА 6
КОГДА Расчеты.символ3 = «7»
ТОГДА 7
КОГДА Расчеты.символ3 = «8»
ТОГДА 8
ИНАЧЕ 9
КОНЕЦ * 10 + ВЫБОР
КОГДА Расчеты.символ4 = «0»
ТОГДА 0
КОГДА Расчеты.символ4 = «1»
ТОГДА 1
КОГДА Расчеты.символ4 = «2»
ТОГДА 2
КОГДА Расчеты.символ4 = «3»
ТОГДА 3
КОГДА Расчеты.символ4 = «4»
ТОГДА 4
КОГДА Расчеты.символ4 = «5»
ТОГДА 5
КОГДА Расчеты.символ4 = «6»
ТОГДА 6
КОГДА Расчеты.символ4 = «7»
ТОГДА 7
КОГДА Расчеты.символ4 = «8»
ТОГДА 8
ИНАЧЕ 9
КОНЕЦ КАК НомерГода
ПОМЕСТИТЬ Цифры
ИЗ
Расчеты КАК Расчеты
;Одно рекламное объявление стоит больше, чем сорок передовиц.
— Уилл Роджерс
