Имя: Пароль:
1C
 
Выходит год 0001
0 asd123
 
07.05.24
10:14
Привет всем! После обновления в федеральных регистрах  на релиз 3.0.33.2 выходит год 0001
при выборе периода в эксплуатационных данных медоборудования. Что это такое как можно исправить?
1 Asmody
 
07.05.24
10:25
База серверная?
Возможно, слетело смещение дат


2 asd123
 
07.05.24
10:26
да, серверная
3 asd123
 
07.05.24
10:26
а как исправить?
4 arsik
 
07.05.24
10:28
Консоль управления MMC открой и поменяй в свойствах ИБ
5 asd123
 
07.05.24
10:33
не могу найти
6 asd123
 
07.05.24
10:37
а другие даты вроде нормально выходят
7 arsik
 
07.05.24
10:48
А не сорян. Изменить то нельзя в этой оснастке. только при создании.
1) В скуле поменять  - не стоит. Я что то затупил. Используй п 2)
2) В консоли сервера 1с удалить эту ИБ и снова добавить уже с правильным смещением
8 lEvGl
 
07.05.24
10:49
смещение задается при создании базы, а не после
"не было печали, апдейтов накачали"
смотрите код, где то там косяк
9 lEvGl
 
07.05.24
10:53
(7) да вряд ли оно могло слететь, вероятность конечно есть, но очень небольшая
проще посмотреть, откуда такая дата берется, в этой форме наверно же программно откуда то получается. если из скл даты нормального вида(проверить просто консолью запросов, получить любую дату. если смещение есть, то консоль вернет 4000ые года), то проблема в коде формы. а если нет, то да, можно пересоздать базу и залить в нее дт
10 Гена
 
07.05.24
10:54
11 asd123
 
07.05.24
11:38
(9) я с помощью консоли посмотрел: дата нормальная
видимо, где-то в коде ошибка
12 asd123
 
07.05.24
11:39
там формируется список выбора

    Если НачальноеЗначение = Неопределено Тогда
        НачальноеЗначение = ТекущаяДата();
    КонецЕсли;
    
    СписокВыбора = Элементы.ЭксплуатационныеДанные.ПодчиненныеЭлементы.ЭксплуатационныеДанныеМесяцСтрока.СписокВыбора;
    СписокВыбора.Очистить();
    НачалоТекущегоГода = НачалоГода(НачальноеЗначение);
    НачалоПрошлогоГода = НачалоГода(НачалоТекущегоГода - 1);
    СписокВыбора.Добавить(НачалоПрошлогоГода, (Формат(НачалоПрошлогоГода, "ДФ='yyyy'") + "..."));
    НачалоМесяцаЗаполнения = НачалоТекущегоГода;
    ЭлементПоУмолчанию = Неопределено;
    Для а = 1 По 12 Цикл
        ДобавленныйЭлемент = СписокВыбора.Добавить(НачалоМесяцаЗаполнения, ДатаКакМесяцПредставление(НачалоМесяцаЗаполнения));
        Если НачальноеЗначение = НачалоМесяцаЗаполнения Тогда
            ЭлементПоУмолчанию = ДобавленныйЭлемент;
        КонецЕсли;
        НачалоМесяцаЗаполнения = ДобавитьМесяц(НачалоМесяцаЗаполнения, 1);
    КонецЦикла;
    НачалоСледующегоГода = КонецГода(НачалоТекущегоГода) + 1;
    СписокВыбора.Добавить(НачалоСледующегоГода, (Формат(НачалоСледующегоГода, "ДФ='yyyy'") + "..."));
13 asd123
 
07.05.24
11:45
начальнаяДата = 01.01.01 и соответствено заполняет такие данные

внес изменение, сейчас нормально выходит

Если НачальноеЗначение = Неопределено или НачальноеЗначение = Дата(1,1,1) Тогда  
        НачальноеЗначение = ТекущаяДата();
    КонецЕсли;
14 lEvGl
 
07.05.24
11:42
(12) отладчик все и покажет
вангую кривую дату на машине/проблемы с получением текущей даты
15 lEvGl
 
07.05.24
11:44
(13) ТекущаяДата() возвращает 01.01.01?
если так то.. гм хм.. права?
16 asd123
 
07.05.24
11:48
(15) НачальноеЗначение почему-то было 01.01.01 из-за этого так выходило
17 arsik
 
07.05.24
12:12
(16) Ну так ты дату с неопределено сравнивал. Конечно пустая дата <> Неопределено.
Если НачальноеЗначение = Неопределено или НачальноеЗначение = Дата(1,1,1) Тогда 

замени на
Если не ЗначениеЗаполнено(НачальноеЗначение) Тогда 
18 unenu
 
07.05.24
12:19
в таких условиях логично использовать

Если НЕ ЗначениеЗаполнено(НачальноеЗначение) Тогда

Встречал условия в стиле
Если НачальноеЗначение = Неопределено Тогда
правил в расширении, потом исправляли в новых релизах.