Имя: Пароль:
1C
1C 7.7
v7: Выгрузка в dbf файл
0 felixbloh
 
24.01.13
14:58
Здравствуйте!
Помогите пожалуйста решить следующую проблему.
Необходимо выгрузить данные из справочника Сотрудники, где есть периодический реквизит КодВыгрузки, в dbf файл.
Если у сотрудника всего один Код Выгрузки, то все нормально.
А если несколько за разные даты, то в файл он сохраняет только Код за последнюю дату.


БД = создатьОбъект("XBASE");


БД.ДобавитьПоле("CodeEmpl","N",6,0);    // числовое поле Код
БД.ДобавитьПоле("NameEmpl","S",30,0);    // строковое поле Наименование
БД.ДобавитьПоле("CodeUnload","S",30,0);    // строковое поле КодВыгрузки
БД.ДобавитьПоле("Date","D",30,0);  


БД.СоздатьФайл("H:\sotr.dbf");  


КодВыгрузки = СоздатьОбъект("периодический");
Спр = СоздатьОбъект("Справочник.Сотрудники");
Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

   
   КодВыгрузки.ИспользоватьОбъект("КодВыгрузки",Спр.ТекущийЭлемент());
   КодВыгрузки.ВыбратьЗначения();
   
   Пока КодВыгрузки.ПолучитьЗначение() = 1 Цикл
       
       БД.Добавить();
       
       БД.CodeEmpl = Спр.Код;
       БД.NameEmpl = Спр.Наименование;
       Сообщить(Спр.Наименование);
       БД.CodeUnload = КодВыгрузки.Значение;
       Сообщить(КодВыгрузки.Значение);
       БД.Date = КодВыгрузки.ДатаЗнач;
       Сообщить(КодВыгрузки.ДатаЗнач);
       БД.Записать();
       
   КонецЦикла;
   

КонецЦикла;


БД.ЗакрытьФайл();
1 monsterZE
 
24.01.13
15:04
ВыбратьЗначения?
2 Надсмотрщик
 
24.01.13
15:05
(0) Если нужна периодика - отдельная dbf
3 monsterZE
 
24.01.13
15:14
попробывал у себя - все работает..
   Спр.ИспользоватьРодителя(Выб.ТекущийЭлемент());
   Спр.ВыбратьЭлементы();
   
   Пока Спр.ПолучитьЭлемент() = 1 Цикл
       
       Сообщить(Спр.Наименование);
       
       ЧЧЧ.ИспользоватьОбъект("ЧЧЧ",Спр.ТекущийЭлемент());
       ЧЧЧ.ВыбратьЗначения();
       
       Пока ЧЧЧ.ПолучитьЗначение() = 1 Цикл
           
           Сообщить(ЧЧЧ.Значение);
           
       КонецЦикла;
       
   
   КонецЦикла;
4 felixbloh
 
24.01.13
15:19
(3) У меня сообщает как раз все что надо, но при этом если открыть файл dbf, то там только последние данные для каждого сотрудника.
5 monsterZE
 
24.01.13
15:27
(4) мистика =)
проверил и с файлом дбф - все норм
CodeUnload тока к строке приведи
6 monsterZE
 
24.01.13
15:29
глянь историю периодических - может там у тебя одно значение? =)
7 felixbloh
 
24.01.13
15:37
(6) Большое спасибо!

Все заработало, после того как я перезапустила 1С =)
Не знаю в чем уж была проблема, но главное, что теперь он правильно все заполняет!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан