1с добавитькдате в коде
ДобавитьКДате в запросе 1С 8.3 и 8.2
ДобавитьКДате() — встроенная функция языка запросов 1С 8.3. Функция позволяет добавить или вычесть из даты нужное количество времени в произвольных единицах.
Функция позволяет получить результат сложения произвольной даты с нужным значением времени. Достаточно часто применяется для получения расчетного времени. Например, времени поставки или оплаты товара.
Пример использования функции. Необходимо получить две даты — 1 день до открытия банковского счета, 5 дней после. Для добавления количества дней используем в параметре «Количество» положительное число, для вычитания — отрицательное. «Единица измерения» времени в нашем случае — день:
Пример использования добавления к дате в запросе из типовой конфигурации:
«ВЫБРАТЬ
| НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода,
| НДФЛДоходыПредыдущегоМестаРаботы.Размер — ЕСТЬNULL(НДФЛДоходыПредыдущегоМесяца.Размер, 0) КАК Размер
|ИЗ
| ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМестаРаботы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМесяца
| ПО (НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода = ДОБАВИТЬКДАТЕ(НДФЛДоходыПредыдущегоМесяца.МесяцНалоговогоПериода, МЕСЯЦ, 1))«;
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
ДобавитьКДате в запросе 1С
ДобавитьКДате в запросе 1С
Функция ДобавитьКДате позволяет произвести выборку данных, за период отталкиваясь от одного значения даты на определенное количество единиц времени.
В синтаксисе языка аналог — функция ДобавитьМесяц, для остальных значений даты расчет всегда производится посекундно: Дата1 = Дата2+24*3600*7.
В запросе же добавить период к значению можно гораздо гибче используя всего одну функцию.
Синтаксис функции
Начальная дата может быть:
Не хватает только функции ТекущаяДата() в запросе
Единицы времени:
Секунда, Минута, Час, День, Неделя, Декада, Месяц,Квартал, Полугодие, Год
Сдвиг
Приводит к вычислению Сдвиг*ЕдиницаВремени
Положительное число — увеличение периода
Отрицательно — уменьшение периода
Примеры запросов
Запрос, получающий дату на месяц раньше 01.10.2016
На 3 месяца позже:
На 30 календарных дней раньше
12 часов дня
Выбрать
ДобавитьКДате(ДатаВремя(2016,10,1),Секунда,12*3600), ДобавитьКДате(ДатаВремя(2016,10,1),ЧАС,12)
Особенность ДОБАВИТЬКДАТЕ
Возможно использовать значения другой таблицы для указания сдвига
Например, если есть таблица которая содержит номера часов:
Выбрать 1 как Номер
То ее можно соединить с календарем и для каждой даты получить дату со временем, использовав вот такую конструкцию:
ДобавитьКДате(_КалендарьГрафиков.Дата,ЧАС,Часы.Номер) как ДатаСоВременем
Делать деньги без рекламы может только монетный двор.
1с добавитькдате в запросе
ДобавитьКДате() — встроенная функция языка запросов 1С 8.3. Функция позволяет добавить или вычесть из даты нужное количество времени в произвольных единицах.
Функция позволяет получить результат сложения произвольной даты с нужным значением времени. Достаточно часто применяется для получения расчетного времени. Например, времени поставки или оплаты товара.
Получите 267 видеоуроков по 1С бесплатно:
Пример использования функции. Необходимо получить две даты — 1 день до открытия банковского счета, 5 дней после. Для добавления количества дней используем в параметре «Количество» положительное число, для вычитания — отрицательное. «Единица измерения» времени в нашем случае — день:
Пример использования добавления к дате в запросе из типовой конфигурации:
«ВЫБРАТЬ
| НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода,
| НДФЛДоходыПредыдущегоМестаРаботы.Размер — ЕСТЬNULL(НДФЛДоходыПредыдущегоМесяца.Размер, 0) КАК Размер
|ИЗ
| ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМестаРаботы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМесяца
| ПО (НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода = ДОБАВИТЬКДАТЕ(НДФЛДоходыПредыдущегоМесяца.МесяцНалоговогоПериода, МЕСЯЦ, 1))«;
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
• 1С8 примеры запросов 1С8. » 1С8 пример запроса. Функция ДОБАВИТЬКДАТЕ().
Пример использования функции ДОБАВИТЬКДАТЕ(ИсходнаяДата, ТипУвеличения, ВеличинаПериода ) в запросе 1с.
В двух словах, смысл функции ДОБАВИТЬКДАТЕ(ИсходнаяДата, ТипУвеличения, ВеличинаПериода), — вычислить дату прибавлением/убавлением к ИсходнойДате ВеличиныПериода.
Так выглядит сам запрос и результат запроса:
Чтобы вычесть из даты нужно использовать отрицательные значения:
Предлагаем решение Ваших задач 1С.
Внедрение 1С:
Доработка и сопровождение 1С:
Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.
Звоните: 8 916 710 83 51 Ольга
© j008.ru 2014 Обратная связь: j008@j008.ru
Функция ДобавитьКДате позволяет произвести выборку данных, за период отталкиваясь от одного значения даты на определенное количество единиц времени.
В синтаксисе языка аналог — функция ДобавитьМесяц, для остальных значений даты расчет всегда производится посекундно: Дата1 = Дата2+24*3600*7.
В запросе же добавить период к значению можно гораздо гибче используя всего одну функцию.
Синтаксис функции
Начальная дата может быть:
Не хватает только функции ТекущаяДата() в запросе
Единицы времени:
Секунда, Минута, Час, День, Неделя, Декада, Месяц,Квартал, Полугодие, Год
Сдвиг
Приводит к вычислению Сдвиг*ЕдиницаВремени
Положительное число — увеличение периода
Отрицательно — уменьшение периода
Примеры запросов
Запрос, получающий дату на месяц раньше 01.10.2016
На 3 месяца позже:
На 30 календарных дней раньше
12 часов дня
Выбрать
ДобавитьКДате(ДатаВремя(2016,10,1),Секунда,12*3600), ДобавитьКДате(ДатаВремя(2016,10,1),ЧАС,12)
Особенность ДОБАВИТЬКДАТЕ
Возможно использовать значения другой таблицы для указания сдвига
Например, если есть таблица которая содержит номера часов:
Выбрать 1 как Номер
То ее можно соединить с календарем и для каждой даты получить дату со временем, использовав вот такую конструкцию:
ДобавитьКДате(_КалендарьГрафиков.Дата,ЧАС,Часы.Номер) как ДатаСоВременем
Самые глубокие проблемы, связанные с рекламой, проистекают не столько из стремления рекламодателей соблазнять, сколько из нашего желания быть соблазняемыми.
1с добавить день к дате в запросе
ДобавитьКДате() — встроенная функция языка запросов 1С 8.3. Функция позволяет добавить или вычесть из даты нужное количество времени в произвольных единицах.
Функция позволяет получить результат сложения произвольной даты с нужным значением времени. Достаточно часто применяется для получения расчетного времени. Например, времени поставки или оплаты товара.
Получите 267 видеоуроков по 1С бесплатно:
Пример использования функции. Необходимо получить две даты — 1 день до открытия банковского счета, 5 дней после. Для добавления количества дней используем в параметре «Количество» положительное число, для вычитания — отрицательное. «Единица измерения» времени в нашем случае — день:
Пример использования добавления к дате в запросе из типовой конфигурации:
«ВЫБРАТЬ
| НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода,
| НДФЛДоходыПредыдущегоМестаРаботы.Размер — ЕСТЬNULL(НДФЛДоходыПредыдущегоМесяца.Размер, 0) КАК Размер
|ИЗ
| ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМестаРаботы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДоходыНарастающимИтогом КАК НДФЛДоходыПредыдущегоМесяца
| ПО (НДФЛДоходыПредыдущегоМестаРаботы.МесяцНалоговогоПериода = ДОБАВИТЬКДАТЕ(НДФЛДоходыПредыдущегоМесяца.МесяцНалоговогоПериода, МЕСЯЦ, 1))«;
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
При разработке отчетов бывает необходимо в запросе прибавить к дате несколько секунд, дней, месяцев.
Для этого имеется встроенная функция ДобавитьКДате
Михаил Сайко
Программисты 1С часто сталкиваются с задачей добавления к дате определенного промежутка. Это может быть необходимо для получения определенного диапазона или получения конкретной даты и времени. В любом случае навыки обращения с датами в запросах не раз выручат вас в работе. Также эту функцию можно использовать и в коде процедур и функций.
Синтаксис и пример использования функции
Многие программисты в начале изучения 1С сталкиваются с трудностями, когда понимают, что в процедурах и запросах команды отличаются. В обычном режиме написания кода мы можем только добавить к дате секунду (определенное количество секунд) или месяц, что достаточно неудобно. В запросе же у нас есть отличная функция «ДобавитьКДате».
Согласно встроенной подсказке в режиме произвольного выражения, система предлагает нам заполнить 3 параметра:
В качестве количества нужных единиц измерения могут выступать другие поля запроса. Но они должны быть подходящего типа, иначе при подтверждении конструктор произвольного выражения вернет ошибку о неверных параметрах. Тем, кто пишет запросы вручную, без конструктора, придется самостоятельно контролировать этот нюанс, чтобы добавить месяц к дате или неделю.
Учитывая удобство данной конструкции, многие разработчики 1С часто используют следующую хитрость. В коде процедуры делают вызов запроса, передают туда параметром дату и в запросе добавляют день к дате или квартал. Это намного удобнее и правильнее. К тому же не нужно высчитывать, сколько секунд в неделе, квартале или полугодии.
Набор функций в языке запросов 1С достаточно большой и даже добавить год к дате не составит проблем. Достаточно лишь несколько раз воспользоваться этой функцией, и она останется у вас в памяти навсегда. Пользуйтесь всем доступным функционалом 1С, чтобы сделать свою работу удобнее, быстрее и правильнее с точки зрения оптимизации.
Оперативная помощь по 1С — от простых консультаций до сложных внедрений. Протестируйте качество нашей работы — получите первую консультацию в подарок.
ДобавитьКДате в запросе 1С 8.2 в универсальном отчете
Много раз поднимался вопрос по этому поводу.Но у меня ничего не выходит.Пишу отчет на базе универсального.К Дате надо прибавить кол-во дней и получить другую дату.
ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
ИсточникДанных.Регистратор.Дата КАК РегистраторДата,
ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0
ТОГДА ИсточникДанных.Регистратор.Дата
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА),ДЕНЬ,
Зачем такие сложности с использованием ВЫБОРа :
.
ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0
ТОГДА ИсточникДанных.Регистратор.Дата
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА),ДЕНЬ,
Дате надо прибавить кол-во дней и получить другую дату.
КолДней= 3;
КолДнейДобавить = КолДней*24*60*60;
Сообщить(ТекущаяДата()+КолДнейДобавить);
Ну вот как то так можете попробовать у меня работает.
Количество дней можно из запроса взять ил на форме вводить на что фантазии хватит ))
Все получилось! Спасибо огромное!Вот так.
ВЫБОР
| КОГДА (ИсточникДанных.Регистратор.Дата = ДАТАВРЕМЯ(1,1,1))
| ТОГДА ДАТА(@НачПериода)
| ИНАЧЕ ИсточникДанных.Регистратор.Дата
| КОНЕЦ, ДЕНЬ, ЕСТЬNULL(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности, 0)) КАК ДатаН
(17) Caspers,
(24) kgn2011, так и не понял что Вы хотите получить?
Вам надо запрос на «дата + х» или Вам нужен результат где дата заменена на «дата + х»?
В первом случае Вы хотите вытащить часть данных на «дата», а часть на «дата + х», во втором Вы получаете данные на «дата» но в отчете отображаете «дата+х».
Вам первый или второй вариант?
В запросе в универсальном отчете
1 способ все хорошо (добавл 15) все работает.
|ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, 15 ) КАК ДатаН
где @НачПериода это в Универсальном отчете в диалоге поле ввода где задаем диапазон НачПериода и КонПериода