Как указать дату в 1с
Дата публикации 22.09.2023
Использован релиз 3.0.142
При создании новых документов дата создания всегда совпадает с рабочей датой программы. Дату в документе можно изменить и записать, провести документ с измененной датой. Рабочая дата, как правило, совпадает с текущей датой компьютера.
Если вводится большое количество документов с датой, отличной от текущей, то на период такой работы удобно в качестве рабочей даты программы установить произвольную дату:
- Раздел: Главное – Персональные настройки.
- В открывшейся форме установите переключатель «Рабочая дата» в положение:
- «Другая дата» – если необходимо установить произвольную дату, отличную от текущей даты компьютера (все документы будут создаваться на указанную произвольную дату).
- «Текущая дата компьютера» – если необходимо вернуть текущую дату компьютера для автоматической подстановки в новые документы (все документы будут создаваться на текущую дату компьютера).

Подпишитесь на новости
Не пропускайте последние новости — подпишитесь
на бесплатную рассылку сайта:- десятки экспертов ежедневно мониторят изменения законодательства и судебную практику;
- рассылка бесплатная, независимо от наличия договора 1С:ИТС;
- ваш e-mail не передается третьим лицам;
Функции дат в 1С
В прошлой статье мы узнали, что такое дата и как с неё работать. В этой статье изучим основные функции работы с датами в 1С 8.3.
Текущая дата в 1С
В 1С имеется возможность получить текущую дату, ту дату, которая выставлена в данный момент в операционной системе компьютера. Делается это при помощи метода ТекущаяДата.
Этот метод является функцией, не имеет параметров и с его помощью можно получить текущую дату в 1С 8.3.
ТекДата = ТекущаяДата(); Сообщить("Текущая дата: " + ТекДата);
Посмотрим, что возвращает этот код

Как вы могли заметить, текущая дата получена в полном формате (год, месяц, день, час, минута и секунда), т.е. текущая дата у нас возвращается с точностью до секунды.
Определить год, месяц, день, час, минуту и секунду даты в 1С
В платформе 1С имеются методы, которые возвращают числовое представление года, месяца, дня, часа, минут и секунды определенной даты. Данные методы так и называются
Год() – возвращает год даты
Месяц() – возвращает месяц даты
День() – возвращает день даты
Час() – возвращает час даты
Минута() – возвращает минут даты
Секунда() – возвращает секунду даты
Рассмотрим пример, в котором возьмем текущую дату и вернем год, месяц, час, минуту и секунду этой даты.
ТекДата = ТекущаяДата(); Тек_Год = Год(ТекДата); Тек_Месяц = Месяц(ТекДата); Тек_День = День(ТекДата); Тек_Час = Час(ТекДата); Тек_Минута = Минута(ТекДата); Тек_Секунда = Секунда(ТекДата); Сообщить("У даты " + ТекДата + ", год: " + Тек_Год + ", месяц: " + Тек_Месяц + ", день: " + Тек_День + ", час: " + Тек_Час + ", минута: " + Тек_Минута + ", секунда: " + Тек_Секунда);
И результат работы этого кода.

Дата начала и дата конца периода в 1С
В платформе 1С 8.3. имеется возможность определить начало и конец периода даты, которому она принадлежит.
Возьмем, например, дату 10.09.2017 – начала месяца этой даты будет 01.09.2017, а начало года – 01.01.2017. И противоположное, у этой даты конец месяца – 30.09.2017, а конец года -31.12.2017.
Делается это при помощи следующих методов:
- НачалоГода() — возвращает начало года даты
- НачалоКвартала() — возвращает начало квартала даты
- НачалоМесяца() — возвращает начало месяца даты
- НачалоНедели() — возвращает начало недели даты
- НачалоДня()- возвращает начало дня даты
- НачалоЧаса() — возвращает начало часа даты
- НачалоМинуты() — возвращает начало минуты даты
И противоположные методы:
- КонецГода() — возвращает конец года даты
- КонецКвартала() — возвращает конец квартала даты
- КонецМесяца() — возвращает конец месяца даты
- КонецНедели() — возвращает конец недели даты
- КонецДня() — возвращает конец дня даты
- КонецЧаса() — возвращает конец часа даты
- КонецМинуты() — возвращает конец минуты даты
Данные методы являются функциями, которые имеют один параметр с типом дата и возвращают соответствующую дату.
Рассмотрим пример, в котором будем получать начало и конец квартала текущей даты, начало и конец недели текущей даты, и начало и конец часа текущей даты. В этом примере будет шесть методов: НачалоКвартала, НачалоНедели, НачалоЧаса, КонецКвартала, КонецНедели, КонецЧаса. Остальные методы определения начала и конца периода работают аналогично.
ТекДата = ТекущаяДата(); НачКвартала = НачалоКвартала(ТекДата); НачНедели = НачалоНедели(ТекДата); НачЧаса = НачалоЧаса(ТекДата); КонКвартала = КонецКвартала(ТекДата); КонНедели = КонецНедели(ТекДата); КонЧаса = КонецЧаса(ТекДата); Сообщить("У даты " + ТекДата + " начало квартала: " + НачКвартала + " конец квартала: " + КонКвартала); Сообщить("У даты " + ТекДата + " начало недели: " + НачНедели + " конец недели: " + КонНедели); Сообщить("У даты " + ТекДата + " начало часа: " + НачЧаса + " конец часа: " + КонЧаса);
И результат работы этих методов.

Неделя года, день года и день недели
Рассмотрим похожие функции, которые возвращают порядковый номер соответствующего периода, которому принадлежит дата.
НеделяГода() – возвращает порядковый номер недели в году, на которую приходится дата.
ДеньГода() – возвращает порядковый номер дня года указанной даты.
ДеньНедели() – возвращает порядковый номер дня недели указанной даты.
Сделаем пример, в котором у текущей даты определим какой день недели (понедельник, вторник и т.д.), какой день года, и какая неделя в году.
ТекДата = ТекущаяДата(); НеделяГода = НеделяГода(ТекДата); ДеньГода = ДеньГода(ТекДата); ДеньНедели = ДеньНедели(ТекДата); Если ДеньНедели = 1 Тогда СообщениеДня = "сегодня понедельник"; ИначеЕсли ДеньНедели = 2 Тогда СообщениеДня = "сегодня вторник"; ИначеЕсли ДеньНедели = 3 Тогда СообщениеДня = "сегодня среда"; ИначеЕсли ДеньНедели = 4 Тогда СообщениеДня = "сегодня четверг"; ИначеЕсли ДеньНедели = 5 Тогда СообщениеДня = "сегодня пятница"; ИначеЕсли ДеньНедели = 6 Тогда СообщениеДня = "сегодня суббота"; ИначеЕсли ДеньНедели = 7 Тогда СообщениеДня = "сегодня воскресенье"; КонецЕсли; Сообщить("У даты " + ТекДата + " " + СообщениеДня + ", день года: " + ДеньГода + ", неделя года: " + НеделяГода);
В этом примере я использовал условие, в котором в зависимости от того, что возвращал метод ДеньНедели выводил строкой нужное сообщение.

Добавить месяц к дате в 1С
В предыдущей статье мы научились добавлять к дате секунды (или вычитать из даты секунды). Делается это прибавлением к дате любого целого числового значения. Например, так:
ТекДата = ТекущаяДата(); ТекДатаПлюсЧас = ТекДата + 3600;
В этом примере мы прибавили к дате 1 час. Но если нужно к какой-то дате прибавить месяц, то данный метод не всегда подойдет: в разных месяцах разное количество дней.
И если такая задача возникает, то нужно использовать метод ДобавитьМесяц. При помощи этого метода, можно добавить к дате или убавить от даты нужное количество месяцев.
Этот метод является функцией, возвращает переменную с типом дата и имеет следующий синтаксис:
Этот метод добавляет или вычитает из даты в первом параметре количество месяцев из второго параметра.
Рассмотрим пример: добавим к текущей дате месяц и год, а также вычтем из текущей даты месяц и год.
ТекДата = ТекущаяДата(); ТекДатаПлюсМесяц = ДобавитьМесяц(ТекДата,1); ТекДатаМинусМесяц = ДобавитьМесяц(ТекДата,-1); ТекДатаПлюсГод = ДобавитьМесяц(ТекДата,12); ТекДатаМинусГод = ДобавитьМесяц(ТекДата,-12); Сообщить("Текущая дата: " + ТекДата + ", ""+"" месяц: " + ТекДатаПлюсМесяц + ", ""-"" месяц: " + ТекДатаМинусМесяц); Сообщить("Текущая дата: " + ТекДата + ", ""+"" год: " + ТекДатаПлюсГод + ", ""-"" год: " + ТекДатаМинусГод);
И результат этого кода:

Другие статьи о примитивных типах:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655Вступайте в мои группы:
Программная работа с датой
Тип данных Дата позволяет привязывать события учета к шкале времени. Для этого значения типа Дата могут хранить три варианта даты:
- только дату 01.01.2020
- только время 10:30:00
- дату и время 01.01.2020 10:30:00
На физическом уровне (в таблицах базы данных) тип Дата хранится в числовом виде, представляя количество секунд, прошедшее с 1 января 0001 года. Верхняя граница технически ограничена значением 31.12.3999 23:59:59
Дату в коде можно представить двумя способами:
- Как литерал, заключенный в одинарные кавычки: ‘20200101’ — только дата; ‘20200101103000’ — дата и время
- С помощью функции Дата(), конструирующей дату из составных частей: Дата(2020, 1, 1) — только дата; Дата(2020, 1, 1, 10, 30, 0) — дата и время
Обратите внимание, что составные части даты имеют одну и ту же последовательность: год, месяц, день, час, минута, секунда. Схематично это можно представить так:
20200101103000 (дата + время) ГГГГ----------- номер года ММ--------- номер месяца ДД------- номер дня месяца чч----- час мм--- минута сс- секунда
Операции с датой
Сложение
Поскольку дата на физическом уровне приводится к числовому значению, то прибавив к нему некоторое числовое значение, вы снова получите число. При сложении даты и числа, последнее воспринимается платформой, как количество прибавляемых секунд:
НоваяДата = НачалоЧаса(ТекущаяДата()) + 3600;
Здесь важно соблюдать последовательность операндов: на первом месте должна идти дата, а затем число. Например, следующий код будет ошибочным:
НоваяДата = 3600 + ТекущаяДата();//неверно.
Причем, с ошибкой Вы столкнетесь только на этапе выполнения программы!
Вычитание
Вычитание — операция обратная от сложения. Это равноценно тому, что мы прибавляли бы к дате отрицательное значение. Здесь также важно соблюдать последовательность:
НоваяДата = НачалоЧаса(ТекущаяДата()) - 3600;
Кроме того, можно из одной даты, вычесть другую и мы получим длину интервала в секундах:
ДатаНачала = Дата(2020,1,1,10,30,0); ДатаОкончания = Дата(2020,1,1,11,30,0); ДлинаИнтервала = ДатаОкончания - ДатаНачала; Сообщить(ДлинаИнтервала); //Результат: // 3 600
Склеивание (конкатенация)
В том случае, если вы работаете со строковыми представлениями даты, возможна обычная конкатенация (склеивание) строк:
НачалоДня = "20200101"; ДесятьЧасов = "100000"; НоваяДата = НачалоДня + ДесятьЧасов; Сообщить(Дата(НоваяДата)); //результат: 01.01.2020 10:00:00
Функции работы с датой
Дата() функция преобразования к типу дата ТекущаяДата() возвращает текущую дату НачалоДня() возвращает дату и время начала дня для даты КонецДня() возвращает дату и время конца дня для даты ДобавитьМесяц() добавляет к дате целое число месяцев ДеньНедели() возвращает номер дня недели для даты Внимание! В таблице перечислены не все функции работы с датой
1С 8.3 Дата и время — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С
Дата в 1С 8.3 — это примитивный тип данных, который всегда имеет формат: год, месяц, день, час, минута, секунда. Поэтому переменная типа дата содержит не только дату, но и время. Простой способ создания новой переменной типа дата является приравнивание к переменной строки цифр в одинарных кавычках вида ‘ГГГГММДДччммсс’ (если часы, минуты и секунды не указывать, то они приравниваются к 00:00:00) где:
ГГГГ — четыре цифры года (включая тысячелетие и век);
ММ — две цифры месяца;
ДД — две цифры даты;
чч — две цифры часа (в 24-х часовом формате);
мм — две цифры минут;
сс — две цифры секунд.
Оглавление:

✔ Работа с датой и временем
Работа с датой и временем в 1С 8.3:
&НаКлиенте
Процедура РаботаСДатойИВременем ( Команда )// Установка даты в переменную
ТолькоДата = ‘20200415’ ; // 15.04.2020// Преобразование строки в дату
ТолькоДата = Дата ( «20200415» ); // 15.04.2020// Преобразование чисел в дату отдельными частями
ТолькоДата = Дата ( 2020 , 04 , 15 ); // 15.04.2020// Установка в дате: часы, минуты и секунды
ДатаВремя = ‘20200415162703’ ; // 15 апреля 2020 г. 16 ч. 27 мин. 03 сек.// Получение года (месяца, дня, часа, минуты, секунды) у даты
Год_Даты = Год ( ДатаВремя ); // 2020
Месяц_Даты = Месяц ( ДатаВремя ); // 4
День_Даты = День ( ДатаВремя ); // 15
Час_Даты = Час ( ДатаВремя ); // 16
Минута_Даты = Минута ( ДатаВремя ); // 27
Секунда_Даты = Секунда ( ДатаВремя ); // 03// Прибавление к дате 3 секунды
Сообщить ( ДатаВремя + 3 ); // 15.04.2020 16:27:06// Прибавление к дате два месяца
Сообщить ( ДобавитьМесяц ( ДатаВремя , 2 )); // 15.06.2020 16:27:03// Вычитание от даты одного месяца
Сообщить ( ДобавитьМесяц ( ДатаВремя , — 1 )); // 15.03.2020 16:27:03// Получение текущей (рабочей) даты
Сообщить ( ТекущаяДата ());Прибавить день к дате или вычесть день из даты в 1С 8.3:
// вариант 1:
&НаКлиенте
Процедура ОперацииДеньДата ( Команда )Сообщить ( МатематикаДень ( ‘20200415’ , 1 )); //16.04.2020 0:00:00
Сообщить ( МатематикаДень ( ‘20200415’ , — 1 )); //14.04.2020 0:00:00&НаКлиенте
Функция МатематикаДень ( Дата , ЧислоДней )Возврат Дата + 86400 * ЧислоДней ; // 86400 сек.
// или вариант 2 (менее универсальный):
&НаКлиенте
Функция ПолучитьСледующийДень ( Дата )// с помощью функции КонецДня прибавляем секунду к 15.04.2020 23:59:59
Возврат КонецДня ( Дата )+ 1 ; // и получаем следующий день 16.04.2020 00:00:00
КонецФункции
Дополнительные функции при работе с датой в 1С 8.3:&НаКлиенте
Процедура ДополнительныеФункцииДаты ( Команда )// Указываем дату явно:
ДатаВремя = ‘20200415162703’ ; // 15 апреля 2020 г. 16:27:03
//или
ДатаВремя = ‘2020.04.15:16:27:03’ ; // 15 апреля 2020 г. 16:27:03Сообщить ( ДеньГода ( ДатаВремя )); // 15
Сообщить ( ДеньНедели ( ДатаВремя )); // 3 — Среда (нумерация с понедельника «1»)
Сообщить ( НеделяГода ( ДатаВремя )); // 3 Неделя
Сообщить ( НачалоГода ( ДатаВремя )); // 01.01.2020 0:00:00
Сообщить ( КонецГода ( ДатаВремя )); // 31.12.2020 23:59:59Сообщить ( НачалоКвартала ( ДатаВремя )); // 01.04.2020 0:00:00
Сообщить ( КонецКвартала ( ДатаВремя )); // 30.06.2020 23:59:59Сообщить ( НачалоМесяца ( ДатаВремя )); // 01.04.2020 0:00:00
Сообщить ( КонецМесяца ( ДатаВремя )); // 30.04.2020 23:59:59Сообщить ( НачалоНедели ( ДатаВремя )); // 13.04.2020 0:00:00
Сообщить ( КонецНедели ( ДатаВремя )); // 19.04.2020 23:59:59Сообщить ( НачалоДня ( ДатаВремя )); // 15.04.2020 0:00:00
Сообщить ( КонецДня ( ДатаВремя )); // 15.04.2020 23:59:59Сообщить ( НачалоЧаса ( ДатаВремя )); // 15.04.2020 16:00:00
Сообщить ( КонецЧаса ( ДатаВремя )); // 15.04.2020 16:59:59Сообщить ( НачалоМинуты ( ДатаВремя )); // 15.04.2020 16:27:00
Сообщить ( КонецМинуты ( ДатаВремя )); // 15.04.2020 16:27:59Преобразование в дату десятисимвольной строки в 1С 8.3:
&НаКлиенте
Процедура ПреобразованиеВДатуСтроки10Симв ( Команда ) // «15.04.2020» преобразуем в ‘15.04.2020 0:00:00’// Строковая дата без времени преобразовывается в дату со временем:
СтрокаДаты = «15.04.2020» ;
ТолькоДата = Дата ( Сред ( СтрокаДаты , 7 , 4 )+ Сред ( СтрокаДаты , 4 , 2 )+ Сред ( СтрокаДаты , 0 , 2 )); // формат даты ‘15.04.2020 0:00:00’Проверка на пустое значение даты (заполнение) в 1С 8.3:
&НаКлиенте
Процедура ПроверкаНаПустоеЗначениеДаты ( Команда )//способ №1
Если ПустаяДата = ‘00010101’ Тогда // или ‘00010101000000’
Сообщить ( «Эта дата пустая» );
КонецЕсли;//способ №2
Если ПустаяДата = ‘0001–01–01’ Тогда
Сообщить ( «Эта дата пустая» );
КонецЕсли;//способ №3
Если ПустаяДата = Дата ( 1 , 1 , 1 ) Тогда // или Дата(1, 1, 1, 0, 0, 0)
Сообщить ( «Эта дата пустая» );
КонецЕсли;//способ №4
Если НЕ ЗначениеЗаполнено ( ПустаяДата ) Тогда
Сообщить ( «Эта дата пустая» );
КонецЕсли;Проверка на пустое значение даты в Запросе в 1С 8.3:
&НаСервере
Процедура ПроверкаНаПустоеЗначениеДатыВЗапросе ( Команда )//способ №1
Запрос = Новый Запрос ( «ВЫБРАТЬ
| ДатаРегистрацииЕГР
| ИЗ
| Справочник.Контрагенты
| ГДЕ
| ДатаРегистрацииЕГР = &ПустаяДата» ;
Запрос . УстановитьПараметр ( «ПустаяДата» , ‘00010101’ );//способ №2
Запрос = Новый Запрос ( «ВЫБРАТЬ
| ДатаРегистрацииЕГР
| ИЗ
| Справочник.Контрагенты
| ГДЕ
| ДатаРегистрацииЕГР = ДАТАВРЕМЯ(1,1,1,0,0,0)» ;
// или ДАТАВРЕМЯ(0001,01,01,0,0,0) или ДАТАВРЕМЯ(1,1,1)РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
Пока Записи . Следующий () Цикл
// Обход результата запроса по каждой записи в полученной выборке
КонецЦикла;Сложение двух дат в 1С 8.3:
&НаКлиенте
Функция СложениеДат ( Команда )ПустаяДата = ‘00010101’ ;
Дата1 = ‘20200415’ ; // 15.04.2020
Дата2 = ‘20220214’ ; // 14.02.2022Результат = ПустаяДата + ( Дата1 — ПустаяДата ) + ( Дата2 — ПустаяДата );
Сообщить ( «Дата fs10lh1-5 cf2″>+ Результат ); // Дата = 29.05.4041 0:00:00
Сравнение двух дат в 1С 8.3:
&НаКлиенте
Процедура СравнениеДат ( Команда )Дата1 = ‘20200415’ ; // 15.04.2020
Дата2 = ‘20200415’ ; // 15.04.2020Если Дата1 . Сравнить ( Дата2 ) = 0 Тогда
Сообщить ( «Даты равны» );
КонецЕсли;Расчет количества дней между датами в 1С 8.3:
&НаКлиенте
Процедура РасчетКоличестваДнейМеждуДатами ( Команда )ДатаНач = ‘20200415’ ;
ДатаКон = ‘20200417’ ;РазницаВСекундах = ДатаКон — ДатаНач ; // 172800 секунды
РазницаВДнях = Цел ( РазницаВСекундах / 86400 ); // 2 дняРасчет количества дней между датами ЗАПРОСОМ в 1С 8.3:
&НаКлиенте
Процедура РасчетКоличестваДнейМеждуДатамиЗапросом ( Команда )ДатаНач = ‘20200415’ ;
ДатаКон = ‘20200417’ ;Сообщить ( РазницаДатНаСервере ( ДатаНач , ДатаКон , «ДЕНЬ» )); //2 дня
&НаСервере
Функция РазницаДатНаСервере ( ДатаНач , ДатаКон , СтрПериод )//СтрПериод — может быть «ДЕНЬ», «НЕДЕЛЯ», «МЕСЯЦ», «ГОД»
Запрос = Новый Запрос ( «ВЫБРАТЬ РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, » + СтрПериод + «) КАК РазностьДат» );
Запрос . УстановитьПараметр ( «ДатаНач» , ДатаНач );
Запрос . УстановитьПараметр ( «ДатаКон» , ДатаКон );Возврат Запрос . Выполнить (). Выгрузить ()[ 0 ]. РазностьДат ;
Узнать текущую дату в миллисекундах в 1С 8.3:
&НаКлиенте
Процедура УзнатьТекущуюДатуВМиллисекундах ( Команда )Сообщить ( ТекущаяУниверсальнаяДатаВМиллисекундах ()); //79 452 791 027 745
// Примечание: не совершайте чужих ошибок:
//
// Чтобы упорядочить данные в порядке поступления, разработчик добавил измерение МоментВремени И заполнил его// из ТекущаяУниверсальнаяДатаВМиллисекундах(). При поступлении пакета разные наборы данных зарегистрировались одной миллисекундой
// (см.скриншот ниже).
//
// Всё работало, до тех пор, пока в обмен не добавили сценарий «удаляем данные, затем добавляем данные».// Появилась плавающая ошибка — часть данных теряется. На самом деле данные сперва приходят, потом удаляются, т.к. нарушен порядок.
//
// Вывод: точности миллисекунд может быть недостаточно.// Вариант решения, например — добавить поле с порядковым номером записи, по всем записям или в рамках секунды.
Момент времени в 1С 8.3:
// Момент времени — комбинация даты и ссылки на документ.
// Момент времени используется в тех случаях, когда важно различать моменты времени для объектов,
// имеющих одинаковую дату и время, например для сравнения положений документов на временной оси.
// То есть позволяет разделить и упорядочить документы в пределах одной секунды,
// выстраивая все документы в однозначную последовательность.
// Получение данных при проведении на момент времени гарантирует,
// что будут учтены движения сделанные в ту же секунду что и проводимый документ,
// но находящиеся перед ним.
// Но есть особенность — документы проведенные в одну и ту же секунду располагаются
// в произвольном порядке, а не в порядке их физического создания (как было в 7.7).Функция СравнитьДваДокумента ( Док1 , Док2 )
// У «Док1» и «Док2» одинаковая дата и время: 15.04.2020 23:59:59
РезультатСравнения = Док1 . МоментВремени (). Сравнить ( Док2 . МоментВремени () );Сообщить ( РезультатСравнения );
Возврат РезультатСравнения ;// Распространенная ошибка в формировании движений документов по регистрам:
// Не знать, что в 1 секунде времени может быть несколько тысяч документов, и для определения последовательности
// использовать поле «Дата» из документа. Необходимо использовать МоментВремени(), который равен Дата + Ссылка.
// И еще нужно иметь ввиду, что Ссылка — это не только УИД, но и идентификатор типа документа.
// Поэтому при упорядочивании внутри одной секунды сначала идут документы одного типа, а потом уже другого.