1с запрос дата между не работает

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

С помощью языка запросов 1С 8 решаются практически все задачи по получению данных в платформе 1С 8.3. Дата — один из часто используемых типов данных. Рассмотрим, как использовать дату в запросах 1С.

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

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

Например, отберем только не закрытые банковские счета из справочника. Критерий того, что они не закрытые, — наличие пустой даты в поле «ДатаЗакрытия»:

ВЫБРАТЬ
БанковскиеСчета.Ссылка
ИЗ
Справочник.БанковскиеСчета КАК БанковскиеСчета
ГДЕ
БанковскиеСчета.ДатаЗакрытия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

Произвольная дата в языке запросов

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

Например, отберем все документы «Счет на оплату покупателю» за месяц, от 1 до 28 февраля:

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

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

К сожалению, в языке запросов нет аналога метода «ТекущаяДата()», поэтому чтобы получить это значение, его можно передать в запрос с помощью параметра:

Запрос = Новый Запрос;
Запрос.Текст = »
|ВЫБРАТЬ
| СчетНаОплатуПокупателю.Ссылка
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
|ГДЕ
| СчетНаОплатуПокупателю.Дата = &ТекущаяДата«;
Запрос.УстановитьПараметр(«ТекущаяДата», ТекущаяДата());

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Функции языка запросов 1С. Работа с датами

Функции работы с датами

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

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

Читайте также:  У меня одного не работает lurkmore

Функция Год

Функция Квартал

Возвращает номер квартала даты (целочисленное значение от 1 до 4)

Предположим, в ЗаказПокупателя передаем заказ №100 от 12.03.2016, в этом случае наш запрос вернет НомерКвартала = 1

Функция Месяц

Принимает параметр типа ДАТА. Возвращает номер месяца даты (целочисленное значение от 1 до 12).

Запрос вернет – 6

Функция ДеньГода

Принимает параметр типа ДАТА. Возвращает номер дня в году (целочисленное значение от 1 до 366).

Запрос вернет — 175

Функция День

Принимает параметр типа ДАТА. Возвращает номер дня в месяце (целочисленное значение от 1 до 31).

Запрос вернет — 23

Функция Неделя

Принимает параметр типа ДАТА. Возвращает номер недели в году.

Запрос вернет — 25

Функция ДеньНедели

Принимает параметр типа ДАТА. Возвращает номер дня недели (целочисленной значение от 1 (понедельник) до 7 (воскресенье)).

Запрос вернет — 4

Функция Час

Принимает параметр типа ДАТА. Возвращает час суток (целочисленное значение от 0 до 23).

Запрос вернет — 18

Функция Минута

Принимает параметр типа ДАТА. Возвращает минуты часа (целочисленное значение от 0 до 59).

Запрос вернет — 25

Функция Секунда

Принимает параметр типа ДАТА. Возвращает секунды минуты (целочисленное значение от 0 до 59).

Запрос вернет — 36

Функция НачалоПериода

Функция возвращает для указанной даты начало периода в который она входит. Период может принимать следующие значения: МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ

Запрос вернет – 01.06.2016

Функция КонецПериода

Функция возвращает для указанной даты конец периода в который она входит. Период может принимать следующие значения: МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ

Запрос вернет – 30.06.2016

Функция ДобавитьКДате

Функция добавляет к дате указанное количество временных интервалов.

Получаем дату 15.10.2016 0:00:00 Очень удобно, что не приходится задумываться о количестве дней в месяцах.
Количество может быть и отрицательным. Тогда отсчет интервала производится в обратную сторону.

Функция РазностьДат

Функция рассчитывает календарную разницу между двумя датами и ее нельзя использовать в местах, где необходимо рассчитать банковских или рабочих дней. Тип может принимать следующие значения: МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ

Источник

1с запрос дата между не работает

Войдите как ученик, чтобы получить доступ к материалам школы

Язык запросов 1С 8.3 для начинающих программистов: операторы МЕЖДУ и В

Автор уроков и преподаватель школы: Владимир Милькин

Логический оператор МЕЖДУ

Оператор МЕЖДУ позволяет проверить, входит ли значение выражения, указанного слева от него, в диапазон , указанный справа ( вместе с границами диапазона , то есть включительно).

Таким образом, вместо

можно написать более лаконичное

А результат будет один и тот же:

Если же необходимо наоборот выбрать всю еду, калорийность которой не входит в диапазон [200;300], то подойдёт следующая форма отрицания (появилась частица НЕ):

Оператор МЕЖДУ можно применять не только к числовым диапазонам. С датами он также хорошо работает:

Логический оператор В

Проверка совпадения с одним из перечисленных

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

Таким образом, вместо

можно написать более лаконичное

А результат будет один и тот же:

Читайте также:  Судебные приставы не работают по исполнительному листу по алиментам что делать

Если же необходимо наоборот выбрать всю еду, цвет которой не совпадает ни с одним значением из списка, то подойдёт следующая форма отрицания (появилась частица НЕ):

Проверка совпадения значения с одним из результата запроса

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

Один из вариантов как это можно сделать — использовать логический оператор В, справа от которого будет находиться подзапрос, выбирающий названия цветов из всех записей справочника Еда:

В качестве отступления упомяну, что из внутреннего запроса есть возможность обращаться к полям внешнего запроса.

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

Проверка принадлежности по иерархии для справочников

Для справочников проверка может осуществляться и на принадлежность по иерархии.

Для начала давайте рассмотрим пример иерархического справочника. Откройте справочник «Города» в нашей базе:

Обратите внимание, что его элементы отличаются от других справочников (Еда, Цвета, Вкусы) наличием жёлтых папок. Это группы справочника .

Группы отличаются от обычных элементов тем, что могут включать в себя другие группы и элементы. Подобно тому как папки включают в себя другие папки и файлы.

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

Чтобы выйти на уровень выше, снова сделайте двойной щелчок по группе:

Таким образом иерархический справочник может содержать как обычные элементы (например, Рио-де-Жанейро, Салвадор), так и группы (например, Бразилия, Индия). Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.

У каждого элемента (будь то группа или обычный элемент) может быть родитель. Например, родителем элемента Рио-де-Жанейро является группа Бразилия:

И это верно, потому что Рио-де-Жанейро входит в состав группы Бразилия в иерархии справочника:

Теперь давайте напишем такой запрос, который будет запрашивать выбранную группу-страну и все элементы-города, входящие в неё.

Обратите внимание на то, что в тексте запроса перед именем ГруппаСтрана стоит амперсанд (&). Имена с амперсандом автоматически распознаются системой как параметры , значение которых должно быть задано перед выполнением запроса.

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

Выберите в качестве его значения группу «Россия» (кнопка Выбрать):

Если теперь мы нажмём кнопку «Выполнить», то результат запроса будет следующим:

В результат запроса попала сама группа (Россия) и все элементы, которые входят в её состав (Пермь, Красноярск и Воронеж).

Если вместо России, выбрать «Бразилия», то результат будет таким:

Таким образом результатом оператора В ИЕРАРХИИ будет ИСТИНА, если значение выражения слева является ссылкой на элемент справочника и входит во множество значений справа (Бразилия) или иерархически принадлежит какой-нибудь группе, содержащейся в этом множестве (Сан-Паулу, Рио-де-Жанейро, Салвадор).

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

Для оператора В ИЕРАРХИИ также доступно использование частицы НЕ перед ним.

Читайте также:  Aria hidden не работает

Источник

Разница между датами в запросе

Ситуация следующая: Возникла необходимость получения времени отработки поручения.
В списке (1С 8.2 управляемые формы) документа есть 2 даты дата создания документа и дата его закрытия надо выводить в список разность между датами в формате (дн. час. мин.)
Думал все просто и банально, но не тут то было это все норм делается если у тебя 8.1 например. А здесь (8.2) динамический список который строится из запроса.
Вообще помучался я и решил править запрос…. Понял что всё гораздо хуже чем я это себе представлял и не найдя другого выхода / решения данной проблемы на просторах интернета, я сделал ЭТО: РазностьДатВЗапросе.epf (Хотел выложить код, но надо покупать обработку «разукрашку», вообщем кому надо будет пишите в личку я обязательно вышлю!)

PS: строго не судите первая публикация

PSS: о пользе данного запроса сужу по сообщениям в интернете … были люди которым это реально было нужно, но им давали глупые ответы… типо РАЗНОСТЬДАТ(,,Час) и т.д.

ВОТ ЭТО ПРАВИЛЬНЫЙ КОД (ОТ i132) ОБРАБОТКУ ИСПРАВИЛ.

Запрос . УстановитьПараметр ( «ДатаН» , Объект . ДатаН );
Запрос . УстановитьПараметр ( «ДатаК» , Объект . ДатаК );

Результат = Запрос . Выполнить ();
ВыборкаДетальныеЗаписи = Результат . Выбрать ();

Если ВыборкаДетальныеЗаписи . Следующий () тогда
Сообщить ( «» + ВыборкаДетальныеЗаписи . Дни + » » + ВыборкаДетальныеЗаписи . Часы + » » + ВыборкаДетальныеЗаписи . Минуты + » » + ВыборкаДетальныеЗаписи . Секунды + » » );
КонецЕсли;;

Источник

Установка интервала даты в запросе

Но, этот способ не работает:Ошибка»Преобразование значения к типу Дата не может быть выполнено» для строк после МЕЖДУ (хотя, есть у меня подозрения, что я как то не так его использую), а больше никаких вариантов в голову не приходит, буду не против если подтолкнете меня в сторону верного и работающего решения.

P.S. С 1С работаю всего около месяца, не знаю многих нюансов, так что особо не бомбите, если я совсем туплю

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как сделать выборку периода даты в запросе с вычислением от запрошенной даты
Доброго времени суток! Есть форма, есть подчинённая форма, при запуске формы запрашивается.

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

Записать даты из данного интервала в БД
Здравствуйте! Пожалуйста, подскажите, как, зная промежуток дат, записать даты в таблицу БД.

SOL-запрос интервала даты и времени в Delphi
Люди добрые!, помогите пожалуйста, сделать правильный SOL-запрос всех записей из интервала даты и.

Решение

Yulunga, Спасибо, но вопрос уже разрешил следующим образом)

Как сравнить две даты с учетом интервала (2 минуты)
(d, Items) => Items.Where(item => item.Price == vehicle.Price && item.CloseDate == vehicle.End).

ParagraphFormat — установка междустрочного интервала в Word
.ParagraphFormat.Space15() устанавливается полуторный интервал текста в word в 2010 ворде есть.

Установка интервала между макросами в Excel
Каким образом можно задать интервал между макросами? Например так, чтобы 3 макроса запускались с.

Как определить попадания искомого интервала даты в хранимый интервал дат
Всем хорошего дня. Не могу сообразить. В базе хранятся абоненты у которых имеется период.

Источник

Оцените статью