Имя: Пароль:
1C
1С v8
Везде 1970 год
0 TeMochkiN
 
23.09.13
09:41
Я просто в шоке был, когда увидел, что дата везде 1 сентября 1970 года О_О
Открываю абсолютно любой тип документов в УУП, список активных пользователей даже, везде вижу 01.09.1970. Срочно звоню главному бухгалтеру и спрашиваю, видит ли она то, что вижу я. На что она мне удивленно отвечает, что у неё все даты нормальные.
Решил я завершить свой сеанс и зайти заново - всё стало нормально. Вопрос в том, что ЭТО было?
Клиент-серверный вариант работы УПП 1.3.43.1 на платформе 8.2.18.109 и SQL Server 2008. Работаю через RDP.
Дело было так:
В пятницу 20 сентября в конце рабочего дня выяснилось, что нужно перепровести определенный тип документов с начала 2013 года. Нужной обработки не было под рукой, поэтому по-быстрому написал произвольный код для выполнения:

ДатаОтсчета = '20130921073000';
Пока ТекущаяДата() < ДатаОтсчета Цикл
    ОбработкаПрерыванияПользователя();
    
    ОсталосьСекундВсего = ДатаОтсчета - ТекущаяДата();
    ОсталосьМинутВсего = Цел(ОсталосьСекундВсего / 60);
    ОсталосьЧасовВсего = Цел(ОсталосьМинутВсего / 60);
    ОсталосьДнейВсего = Цел(ОсталосьЧасовВсего / 24);

    ОсталосьСекунд = ОсталосьСекундВсего - ОсталосьМинутВсего * 60;
    ОсталосьМинут = ОсталосьМинутВсего - ОсталосьЧасовВсего * 60;
    ОсталосьЧасов = ОсталосьЧасовВсего - ОсталосьДнейВсего * 24;
    
    Состояние("Дата запуска обработки: " + ДатаОтсчета + " Осталось: " + ?(ОсталосьДнейВсего > 0, "" + ОсталосьДнейВсего + " дней, ", "") +
                            ?(ОсталосьЧасов > 0, "" + ОсталосьЧасов + " часов, ", "") +
                            ?(ОсталосьМинут > 0, "" + ОсталосьМинут + " минут, ", "") +
                            ?(ОсталосьСекунд > 0, "" + ОсталосьСекунд + " секунд", "") + " (Обработка прерывания пользователя активна)");
КонецЦикла;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    СправкаОВыполненныхРаботах.Ссылка
|ИЗ
|    Документ.СправкаОВыполненныхРаботах КАК СправкаОВыполненныхРаботах
|ГДЕ
|    СправкаОВыполненныхРаботах.Проведен = ИСТИНА
|    И СправкаОВыполненныхРаботах.Дата >= &Дата";

Запрос.УстановитьПараметр("Дата", '20130101');

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

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

Написал, запустил и пошел домой. Время начала запуска обработки выбрал позже, чем делается автоматический бэкап на случай чего. Само удаленное подключение я оставил активным, а локальную машину выключил. Сегодня прихожу на работу, подключаюсь к тому сеансу, который висит с понедельника. С первого взгляда вроде все нормально, никаких вывалившихся ошибок. Открываю документы, которые перепроводил и в ужасе замечаю их дату 01.09.1970... Тут же смотрю список пользователей, там у всех дата начала работы тоже 1970 год этот... Открываю уже другие типы документов и везде вижу ЭТОТ 1970 ГОД... Ну а дальше уже я писал в начале сообщения.

Вообщем, подскажите неопытному, из-за чего это и как этого избегать в следующий раз
1 TeMochkiN
 
23.09.13
09:44
УПП кстати отредактированная, как вы заметили
2 Defender aka LINN
 
23.09.13
09:46
(0) Больше не пей, не нюхай, не колись и не кури. И все будет хорошо
4 TeMochkiN
 
23.09.13
09:49
(2) да я серьёзно говорю!
5 viktor_vv
 
23.09.13
09:50
Как-то очень похоже на год начала времен в unix

wiki:UNIX-время

Может че в настройках накрутил.
6 МихаилМ
 
23.09.13
09:51
7 viktor_vv
 
23.09.13
09:51
(5) Ссылку скопировать вместе с -время.
8 TeMochkiN
 
23.09.13
09:53
(5) у меня именно сентябрь почему-то был :D
9 TeMochkiN
 
23.09.13
09:54
(6) там проблема решалась аж перезагрузкой сервера, а я просто завершил свой удаленный сеанс (выход из системы) и снова зашел.
10 TeMochkiN
 
23.09.13
09:55
блин, надо было заскринить, чтоб поверили))
11 TeMochkiN
 
23.09.13
09:55
Кстати функция ТекущаяДата() тоже выдавала 1970 год
12 MaxxiMiliSanM
 
23.09.13
09:58
системные настройки может быть изменил?
13 МихаилМ
 
23.09.13
09:59
(11)
текущаядата возвращала  01.09.1970 ?
14 TeMochkiN
 
23.09.13
10:02
(12) я только программист, может конечно сисадмин че делал в выходные, не знаю. придет - спрошу
или если вы про настройки в 1С, то точно ничего не делал. написал код, который выше, выполнил и пошел домой

(13) именно, с секундами даже
15 TeMochkiN
 
23.09.13
10:05
Рабочая дата использовала текущую дату компьютера. Хотя время и дата на компьютере на тот момент были нормальные. Именно в 1С-ке абсолютно все даты отображались 1970 годом
16 viktor_vv
 
23.09.13
10:08
(15) А месяц тоже у всех документов сентябрь ? Если старые документы открыть, какая дата ?
17 TeMochkiN
 
23.09.13
10:13
(16) да, у всех отображалось именно 1 сентября 1970 года,
проверял в списке документов отбор по периоду, только 1 сентября 1970 года и было
18 Maxus43
 
23.09.13
10:17
Тек дата берётся с сервера, а не с локальной машины
19 TeMochkiN
 
23.09.13
10:21
(18) с компьютера-сервера? или именно сервера 1С-Предприятия?
на компьютере-сервере и локальной машине время правильное было
20 TeMochkiN
 
23.09.13
10:21
(19) и дата
21 viktor_vv
 
23.09.13
10:25
Эх, говорят же восьмерка сырая, рано на нее переходить :)).
Это в качестве апа.
22 Maxus43
 
23.09.13
10:25
с сервера 1с..
Ну глюк значит, понять и простить. Если ещё такое будет - делай скрины, обработкой выведи ещё инфу о сеансе, о его рег установках
23 TeMochkiN
 
23.09.13
10:34
(22) та по-любому сделаю скрины и инфу дополнительную выведу, со мной просто первый раз такое, поэтому был просто в шоке и не догадался всё это сделать)))
24 Torquader
 
24.09.13
00:20
В диалоге есть параметр "РабочаяДата", почему-то иногда он слетает в непонятное значение, но, если туда зайти (там дата обычно правильная) поменять её на день назад и сохранить, а потом зайти и поставить на место, то везде начинает выдаваться установленная там дата.
Видимо, кто-то дату в кеш засунул, а что с ней потом сделать, не подумал.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.