8.х проблема с кодировкой не открывает файлы .ansi

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем ansi1c2009, 11 дек 2009.

  1. TopicStarter Overlay
    ansi1c2009
    Offline

    ansi1c2009

    Регистрация:
    11 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Платформа 1С 8.1. конфигурация УПП, исправление документа "табель учета рабочего времени" на основе данных электронной проходной (выгружается в текстовом формате кодировка ANSI), при загрузке данного файла в документ табель учета рабочего времени, чтение файла происходит, расчитывается количество строк в файле, отображается сколько строк прочтено, после чтения последней выдает такое сообщение: "Заполнение ТЧ не произведено!
    Преобразование значения к типу Число не может быть выполнено", а должно исправлять количество часов в табеля исходя из данных электронной проходной, как быть?

    это для меня очень важно помощи ждать неоткуда, если не найду ответ меня уволят :(
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Видиио, число задали так (например): 1 000
    Т.е. появился пробел. В 1С так число выглядит при выводе неразрывного проблема, и не просто пробела.
  3. TopicStarter Overlay
    ansi1c2009
    Offline

    ansi1c2009

    Регистрация:
    11 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Файл который вначале загружала выглядил так: "20091201","00:07:08","4567","06:1","043","0","Выход 14 правый" (он отживший, неверный оказался), потом загрузила другой "20091201","00:02:51","8472","00:1","043","0","Турникет 1 - выход" (этот верный). Файл также читается, а после чтения файла данные остаются прежними не изменяются. И ошибок не каких не выдает. В данной обработке пременяются регистры сведений "Данные сотрудников", "Время перемещения".
    Код процедуры чтения файла, может здесь ошибка
    Код:
    Процедура ПрочитатьДанныеЭлектроннойПроходной(ИмяФайла)
    Текст = Новый ТекстовыйДокумент();
    Текст.Прочитать(ФайлЭлектроннойПроходной, КодировкаТекста.ANSI);
    КоличествоСтрокВФайле = Текст.КоличествоСтрок();
    Текст = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.ANSI);
    ДатаНачала = ТекущаяДата();
    СчетчикСтрок= 1;
    СтрокаФайла     = Текст.ПрочитатьСтроку();
    Пока СтрокаФайла<>Неопределено Цикл
    НоваяСтрока = ДанныеЭлектроннойПроходной.Добавить();
    СтрокуФайлаВСтруктуру(СтрокаФайла, НоваяСтрока);  
    СчетчикСтрок= СчетчикСтрок +1;
    СтрокаФайла = Текст.ПрочитатьСтроку();
    ОбработкаПрерыванияПользователя();
    Состояние("Чтение файла: " + Строка(КоличествоСтрокВФайле)+" / " + Строка(СчетчикСтрок));
    КонецЦикла;
    ДатаОкончания = ТекущаяДата();
    КонецПроцедуры
    
    Возможно загвоздка в ДатаНачала = ТекущаяДата(); может датаначала не текущаядата?
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Показывайте код процедуры СтрокуФайлаВСтруктуру
  5. TopicStarter Overlay
    ansi1c2009
    Offline

    ansi1c2009

    Регистрация:
    11 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    [warn=Читайте правила!]Используйте тэг CODE для выделения кода программы![/warn]

    Код:
    Процедура СтрокуФайлаВСтруктуру(СтрокаФайла, НоваяСтрока)
    МассивЭлементов     = Новый Массив(7);
    СчетчикЗапятых     = 0;
    ЭлементСтроки     = "";
    
    РазделительВСтроке     = ",";
    ОграничительЭлемента= """";
    СимволВКонцеФайла     = Символ(26);
    Для Сч=1 По СтрДлина(СтрокаФайла) Цикл
    СимволСтроки = Сред(СтрокаФайла, Сч, 1);
    Если СимволСтроки = РазделительВСтроке Тогда
    СчетчикЗапятых = СчетчикЗапятых + 1;
    МассивЭлементов.Установить(СчетчикЗапятых-1, ЭлементСтроки);
    ЭлементСтроки = "";         
    ИначеЕсли СимволСтроки = ОграничительЭлемента Тогда
    Продолжить;
    ИначеЕсли СимволСтроки = СимволВКонцеФайла Тогда
    Возврат;
    Иначе
    ЭлементСтроки = ЭлементСтроки + СимволСтроки;
    КонецЕсли; 
    КонецЦикла;
    
    СчетчикЗапятых = СчетчикЗапятых + 1;
    МассивЭлементов.Установить(СчетчикЗапятых-1, ЭлементСтроки);
    ЭлементСтроки = "";
    
    ВРСтр = МассивЭлементов.Получить(0)+СтрЗаменить(МассивЭлементов.Получить(1), ":", "");
    НоваяСтрока.ДатаСобытия                         =     Дата(ВРСтр);
    НоваяСтрока.День    =      День(НоваяСтрока.ДатаСобытия);
    НоваяСтрока.ЛичныйНомер     = МассивЭлементов.Получить(2);
    
    ВРСтр = МассивЭлементов.Получить(3);
    Разделитель = Найти(ВРСтр, ":");
    НоваяСтрока.НомерКонтроллера     = Лев(ВРСтр, Разделитель-1);
    НоваяСтрока.НомерСчитывателя     = Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);
    
    НоваяСтрока.КодСобытия               = МассивЭлементов.Получить(4);
    
    
    НоваяСтрока.КодВременногоГрафика= МассивЭлементов.Получить(5);
    
    ВРСтр = МассивЭлементов.Получить(6);
    НоваяСтрока.КПП     = "0";
    Разделитель = Найти(ВРСтр, " ");
    НоваяСтрока.НаименованиеТурникета     = Лев(ВРСтр, Разделитель);
    ВРСтр = Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);
    Разделитель = Найти(ВРСтр, " ");
    НоваяСтрока.НаименованиеТурникета     = СокрЛП(НоваяСтрока.НаименованиеТурникета +Лев(ВРСтр, Разделитель));
    
    ВРСтр = Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);
    Разделитель = Найти(ВРСтр, " ");
    НоваяСтрока.ВходВыход=     Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);
    
    КонецПроцедуры
    
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Да, мое предположение было верным. Приложите теперь образец файла, что бы можно было точно сказать, где менять. Ибо проблема может быть в нескольких местах.
  7. TopicStarter Overlay
    ansi1c2009
    Offline

    ansi1c2009

    Регистрация:
    11 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    фйл содержит строки типа
    "20091202","15:24:19","0801","00:4","043","0","Турникет 3 - вход"
    "20091202","15:24:24","0579","00:0","043","0","Турникет 1 - вход"
    "20091202","15:24:26","8456","00:4","043","0","Турникет 3 - вход"
    "20091202","15:24:29","8449","00:0","043","0","Турникет 1 - вход"
    "20091202","15:24:29","3014","00:4","043","0","Турникет 3 - вход"
    "20091202","15:24:34","8452","00:4","011","0","Турникет 3 - вход"
    остальные строки подобные
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Так, тут что-то не то...

    В появившемся окне нажмите дополнительно и перейдите на строчку с кодом, где такое вывалилось и показывайте этот кусок кода.
  9. TopicStarter Overlay
    ansi1c2009
    Offline

    ansi1c2009

    Регистрация:
    11 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    файл загружается и никаких окон не открывается, вообще никаких изменений не происходит

Поделиться этой страницей