Имя: Пароль:
1C
1С v8
создание записей регистров расчета
,
0 Саша80
 
06.11.12
09:51
Собственно говоря сабж...пытаюсь заполнить регистр расчета:

   Ексель     = Новый  COMОбъект("Excel.Application") ;
   ФайлЕксель = Ексель.Workbooks.Open(ПутьКФайлу);
   
   Для н = НомерСтрокиНачало По НомерСтрокиКонец Цикл
       
       ФИО = Ексель.Sheets(1).Cells(н,7).Value;
       ВИдРасчета=Ексель.Sheets(1).Cells(н,3).Value;
       Результат=Ексель.Sheets(1).Cells(н,8).Value;
       ОтработаноДней=Ексель.Sheets(1).Cells(н,9).Value;
       ОтработаноЧасов=Ексель.Sheets(1).Cells(н,10).Value;
       НормаДней=Ексель.Sheets(1).Cells(н,12).Value;
       НормаЧасов=Ексель.Sheets(1).Cells(н,13).Value;
       Подразделение=Ексель.Sheets(1).Cells(н,22).Value;
       Размер=Ексель.Sheets(1).Cells(н,22).Value;
       ВидУчетаВремени=Ексель.Sheets(1).Cells(н,20).Value;
       Если Сокрлп(ВидУчетаВремени)="По дням" тогда
       вид=ПЕречисления.ВидыУчетаВремени.ПоДням;
   КОнецЕсли;
           Если Сокрлп(ВидУчетаВремени)="По часам" тогда
       вид=ПЕречисления.ВидыУчетаВремени.ПоЧасам;
   КОнецЕсли;

       
       
       
   ОбработкаПрерыванияПользователя();
    Рег=РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей();
    рег.Отбор.регистратор.Установить(Документ);
    Движение=Рег.Добавить();
    Движение.Регистратор = Документ;
     Движение.Сторно = Ложь;
     Движение.ПериодРегистрации=КонецДня(Документ.Дата);
     Движение.Сотрудник=Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(СокрЛП(ФИО),Истина);
     Движение.Активность=Истина;
     Движение.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФИО),Истина);
     Движение.Организация=Организация;
     Движение.ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(СокрЛП(Подразделение),Истина);
     Движение.ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию(ВидРасчета);
     Движение.Авторасчет=Истина;
     Движение.Результат=Результат;
     Движение.ПериодДействияНачало=ДатаС;
     Движение.ПериодДействияКонец=ДатаПо;
     Движение.ВидУчетаВремени= вид;
     Движение.БазовыйПериодНачало=ДатаС;
     Движение.БазовыйПериодКонец=ДатаПо;
     Движение.ГрафикРаботы=Справочники.ГрафикиРаботы.НайтиПоНаименованию("Основной график");
     Движение.ОтработаноДней=ОтработаноДней;
     Движение.ОтработаноЧасов=ОтработаноЧасов;
     Движение.НормаДней=НормаДней;
     Движение.НормаЧасов=НормаЧасов;
     Рег.Записать();
                       
   КонецЦикла;
   Ексель.Application.Quit();

выходит ошибка

{Форма.Форма.Форма(56)}: Ошибка при вызове метода контекста (Записать)
     Рег.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.МодульНабораЗаписей(295)}: Преобразование значения к типу Булево не может быть выполнено
     Рег.Записать();


в чем может быть дело?
1 France
 
06.11.12
09:53
и что в строке 56?
2 Саша80
 
06.11.12
09:53
пустая строчка
3 rphosts
 
06.11.12
09:54
посмотри в отладчике на типы полей у объекта двтижение и сравни с типами какие должны быть по данным конфигуратора.
4 mikecool
 
06.11.12
09:54
(0) вместо булева перердаешь в набор неопределено, или , не к Ненавижу1С будет сказано - null
5 Саша80
 
06.11.12
09:54
нет, главное кое какие строчки то подгружаются...вот в чем засада
6 rphosts
 
06.11.12
09:56
конечно стоит отдельно обрабатывать случаи когда поиски типа:
Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(СокрЛП(ФИО),Истина);
не находят ничего!
7 Саша80
 
06.11.12
09:59
слушайте точно.....вот я баранчик)))нашел ошибку, сейчас проверю...
8 Саша80
 
06.11.12
14:02
неа, не проканало...
9 Саша80
 
06.11.12
14:04
все тыпы нормальные проверил
10 Саша80
 
06.11.12
14:18
апчик
11 Aprobator
 
06.11.12
14:20
модуль набора записей регистра смотри.
12 Aprobator
 
06.11.12
14:22
отладчик те, кстати все написал. Даже номер строки с ошибкой. Читать совсем лениво что ли? У остальных, я так понял, явно похмельный вторник. С прошедшими праздниками, кстати.
13 Aprobator
 
06.11.12
14:23
имелось ввиду написанное в причине ошибки.
14 Саша80
 
06.11.12
14:26
номер строки-56, так? у меня там пустая строчка
15 Aprobator
 
06.11.12
14:26
(14) пффффф.

{РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.МодульНабораЗаписей(295)}: Преобразование значения к типу Булево не может быть выполнено
     Рег.Записать();
16 Саша80
 
06.11.12
14:32
хм...там вот что..


       Если СоответствиеВРБазовыйПериод[СтрокаНабора.ВидРасчета] Тогда
           СтрокаНабора.БазовыйПериодНачало = НачалоМесяца(ДобавитьМесяц(СтрокаНабора.ПериодДействияНачало, -1));
           СтрокаНабора.БазовыйПериодКонец  = КонецМесяца(ДобавитьМесяц(СтрокаНабора.ПериодДействияКонец, -1));
           СтрокаНабора.ДатаНачалаБазовогоПериода = СтрокаНабора.БазовыйПериодНачало;
           СтрокаНабора.ГодУчетаПремийПоИтогамГода = ?(ЗначениеЗаполнено(СтрокаНабора.БазовыйПериодНачало), Год(СтрокаНабора.БазовыйПериодНачало), 0);
       Иначе    
           СтрокаНабора.ДатаНачалаБазовогоПериода = '00010101';
           СтрокаНабора.ГодУчетаПремийПоИтогамГода = ?(ЗначениеЗаполнено(СтрокаНабора.ПериодДействияНачало), Год(СтрокаНабора.ПериодДействияНачало), 0);
       КонецЕсли;
17 rphosts
 
06.11.12
14:33
(14)56 - это номер строки в наборе записей, из отладчика раскрой список и посмотри что не так именно в этой строке
18 Aprobator
 
06.11.12
14:34
(17) иди проспись в конце то концов.
(16) млин, СоответствиеВРБазовыйПериод[СтрокаНабора.ВидРасчета] не вернуло булево значение по каким то причинам. Каждую строку разжевывать что ли?
19 Саша80
 
06.11.12
14:51
все..догнал
20 Aprobator
 
06.11.12
17:01
удачи. Учись читать сообщения системы до конца и вдумчиво.
21 Саша80
 
07.11.12
10:11
какая то засада-строчки в файле две одинаковые-меняются только наименование вида расчета, первую строчку грузит нормально, вторую нет......в чем может дело то быть?
22 Саша80
 
07.11.12
10:12
может потому что это первоначальные данные? и в прошлом никаких данных не было в прошлом расчетном периоде я имею ввиду?
23 Aprobator
 
07.11.12
10:18
с отладчиком совсем туго что ли?
24 Aprobator
 
07.11.12
10:19
на вскидку - может вытеснение.
25 Саша80
 
07.11.12
10:28
да нет, посмотрел...все основные насичления, все нормально
26 Саша80
 
07.11.12
10:35
слушай..точно...райкоф.....
27 Саша80
 
07.11.12
10:36
в нем есть вытесня.щие начисления, у меня у сотрудника стоит сначала Оплата по часовому тарифу а в райкофе этот вид начисления указан как вытесняющий..что терь делать?
28 Aprobator
 
07.11.12
10:39
расчетчиков спросить. Чего это вдруг районный коэффициент оплату по часовому тарифу вытесняет. Они же вытеснение настраивали.
29 Саша80
 
07.11.12
10:50
нет, исправил-все равно аткая же ошибка-самое главное сделал так: создал чистую базу перенес туда данные из семерки типовой обработкой (справочники там и все такое....)и все равно ошибка вылетает.
30 Саша80
 
07.11.12
12:16
апчик
31 Aprobator
 
07.11.12
13:03
не я умываю руки. У меня с телепатией слабовато.