Имя: Пароль:
1C
 
Как выгрузить все данные из файла DBF в массив
0 Nemirov
 
18.05.20
09:18
Добрый день, подскажите как выгрузить все строки из файла DBF в массив или список значений, каким циклом пользоваться лучше. Если есть возмиожность приведите пример кодом. Например в файле 3 колонки "Колонка1, Колонка2,Колонка3" и 20 строк.
1 dezss
 
18.05.20
09:21
В гугле забанили?
https://programmist1s.ru/1s-i-dbf-chtenie-i-zapis/
2 AAA
 
18.05.20
09:23
а зачем? какая задача? что с этим будете делать?
3 Nemirov
 
18.05.20
09:24
(1) Гугл конечно хорошо, но не все статьи передают нужную информацию как человек имеющий большой опыт за плечами.
4 Василий Алибабаевич
 
18.05.20
09:24
(2) ГЫ. Продам букварь. Научу читать.

"выгрузить все строки из файла DBF в массив или список значений"
5 Nemirov
 
18.05.20
09:25
(2) Да нужно потом сравнить значения с элементом табличной части и заполнить их по полученному значению.
6 dezss
 
18.05.20
09:27
(3) Вот только один фиг, надо сперва самому сделать, а потом показать опытным людям для критики. Тут не такая большая задача, так что сильно много всего переделывать не надо будет.
7 Nemirov
 
18.05.20
09:28
(6) Спасибо большое! Все же статья помогла.
8 Garykom
 
гуру
18.05.20
09:29
(0) Как хотел из файла DBF в массив:

  dbfTable, err := godbf.NewFromFile("exampleFile.dbf", "UTF8")

  exampleList := make(ExampleList, dbfTable.NumberOfRecords())

  for i := 0; i < dbfTable.NumberOfRecords(); i++ {
    exampleList[i] = new(ExampleListEntry)

    exampleList[i].someColumnId, err = dbfTable.FieldValueByName(i, "SOME_COLUMN_ID")
  }
9 Garykom
 
гуру
18.05.20
09:30
(8)+ ))
10 dezss
 
18.05.20
09:31
(8) )))
Формально прав. В (0) про 1С ни слова)))
11 Garykom
 
гуру
18.05.20
09:32
(0) А если серьезно то какая 1С то?
77 или 8 ОФ или 8 УФ да еще клиент-сервер без синхронности и модальности и где читать а где грузить?
12 AAA
 
18.05.20
09:32
(4)это не задача Это желание. Задачу никто не озвучил
13 Garykom
 
гуру
18.05.20
09:34
Прикольно когда длина имени файла dbf будет >8 символов (причем не всегда) и тут опс ))
14 dezss
 
18.05.20
09:45
(13) ты про ~1, ~2 и т.д.?)
15 Nemirov
 
18.05.20
09:50
(9) Ну да!!! Тут же на Мисте библиотеку Pure Go чаще всего же обсуждают)))) ваш комментарий тут тоже будет уместен!
16 Garykom
 
гуру
18.05.20
09:50
(14) В 10-ке ~1, ~2 уже не работает вроде
Не знаю исправлена ли фича в платформе для движка XBase но оно не умело с именами файлов не dos работать
17 Василий Алибабаевич
 
18.05.20
09:51
(12) Какая вам разница на задачу? Миллионы их. Первое что в голову приходит (и самое массовое) - обмен со сторонними организациями или системами.
Вам это помогло ответить на вопрос ТС?
18 Garykom
 
гуру
18.05.20
09:51
(15) см (11) и (13)
Для DBF в 1С есть много приколов, особенно в последних версиях.
Для начала кодировку автоматом оно не умеет определять даже.
19 Nemirov
 
18.05.20
09:52
8 (11) 1С:Предприятие 8.3 (8.3.15.1700)
20 Василий Алибабаевич
 
18.05.20
09:52
(16) Не исправлено. И копировать во временный файл не всегда помогает. Стандартное получение имени временного файла бывает отдает имя длиной 10 симв.
21 Nemirov
 
18.05.20
09:52
(17) Мне помогло еще (1)...
22 Garykom
 
гуру
18.05.20
09:53
(19) Это прекрасно, конфа какая с какими настройками совместимости/модальности/синхронности и режим работы случаем не веб-клиент?
23 Nemirov
 
18.05.20
09:54
(22) нет не веб
24 Василий Алибабаевич
 
18.05.20
09:54
+ (20) Вместо стандартного получения имени временного файла пользую :
КаталогВременныхФайлов()+Лев(Новый УникальныйИдентификатор(),8)+".dbf";
25 Garykom
 
гуру
18.05.20
09:55
(24) Опасно если несколько файлов dbf одновременно
26 Garykom
 
гуру
18.05.20
09:56
(25)+ Лучше свой временный каталог внутри временного и там уже фикс имя
27 Aleksey
 
18.05.20
09:56
(17)большая разница. Включая формат дбф и его структуру. Плюс возможность смены формата, а также готовое решение для этой дбф
28 Василий Алибабаевич
 
18.05.20
09:57
(22) Какая разница, где оно юзается?
из СП :

"Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение"

Или терки за "работу с файлами в ВЕБ"?
29 Garykom
 
гуру
18.05.20
09:58
(28) Терки с файл на клиенте а читать надо на сервере например
30 Василий Алибабаевич
 
18.05.20
10:01
(27) Ну... ну. Давай. В чем изменится код :

Для поз=1 ПО ДБФ.КоличествоЗаписей() Цикл
  ДБФ.Перейти(поз);
  МояЧитать = ДБФ["ИмяПоля"]?
КонецЦикла;

Если поменять его структуру? В "ИмяПоля"? - Вынеси его в настройки.
Насчет "готового решения" - Ты для каждого ДБФ пишешь "готовое решение"? Тебе за строчки кода платят?
31 Василий Алибабаевич
 
18.05.20
10:03
(29) Никакой разницы где читать нет. Есть разница как доставить к "читателю". Но это к сути вопроса не относится.
32 Aleksey
 
18.05.20
10:06
(30) ФОрматы разные. Насколько я помню мемополе 1С не поддерживает, а значит  xBase не взлетит и нужно ADO