Содержание:
Когда мы, разработчики 1С, только начинаем свой путь на этой тропе, нам приходится сложно с запросами, так как мы практически не понимаем этот язык. Но со временем, мы в этом всем разбираемся и становимся хорошими специалистами.
В самом начале пути, большие сложности у нас вызывают запросы, где необходимо сделать определенные действия над датой в запросе 1С 8.3. В языке запросов есть много функций, которые помогают нам выполнять разные действия с датой.
1. ДобавитьКДате
Сегодня опишу некоторые из них. Для начала возьмем одну из простейших функций «ДобавитьКДате()». Это очень легкая функция.
Когда, в запросе мы добавляем или изменяем поле и выбираем эту функцию, то она появляется перед нам в таком вот виде:
ДОБАВИТЬКДАТЕ(<Дата>, <Тип>, <Количество>)
Давайте разберем каждый из параметров функции 1С. А именно параметр 1С «Дата». Как все поняли, этот параметр именно и есть наша дата, к которой необходимо добавить какую-то дату.
Следующий, по плану, параметр у нас «Тип». Он отвечает, за то, какой именно тип увеличения даты будет. У него строго определенное количество типов, а именно:
· Минута;
· Секунда;
· Час;
· День;
· Неделя;
· Месяц;
· Квартал;
· Год;
· Декада;
· Полугодие.
При выборе необходимого параметра типа, на этот тип и увеличится наша дата. Например, мы выбрали тип «День», указали количество дней, которое необходимо добавить(об этом далее) и в результате получили, что к нашей дате добавилось указанное количество дней.
Итак, последний параметр «Количество». Этот параметр отвечает за количество, на которое будет увеличено дату. В зависимости от условий, оно может быть положительным или отрицательным. Если число отрицательное, то от нашей даты, будет отнято определенное количество показателей данных.
Все предельно просто и легко, но все равно стоит быть аккуратным с функциями.
2. НАЧАЛОПЕРИОДА
Следующая функция, с которой я хотел бы Вас познакомить, это НАЧАЛОПЕРИОДА().
При использовании она имеет вот такой вот вид:
НАЧАЛОПЕРИОДА(<Дата>, <Период>).
Рассмотрим оба параметра этой функции. По первому все предельно ясно, это наша дата. Второй параметр, «Период», имеет такой же определенный функционал, как и второй параметр функции 1С ДОБАВИТЬКДАТЕ() и имеет такой же перечень вариантов периода.
Эта функция удобна тем, что можно привести Вашу дату к любому начальному периоду из выбранных вариантов и осуществить выборку данных за этот период.
3. КОНЕЦПЕРИОДА
Аналогичная функция, которая отвечает за приравнивание, к концу периода есть и имеет она такую форму:
КОНЕЦПЕРИОДА(<Дата>, <Период>).
У нее такие же самые параметры, как и у предыдущей описанной функции и потому смысла более подробно расписывать нет.
4. РАЗНОСТЬДАТ
И последняя функция, о которой я хотел бы рассказать, это РАЗНОСТЬДАТ().
Если Вам необходимо сравнить две даты и вывести количественную разницу этих дат, то Вам необходима именно эта функция.
При использовании она имеет такой формат:
РАЗНОСТЬДАТ(<Дата1>, <Дата2>, <Тип>).
Итак, по параметрам, все предельно ясно, «Дата1» - это дата от которой мы будем отнимать второй параметр, а именно «Дата2». В каком именно варианте периода будет рассчитываться, нам поможет последний параметр «Тип». У него такие же критерии и варианты выбора как я описал выше.
Если, к примеру, Вы захотите узнать разность дат 1С по дням, то эта функция вернет число, которое будет соответствовать количеству дней разницы между этими двумя датами.
В том случае, если первая дата, будет меньше второй, то вернется отрицательное значение разности. Это надо запомнить.
При работе с датами 1С старайтесь, чаще пользоваться функциями, которые есть у нас в языке запросов 1С 8.3. После первого примера использования функций, понимаешь, что с существованием этих инструментов, программировать становится легче.
И небольшой бонус ДАТА(1,1,1) – это 1С пустая дата в запросе.
Специалист компании ООО «Кодерлайн»
Олег Мороз