gifts2017

1C ЦУП: Летнее время

Опубликовал Александр Жирнов (SunTechnic) в раздел Администрирование - Системное

Обход непредвиденной ошибки 1С, связанная с вычислением времени.

При настройке Центр Управления Производительностью 1С может возникнуть ошибка при настройке технологического журнала. Он вроде как "побежит" настраиваться, о чем будет свидетельствовать редкостный "прогрессбар", но дойдя до 50% вылезет ошибка сообщающая нечто подобное:

Попытки поиска проблемы в настройке параметров технологического журнала могут не привезти к успеху. А причиной тому вот эта ошибка:

Каталог.ПолучитьВремяИзменения()

Время, которое в коде запомнили ранее (допустим, 12:00) и время, которое берётся у каталога (получаем 11:03) отличаются не на 3 минуты вперёд, как должно быть, а на 57 минут назад.

Ниже приведена официальная инструкция по функции с аннотацией:


Файл (File)
ПолучитьВремяИзменения (GetModificationTime)

Синтаксис:
ПолучитьВремяИзменения()

Возвращаемое значение:
Тип: Дата. Местное время последнего изменения файла.

Описание:
Получает время последнего изменения файла.

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Примечание:
Применим только к файлам и каталогам, которые реально существуют. Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами. В режиме совместимости выдает местное время последней модификации файла с ошибкой NTFS. Если файл изменен летом, а просматривается зимой, то полученное время отстает на 1 час. Если файл изменен зимой, а просматривается летом, то полученное время опережает на 1 час. Если режим совместимости с 8.1 выключен, то время выдается без ошибки.

Пример:

ВыбФайл = Новый Файл(ИмяФайла); Если ВыбФайл.ПолучитьВремяИзменения() < ДатаГраницы Тогда ВыбФайл.УстановитьВремяИзменения(ДатаГраницы); КонецЕсли;

Для того, чтобы найти и исправить несправедливость нужно зайти в конфигуратор 1С:ЦУП. Открыть конфигурацию. Далее нажать Ctrl + Shift + F для вызова окна поиска и вписать строку поиска нужное значение: "ПолучитьВремяИзменения". Не забудьте указать модули поиска, при необходимости, в секции ниже строки поиска:

ПолучитьВремяИзменения


Естественно нажмём кнопку "Искать". Будет произведен поиск нужного объекта:

Искать ПолучитьВремяИзменения


Открыв двойным кликом на единственно найденной строке откроется окно редактирования модуля, которое будет заблокировано от редактирования - надпись "Только для чтения" в заголовке модуля. Для его редактирования необходимо снять модуль с поддержки:

1С настройка поддержки


В открывшемся окне нажмём кнопку "Включить возможность изменения" и утвердительно отвечаем в следующем окне подтверждения наших действий:

1С Включить возможность изменения


Побежит прогрессбар показывающий активные действия по изменению режима:

1С Снятие с поддержки, Изменение режима


Далее меняем, что нам нужно:

Каталог.ПолучитьВремяИзменения()


Далее сохраняем изменения и обновляем конфигурацию:

1С обновить конфигурацию базы данных

 

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Сергей (necropunk) 16.08.12 10:15
Расписано слишком подробно, конечно, как будто все тут первый раз конфигуратор видят, но ошибка действительно нетривиальная, учту на будущее. За это - плюс.
2. Александр Жирнов (SunTechnic) 16.08.12 10:59
Считаю, что инструкции и должны писаться подробно, чтобы не было неоднозначностей и неопределенностей.
3. Андрей Бурмистров (Andreynikus) 13.08.13 14:36
Написано конечно подробно, но я так и не понял как исправить ошибку?
Убрать 3600?

Какой код должен быть в итоге?
4. Александр Жирнов (SunTechnic) 14.08.13 10:05
(3) Andreynikus, на скриншотах показано как уже было сделано, чтобы код отработал. Т.е. найти указанное место в коде и самому добавить '+3600' как у меня на скриншрте.
Andreynikus; +1 Ответить 1
5. Андрей Бурмистров (Andreynikus) 15.08.13 16:17
6. pepe (pepe) 12.04.14 00:53
Огромное спасибо. Хотел бить админа за то что Цуп перестал работать.А дело в переходе на летнее время!
7. valex1c (valex1c) 08.10.14 18:12
Спасибо!!! Очень помогло , т.к. в январе настроил - работало , а потом уперлось рогом в 50 % и ВСЕ !!!

Вроде так будет правильнее :

ВремяИзменения = Каталог.ПолучитьВремяИзменения();
Если ВремяИзменения > ВремяНачала ИЛИ ВремяИзменения + 3600 > ВремяНачала Тогда
8. Сергей Зеленовский (zels) 08.01.15 08:43
(7) valex1c, Если ВремяИзменения > ВремяНачала, то тем более ВремяИзменения + 3600 > ВремяНачала и первое условие лишнее.
9. Сергей Зеленовский (zels) 08.01.15 08:44
Вчера столкнулся с этой ошибкой про настройке ЦУПа. То же место в общем модуле "Общий":
Если Каталог.ПолучитьВремяИзменения() > ВремяНачала Тогда
       КаталогиНайдены = Истина;
	Прервать;
КонецЕсли;
...Показать Скрыть

Оказалось, что при проверке ЦУП смотрит, появились ли каталоги rphost_* датой больше ВремяИзменения.
Время изменения- это локальное время на компьютере, а каталоги создаются с временем по Гринвичу.

Функция Каталог.ПолучитьВремяИзменения() корректирует время по Гринвичу с учетом часового пояса и фиг знает почему, но она может это сделать неправильно (или она делает правильно, но локальное время показывается неверно). В октябре наша страна "отмотала" час назад, Microsoft внесла коррективы в ПО и получилось, что где-то работает, а где-то нет. У меня Windows 7 26 октября 2014 сам отпрыгнул на час назад и все было ОК, но спустя пару недель стал показывать неверное время в трее.

Теперь по ошибке: Server 2008 R2. ЦУП создает журнал, ВремяНачала= 22:00:00 (локальное). rphost создает папку со временем 22:00:10 (тоже локальным). А функция Каталог.ПолучитьВремяИзменения() возвращает 21:00:10.
Смотрю настройку часового пояса и вижу UTC+6, но вместо Новосибирска (как надо) указан Екатеринбург. Похоже, на этом компьютере не установлены соответствующие обновления. Поменял часовой пояс на UTC+5 (с UTC+7 Новосибирск не получилось), прошел шаг настройки ТЖ и вернул часовой пояс назад. Модуль ЦУПа менять не потребовалось
10. Сергей (necropunk) 12.01.15 12:25
(9) zels, да, сталкивался с этой проблемой, но это проблема винды, а не ЦУПа.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа