|
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
|
поповоду автора , тролль
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |