Имя: Пароль:
1C
1C 7.7
v7: Непонятки с датой документа при экспорте с ексель
0 uno-group
 
30.07.20
09:13
7.7 дбф. Все работало как часы. Изменился клиент банк. екселевский файл экспорта тот же только с другим именем поменял имя файла.
файл стал экспортироваться. Пишет успешно загружен, но документа в базе не видно. Нашел его в самом начале журнала. В журнале отображается правильная дата
29.07.20 потом идут документы 98 года. Если документ открыть и записать интерактивно он располагается в журнале в нужном месте.
если документ очистить и перезагрузить банк по программно он находится и перезаполняеться.
то есть вот такой код его прекрасно находит
нашли=0;
Док.ВыбратьДокументы(ТекДата,ТекДата);
Пока Док.ПолучитьДокумент()=1 Цикл
    Если Док.РСчет = ВыбСчет Тогда
        Нашли=1;
        Прервать;
    КонецЕсли;                    
КонецЦикла;

А вот глПроверкаДатыДок работае неадекватно

Если ДатаДок > Константа.ДатаЗапретаРедактирования Тогда
    Возврат;
КонецЕсли;
Если РежимСтр = "открытие" Тогда
    // открываем форму
    Конт.Форма.ТолькоПросмотр(1);
    Предупреждение("Запрещено редактирование документов (операций), "+РазделительСтрок+"введенных по "+Формат(Константа.ДатаЗапретаРедактирования,"ДДДММММГГГГ")+" !",4);

Выскакиваете предупреждение о запрете редактирование документа. Хотя в отладчике показывает то кое значение переменных
Конт.ДатаДок = '29.07.20'
ДатаДок = '29.07.20'
Константа.ДатаЗапретаРедактирования = '01.01.17'

Базу переиндексировал. Год начала столетия 1960.
1 Saval1986
 
30.07.20
09:18
А эксель не обновлялся? Попробуйте подсовывать 1с всегда 4-хзначную дату.
2 Saval1986
 
30.07.20
09:19
Как вариант можно попробовать checkdb сделать
3 uno-group
 
30.07.20
09:22
В журнале если его просто открыть и выставить период видимости этого документа нет. А вот если найти его по номеру то он находиться и появляется в самом верху. Сперва подумал на индексы переиндексировался но тоже самое 3 день та же самая история.
Дата документа читается так
    дат=СокрЛП(НашЛист.Cells(i,16).Value);
    День=Сред(Дат,1,2);
    Мес=Сред(Дат,4,2);
    год=Сред(Дат,7,4);
    Тз.Дата=Дата(год,мес,день);
потом
    ТекДата=Тз.Дата;
    Док.ДатаДок=Дата(ТекДата);
4 Ёпрст
 
гуру
30.07.20
09:24
(0) 1920 год поди, да ?
5 Ёпрст
 
гуру
30.07.20
09:25
в сервис-параметры выстави отображение года 4 знаками и сымотри, чего там
6 Злопчинский
 
30.07.20
09:26
В настройках 1С самой выставить чтобы показывало даты 4-я цифрами, после этого - смотреть что куда попало, а не гадать.
ну и
год=Сред(Дат,7,4); - не гарантирует что получишь 4 цифры если вэлью типа 01.01.20 - год = "20"
7 uno-group
 
30.07.20
09:39
включил показывать 4 цифры таки да 0020.
хотя в экселе дата отображается как 29.07.2020.
Всем спасибо поборол.