![]() |
![]() |
![]() |
|
Выгрузка в 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
|
Уже сама с собой разговариваю...дожила...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |