В этой статье научимся узнаем, как работают даты в 1С. Тип Дата — это один из примитивных типов 1С 8.3. При помощи этого типа в программе 1С можно задать дату (например, 10 ноября 2019 года), время (например, 12 часов 32 минуты 45 секунд), а также дату с временем (например, 10 ноября 2019 года 12 часов 32 минуты 45 секунд). В этой статье мы научимся создавать переменные с типом дата, создавать реквизиты объектов с типом дата и работать на форме с этим типом. А также научимся выполнять элементарные операции над датами.
Создаем программно даты в 1С
Научимся программным способом создать переменную с типом дата. Сделать это можно двумя вариантам. Первый, при помощи ординарных кавычек, в которых дата задается в следующем формате:
ГГГГ – цифры года даты,
ММ — цифры месяца даты
ДД – цифры дня даты
ЧЧ – цифры часа от 0 до 23
ММ – цифры минут от 0 до 59
СС – цифры секунд от 0 до 59
Причем, дату можно задать в полном формате с минутами и секундами, а также без указания минут и секунд. То есть, вот так:
Как изменить дату документа в 1С:Бухгалтерия?
В переменной с типом дата, можно хранить только время без даты. В этом случае нужно указать, что год, месяц и день равно 1, т.е. формат даты будет следующим.
Рассмотрим, примеры. Создадим дату со временем, дату без времени и время с пустой датой. И также все это выведем методом Сообщить. Хотя, метод Сообщить и принимает в качестве параметра тип строка, мы можем и передать в него дату, платформа 1С автоматически её конвертирует в строку.
ПеремДатаВремя = ‘20190912153030’; ПеремДата = ‘20190912’; ПеремВремя = ‘00010101153030’; Сообщить(ПеремДатаВремя); Сообщить(ПеремДата); Сообщить(ПеремВремя);
И посмотрим, как это все вывелось.
Таким образом, в платформе 1С у нас хранится дата в полном размере (год, месяц, день, час, минута, секунда). Если нам нужна просто дата, то час, минута и секунда равны нулю (при программном создании дат их можно не задавать), а если нам нужно просто время без даты, то год, месяц и день равны 1 (при программном создании даты их следует указывать).
Разберем еще один способ создания переменной с типом дата, это использование метода Дата. Этот метод имеет два варианта синтаксис:
СтрокаДаты – строка, которая задаётся в уже знакомом нам формате «ГГГГММДДЧЧММСС», принципы задания строки аналогичны принципам задания даты в ординарных кавычках.
Год – цифра года даты,
Месяц – цифра месяца даты,
День – цифры дня даты,
Час – цифры часа
Минута – цифры минуты
Секунда – цифры секунды.
Первый три параметра являются обязательными.
Если нам нужно задать, просто дату (без времени), то будет следующий синтаксис.
А если нужно задать время, то года, месяц и день будут равны 1:
Переделаем предыдущий пример.
ПеремДатаВремя = Дата(«20190912153030»); ПеремДата = Дата(2019,9,12); ПеремВремя = Дата(1,1,1,15,30,30);
Здесь я использовал два синтаксиса метода Дата. Первый синтаксис, по сути, преобразует строку в дату (строка естественно должна быть задана по правилам). Второй синтаксис, позволяет задать дату при помощи типа число.
Ролик «Как в 1С изменить дату и время в проведенном документе»
Реквизит с типом дата в объектах 1С
Для того, чтобы какой-то реквизит объекта 1С 8.3 был датой, достаточно указать ему соответствующий тип. Например, как мы это делаем со справочником.
Причем у любого реквизита с типом дата имеется состав даты. Это Дата, Время и Дата и время.
В зависимости от того, какой состав даты выбран, такой вид даты и можно будет указать в форме объекта.
Состав даты Дата.
Состав даты Время.
Состав даты Дата и время.
Причем, не имеет значения, какой состав даты выбран, дата запишется полностью в формате ГГГГММДДЧЧММСС. Просто в зависимости от состава даты, или время будет равняться нулю (если выбран состав даты Дата), или год, месяц, день будут равняться единицы.
Дата на управляемой форме 1С
На управляемую форме 1С можно поместить реквизит с типом дата, у которого, также, имеется возможность выбрать состав даты: Дата, Время, Дата и время.
Если мы поместим этот реквизит на форму, то он разместится в виде поля ввода.
Причем у этого поля ввода имеется справа кнопка, при нажатии на которую будет открыто окно выбора даты.
Это окно появляется в том случае, если состав даты реквизита или Дата, или Дата и время.
А отвечает за появление этой кнопки свойство поля ввода «Кнопка выбора».
Посмотрим, как записывается дата, в зависимости от значения состава даты.
Для этого у поля ввода я создам событие при изменении.
В этом событии я напишу простой код, в котором буду в сообщении выводить реквизит управляемой формы, созданный ранее.
КонецПроцедуры
Посмотрим, что вернет этот метод, когда состав даты реквизита — Дата.
Когда состав даты реквизита — Время
Когда состав даты реквизита – Дата и время
Вы убедились наглядно, что независимо от состава даты, у нас дата всегда записывается в формате ГГГГММДДЧЧММСС.
Разность дат в 1С
В 1С 8.3 имеется возможность вычитать одну дату из другой, или получать разность дат. В этом случае разность будет равна количеству секунд между датами.
Например, создадим две даты разностью в минуту, вычтем одну из другой.
Дата1 = Дата(2019,4,20,15,0,0); Дата2 = Дата(2019,4,20,15,1,0); Разность = Дата2 — Дата1; Сообщить(Дата1); Сообщить(Дата2); Сообщить(Разность);
И посмотрим, какая разница.
Как изменить дату выплаты отпуска в 1С:Бухгалтерия 8
При проведении документа «Отпуск» может появляться ошибка «Дата документа не может быть больше планируемой даты выплаты».
При этом стандартный документ «Отпуск» в программе 1С:Бухгалтерия не содержит поля, в котором указывалась бы дата выплаты.
Чтобы дата выплаты появилась в документе, надо зайти в меню «Еще» и выбрать пункт «Изменить форму»
В открывшемся списке надо раскрыть пункт «Главное» (нажать на плюсик).
Выбрать пункт «Дата выплаты» и поставить напротив него флажок.
Теперь дата выплаты отпуска доступна для просмотра и изменения в документе.
Источник: vc4dk.ru
Как изменить дату и время в проведенном документе?
В программе реализована обработка «Изменение выделенных элементов», которая позволяет изменять реквизиты одновременно в нескольких документах, например, время. Для того чтобы в уже проведенном документе изменить время, необходимо сделать следующее:
- Выберите необходимый проведенный документ или несколько документов за одну дату. Для того чтобы выделить выборочно несколько документов воспользуйтесь сочетанием клавиш: Ctrl (Shift)+щелкните по необходимым элементам.
- Щелкните правой клавишей мыши и выберите «Изменить выделенные».
- В окне формы «Изменение выделенных элементов» на закладке «Реквизиты» установите флажок в поле «Дата».
- В колонке «Новое значение» укажите новую дату и время документа.
- Кнопка «Изменить реквизиты».
Выберите раздел
- Все вопросы 94
- 1С:Бухгалтерия 8 437
- 1С:Управление нашей фирмой 8 19
- 1С:Управление Торговлей 8 179
- 1С:Зарплата и Управление Персоналом 8 225
- 1С:Комплексная Автоматизация 8 83
- Бюджетная учет 5
- 1С:Бухгалтерия 7.7 41
- Другие конфигурации 33
Все разделы
- Все вопросы 94
- 1С:Бухгалтерия 8 437
- 1С:Управление нашей фирмой 8 19
- 1С:Управление Торговлей 8 179
- 1С:Зарплата и Управление Персоналом 8 225
- 1С:Комплексная Автоматизация 8 83
- Бюджетная учет 5
- 1С:Бухгалтерия 7.7 41
- Другие конфигурации 33
Источник: www.1c-victory.ru