Top.Mail.Ru
Меню
Каталог Программы 1С Опыт и отзывы Услуги Компания Интересное Контакты

Функция ДОБАВИТЬКДАТЕ() в запросах 1С

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft  02.03.2026 Актуальность проверена: 02.03.2026   5 мин.
Подобрать перенос данных 1С

Специализируемся на переносах данных 1С с 2015г.

Подобрать перенос данных 1С >>

Интеграция 1С с маркетплейсами

Специализируемся на интеграциях 1С с маркетплейсами с 2021г.

Изучить продукты >>

Содержание

Зачем работать с датами в запросах

Работа программиста нередко связана с обработкой дат. Функция ДОБАВИТЬКДАТЕ — это один из мощных инструментов запросов, который приходит на помощь в таких ситуациях. Вам приходилось фильтровать документы по времени, вычислять дедлайны и проверять сроки исполнения? Все эти задачи легче решаются с её помощью. Она позволяет прибавлять или вычитать дни, месяцы и другие интервалы времени прямо в тексте запроса. Нет нужды вручную считать секунды или учитывать високосные годы — укажите дату, нужную единицу измерения и количество, а система всё посчитает за вас.

Когда пригодится ДОБАВИТЬКДАТЕ

Представьте, что нужно найти все заказы, дата которых старше одного года, или расчитать срок задания, добавив две недели к дате начала. Возможно, требуется получить список клиентов, зарегистрированных пять лет назад, или определить последний день месяца для отчёта. Такие задачи в возникают сплошь и рядом, и ДОБАВИТЬКДАТЕ идеально подходит именно для них. Вместо сложных вычислений и конвертации единиц вы просто задаёте интервал в запросе. Например, можно решать задачи вроде:

  • получить документы за последние 30 дней;
  • найти заказы с оплатой более месяца назад;
  • вычислить дату через полгода от текущей.

К счастью, всё это сделать очень просто — нужно только знать про функцию ДОБАВИТЬКДАТЕ.

Синтаксис функции ДОБАВИТЬКДАТЕ

Функция ДОБАВИТЬКДАТЕ принимает три аргумента:

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

Если передать только дату и число без типа, поймет это как дни. То есть ДОБАВИТЬКДАТЕ(Дата, 7) прибавит 7 дней.

Кстати: в единица ДЕКАДА означает десять дней, а ПОЛУГОДИЕ — шесть месяцев. Кажется забавно, но эта подробность действительно может пригодиться! Видите, сколько вариантов? Значит, не нужно самим выяснять, сколько там месяцев или дней в периоде — всё уже учтено.

Пример запроса с ДОБАВИТЬКДАТЕ

Напишем запрос, который покажет номер заказа, саму дату заказа и дату через один месяц после заказа:

Запрос.Текст = "ВЫБРАТЬ
    ЗаказПокупателя.Номер КАК Номер,
    ЗаказПокупателя.Дата КАК ДатаЗаказа,
    ДОБАВИТЬКДАТЕ(ЗаказПокупателя.Дата, МЕСЯЦ, 1) КАК ДатаЧерезМесяц
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя";

Запрос вернёт таблицу с тремя колонками: Номер заказа, Дата заказа и ДатаЧерезМесяц. И всё — никаких дополнительных вычислений! Функция ДОБАВИТЬКДАТЕ сама учтет длинные и короткие месяцы, високосные годы и не подведёт вас. Это действительно удобно.

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

В запрос можно передать параметры, например дату. Покажем, как вычесть 10 дней от текущей даты:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачальнаяДата, ДЕНЬ, -10) КАК ДатаМинус10";
Запрос.УстановитьПараметр("НачальнаяДата", ТекущаяДата());
Результат = Запрос.Выполнить().Выбрать();

Этот код передаёт параметр &НачальнаяДата (сегодняшнюю дату) и прибавляет к ней -10 дней. То есть функция вычтет 10 дней. Очень удобно: нам не нужно делать лишних вычислений или искать количество секунд в неделе.

Практические советы для работы с ДОБАВИТЬКДАТЕ

Запомните: поле или параметр Дата должно быть именно типа Дата. Обычно это поле Дата документа или результат вызова ТекущаяДата(). Если тип не тот, запрос не сработает.

Когда пишете запрос вручную, проверяйте синтаксис: чувствительна к пробелам, запятым и кавычкам. Любая ошибка в параметрах выдаст уведомление.

Кстати, многие новички сначала стремятся сделать всё через сложные формулы. Но стоит один раз попробовать ДОБАВИТЬКДАТЕ, и обычные расчёты кажутся неуклюжими. В работе с запросами важно писать лаконично и правильно. Например, вместо того чтобы высчитывать, сколько секунд в трёх днях (259200!), можно просто написать ДОБАВИТЬКДАТЕ(Дата, ДЕНЬ, 3). Просто и понятно.

Поддержка и помощь специалистов

Если вы только начинаете работать с или столкнулись с нетиповой задачей, обратитесь к профессионалам. Компания MoscowSoft – партнёр фирмы с 2019 года и аккредитованная ИТ-компания с 2023 года – обладает богатым опытом в автоматизации. В её портфеле более 60 программных продуктов из реестра российского ПО. Специалисты MoscowSoft помогут вам разработать даже самый сложный запрос и проконсультируют по любым вопросам. Кстати, если вы очень заняты рутинной работой, они возьмут её на себя, чтобы вы смогли сосредоточиться на главном. Компания MoscowSoft может помочь вам с этой задачей и с любыми другими вопросами по .

Дальнейшая отладка запросов

Функция ДОБАВИТЬКДАТЕ — обязательный инструмент в арсенале начинающего -разработчика. С её помощью можно легко добавлять и вычитать периоды: дни, месяцы, кварталы или даже годы. Практикуйтесь: попробуйте получить заказы старше 90 дней или запланировать события через четыре месяца. Это быстро поможет вам отладить запрос.

Теперь вы знаете, как упростить работу с датами в запросах. Главное — помнить синтаксис и проверять условия. А если задачи станут сложнее, помните про MoscowSoft, который поможет с любым вопросом по . Итак, готовы ли вы использовать эту функцию или продолжите всё рассчитывать вручную?

MoscowSoft логотип

Подпишитесь на телеграм-канал MoscowSoft!
QR-код (ссылка приглашение) в канал MoscowSoft

https://t.me/MoscowSoft

Публикуем:
- инструкции и советы по разработке на 1С;
- рекомендации по интеграции 1С;
- бесплатно делимся своими обработками;
- публикуем секретные спецпредложения только для подписчиков.

Возврат к списку