Как в 1с установить интервал дат

Обновлено: 07.07.2024

Особенности работы с объектом НастройкаПериода

В данном разделе рассмотрены особенности работы с объектом НастройкаПериода . Рассматриваются как работа объекта в табличных полях, отображающих "хронологические" динамические списки (свойство СтандартныйПериод), так и использование этого объекта для предоставления пользователю возможности, например, задавать интервал отчета, период за который нужно обработать данные и т.д.

Диалог Настройка периода

По умолчанию диалог Настройка периода имеет две закладки, которые позволяют выставлять промежуток времени в двух режимах, с использованием разных подходов. Диалог вызывается по команде "Установить интервал дат" в табличном поле или при вызове метода Редактировать() объекта НастройкаПериода .

Закладка "Интервал" дает возможность установить отдельно начало и окончание временного промежутка, причем в привязке к рабочему периоду. Например, задавая интервал "с начала недели по конец месяца", пользователь задает промежуток времени, который определяется по рабочей дате. Т.е. задавая один и тот же интервал в разные дни, пользователь задает разные результирующие интервалы, в общем случае, разной протяженности. Этот подход удобен для динамических списков и отчетов имеющих оперативный характер (текущие продажи, текущие расчеты с контрагентами и т.п.).

Закладка "Период" дает возможность установить размер периода (месяц, квартал, год) и привязать его к той или иной точке времени, в том числе к рабочей дате. Например, Февраль 2003, 1-ый квартал 2004, текущий, т.е. соответствующий текущей дате, квартал. Этот подход более удобен для анализа финансовых показателей прошлого или текущего периода. Например, когда рабочая дата уже Апрель 2004 года, некоторое время еще важно анализировать и корректировать данные первого квартала 2004 года.

На обеих закладках есть возможность установить произвольный период - любые дату начала и окончания периода.

В связи с тем, что интервалы времени на разных закладках задаются по-разному, не всегда можно однозначно отразить период заданный на одной закладке в терминах другой закладки. Например, если в 31-го марта 2004 года задать на закладке "Интервал" промежуток "с начала года по конец месяца" (т.е. промежуток с 01.01.2004 по 31.03.2004), то в терминах закладки "Период" это можно воспринять как "текущий месяц с начала года", "текущий квартал", "текущая дата с начала квартала" и "текущая дата с начала года". С такой неоднозначностью может быть связано то, что простое переключение между закладками приведет к тому, что не изменившись по сути на текущий момент времени, период будет задан уже другим способом.

Использование в динамических списках

Ряд списков динамического просмотра данных содержат такие предопределенные поля, как Дата или Период. В табличных полях таких динамических списков, помимо обычной установки отбора через диалог "Отбор и сортировка", существует стандартная команда "Установить интервал дат". Эта команда дает возможность пользователю не только задать произвольный диапазон просмотра данных, но и задать стандартные интервалы в более удобных терминах - неделя, месяц, квартал, год, а также задать период в привязке к текущей дате.

Команда вызывает диалог "Настройка периода", который является средством интерактивного управления объектом НастройкаПериода. Этот диалог позволяет запомнить стандартную настройку периода, которая будет использоваться для списка при открытии формы. При работе с настройкой периода следует помнить, что установка отбора по дате через окно "Отбор и сортировка" и через окно "Настройка периода" выполняют действия над одним и тем же элементом отбора динамического списка. В некоторых случаях для отбора по дате может быть задан такой диапазон, который не может быть адекватно отражен диалогом Настройка периода.

Особенностью диалога "Настройка периода", появляющегося в динамических списках, является также то, что в диалоге имеется флажок "Использовать эту настройку периода при открытии". Установка этого флажка приводит к тому, что при нажатии OK настройка периода будет сохранена для текущего списка и использована при следующем открытии формы.

Использование в отчетах

Очень часто для получения отчета в бизнес-приложениях необходимо задавать интервал, за который формируется отчет. Для этого в соответствующей форме, в которой проводится настройка такого отчета, можно использовать объект НастройкаПериода. Как правило, при этом в форме размещают два поля ввода для даты начала и конца периода формирования отчета, а также копку по которой вызывается метод Редактировать() объекта НастройкаПериода.

При работе с этим объектом в случае, когда в элементах управления формы используются даты с квалификатором типа Дата (без времени), следует учитывать следующие особенности.

  1. Для того чтобы использовать третий параметр метода УстановитьПериод() (т.е. параметр "Предпочтительно использовать рабочий период"), необходимо запомнить в каком режиме пользователь настроил период - с привязкой к рабочему периоду (например, текущий месяц) или как абсолютный период (например, Апрель 2004). Привязка настройки к рабочему периоду происходит неявно, когда пользователь использует закладку Интервал, или явно - при установке флажка "Рабочий период" на закладке "Период". И в том и в другом случае привязка к рабочему периоду приводит к тому, что свойство ЗначениеПериода получает значение даты "начала отсчета" ( ' 00010101 ' ). Таким образом, для определения того, что использована привязка к рабочему периоду, достаточно сравнить ЗначениеПериода и ' 00010101 ' .
  2. При установке периода (метод УстановитьПериод()) необходимо приводить дату окончания к концу дня, но только в том случае, если в качестве даты окончания не задана дата начала отсчета. Эта особенность связана с тем, что дата начала отсчета ' 00010101 0:00:00 ' воспринимается объектом НастройкаПериода особым образом. Если ее задать в качестве даты окончания, это будет означать, что ограничение не установлено. Но дата ' 00010101 23:59:59 ' , как, впрочем, любая дата с ненулевым временем, уже не является "датой начала отсчета".
  3. Для сохранения заданной пользователем настройки периода между сеансами работы формы можно использовать способность объекта НастройкаПериода сохраняться и восстанавливаться (например, при помощи функций глобального контекста СохранитьЗначение, ВосстановитьЗначение).

Эти особенности проиллюстрированы в демонстрационной конфигурации "Примеры ИТС" на примере формы обработки ПримерИнтернетПочты (закладка формы "Отчет по контрагенту").

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


Согласно Указу Президента РФ от 20.10.2021 г. № 595, период с 30 октября по 7 ноября объявлен нерабочими днями с сохранением заработной платы. Для нас это не ново, за последние два года пандемии мы неоднократно уходили на аналогичные каникулы. Но давайте всё же определимся, можно ли работать в очередные нерабочие дни, и если да, то кому? И, конечно, «вишенкой на торте» в этой публикации будет подробный разбор отражения таких «рабоче-нерабочих» дней в программах 1С.

В статье 5 Указа Президента РФ № 595 сказано, что «органы публичной власти, а также иные органы и организации, определившие численность служащих и работников, обеспечивающих в нерабочие дни функционирование этих органов и организаций, могут осуществлять свои трудовые функции в нерабочий период».

Таким образом, работать в нерабочий период могут:

  • сотрудники организаций, которые составили приказы о количестве работников, необходимых для поддержания функционирования;
  • организации и учреждения, приостановка работы которых невозможна по производственно-техническим условиям или которые выполняют работы, связанные с необходимостью обслуживания населения, а также неотложные ремонтные и погрузочно-разгрузочные работы (статья 113 ТК РФ).

Примечание редакции «Клерка»: внимательно изучите региональные нормативные акты, там могут быть дополнительные ограничения.

Алгоритм действий для организаций, не работающих в ноябрьские каникулы

Шаг 1. Производственный календарь

Рассмотрим алгоритм действий в программных продуктах 1С.

Первое, что нужно проверить — это обновлён ли у вас производственный календарь.

Для этого в программе 1С: Зарплата и управление персоналом, редакция 3.1 нужно перейти в раздел «Настройка» и выбрать пункт «Производственные календари».


В 1С: Бухгалтерия предприятия 8, редакция 3.0 нужно перейти в раздел «Справочники» и выбрать пункт «Производственные календари».


Как понять, что он обновлён?

В шапке календаря будет предупреждение о нерабочих днях, как на рисунке ниже:


Если ваш производственный календарь НЕ обновлён, то нужно:

1. Проверить наличие включённой интернет-поддержки в разделе «Администрирование» пункт «Интернет-поддержка и сервисы». При этом программа должна находиться на официальной поддержке.


2. Проверить наличие интернет-соединения на компьютере.

Если третий пункт вам не доступен по причине отсутствия доступа к порталу 1С, то производственный календарь следует отредактировать вручную. Нажимая правой кнопки мыши на выбранный день программой будет предложено 2 варианта: перенести день или изменить день. Касаемо отражения периода с 01 ноября по 03 ноября нужно нажать на кнопку «Изменить день» и выбрать, что он является нерабочим. Период с 30 по 31 октября и с 04 по 07 ноября — выходные дни.


Шаг 2. График работы

В 1С: Зарплата и управление персоналом нужно зайти в раздел «Настройка» и выбрать пункт «Расчёт зарплаты». В открывшемся окне следует установить флаг «Нерабочие дни в связи с коронавирусом оплачивать как отработанные по графику сотрудника», а затем отметить необходимый интервал дат.


Потом вернуться в раздел «Настройка» и выбрать пункт «Графики работы сотрудников».


В программе 1С: Бухгалтерия предприятия их можно найти в разделе «Зарплата и кадры» — «Графики работы».


Выберем график и проверим наличие галочки «Автоматическое обновление по производственному календарю». Если же её нет, то нажмите кнопку «Заполнить». После чего удостоверьтесь, что дни с 30 октября по 07 ноября являются оплачиваемыми нерабочими днями.


После этого можно смело начислять заработную плату и формировать табели учёта рабочего времени. Данный период будет отмечен в табеле буквами «ОН».

Алгоритм действий для организаций, работающих в ноябрьские каникулы

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

Перейдём к работе в программах.

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

Затем для работника, который был назначен поддерживающим функциональность предприятия, необходимо ввести «Индивидуальный график» в разделе «Зарплата» 1С: Зарплата и управление персоналом.


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

Затем откорректировать буквы «ОН» на буквы «Я» в те дни, в которые они обязаны выйти на работу. Предположим наша сотрудница Губина должна работать 01 и 02 ноября.


Посмотрим, как это отразилось на расчёте заработной платы.

При том, что у Губиной на 2 дня рабочих больше, заработную плату все получат в полном объёме.

Перейдём в раздел «Зарплата» и выберем пункт «Начисление зарплаты и взносов». Введём новый документ за ноябрь и проанализируем расчёт.


Согласно разъяснениям Минтруда, нерабочие дни относятся к отработанному времени, как у тех работников, кто выходил на работу в этот период, так и у тех, кто был в режиме нерабочих дней с сохранением заработной платы. Таким образом мы видим, что у всех сотрудников норма дней стоит одинаковая: 19 дней, 152 часа, вне зависимости от того были явки в этот период или нет.

Перейдём в раздел «Зарплата и кадры» и выберем пункт «Отчёты по зарплате».


Затем в открывшемся окне выберем «Табель учёта рабочего времени» и сформируем его за период — ноябрь 2021. Затем откорректируем сотрудникам, которые будут работать в нерабочие дни, буквы «ОН» на «Я», пересчитаем часы и распечатаем. В документе "Начисление зарплаты и взносов количество часов и дней будет установлено по нормам времени в текущем месяце.

Использование параметров - периодов в системе компоновки данных

Для многих отчетов необходимо дать возможность пользователю указывать период, за который необходимо получить отчет. Часто данные периоды требуется указывать не с точностью до секунды, а с точностью до дня. Для того чтобы пользователь имел возможность ввести в параметрах данных дату без времени, достаточно указать в описании параметра данных тип параметра Дата с указанием состава даты "Дата".



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


Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .

ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты

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

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

Система компоновки данных позволяет использовать стандартные периоды для указания периода отчета.

Для того чтобы задействовать данную возможность следует добавить в схему компоновки данных параметр типа СтандартныйПериод , а в параметрах - датах указать соответствующие выражения и запретить их редактирование пользователем.


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

Пользователь будет редактировать параметр в следующем виде:


Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 01.01.2019 , а в качестве значения параметра ПериодКонец будет использоваться дата 31.01.2019 .

Реальные значения дат для стандартного периода определяются при исполнении отчета. Таким образом, если выполнять отчет с установленным периодом Этот месяц в январе 2020-го года, то отчет будет исполняться с 01.01.2020 по 31.01.2020 , а если выполнять в феврале 2020-го года, то с 01.02.2020 по 29.02.2020

Заметим, что даты начала и конца стандартного периода также содержат и время. Причем, начальная дата имеет время 00:00:00 , а конечная дата 23:59:59 , таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА .

Распечатать

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1С Предприятие что это?  11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver  3
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver  0
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Альтернативный перенос остатков между 7.7 и 8.1 (обработкой с ИТС ЗагрузкаДанныхИзТаблДокум)  2
Нашел альтернативный, практически моментальный способ переноса остатков между семерой и восьмерой (так и между восмерками). Не требуется никаких дополнительных усилий, программирования, писания обработок и т.д. и т.п. На ИТС есть обработка под наз Посмотреть все результаты поиска похожих

Еще в этой же категории

Момент Времени и Граница, назначение, примеры использования  38
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp)  17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью  11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах  11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах  10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)

Читайте также: