Имя: Пароль:
1C
1C 7.7
v7: Программное создание только файла .dbf и заполнение его
0 st31
 
25.06.16
18:24
Неожиданно пришлось взять срочную задачу по программному формированию файла с произвольным наименованием, который прописывет сам пользователь в поле "НаимФайла" расширением .dbf  Раньше такие файлы не формировал. Чтобы при открытии видел только файлы с расширением .dbf вместо "*" прописать "*.dbf"

ДБ= СоздатьОбъект("XBase");
Каталог= КаталогИБ()+"ПапкаДляВыгрузки\";
НаимФайла= "ФайлВыгрузки"+РабочаяДата()+"_1";
Если ФС.ВыбратьФайл(0,НаимФайла, Каталог,
    "Выберите файл","*",,)=1 Тогда     ИмяФайлаАкт=Каталог+НаимФайла;                          
Сообщить("Файл: "+НаимФайла+" уже существует в каталоге "+ Каталог+"  и будет очищен для последующего заполнения");
ДБ.ОткрытьФайл(ИмяФайлаАкт);
Если ДБ.Открыта()=1 Тогда
Предупреждение("Сейчас база открыта и будет очищена!",30);
ДБ.ОчиститьФайл();                              
Иначе
ДБ.СоздатьФайл("ФайлВыгрузки.dbf"); //
ДБ.ОткрытьФайл(ФайлВыгрузки.dbf);
Если ДБ.Открыта()=1 Тогда  
Сообщить("Чистая база открыта для заполнения");
КонецЕсли;
КонецЕсли;
//потом формирование полей:
ДБ.Первая(); //Надо эта строка тут или для описания полей без нее?
ДБ.ДобавитьПоле("TYPE", 1,4,0);     //1-ОТ ПОСТАВЩИКА,2- ВОЗВРАТ
ДБ.ДобавитьПоле("SERIA", 2,4,);    //ОТ ПОСТАВЩИКА
ДБ.ДобавитьПоле("PRDATE",3,,);   //Дата
//потом  присвоение значений будет организована из таблицыЗначений в цикле
ДБ. Новая();
ДБ.type=1;
ДБ.seria= "аи";
ДБ.prdate= '10.06.16';
ДБ.Записать();
1 VladZ
 
25.06.16
18:44
(0)  А вопрос в чем?
2 Beretta
 
25.06.16
18:48
(1) Он просто радуется же. Надо поддержать товарища, неожиданно ведь пришлось.

Молодец! Давай! Давай!

=)
3 st31
 
25.06.16
20:07
вопрос в том, что мне пока не удается программно сформировать  чистый файл с расширением .dbf с произвольно заданным именем,который прописывет сам пользователь в поле "НаимФайла". Потом будет еще пару вопросов по корректному заполнению этого файла. Файл .cda создавать не надо
4 Beretta
 
25.06.16
20:17
(3) Ну, это не вопрос, а утверждение.

Мы будем болеть за тебя и твои будущие рассказы про заполнение файла! Продолжай!
5 st31
 
25.06.16
20:18
Второй вопрос- как программно прописать в новом файле имя файла, заданное пользователем в поле "НаимФайла".
Третий вопрос -корректность формирования мною колонок во вновь созданном файле.
(1),(2) благодарю Вас, что отозвались на первоначальный запрос
6 st31
 
25.06.16
20:28
(4) Попробую по вопросно конкретизироваться.
Мне не удается увидеть в заданной папке только файлы с расширением .dbf Как                        
ДБ= СоздатьОбъект("XBase");
Каталог= КаталогИБ()+"ПапкаДляВыгрузки\";
НаимФайла= "ФайлВыгрузки"+РабочаяДата()+"_1";
Если ФС.ВыбратьФайл(0,НаимФайла, Каталог,
"Выберите файл","*",,)=1 Тогда
7 kofeinik
 
25.06.16
20:38
(0) При создании dbf-а из 7-ки по-моему должно быть 8 символов в имени и/или без русских букв.
8 st31
 
25.06.16
20:40
(7) Благодарю, в отладчике это уже увидел :-)
Переименовал на 8 символов -пошло очищаться
9 st31
 
25.06.16
20:53
Смотрю в отладчике.
После выполнения
ДБ.ОткрытьФайл(ИмяФайлаАкт);
Если ДБ.Открыта()=1 Тогда
ДБ.ОчиститьФайл();                              
КонецЕсли;
После этого при выполнении каждой нижеперечисленной операции выскакивало сообщение " Перед выполнением операции нужно закрыть базу!" (Это  ДБ.ЗакрытьФайл();?)  
ДБ.ДобавитьПоле("TYPE", 1,4,0);     //
ДБ.ДобавитьПоле("SERIA", 10,1,);    //ОТ ПОСТАВЩИКА
ДБ.ДобавитьПоле("PRDATE", 3,,);     //ОТ ПОСТАВЩИКА
ДБ.ДобавитьПоле("UNPBUYER", 1,9,0); //
10 st31
 
25.06.16
21:37
В следующем варианте
Если ФС.ВыбратьФайл(0,НаимФайла, Каталог,
    "Выберите файл","*.dbf",,)=1 Тогда     
ИмяФайлаАкт=Каталог+НаимФайла;                          
ДБ.ОткрытьФайл(ИмяФайлаАкт);         
ДБ.ОчиститьФайл();
//После выполнения следующих операций после каждой строки выскакивает сообщение: "Перед выполнением операции нужно закрыть базу!"
ДБ.ДобавитьПоле("TYPE", 1,4,0);     //
ДБ.ДобавитьПоле("SERIA", 10,1,);    //ОТ ПОСТАВЩИКА
ДБ.ДобавитьПоле("PRDATE", 3,,);
11 HawkEye
 
25.06.16
21:49
(10) продолжай наблюдение
12 Garykom
 
гуру
25.06.16
21:58
Это было бы смешно, если б не было так грустно.
13 Garykom
 
гуру
25.06.16
22:00
(12)+ "программист" с офигительным стажем на мисте, не может найти примеры рабочего кода в инете/СП и тупо их скомпоновать правильно.
14 st31
 
25.06.16
22:00
В следующем варианте
Если ФС.ВыбратьФайл(0,НаимФайла, Каталог,
    "Выберите файл","*.dbf",,)=1 Тогда    
ИмяФайлаАкт=Каталог+НаимФайла;                          

ДБ.ОткрытьФайл(ИмяФайлаАкт);        
ДБ.ОчиститьФайл();
ДБ.ЗакрытьФайл();

//После выполнения следующих операций после каждой строки уже не выскакивает сообщение: "Перед выполнением операции нужно закрыть базу!"

ДБ.ДобавитьПоле("TYPE", 1,4,0);    //
ДБ.ДобавитьПоле("SERIA", 10,1,);    //ОТ ПОСТАВЩИКА
ДБ.ДобавитьПоле("PRDATE", 3,,);

При этом в отладчике  я опять вижу пустые значения
db  
Ключ
Добавляемые поля не прописались.

Может для формирования полей надо использовать другие способы, типа
db.УстановитьЗначениеПоля();  

(11) Кто продолжает наблюдения? Меня интересует, как сформировать, описать поля, в которые потом я буду заносить соответствующие значения
15 st31
 
25.06.16
22:04
(13) Больше 5 последних лет  я работал в другом профиле, поэтому отошел от темы программирования, сейчас вспоминаю. А с этой темой не работал вообще.                              
Поэтому и обратился на форум за помощью
16 HawkEye
 
25.06.16
22:17
(14) ты не поверишь, в СП все есть
17 st31
 
25.06.16
22:23
(16) Вполне возможно, значит на своем зациклился.        
Нашел, что сначала описываются поля.
только потом создается файл.
Сейчас попробую это сделать.
18 st31
 
25.06.16
22:26
(16) Обращаюсь к Вам, как человек, который потерял мвой навык и сейчас вспоминаю материал.
Подскажите,что я не досмотрел.
19 st31
 
25.06.16
22:32
После выполнения в такой последовательности поля стали добавляться.
Могли бы и подсказать,
старшие уже опытные товарищи по языку программирования
1С в бухгалтерии 7.7
20 DES
 
25.06.16
22:59
(19) Это русский форум, сначала тебе объяснят кто ты, а потом , может быть, ответят на твой вопрос.
21 st31
 
26.06.16
02:23
(20) Спасибо за разъяснения. Я в курсе, что я частично забыл материал.
22 Злопчинский
 
26.06.16
03:06
Из семерки штатно имя дбф файла можно только короткое задать вроде. Если надо длинное имя файла то уже обходными путями
23 mzmo
 
26.06.16
03:21
+(22) не более 8 символов.
Цифры в имени допускаются, а вот руссиш нет.
И еще, наименование полей не более 10 символов.
Такая вот она семерка.
24 Mikeware
 
26.06.16
05:44
(23) наименования полей - ограничение формата, а не клюшек...
25 st31
 
26.06.16
07:18
Всех благодарю, на своем опыте реально это уже прочувствовал
26 Dump
 
26.06.16
08:13
"Неожиданно пришлось взять срочную задачу " - странное понятие о срочности. Данная задача делается за 2 часа, из них полтора - на поиск в инете примера и пол-часа - на допиливание его под себя.
Или это реалити-шоу "Создание файла онлайн"?
"Дата регистрации:     20 декабря 2008; Стаж: 7 лет 6 месяцев 6 дней" - как-то не вяжется с задаваемыми вопросами.
27 пипец
 
26.06.16
08:13
Злоп , штатно можно все, семерка ограничена  8864
28 пипец
 
26.06.16
08:14
поповоду автора , тролль
AdBlock убивает бесплатный контент. 1Сергей