Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 21

Работа с датами в 1С 8.3 на примерах

Хранение дат в системе

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

Переменные типа «дата» всегда представляют дату с секундами. Отсчет дат ведется с Рождества Христова (наша эра), т.е. с 01.01.0001 00:00:00 по Григорианскому календарю. Начальная дата — это не совсем дата. Это значение в системе используется для представления «пустой даты» (аналог пустой ссылки для ссылочных типов или пустой строки «» для строкового типа).

Максимальная дата — 31.12.3999 23:59:59

Как получить текущую дату и время?

Как явно указать нужную дату?

Пустая дата в 1С

В текстах модулей

В запросе

Как соединить дату и время?

Как сложить две даты

Как вычислить количество дней между двумя датами

  • Способ 1 (запросом)
  • Способ 2

Если у вас есть еще какие то интересные заметки — пиши в комментариях, с радостью добавлю в эту статью.

Как добавить к дате секунду, минуту, час, день

Дата представляет собой количество секунд, прошедших с 1 января 0001 года 00:00:00. Поэтому, чтобы добавить к дате дни, часы, минуты и т.д., нужно прибавить соответствующее количество секунд:

Как добавить или отнять от даты месяц

  • Категория: 1С:Предприятие
  • Теги: 1С:Бухгалтерия 8.2, 1С:Бухгалтерия 8.3
  • Нет комментариев

В предыдущей статье я рассказал вам про [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0427u0430u0441u0442u044c u043fu0435u0440u0432u0430u044f u0441u0442u0430u0442u044cu0438 u043fu0440u043e u0441u0430u043cu044bu0435 u0447u0430u0441u0442u044bu0435 u043eu0448u0438u0431u043au0438, u0441u043eu0432u0435u0440u0448u0430u0435u043cu044bu0435 u043du0430u0447u0438u043du0430u044eu0449u0438u043cu0438 u043fu043eu043bu044cu0437u043eu0432u0430u0442u0435u043bu044fu043cu0438 1u0421 u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438. u0421u043eu0445u0440u0430u043du0438u0442u044c u0438 u0437u0430u043fu043eu043cu043du0438u0442u044c!»,»image»:»/upload/artemvm.info/information_system_38/3/8/3/item_3833/small_item_3833.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/tipichnye-oshibki-polzovatelej-1s-buhgalterii-8/»}»>типичные ошибки пользователей 1С Бухгалтерии. По крайней мере, про некоторые из них. Данная статья посвящена одной из таких ошибок. Она настолько распространена, что в общем списке её приводить не стоило. Что же это за ошибка?

Заключается она в том, что ну очень частопри создании документов пользователи 1С Бухгалтерии указывают неверную дату документа. Или неверное время. Или все вместе сразу. Давайте посмотрим, с чем связана такая ошибка и как её избежать.

Ниже приведено окно нового документа 1С Предприятие.

image__0112-027-ustanovka-daty-v-dokumente.jpg[нажмите на картинку для увеличения]

У нового документа по умолчанию подставляется текущая системная дата, если иное не было указано в настройках 1С Бухгалтерии. Обратите внимание на время — оно устанавливается на 00:00:00.

Приведённая выше картина типична для всех [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0415u0441u043bu0438 u0412u044b u0445u043eu0442u0438u0442u0435 u043fu043eu043du044fu0442u044c, u0432 u0447u0451u043c u0437u0430u043au043bu044eu0447u0430u0435u0442u0441u044f u0440u0430u0437u043du0438u0446u0430 u043cu0435u0436u0434u0443 u0432u0435u0440u0441u0438u044fu043cu0438 1u0421 u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438 u043fu0440u0435u0434u043fu0440u0438u044fu0442u0438u044f 7 u0438 8, u0430 u0442u0430u043au0436u0435 u0447u0435u043c u043eu0442u043bu0438u0447u0430u044eu0442u0441u044f u0432u043eu0441u044cu043cu0451u0440u043au0438, u0432u043du0438u043cu0430u0442u0435u043bu044cu043du043e u043fu0440u043eu0447u0442u0438u0442u0435 u044du0442u0443 u0443u0447u0435u0431u043du0443u044e u0441u0442u0430u0442u044cu044e.»,»image»:»/upload/artemvm.info/information_system_38/3/9/8/item_3985/small_item_3985.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/chem-otlichaytsya-versii-1c/»}»>версий 1С Предприятие. Так где же ошибаются пользователи программы при вводе документов?

Прежде всего стоит сказать, что если документ требуется [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u041du0435u043au043eu0442u043eu0440u044bu0435 u043eu0447u0435u0432u0438u0434u043du044bu0435 u0438 u043du0435 u043eu0447u0435u043du044c u043fu0440u0435u0438u043cu0443u0449u0435u0441u0442u0432u0430 u043eu043du043bu0430u0439u043d u043eu0431u0443u0447u0435u043du0438u044f u0432u0432u043eu0434u0443 u043fu0435u0440u0432u0438u0447u043du044bu0445 u0434u043eu043au0443u043cu0435u043du0442u043eu0432 u0432 1u0421 u041fu0440u0435u0434u043fu0440u0438u044fu0442u0438u0438.»,»image»:»/upload/artemvm.info/information_system_38/3/9/0/item_3904/small_item_3904.jpg»,»href»:»/information/uchebnye-stati/obrazovanie/kommentarij-k-kursu-vvoda-pervichki/»}»>внести в базу 1С текущим временем, то есть сегодняшним числом, то дату изменять вручную не нужно. Дело в том, что при записи нового документа (обратите внимание — номера нет, следовательно, документ ещё не записан) текущей датой его время будет автоматически установлено таким, что он встанет в конец всех сегодняшних документов. Проще говоря, при записи нового документа в базу 1С Бухгалтерии его время будет установлено автоматически и он окажется [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0427u0442u043e u0442u0430u043au043eu0435 u043au043eu043du0442u0440u043eu043bu044c u043fu043eu0441u043bu0435u0434u043eu0432u0430u0442u0435u043bu044cu043du043eu0441u0442u0438 u043fu0440u043eu0432u0435u0434u0435u043du0438u044f u0434u043eu043au0443u043cu0435u043du0442u043eu0432 u0432 1u0421:u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438 u0438 u0437u0430u0447u0435u043c u043eu043d u043du0443u0436u0435u043d.»,»image»:»/upload/artemvm.info/information_system_38/3/9/1/item_3917/small_item_3917.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/kontrol-posledovatelnosti-provedeniya-dokumentov/»}»>последним в списке.

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

Ниже привожу два самых распространённых случая.

Документ вводится «задним числом»

В бухгалтерии, в отличие от торговли, далеко не все документы вводятся текущим временем. Это совершенно нормально. Так вот, если требуется ввести документ не текущей датой, то заполнение такого документа следует начать с установки нужной даты и, по необходимости, времени.

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

Для 1С Бухгалтерии 8.2 установка времени по умолчанию находится в меню Сервис / Параметры.

image__0113-027-ustanovka-daty-v-dokumente.jpg[нажмите на картинку для увеличения]

В 1С Бухгалтерии 8.3 нужно зайти в раздел Администрирование и на Панели действий выбрать пункт Персональные настройки.

image__0114-027-ustanovka-daty-v-dokumente.jpg[нажмите на картинку для увеличения]

В таком случае дата будет подставляться такая, какую указали и думать об этом не нужно. Если же документ один или их немного, а в настройки лезть лень (хотя они для этого и созданы!), то просто ставьте дату вручную. Главное — не забывать это делать в каждом документе!

Документ уже записан, но требуется изменить дату

Другой случай — вы уже записали документ, а, возможно, и провели его, но вдруг выяснилось, что нужно изменить дату. Особенность такой операции заключается в том, что при изменении даты для уже записанного документа (проведённого или нет — неважно), время требуется [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0421u0435u0439u0447u0430u0441 u044f u0440u0430u0441u0441u043au0430u0436u0443 u0412u0430u043c u043fu0440u043e u0440u0443u0447u043du044bu0435 u043eu043fu0435u0440u0430u0446u0438u0438 u0438 u043au043eu0440u0440u0435u043au0442u0438u0440u043eu0432u043au0443 u043fu0440u043eu0432u043eu0434u043eu043a u0432 u0434u043eu043au0443u043cu0435u043du0442u0430u0445.»,»image»:»/upload/artemvm.info/information_system_38/3/8/5/item_3852/small_item_3852.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/ruchnoe-redaktirovanie-provodok/»}»>установить вручную. Если этого не сделать, то вполне может получиться, что документ «встанет куда попало» (если вам все равно, то можно и не трогать — иногда это не имеет значения).

Особенно это критично в тех случаях, когда от данного документа [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0427u0442u043e u0442u0430u043au043eu0435 u043au043eu043du0442u0440u043eu043bu044c u043fu043eu0441u043bu0435u0434u043eu0432u0430u0442u0435u043bu044cu043du043eu0441u0442u0438 u043fu0440u043eu0432u0435u0434u0435u043du0438u044f u0434u043eu043au0443u043cu0435u043du0442u043eu0432 u0432 1u0421:u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438 u0438 u0437u0430u0447u0435u043c u043eu043d u043du0443u0436u0435u043d.»,»image»:»/upload/artemvm.info/information_system_38/3/9/1/item_3917/small_item_3917.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/kontrol-posledovatelnosti-provedeniya-dokumentov/»}»>зависят другие или он сам зависит от других документов. Небольшой пример по определению взаимозависимостей я разбирал [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0421u0435u0439u0447u0430u0441 u043cu044b u0440u0430u0441u0441u043cu043eu0442u0440u0438u043c, u043au0430u043a u0438u0437u0431u0435u0436u0430u0442u044c u043eu0448u0438u0431u043eu043a u043fu0440u0438 u0432u0432u043eu0434u0435 u0430u0432u0430u043du0441u043eu0432u044bu0445 u043eu0442u0447u0435u0442u043eu0432 — u0447u0442u043e u044du0442u043e u0437u0430 u043eu0448u0438u0431u043au0438 u0438 u043au0430u043a u0438u0445 u043du0435 u0441u043eu0432u0435u0440u0448u0438u0442u044c.»,»image»:»/upload/artemvm.info/information_system_38/3/8/3/item_3830/small_item_3830.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/massovyi-vvod-avansovyh-otchetov/»}»>в статье про авансовые отчеты.

Более подробно о влиянии порядка документов на особенности их проведения, а также на формируемые ими проводки, я рассматриваю в своем [ArtemVM.iNFO]</span>u0426u0435u043du0430: 16000 u0440u0443u0431.</strong>u0418u043du0434u0438u0432u0438u0434u0443u0430u043bu044cu043du044bu0439 u043eu043du043bu0430u0439u043d u043au0443u0440u0441 u043fu043e u0432u0435u0434u0435u043du0438u044e u0431u0443u0445u0433u0430u043bu0442u0435u0440u0441u043au043eu0433u043e u0443u0447u0451u0442u0430 u0432 u043au043eu043du0444u0438u0433u0443u0440u0430u0446u0438u0438 1u0421:u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u044f 8.3 u0434u043bu044f u044eu0440u0438u0434u0438u0447u0435u0441u043au043eu0433u043e u043bu0438u0446u0430 u043du0430 u043eu0441u043du043eu0432u043du043eu0439 u0441u0438u0441u0442u0435u043cu0435 u043du0430u043bu043eu0433u043eu043eu0431u043bu043eu0436u0435u043du0438u044f.»,»image»:»/upload/artemvm.info/shop_3/1/9/6/item_196/small_item_196.jpg»,»href»:»/shop/online/1s-predpriyatie/vedenie-uchyota-v-programme-1s-buhgalteriya-8.3-yuridicheskoe-lico-osno/»}»>курсе 1С Бухгалтерии 8. Просто запомните — при перестановке записанного документа на другую дату следует быть внимательными и при необходимости установить время вручную!

Подведём итоги

При создании нового документа начинайте заполнять его с самого верха, не пропуская поля (в том числе и дату), которые заполняются автоматически! Это позволит избежать многих ошибок при ведении учета.

Авторы публикации

Артём В. Меньщиков

Преподаватель & программист

[u0423u0447u0430u0441u0442u043du0438u043au0438 u043fu0440u043eu0435u043au0442u0430]</span>u0410u0432u0442u043eu0440 u043eu043du043bu0430u0439u043d u043au0443u0440u0441u043eu0432 u0438 u0443u0447u0435u0431u043du044bu0445 u0432u0438u0434u0435u043eu043au0443u0440u0441u043eu0432, u043eu0441u043du043eu0432u043du043eu0439 u043fu0440u0435u043fu043eu0434u0430u0432u0430u0442u0435u043bu044c u043fu0440u043eu0435u043au0442u0430, u043fu0440u043eu0433u0440u0430u043cu043cu0438u0441u0442. u0420u0430u0437u0440u0430u0431u043eu0442u0447u0438u043a u0438 u0430u0434u043cu0438u043du0438u0441u0442u0440u0430u0442u043eu0440 u043eu0431u0440u0430u0437u043eu0432u0430u0442u0435u043bu044cu043du043eu0433u043e u0438 u0438u043du0444u043eu0440u043cu0430u0446u0438u043eu043du043du043eu0433u043e u043fu0440u043eu0435u043au0442u0430 ArtemVM.INFO.»,»image»:»/upload/artemvm.info/information_system_47/3/7/8/item_3787/small_item_3787.jpg»,»href»:»/information/uchastniki-proekta/artemvm/»}»>подробнее

Работа с типом Дата в языке 1С 8.3, 8.2 (в примерах)

Всё для программиста >> Справочник языка 1С

Вступайте в мою группу помощник программиста.В ней мы обсуждаем программирование в 1С.

ДатаЕслиМассивыМатематикаПроцедурыСтрокиЦиклыДиалогиОписаниеТиповОперационнаяСистемаПриложениеСоответствиеСписокЗначенийСтруктураТаблицаЗначенийФайловаяСистемаФорматОбщиеОбъектыЗапросыПрикладныеОбъектыУниверсальныеФункции

lesson.png См. урок для начинающих по работе с датами в 1С Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)video.png Смотреть видео с демонстрацией выполнения кода

Дата

Описание:

Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до 0,1 миллисекунды.

Литералы:

Строка цифр, заключенная в одинарные кавычки вида: ‘ГГГГММДДччммсс’, где:

  • ГГГГ — четыре цифры года (включая тысячелетие и век);
  • ММ — две цифры месяца;
  • ДД — две цифры даты;
  • чч — две цифры часа (в 24-х часовом формате);
  • мм — две цифры минут;
  • сс — две цифры секунд;

Во встроенном языке в литерале типа Дата обязательно должно задаваться значение года, месяца и дня. Для задания даты соответствующей началу отсчета достаточно указать ‘00010101’. Допускается при указании литералов типа Дата опускать последние символы (секунды, минуты, часы и т.д.). Это означает, что данные параметры будут равны нулю (для времени) или единице (для даты). В литерале даты допускается использование различных разделителей.

&НаКлиенте Процедура ВыполнитьКод(Команда)       /// Как инициализировать дату константой в 1с 8.3, 8.2       Дата ='20130724';// 24.07.2013       /// Как преобразовать строку в дату в 1с 8.3, 8.2       Дата = Дата("20130724");// 24.07.2013       /// Как инициализировать дату отдельными компонентами в 1с 8.3, 8.2       Дата = Дата(2013,07,24);// 24.07.2013       /// Как указать в дате часы, минуты и секунды в 1с 8.3, 8.2       Дата ='20130724132506';// 24 июля 2013 г. 13 ч. 25 мин. 6 сек.       /// Как узнать год (месяц, день, час, минута, секунда) у    /// даты в 1с 8.3, 8.2       Г =  Год(Дата);// 2013     М =  Месяц(Дата);// 7     Д =  День(Дата);// 24     Ч =  Час(Дата);// 13     Ми = Минута(Дата);// 25     С =  Секунда(Дата);// 6       /// Как получить текущую дату в 1с 8.3, 8.2       Сообщить(ТекущаяДата());       /// Операции с датой в 1с 8.3, 8.2       Сообщить(ТекущаяДата()+1);// прибавили секунду       Сообщить(ДобавитьМесяц(ТекущаяДата(),1));// прибавили месяц     Сообщить(ДобавитьМесяц(ТекущаяДата(),-1));// отняли месяц       /// Вспомогательные функции для работы с датой в 1с 8.3, 8.2       Дата ='20130110125905';// 10 января 2013 года 12:59:05       Сообщить(ДеньГода(Дата));// 10       Сообщить(ДеньНедели(Дата));// 4 т.е. четверг (нумерация с понедельника)       Сообщить(НеделяГода(Дата));// 2       Сообщить(НачалоГода(Дата));// 01.01.2013 0:00:00     Сообщить(КонецГода(Дата));// 31.12.2013 23:59:59       Сообщить(НачалоКвартала(Дата));// 01.01.2013 0:00:00     Сообщить(КонецКвартала(Дата));// 31.03.2013 23:59:59       Сообщить(НачалоМесяца(Дата));// 01.01.2013 0:00:00     Сообщить(КонецМесяца(Дата));// 31.01.2013 23:59:59       Сообщить(НачалоНедели(Дата));// 07.01.2013 0:00:00     Сообщить(КонецНедели(Дата));// 13.01.2013 23:59:59       Сообщить(НачалоДня(Дата));// 10.01.2013 0:00:00     Сообщить(КонецДня(Дата));// 10.01.2013 23:59:59       Сообщить(НачалоЧаса(Дата));// 10.01.2013 12:00:00     Сообщить(КонецЧаса(Дата));// 10.01.2013 12:59:59       Сообщить(НачалоМинуты(Дата));// 10.01.2013 12:59:00     Сообщить(КонецМинуты(Дата));// 10.01.2013 12:59:59    КонецПроцедуры   /// Скачать и выполнить эти примеры на компьютере

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Работа с типом Дата в языке 1С 8.3, 8.2 (в примерах)

ДатаЕслиМассивыМатематикаПроцедурыСтрокиЦиклыДиалогиОписаниеТиповОперационнаяСистемаПриложениеСоответствиеСписокЗначенийСтруктураТаблицаЗначенийФайловаяСистемаФорматОбщиеОбъектыЗапросыПрикладныеОбъектыУниверсальныеФункции С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).

Всё для программиста >> Справочник языка 1С

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Milkin_Vladimir_Photo_180.jpgКак помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Используемые источники:

  • https://codernote.ru/1c/rabota-s-datami-v-1s/
  • https://artemvm.info/information/uchebnye-stati/1s-predpriyatie/ustanovka-daty-v-dokumente/
  • https://helpme1c.ru/rabota-s-tipom-data-v-yazyke-1s-8-v-primerax

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации