Дата в 1С

При работе в Экселе иногда требуется определить количество дней в месяце. Существует несколько вариантов решения данной задачи.

Первый день месяца в Excel

Для формулы, преобразующей текущую или другую дату в первый день месяца, используем функции «ДАТА», «ГОД» и «МЕСЯЦ»:

  • Первый день текущего месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1)
  • Первый день прошлого месяца от текущей даты: =ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())-1;1)
  • Первый день текущего месяца предыдущего года от текущей даты: =ДАТА(ГОД(СЕГОДНЯ())-1;МЕСЯЦ(СЕГОДНЯ());1)
  • Первый день месяца от произвольной даты, записанной в ячейку «A1»: =ДАТА(ГОД(A1);МЕСЯЦ(A1);1)

Определить первый день месяца можно не только для прошедших периодов, но и для будущих, прибавив соответствующее количество лет или месяцев в формулу.

Что дает нам функция «Дата и время»

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

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

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

2021-02-24T11:02:56+00:00 Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

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

Полный синтаксис (нажмите, чтобы раскрыть)

Как в Excel хранится время

Excel сохраняет время, используя тот же формат порядковой нумерации, что и для дат. День у Excel «начинается», как и у нас с вами в полночь. Каждый час составляет 1/24 дня, поэтому он представлен в виде десятичного значения: 0,041666…

Если Вы хотите узнать, что «видит» Excel, когда вы записываете в ячейку 9:00 утра, то умножьте: 0,041666 на 9.

Одна минута в Excel представлена числом: 1 / (24 * 60) = 1/1440 = 0,000694.

Секунда составляет 1 /(24 * 60 * 60 )= 1/86400 = 0,00001157407…

Поэтому если вы запишете в ячейку 8:30 утра, Excel совершит следующий расчет:

(8 * (1/24)) + (30 * (1/1440)) = 0,354167

Так что, если вы опаздываете на работу на полчаса и хотите сообщить об этом своему боссу, напишите ему / ей и скажите, что будете на месте через 0,02083333….

Если время указано без даты, например, 9:00, Excel сохраняет его, как 9:00 0 января 1900 года. Это может затруднить выполнение математических расчетов для значений времени (без даты), поскольку вычитание 6:00 из 3:00 станет отрицательным и будет считаться ошибкой, так как  0,125 — 0,25 = -0,125 , что будет отображаться как #########.

Если же время указано вместе с датой, то проблем не возникнет. Так 11:00 20 августа 2020 года будет сохранено как 44063,46.

формат времени в excel

Синтаксис

=DAY(serial_number)

=ДЕНЬ(дата_в_числовом_формате)

Аргументы

  • Year (Год) – значение года, которое важно отобразить в дате;
  • Month (Месяц) – значение месяца, которое важно отобразить в дате;
  • Day (День) – значение дня, которое важно отобразить в дате.

Как показать сразу несколько скрытых листов в Excel?

Василий18:50:00 Add Comment

При работе с большими книгами в Excel, часто возникает необходимость скрыть лишние листы, что бы они не мешались в работе. Но что делать, ес…

Далее…

Функции извлечения времени

ЧАС(), МИНУТА() и СЕКУНДА()

Данные функции аналогичны функциям извлечения дат.

Посмотрим на примере:

Функции извлечения времени

Текущая дата

Функция ТекущаяДата возвращает системную дату компьютера. Может использоваться как на сервере, так и на клиенте. Причем если сервер и клиент это разные компьютеры и дата или время на них не совпадает, то данная функция вернет разные значения:

ТекущаяДата= ТекущаяДата();

Дополнительные функции извлечения даты

ДЕНЬНЕД() и НОМНЕДЕЛИ()

Довольно часто, бывает так: нам говорят: «Давайте встретимся 24.08.2020!». Многие люди не могут по дате сориентировать: свободны они или нет. У нас так условно «заведено» — мыслить днями недели. Для нас понедельник, например, (какая бы дата ни была) – день тяжелый, а вот пятница – «проказница».

Иногда полезно найти зависимость продаж от дней недели. Как это сделать?! Не станешь же все даты размечать.

На такой случай есть полезная функция: ДЕНЬНЕД(). Эта функция выдает в качестве результата число от 1 до 7, которое соответствует дню недели. Синтаксис очень прост:

= ДЕНЬНЕД (дата_в_числовом_формате, [тип])

Параметр [тип] показывает, с какого числа начинается неделя и может принимать следующие значения:

Замечание! Кто внимательно смотрел, те заметили, что варианты 1 и 17; 2 и 11 – одинаковые. Действительно, функционально эти значения одинаковы. Но первые значения предназначены для совместимости с более ранними версиями Excel.

По умолчанию параметр [тип] принимает значение 1 (то есть неделя начинается с воскресенья). Но в России первым днем недели принято считать понедельник, поэтому для расчетов мы будет использовать значение параметра [тип] = 2.

Функция НОМНЕДЕЛИ() возвращает, как понятно из названия, номер недели, на которую приходится конкретная дата.

Синтаксис совпадает с предыдущей формулой.

Рассмотрим работу функции на примере:

Видно, что 20 августа 2020 года – это четвертый день недели (четверг) и выпадает на 34 неделю с начала года.

Значение параметра [тип_возвр] принимает фиксированные значения из списка:

Часовые пояса

1С позволяет работать в одной информационной базе из разных часовых поясов. Часовой пояс может быть определен для:

  • сеанса пользователя
  • информационной базы
  • сервера

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

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

Для установки часового пояса сеанса используется функция УстановитьЧасовойПоясСеанса. Чтобы получить текущее значение часового пояса сеанса предназначена функция ЧасовойПоясСеанса:

УстановитьЧасовойПоясСеанса(“Etc/GMT+2”);

ЧасовойПоясСеанса= ЧасовойПоясСеанса();//Etc/GMT+2

Для работы с часовым поясом информационной базы предназначены функции УстановитьЧасовойПоясИнформационнойБазы и ПолучитьЧасовойПоясИнформационнойБазы. Изменение часового пояса информационной базы возможно только в монопольном режиме. Чтобы изменение часового пояса информационной базы вступило в силу нужно перезайти в базу.

//часовой пояс ИБ можно менять только в монопольном режиме

УстановитьМонопольныйРежим(Истина);

УстановитьЧасовойПоясИнформационнойБазы(“Africa/Bissau”);

//если ничего не передать, то часовой пояс ИБ будет сброшен

//чтобы изменился часовой пояс сеанса нужно перезайти в базу.

УстановитьМонопольныйРежим(Ложь);

ЧасовойПоясБазы= ПолучитьЧасовойПоясИнформационнойБазы();

//если пояс не был изменен, то функция вернет Неопределено

Чтобы получить часовой пояс сервера нужно использовать функцию ЧасовойПояс:

ЧасовойПояс= ЧасовойПояс();// “Europe/Moscow”

На сервере для получения текущей даты и времени нужно использовать функцию ТекущаяДатаСеанса. Данная функция получает дату и время с учетом часового пояса. То есть если сервер физически установлен в часовом поясе «Europe/Moscow», а подключение к нему выполняется из часового пояса «Asia/Krasnoyarsk», то функция ТекущаяДата вернет дату и время сервера, что не будет корректным. А если при старте сеанса в Красноярке установить часовой пояс «Asia/Krasnoyarsk», то функция ТекущаяДатаСеанса приведет время к часовому поясу сеанса пользователя.

ТекущаяДатаСеанса= ТекущаяДатаСеанса();

Чтобы узнать все возможные часовые пояса можно воспользоваться функцией ПолучитьДопустимыеЧасовыеПояса. Данная функция вернет массив со всеми возможными часовыми поясами:

Массив= ПолучитьДопустимыеЧасовыеПояса();

С помощью функции ПредставлениеЧасовогоПояса можно получить представление часового пояса:

Представление= ПредставлениеЧасовогоПояса(“Europe/Astrakhan”);//GMT+04:00

Преобразование даты и времени из текста

ДАТАЗНАЧ () и ВРЕМЯЗНАЧ ()

Все вышеперечисленные функции отлично работают с порядковыми номерами в формате даты в Excel. К сожалению, даты и время часто импортируются на листы в виде текста. Чтобы перевести текстовые строки в формат даты и времени используют функции ДАТАЗНАЧ() и ВРЕМЯЗНАЧ(). Синтаксис для каждого следующий:

= ДАТАЗНАЧ (дата_как_текст)

= ВРЕМЯЗНАЧ (время_как_текст)

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

Примеры работы функций:

Примерреобразование даты и времени из текста

Будьте внимательны!

Одна из проблем, с которой часто сталкиваются пользователи Excel, заключается в том, что программа иногда неверно интерпретирует текстовые поля как даты. Пример здесь:

Видите, что разное положение цифры 20 влияет на исходный результат. Поэтому будьте осторожны при вводе дат, особенно если Вы импортируете данные из других источников. Чтобы не получилось, как в моей истории в начале статьи))

Помните: время очень ценный ресурс. И каждая секунда на счету. Excel знает об этом все. Поэтому будьте внимательнее и не теряйте время!

course-img-4.jpg

КУРС

EXCEL ACADEMY

Научитесь использовать все прикладные инструменты из функционала MS Excel.

 

Исправление записей с двузначными годами.

Современные версии Microsoft Excel достаточно умны, чтобы обнаружить некоторые очевидные ошибки в ваших данных, или, точнее, сказать, что Эксель считает ошибкой. Когда это произойдет, вы увидите индикатор ошибки (маленький зеленый треугольник) в верхнем левом углу клетки, и, когда вы выделите её, появится восклицательный знак.
При нажатии на восклицательный знак отобразятся несколько параметров, относящихся к вашим данным. В случае двухзначного года программа спросит, хотите ли вы преобразовать его в 19XX или 20XX.

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

2020-03-04_12.png

Источники

  • https://micro-solution.ru/excel/formatting/custom-format
  • https://www.planetaexcel.ru/techniques/6/88/
  • https://exceltable.com/funkcii-excel/funkcii-raboty-datami
  • https://lumpics.ru/functions-date-and-time-in-excel/
  • https://zen.yandex.ru/media/id/5a25282b7800192677cc044f/5dea1b66e4fff000adb66297
  • https://mister-office.ru/funktsii-excel/if-with-dates.html
  • https://needfordata.ru/blog/rabota-s-datami-v-excel-ustranenie-tipovyh-oshibok
  • https://excelhack.ru/data-funkciya-v-excel/
  • https://mister-office.ru/formuly-excel/insert-dates-excel.html
  • https://zen.yandex.ru/media/id/593a7db8d7d0a6439bc26099/5e254f062b61697618a72b0c
  • https://office-guru.ru/excel/kak-skladyvat-i-vychitat-daty-dni-nedeli-mesjacy-i-gody-v-excel-438.html
  • https://mister-office.ru/excel/convert-text-date.html
Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...