|   |   | 
| 
 | Выгрузка в dbf | ☑ | ||
|---|---|---|---|---|
| 0
    
        shock3r 22.01.13✎ 11:33 | 
        Подскажите по выгрузке в dbf файл:     | |||
| 1
    
        shock3r 22.01.13✎ 11:34 | 
        ДБФ = Новый XBase;
  ДБФ.Поля.Добавить("CODE","S",11); // Код - тип СТРОКА ДБФ.Поля.Добавить("NAME","S",100); // Наименование - тип СТРОКА //ДБФ.Поля.Добавить("SERVICE","L",1); // Услуга - тип Булево //ДБФ.Поля.Добавить("PRICE","N",15,2); // Цена - тип Число(длина 15, точность 2) ДБФ.СоздатьФайл("C:\obmen.dbf"); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл ДБФ.Добавить(); ДБФ.CODE = Выборка.Код; ДБФ.NAME = Выборка.Наименование; //ДБФ.SERVICE = Выборка.Услуга; //ДБФ.PRICE = Выборка.Цена; ДБФ.Записать(); КонецЦикла; ДБФ.ЗакрытьФайл(); Как сделать обработку - проверку, если файл открыт другим приложением - чтобы выводилось сообщение, что файл занят? | |||
| 2
    
        cw014 22.01.13✎ 11:35 | 
        Попытка
  ДБФ.СоздатьФайл("C:\obmen.dbf"); Исключение Сообщить("Файл открыт в другой программе"); Возврат; КонецПопытки; | |||
| 3
    
        shock3r 22.01.13✎ 11:36 | 
        (2) спасибо, то что нужно     | |||
| 4
    
        shock3r 22.01.13✎ 11:41 | 
        (2) что-то криво, не хочет он на исключение прыгать     | |||
| 5
    
        Kreont 22.01.13✎ 11:48 | 
        XBase (XBase)
  Открыта (IsOpen) Синтаксис: Открыта() Возвращаемое значение: Тип: Булево. Истина - файл открыт; Ложь - файл не открыт. | |||
| 6
    
        shock3r 22.01.13✎ 11:50 | 
        (5) Вообщем вот рабочий вариант, может кому-то будет полезен.
  ДБФ = Новый XBase; Попытка ДБФ.СоздатьФайл("C:\obmen.dbf"); Исключение Сообщить("Файл открыт в другой программе"); Возврат; Возврат; КонецПопытки; ДБФ.Кодировка = КодировкаXBase.OEM; ДБФ.Поля.Добавить("CODE","S",11); // Код - тип СТРОКА ДБФ.Поля.Добавить("NAME","S",100); // Наименование - тип СТРОКА //ДБФ.Поля.Добавить("SERVICE","L",1); // Услуга - тип Булево //ДБФ.Поля.Добавить("PRICE","N",15,2); // Цена - тип Число(длина 15, точность 2) //ДБФ.СоздатьФайл("C:\obmen.dbf"); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл ДБФ.Добавить(); ДБФ.CODE = Выборка.Код; ДБФ.NAME = Выборка.Наименование; //ДБФ.SERVICE = Выборка.Услуга; //ДБФ.PRICE = Выборка.Цена; ДБФ.Записать(); КонецЦикла; ДБФ.ЗакрытьФайл(); | |||
| 7
    
        Дядя Вова 22.01.13✎ 11:53 | 
        (6) Сказали же в (5):
  Если ДБФ.Открыта() Тогда Сообщить("Файл открыт в другой программе"); Возврат; Иначе ДБФ.СоздатьФайл("C:\obmen.dbf"); | |||
| 8
    
        cw014 22.01.13✎ 11:56 | 
        (7) Эээээ, это как? Создается экземпляр объекта XBase и вдруг он сразу становится открытым в другой программе?     | |||
| 9
    
        shock3r 22.01.13✎ 11:59 | 
        (7) Я затупил     | |||
| 10
    
        shock3r 22.01.13✎ 11:59 | 
        (7) ДБФ = Новый XBase;
  ДБФ.Кодировка = КодировкаXBase.OEM; //dos кодировка ДБФ.Поля.Добавить("CODE","S",11); // Код - тип СТРОКА ДБФ.Поля.Добавить("NAME","S",100); // Наименование - тип СТРОКА ДБФ.СоздатьФайл("C:\obmen.dbf"); Если НЕ ДБФ.Открыта() Тогда Сообщить("Файл открыт в другой программе", СтатусСообщения.Важное); Возврат; КонецЕсли; //Попытка // ДБФ.СоздатьФайл("C:\obmen.dbf"); //Исключение // Сообщить("Файл открыт в другой программе"); // Возврат; //Возврат; //КонецПопытки; ////////////////////ДБФ.Кодировка = КодировкаXBase.OEM; //dos кодировка ////////////////////ДБФ.Поля.Добавить("CODE","S",11); // Код - тип СТРОКА ////////////////////ДБФ.Поля.Добавить("NAME","S",100); // Наименование - тип СТРОКА //ДБФ.Поля.Добавить("SERVICE","L",1); // Услуга - тип Булево //ДБФ.Поля.Добавить("PRICE","N",15,2); // Цена - тип Число(длина 15, точность 2) //ДБФ.СоздатьФайл("C:\obmen.dbf"); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл ДБФ.Добавить(); ДБФ.CODE = Выборка.Код; ДБФ.NAME = Выборка.Наименование; //ДБФ.SERVICE = Выборка.Услуга; //ДБФ.PRICE = Выборка.Цена; ДБФ.Записать(); КонецЦикла; ДБФ.ЗакрытьФайл(); | |||
| 11
    
        Reset 22.01.13✎ 12:17 | 
        Может, все таки ОткрытьФайл() а не создать?     | |||
| 12
    
        Reset 22.01.13✎ 12:19 | 
        (8) А, хотя видимо если уже сужествует и открыт в другой базе, то не удается перезаписать (пересоздать)     | |||
| 13
    
        shock3r 22.01.13✎ 12:30 | 
        (12) да совершенно верно... один будет выгружать из dbf в дос, а второй будет пытаться выгрузить из 1С в dbf, нужно было эту ситуация предусмореть     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |