Версия для печати темы (https://pro1c.org.ua/index.php?s=7dda647f6e30b6fa7d462202f74ea265&showtopic=38130)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Смещение даты/времени при оперативном проведении

Автор: Bernet 22.06.17, 16:53

Всем привет.
Платформа 8.3.6, Управление Торговым Предприятием для Украины последний релиз. База клиент-сервер.

В процессе работы обнаружили следующий прикол платформы: периодически менеджеры жалуются, что время документа реализации ставится не совсем адекватное, т.е. смещается бывает на несколько минут, бывает на несколько часов. Но происходит такое не каждый раз и отследить закономерность пока не удалось, руками время не меняют. Используется сервер 1С и терминальный сервер. Сверяли время на сервере 1С, на терминале и на локальных компах пользователей - время у всех одинаковое (+/- пару секунд не существуенно), часовой пояс: Киев везде установлен. Вопрос почему периодически смещается дата и почему это не происходит систематично? Кто сталкивался с такой проблемой и как боролись?

Немного поковырявшись, сделали такую обработину чтобы проверить теорию:

Сообщить(ТекущаяДата());
Сообщить(ПолучитьОперативнуюОтметкуВремени());
    
Ит = 1;
Пока Ит <= 200 Цикл
    
    ДокОбъект = ДокСсылка.ПолучитьОбъект();
    ДокОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);
    
    Ит = Ит + 1;
КонецЦикла;
    
Сообщить(ТекущаяДата());
Сообщить(ПолучитьОперативнуюОтметкуВремени());

Если вы выполните этот код у себя, то увидите что в сообщениях текущее время будет адекватное, т.е. то какое у вас на компе/терминале/сервере 1С, а вот Оперативная отметка времени после стольких оперативных проведений съехала на пару часов. Прочитав в Синтаксис-помощнике за функцию ПолучитьОперативнуюОтметкуВремени() узнал что эта функция смещает оперативную метку каждый раз на 1 секунду, но прикол в том что этой функции поиском в коде я не нашел (сначала начал грешить именно на неё, думал что используется в конфигурации). Соответственно все документы которые будут проводится позже, также будут с неправильным временем.

Вопрос: из-за чего такие карусели? что ещё может влиять на время документов? Может ли функция ПолучитьОперативнуюОтметкуВремени() использоваться платформой неявно (поэтому не могу найти в коде)?

Автор: podcast 23.06.17, 8:48

Bernet @ Вчера, 17:53 * ,
Константа стоит Проверять разницу во времени?

Автор: Bernet 23.06.17, 8:57

podcast @ Сегодня, 9:48 * ,
Нет, отключено

вроде как эта константа не влияет на проведение документов, она просто выводит предупреждение если не совпадает время на сервере и локальное. Это мы уже и так проверили, все в одном часовом поясе

Автор: daveal 23.06.17, 8:59

Может это поможет: http://pro1c.org.ua/redirect.php?http://forum.infostart.ru/forum9/topic41517/

Автор: Bernet 23.06.17, 9:58

daveal @ Сегодня, 9:59 * ,
Ну не знаю, это тоже о чем я в описании темы писал, вызов этой функции в коде я не нашел, если она вызывается автоматом при оперативном проведении, то получается надо искать где в коде много раз документы проводятся оперативно. Пока что просто если такие приколы случается то ночью делаем рестарт агента сервера 1С, тогда следующие документы нормальной датой проводятся. Попробуем какой-то лог добавить тогда, может получится вычислить откуда косяки лезут

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua