Имя: Пароль:
1C
 
Выгрузка из ДБФ
0 work92
 
25.04.16
13:13
Подскажите в чем может быть проблема
Выгружаю данные из дбф и создаю новые элементы в справочнике.
1.Элемент выгружается нормально  а на 2 элементе название и тип ОС выгружается а Подразделение и сотрудник пустой хотя в дбф они есть.


    ВремФлДБФ=СоздатьОбъект("XBase");
    СпрПодр=Создатьобъект("Справочник.Подразделения");
    
    СпрОС=Создатьобъект("Справочник.ОсновныеСредства");
    ВремФлДБФ.ОткрытьФайл ("D:\OS dor DBF and  ERT\Результат DBF'\Fin.dbf");
    
    Если ВремФлДБФ.Открыта()=0 Тогда
    Сообщить("Не удалось открыть файл!");
     Иначе
      Сообщить("Открыт");    
КонецЕсли;  

      //ВремФлДБФ.Первая();
      Пока ВремФлДБФ.ВКонце()=0 Цикл
          
       СпрОС.Новый();
       СпрОС.Код=ВремФлДБФ.INV;
       СпрОС.Наименование=ВремФлДБФ.NAME;
       ГруппаОС=ВремФлДБФ.Klasifik;
       ИтГруппаОС = Сред(ГруппаОС,1,1);
      
       Если СокрЛП(ИтГруппаОС)="1" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.Здания;
       ИначеЕсли СокрЛП(ИтГруппаОС)="2" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.Сооружения;
       ИначеЕсли СокрЛП(ИтГруппаОС)="3" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.ПередатУстр;
       ИначеЕсли СокрЛП(ИтГруппаОС)="4" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.МашОборуд;
       ИначеЕсли СокрЛП(ИтГруппаОС)="5" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.Транспорт;
       ИначеЕсли СокрЛП(ИтГруппаОС)="6" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.Инструмент;
       ИначеЕсли СокрЛП(ИтГруппаОС)="7" Тогда
       СпрОС.Группа=Перечисление.ГруппаОС.Инвентарь;
       КонецЕсли;
      
       Если СокрЛП(ВремФлДБФ.Pod_Group)="1" Тогда
       СпрПодр.НайтиПоНаименованию("АДМИНИСТРАЦИЯ");
       СпрОС.Подразделение=СпрПодр.ТекущийЭлемент();
       ИначеЕсли СокрЛП(ВремФлДБФ.Pod_Group)="2" Тогда
       СпрПодр.НайтиПоНаименованию("ВОДОСНАБЖЕНИЕ");
       СпрОС.Подразделение=СпрПодр.ТекущийЭлемент();
       ИначеЕсли СокрЛП(ВремФлДБФ.Pod_Group)="3" Тогда
       СпрПодр.НайтиПоНаименованию("КАНАЛИЗАЦИЯ");
       СпрОС.Подразделение=СпрПодр.ТекущийЭлемент();
       ИначеЕсли СокрЛП(ВремФлДБФ.Pod_Group)="4" Тогда
       СпрПодр.НайтиПоНаименованию("СКЛАД");
       СпрОС.Подразделение=СпрПодр.ТекущийЭлемент();
КонецЕсли;

       СпрСотр=Создатьобъект("Справочник.Сотрудники");
       ТекСотр=СокрЛП(ВремФлДБФ.MOL);
       СпрСотр.НайтиПоРеквизиту("КодПоОС",ТекСотр,1);;
       СпрОС.МОЛ=СпрСотр.ТекущийЭлемент();
      
       Если  СокрЛП(ВремФлДБФ.God_VP)<="99" тогда  
           Сообщить("год"+ВремФлДБФ.God_VP);
       ПолГодВып="19"+ВремФлДБФ.God_VP;
       СпрОС.ГодВыпуска=Число(ПолГодВып);
       ИначеЕсли  СокрЛП(ВремФлДБФ.God_VP)>="100" тогда
       Сообщить("год"+ВремФлДБФ.God_VP);
       ОбрГод = Сред(ВремФлДБФ.God_VP,2);
       ПолГодВып="20"+ВремФлДБФ.God_VP;
       СпрОС.ГодВыпуска=Число(ПолГодВып);
       КонецЕсли;

       СпрОС.ИспользоватьДату(ТекущаяДата()) ;
       СпрОС.Записать();
    
    
      ВремФлДБФ.Следующая();
      КонецЦикла;
1 work92
 
25.04.16
13:36
Может кто подскажет как исправить ошибку
2 Рэйв
 
25.04.16
13:39
проверки по ставь на тему "что оно там нашло по заданому наименованию и что делать если не нашло"
3 Рэйв
 
25.04.16
13:39
и сразу откроется третий глаз:-)
4 Has
 
25.04.16
13:42
СпрПодр.НайтиПоНаименованию("АДМИНИСТРАЦИЯ");

зачем в цикле искать?