Имя: Пароль:
1C
 
Выгрузка в DBF файл
0 Знайка
 
21.10.04
11:32
...
TableDBF.КодоваяСтраница(0);

TableDBF.ДобавитьПоле("TAB_N",       "S", 7,  0); //Таб номер сотрудника
TableDBF.ДобавитьПоле("NAME",      "S", 70, 0); //ФИО сотрудника
TableDBF.ДобавитьПоле("OTDEL",     "S", 80, 0); //Подразделение в кот. он работает
TableDBF.ДобавитьПоле("SUM_PAY",   "N", 16, 2); //Сумма к выплате

TableDBF.КодоваяСтраница(1);

Док = ВыборДока;
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() > 0 Цикл  //Читаем табл. часть и формируем DBF
   TableDBF.TAB_N     = Док.Сотрудник.Код;     //Табельный номер сотрудника
   TableDBF.NAME = Док.Сотрудник.Наименование; //ФИО сотрудника
   TableDBF.SUM_PAY    = Док.Сумма; //Сумма к зачислению
   
   Отдел = СоздатьОбъект("Периодический");
   Отдел.ИспользоватьОбъект("Подразделение",Док.Сотрудник.Подразделение);
   Отдел.ВыбратьЗначения(,ТекущаяДата());
   Пока Отдел.ПолучитьЗначение() = 1 Цикл
       TableDBF.OTDEL = Отдел.Значение; //Отдел    
   КонецЦикла;
   

   TableDBF.Записать();  
               
КонецЦикла;  

TableDBF.ЗакрытьФайл();
...
Таб. номер, ФИО и Сумма заполняются по документу, а подразделение по таб. номеру сотрудника из справочника "Сотрудники"
В справочнике "Сотрудники" реквизит Подразделение периодический я его и пыталась выудить через СоздатьОбъект("Периодический") но что-то не очень получилось.

Выдает ошибку: Подразделение не является константой или периодическим параметром!

Подскажите что я делаю не правильно?
1 Волшебник
 
21.10.04
11:36
(0) Тема у тебя не "Выгрузка в DBF-файл", а "Работа с объектом Периодический".
2 Знайка
 
21.10.04
11:40
Извините... просто увлеклась составлением вопроса так, что про составление темы особо не мудрствовала...
И все же... что не так?
Вы же Волшебник....
3 Волшебник
 
21.10.04
11:43
(2) Отдел.ИспользоватьОбъект("Подразделение",Док.Сотрудник);
4 Знайка
 
21.10.04
11:45
Я так делала...
Колонка Отдел выводится...но совсем неправильно...
Соответствия Сотрудник-Подразделение нет!!!
В общем не соответсвует действительности...
5 Волшебник
 
21.10.04
11:46
Что выводится? Почему неправильно? Что за соответствие?
6 Знайка
 
21.10.04
11:48
Ну в справочнике одно, а то что в файле.dbf другое...
Числа по какой-то невероятной системе проставляются!
7 Rovan
 
гуру
21.10.04
11:48
(0) Но помни, что таким образом получишь не подразделение на ТекущаяДата(), а первое в списке значений !
может лучше так:
TableDBF.OTDEL = Док.Сотрудник.Подразделение.Получить(ТекущаяДата());
8 Знайка
 
21.10.04
11:50
(7)Спасибо, но я и так тоже делала...(что я только не делала!!!)
Абсолютно то же самое, что и в (3)!!!
9 Madison
 
21.10.04
11:53
А у меня не выгружает сотров подскажите и мне раз уж тема такая появилась:
Процедура Сформировать()
   СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
   ИмяФайла = КаталогИБ()+"OUT\"+"Sotr"+".dbf";
   СпрСотр.ВыбратьЭлементы();
   Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл  
       Сотр=СпрСотр.ТекущийЭлемент() ;
       ДБ=СоздатьОбъект("XBase");
       ДБ.ДобавитьПоле("C_RAB","N",10,0);
       ДБ.ДобавитьПоле("TIN","C",10,0);
       ДБ.ДобавитьПоле("N_FULLN","C",60,0);
       ДБ.ДобавитьПоле("D_ROG","C",20,0);  
       ДБ.СоздатьФайл(ИмяФайла);
       Сотр.ВыбратьСтроки();
       Пока Сотр.ПолучитьСтроку() = 1 Цикл
           ДБ.Добавить();
           ДБ.УстановитьЗначениеПоля("C_RAB",Строка(Сотр.Код));
           ДБ.УстановитьЗначениеПоля("TIN",Строка(Сотр.ФизическоеЛицо.ИНН));
           ДБ.УстановитьЗначениеПоля("N_FULLN",Строка(Сотр));
           ДБ.УстановитьЗначениеПоля("D_ROG",Строка(Сотр.ФизическоеЛицо.ДатаРождения));
           ДБ.Записать();
       КонецЦикла;  
       ДБ.ЗакрытьФайл();
   КонецЦикла;
КонецПроцедуры

Из справочника не выбирает строки
10 Rovan
 
гуру
21.10.04
11:53
У справочника "Подразделения" представление код или наименование ?
11 Знайка
 
21.10.04
11:56
(10) Наименование.....
12 Rovan
 
гуру
21.10.04
12:00
(9) Ужас !
1 - Блок ДБ=СоздатьОбъект("XBase");
      ДБ.ДобавитьПоле("C_RAB","N",10,0);
      ДБ.ДобавитьПоле("TIN","C",10,0);
      ДБ.ДобавитьПоле("N_FULLN","C",60,0);
      ДБ.ДобавитьПоле("D_ROG","C",20,0);  
      ДБ.СоздатьФайл(ИмяФайла);
надо вынести до цикла
2 - Сотр=СпрСотр.ТекущийЭлемент();
   Сотр.ВыбратьСтроки(); // какие такие строки у элемента справочника ?
3 - Может быть так
Процедура Сформировать()
  СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
  ИмяФайла = КаталогИБ()+"OUT\"+"Sotr"+".dbf";

      ДБ=СоздатьОбъект("XBase");
      ДБ.ДобавитьПоле("C_RAB","N",10,0);
      ДБ.ДобавитьПоле("TIN","C",10,0);
      ДБ.ДобавитьПоле("N_FULLN","C",60,0);
      ДБ.ДобавитьПоле("D_ROG","C",20,0);  
      ДБ.СоздатьФайл(ИмяФайла);

  СпрСотр.ВыбратьЭлементы();
  Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл  
      Сотр=СпрСотр.ТекущийЭлемент() ;

          ДБ.Добавить();
          ДБ.УстановитьЗначениеПоля("C_RAB",Строка(Сотр.Код));
          ДБ.УстановитьЗначениеПоля("TIN",Строка(Сотр.ФизическоеЛицо.ИНН));
          ДБ.УстановитьЗначениеПоля("N_FULLN",Строка(Сотр));
          ДБ.УстановитьЗначениеПоля("D_ROG",Строка(Сотр.ФизическоеЛицо.ДатаРождения));
          ДБ.Записать();
      КонецЦикла;  
   
      ДБ.ЗакрытьФайл();
  КонецЦикла;
КонецПроцедуры
13 Rovan
 
гуру
21.10.04
12:01
Знайка ! Приведи конкретный пример - что с чем не сходится (2-3 значения поподробней).
14 Знайка
 
21.10.04
12:10
Ну, например:
В справочнике:
             ФИО:Иванов И.И    Отдел: 1(Управление);
             ФИО:Петров П.Р.   Отдел: 3(Обслуга);
В полученном файле:
             ФИО:Иванов И.И    Отдел: 4;
             ФИО:Петров П.Р.   Отдел: 1;

P.S. Всего пять отделов
15 Знайка
 
21.10.04
12:12
В справочнике Отдел представляется наименованием.
А в таблице файла нужен код...
16 Madison
 
21.10.04
12:15
(12) С ошибками немножко написал КонецЦикла; один лишний был... зато заработало. Понял я, нужно было не Сотр.ВыбратьСтроки(); а СпрСотр.ВыбратьЭлементы();
Пасиба.
17 Rovan
 
гуру
21.10.04
12:19
(15) Пробуй так -
ТекПодрСотра = Док.Сотрудник.Подразделение.Получить(ТекущаяДата());
Если ПустоеЗначение( ТекПодрСотра ) = 0 Тогда
     TableDBF.OTDEL = СокрЛП( ТекПодрСотра.Код );
Иначе TableDBF.OTDEL = "";
КонецЕсли;
18 Знайка
 
21.10.04
12:32
(15) Спасибо за помощь, попробую... ;)
19 Знайка
 
21.10.04
12:33
Уже сама с собой разговариваю...дожила...