табель учета рабочего времени - проблемы с файлами .ANSI

Типовая конфигурация 1С: Зарплата и кадры 7.7

табель учета рабочего времени - проблемы с файлами .ANSI

Сообщение Pauchok » 29 окт 2010

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

Re: табель учета рабочего времени - проблемы с файлами .ANSI

Сообщение Vladis » 29 окт 2010

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

вот код процедуры СтрокуФайлаВСтруктуру может там чего не верно?

Процедура СтрокуФайлаВСтруктуру(СтрокаФайла, НоваяСтрока)

МассивЭлементов = Новый Массив(7);
СчетчикЗапятых = 0;
ЭлементСтроки = "";

РазделительВСтроке = ",";
ОграничительЭлемента= """";
СимволВКонцеФайла = Символ(26);
Для Сч=1 По СтрДлина(СтрокаФайла) Цикл

СимволСтроки = Сред(СтрокаФайла, Сч, 1);



Если СимволСтроки = РазделительВСтроке Тогда

СчетчикЗапятых = СчетчикЗапятых + 1;
МассивЭлементов.Установить(СчетчикЗапятых-1, ЭлементСтроки);
ЭлементСтроки = "";

ИначеЕсли СимволСтроки = ОграничительЭлемента Тогда
Продолжить;
ИначеЕсли СимволСтроки = СимволВКонцеФайла Тогда
Возврат;
Иначе


ЭлементСтроки = ЭлементСтроки + СимволСтроки;
КонецЕсли;

КонецЦикла;

СчетчикЗапятых = СчетчикЗапятых + 1;
МассивЭлементов.Установить(СчетчикЗапятых-1, ЭлементСтроки);
ЭлементСтроки = "";

ВРСтр = МассивЭлементов.Получить(0)+СтрЗаменить(МассивЭлементов.Получить(1), ":", "");
НоваяСтрока.ДатаСобытия = Дата(ВРСтр) ;
НоваяСтрока.День

= День(НоваяСтрока.ДатаСобытия) ;
НоваяСтрока.ЛичныйНомер = МассивЭлементов.Получить(2) ;

ВРСтр = МассивЭлементов.Получить(3);
Разделитель = Найти(ВРСтр, ":");
НоваяСтрока.НомерКонтроллера = Лев(ВРСтр, Разделитель-1) ;
НоваяСтрока.НомерСчитывателя = Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель) ;

НоваяСтрока.КодСобытия = МассивЭлементов.Получить(4) ;


НоваяСтрока.КодВременногоГрафика= МассивЭлементов.Получить(5) ;

ВРСтр = МассивЭлементов.Получить(6);
НоваяСтрока.КПП = "0";
Разделитель = Найти(ВРСтр, " ");
НоваяСтрока.НаименованиеТурникета = Лев(ВРСтр, Разделитель) ;
ВРСтр = Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);
Разделитель = Найти(ВРСтр, " ");
НоваяСтрока.НаименованиеТурникета = СокрЛП(НоваяСтрока.НаименованиеТурникета +

Лев(ВРСтр, Разделитель));

ВРСтр = Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);
Разделитель = Найти(ВРСтр, " ");
НоваяСтрока.ВходВыход= Прав(ВРСтр, СтрДлина(ВРСтр)-Разделитель);

КонецПроцедуры
Vladis
 
Сообщений: 11
Зарегистрирован: 29 окт 2010


Вернуться в 1С: Зарплата и кадры 7.7

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron