Имя: Пароль:
1C
1С v8
Выгрузка данных в дбф
0 Валидатор
 
25.10.13
16:17
при выгрузке данных в файл, почему то не создается новй файл, почему? вот код:
Процедура ВыборФайла(Элемент)
    
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    
    ДиалогВыбора.Фильтр     = "Файл данных (*.dbf)|*.dbf";
    ДиалогВыбора.Расширение = "xls";
    ДиалогВыбора.Заголовок ="Выберите место для сохранения файла";
    ДиалогВыбора.ПредварительныйПросмотр     = Ложь;
    ДиалогВыбора.ИндексФильтра               = 0;
    //ДиалогВыбора.ПолноеИмяФайла              = НаименованиеФайла;
    ДиалогВыбора.ПроверятьСуществованиеФайла = Ложь;
    ДиалогВыбора.МножественныйВыбор          = Ложь;
    ДиалогВыбора.Каталог = ложь;
    Если ДиалогВыбора.Выбрать() Тогда
        Элемент.Значение = ДиалогВыбора.Каталог;
    КонецЕсли;
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    БД = Новый XBase;
    БД.Поля.Добавить("NM", "S", 30);
    БД.поля.Добавить("ART","S", 40);
    БД.Поля.Добавить("MOD", "S", 20);
    БД.Поля.Добавить("RAZM", "S", 18);
    БД.Поля.Добавить("CEN", "N", 12, 2);
    БД.Поля.Добавить("KOL", "N", 12, 3);
    БД.Поля.Добавить("EIZM", "S", 3);
    БД.Поля.Добавить("NDS", "S", 4);
    БД.Поля.Добавить("PRC", "N", 5);
    БД.Поля.Добавить("KT", "S", 6);
    БД.Поля.Добавить("PRNP", "N", 5, 1);
    БД.Поля.Добавить("NDEC", "S", 23);
    БД.Поля.Добавить("NLND", "S", 20);
    БД.Поля.Добавить("NOT", "S", 4);

    БД.СоздатьФайл(ПутьКФайлу);
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК Артикул,
                   |    РеализацияТоваровУслугТовары.Цена,
                   |    РеализацияТоваровУслугТовары.Количество,
                   |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
                   |    РеализацияТоваровУслугТовары.СтавкаНДС
                   |ИЗ
                   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                   |ГДЕ
                   |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();
    
    Для каждого Строка из Выборка Цикл
        БД.Добавить();
        БД.ART = СокрЛП(Строка.Артикул);
        БД.CEN = СокрЛП(Строка.Цена);
        БД.KOL = Строка.Количество;  
        БД.EIZM = Строка.ЕдиницаИзмерения;
        БД.NDS = Строка.СтавкаНДС;
        БД.АвтоСохранение = Истина;
    КонецЦикла;    
    
    БД.ЗакрытьФайл();
    Сообщить("Готово, файл создан в " + ПутьКФайлу);
    СохранитьЗначение("ПутьКФайлу", ПутьКФайлу);
    
КонецПроцедуры
1 1sik
 
25.10.13
16:19
БД.записать();
2 Валидатор
 
25.10.13
16:20
(1) там же есть автосохранение, зачем еще записывать?
3 ДенисЧ
 
25.10.13
16:20
(2) Поставь, не ленись
4 Валидатор
 
25.10.13
16:21
(3) все равно не появляется файл
5 Валидатор
 
25.10.13
16:22
а не, вроде появляется, только без имени, как задать имя файла, чтобы бралось то, которое пользователь указывает при сохранении?
6 Валидатор
 
25.10.13
16:23
чтобы не вытаскивать на форму новый реквизит, в который будет писаться имя файла
7 George Wheels
 
25.10.13
16:24
Если ДиалогВыбора.Выбрать() Тогда
        Элемент.Значение = ДиалогВыбора.ПолноеИмяФайла;
    КонецЕсли;
8 Валидатор
 
25.10.13
16:25
(7) да точно спс
Программист всегда исправляет последнюю ошибку.