Универсальная смотрелка DBF-файлов [обновлено!]

25.03.16

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Представляю Вам собственную универсальную смотрелку DBF-файлов. Собственно, для чего она нужна? Подробнее...

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
УниверсальнаяЧиталкаDBF.epf
.epf 8,62Kb
110 5 800 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

 

Представляю Вам собственную универсальную смотрелку DBF-файлов. Собственно, для чего она нужна?

Вообще-то я не ставил себе задачу - написать dbf-смотрелку, но у меня была необходимость написать некую универсальную функцию, которая "запихивала" бы содержание DBF-файла в табличную часть.

Т.е. написал функцию и "забыл" как она работает. Вот сама функция:


Функция DBFвТаблицу(ПутьКDBF, Кодировка)   //вер.1.5
   
ТаблицаДанных = Новый ТаблицаЗначений();
   
ФайлDBF=Новый XBase;
   
ФайлDBF.ОткрытьФайл(ПутьКDBF,,Истина);
    Если
Кодировка = "ANSI" Тогда
       
ФайлDBF.Кодировка = КодировкаXBase.ANSI;
    Иначе
       
ФайлDBF.Кодировка = КодировкаXBase.OEM;
    КонецЕсли;

    Для Каждого
ПолеDBF Из ФайлDBF.Поля Цикл
       
ТаблицаДанных.Колонки.Добавить(ПолеDBF.Имя,,ПолеDBF.Имя);
    КонецЦикла;
   
ФайлDBF.Первая();
    Пока НЕ
ФайлDBF.ВКонце() Цикл
       
ЗаполнитьЗначенияСвойств(ТаблицаДанных.Добавить(),ФайлDBF);
       
ФайлDBF.Следующая();
    КонецЦикла;
   
ФайлDBF.ЗакрытьФайл();
    Возврат
ТаблицаДанных;
КонецФункции

Как логическое продолжение (чтобы тупо не выкладывать эту функцию), решил написать программу, которая будет использовать эту функцию - получилась "смотрелка-dbf".

Для особых педантов сразу скажу - типизация пока не поддерживается, т.к. не было необходимости в этом.

Обработка сделана на Платформе 8.1, использовать ее можно в любой конфигурации или на "голой" платформе.

Кому будет полезна данная обработка:

1.Начинающим программистам 1с - вы можете посмотреть как загрузить dbf в память, автоматически создав необходимые колонки.

2.Простым пользователям - если вы грузите в 1с-ку какие-то dbf-файлы, с помощью этой программы - посмотрите, что грузите, перед записью в базу 1с.

 

Кому поможет, буду рад, если отблагодарите...

 

П.С. "Динозаврам 1с" эта программа будет малоинтересна...

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    164154    998    329    

489

Операции по ВЭД Файловый обмен (TXT, XML, DBF), FTP Разработчик Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Платные (руб)

Федеральная таможенная служба России давно поддерживает унифицированный формат электронных документов для обмена с информационными системами предприятий. xmlns="urn:customs.ru:Information:ExchangeDocuments:". Структура, утвержденная комиссией Таможенного союза. Осталось только сделать загрузку в 1С из этого формата. На выходе - два документа ГТД по импорту и Поступление (акты, накладные) Обработка актуализирована на начало 2026 года (ставка НДС 22%)

24400 руб.

09.08.2016    97194    378    379    

121

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 руб.

15.12.2021    36405    265    68    

202

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Что же Вы получаете? 2 способа обмена объектами – с ОДИНАКОВОЙ структурой и с ОТЛИЧАЮЩЕЙСЯ! Забудьте о том, что не могли ранее перенести данные между базами, из-за того, что изменилась структура объектов в одной из них с обновлением конфигурации – теперь это в прошлом! Теперь не помеха для обмена изменение состава реквизитов объекта (измерений, ресурсов)/состава табличных частей/реквизитов табличных частей/типов реквизитов! А так же получаете быстрый алгоритм обмена, с возможностью указания уровня выгрузки объектов по ссылкам! 2 способа обмена - ФАЙЛ, HTTP: Система слежения за дублями предопределенных элементов при загрузке; Система поиска связей объектов для выгрузки; Отборы для каждого объекта конфигурации в отдельности; Динамическая замена произвольных ссылок при обмене; Выбор регистров движений для выгрузки. (Обновление от 13.08.2026, версия 11.3.2, фоновая выгрузка-загрузка версия 1.4)

21960 19764 руб.

28.08.2012    227812    342    289    

684

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД НДС 22% Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Специализированные обработки для загрузки кассовых чеков в локальных базах: 1С:БП 3.0, 1С:УНФ 3.0, 1С:Розница 3.0, 1С:КА. 2.5, 1С:ERP Управление предприятием 2.5 и 1С:УТ 11.5. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС или сканера штрихкодов и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах', 'Поступление денежных документов' и 'Реестры выплат самозанятым'. Обработка будет работать на любой версии конфигурации управляемые формы: базовой, ПРОФ или КОРП. Для загрузки чеков самозанятых достаточно только ссылки на чек.

6990 руб.

19.08.2020    83321    377    93    

269

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

27572 руб.

18.02.2016    208391    683    556    

564
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1589 05.09.11 15:56 Сейчас в теме
(0) Вместо
Для Каждого ПолеDBF Из ФайлDBF.Поля Цикл
НомерКолонки=НомерКолонки+1;
НоваяСтрока[ПолеDBF.Имя]=ФайлDBF[ПолеDBF.Имя];
КонецЦикла;
Попробуй поюзать
ЗаполнитьЗначенияСвойств(НоваяСтрока, ФайлДБФ);
2. aximo 2751 05.09.11 16:30 Сейчас в теме
(1) согласен, но так как у меня - более "классически что-ли" и понятнее...
3. aximo 2751 05.09.11 16:31 Сейчас в теме
(0) просьба, можешь подсказать как выделять цветом код... я не нашел с ходу тегов
5. artbear 1589 05.09.11 17:49 Сейчас в теме
(3) Когда у тебя будет ДБФ из хотя одной/двух тысяч строк, разницу сразу ощутишь :)
ЗЫ ВСЕГДА юзай ЗаполнитьЗначенияСвойств, а не ручной перебор имен.
ИМХО Это признак опытного разработчика 1cv8
6. aximo 2751 05.09.11 19:34 Сейчас в теме
(5) спасибо. исправил, стало быстрее.
8. alexk-is 6549 06.09.11 00:05 Сейчас в теме
(6) Чуть быстрее будет так...
Функция DBFвТаблицу(ПутьКDBF, Кодировка)
   
ТаблицаДанных = Новый ТаблицаЗначений();
   
ФайлDBF = Новый XBase;
   
ФайлDBF.ОткрытьФайл(ПутьКDBF,, Истина);
    Если
Кодировка = "ANSI" Тогда
       
ФайлDBF.Кодировка = КодировкаXBase.ANSI;
    Иначе
       
ФайлDBF.Кодировка = КодировкаXBase.OEM;
    КонецЕсли;
    Для Каждого
ПолеDBF Из ФайлDBF.Поля Цикл
       
ТаблицаДанных.Колонки.Добавить(ПолеDBF.Имя,, ПолеDBF.Имя);
    КонецЦикла;
   
ФайлDBF.Первая();
    Пока Не
ФайлDBF.ВКонце() Цикл
       
ЗаполнитьЗначенияСвойств(ТаблицаДанных.Добавить(), ФайлDBF);
       
ФайлDBF.Следующая();
    КонецЦикла;
   
ФайлDBF.ЗакрытьФайл();
    Возврат
ТаблицаДанных;
КонецФункции


А ещё быстрее будет так :)
artbear; ExS42; aximo; +3 – Ответить
9. artbear 1589 06.09.11 10:03 Сейчас в теме
(8) Да, ФайлDBF.Следующая(); очень быстро работает.
7. anton.fly7 174 05.09.11 20:04 Сейчас в теме
а если будет колонка на 950 символов, как твоя обработина его покажет?
и еще, не проще ли смотреть DBF_ки в екселе?
10. DionisioSPb 07.09.11 15:50 Сейчас в теме
А вот я столкнулся, что при выполнении такого кода:

//--------------------
ОбъектXBase = Новый XBase;
ОбъектXBase.Кодировка = КодировкаXBase.OEM;
ОбъектXBase.поля.Добавить("KEY", "S", 50, 0);
ОбъектXBase.поля.Добавить("STR", "S", 50, 0);
ОбъектXBase.СоздатьФайл("C:\test.dbf");

ОбъектXBase.АвтоСохранение = Истина;

Значения = новый Структура("KEY, STR", "Значение KEY", "Значение строка");
ОбъектXBase.Добавить();
ЗаполнитьЗначенияСвойств(ОбъектXBase, Значения);
ОбъектXBase.Записать();
ОбъектXBase.ЗакрытьФайл();
//--------------------

Поле "KEY" не будет заполнено. Пришлось переделывать на Для Каждого ИмяПоляDBF Из ПоляDBF Цикл
Грустно...
11. echo77 1944 07.09.11 18:31 Сейчас в теме
Простым пользователям эта штука на хер не нужна, anton.fly7 правильно говорит - DBF проще смотреть с помощью excel/calc.
Куда сложнее обратное преобразование, у меня в публикациях была такая штука
12. defini 464 08.09.11 10:20 Сейчас в теме
echo77 пишет:
Простым пользователям эта штука на хер не нужна, anton.fly7 правильно говорит - DBF проще смотреть с помощью excel/calc.
правильно говорит - DBF проще смотреть с помощью excel/calc.


ИМХО смотреть дбф-ки удобнее дбф-навигатором и вьювером. Но никак не екселем.
13. jONES1979 08.09.11 10:43 Сейчас в теме
"Простым пользователем" ещё и похерить можно DBF-ку, открывая её Экселем и исправляя. А потом в нескажу-каком-банке её не примут, потому что убогие программисты этого банка толи "привязали" свою программу к какой-то устаревщей версии формата DBF, толи ещё чего.
14. djd.sf 08.09.11 11:04 Сейчас в теме
"Простым пользователем" ещё и похерить можно DBF-ку, открывая её Экселем и исправляя. А потом в нескажу-каком-банке её не примут, потому что убогие программисты этого банка толи "привязали" свою программу к какой-то устаревщей версии формата DBF, толи ещё чего.
Это ты про что? Разъясни пожалуйста, я не понимаю.
15. jONES1979 08.09.11 11:13 Сейчас в теме
Это пример из жизни, вместо того чтобы сформировать DBF c корректными данными, бухгалтеры открыли Екселем и подправили цифры. Но в банке их программа "подавилась" DBF-кой, не смогла открыть.
16. sommid 12.09.11 13:11 Сейчас в теме
Типизация очень даже може пригодиться. Например, для использования полученной таблицы в качестве виртуальной в запросе.
в свое функции писал так:
//----------------------------------------
Для каждого ТекКолонка из мФайл.Поля Цикл
    
    ТипДБФ = ТекКолонка.Тип;
    //возможные типы из Синтаксис-помощника: Содержит тип поля: "S"- строка, "N" - число, "D" - дата,
    //    "L" - булево, "F" - число, "M" - мемо поле (не поддерживается)
    
    Если ТипДБФ = "S" Тогда
        ТекТип = "Строка";
	ТекКвалификатор = Новый КвалификаторыСтроки(ТекКолонка.Длина);
	ТекОписаниеТипов = Новый ОписаниеТипов(ТекТип, , ТекКвалификатор);
	тз.Колонки.Добавить(ТекКолонка.Имя, ТекОписаниеТипов);

    ИначеЕсли ТипДБФ = "N" ИЛИ ТипДБФ = "F" Тогда
        ТекТип = "Число";
	ТекКвалификатор = Новый КвалификаторыЧисла(ТекКолонка.Длина, ТекКолонка.Точность);
	ТекОписаниеТипов = Новый ОписаниеТипов(ТекТип, ТекКвалификатор);
	тз.Колонки.Добавить(ТекКолонка.Имя, ТекОписаниеТипов);

    ИначеЕсли ТипДБФ = "D" Тогда
        ТекТип = "Дата";
	ТекОписаниеТипов = Новый ОписаниеТипов(ТекТип);
	тз.Колонки.Добавить(ТекКолонка.Имя, ТекОписаниеТипов);

    ИначеЕсли ТипДБФ = "L" Тогда
        ТекТип = "Булево";
	ТекОписаниеТипов = Новый ОписаниеТипов(ТекТип);
	тз.Колонки.Добавить(ТекКолонка.Имя, ТекОписаниеТипов);

    Иначе
        ТекТип = "";
	тз.Колонки.Добавить(ТекКолонка.Имя);

    КонецЕсли;
		
КонецЦикла;
Показать

//------------------------------------
17. help1Ckr 13.09.11 23:31 Сейчас в теме
Читалка в дбф удобная функция - иногда не удобно между окнами переключатся. Еще бы для xmlфайлов нормальную смотрелку сделали :D
18. help1Ckr 13.09.11 23:40 Сейчас в теме
Кстати, для большей пользы, не мешало бы добавить итоги по числовым полям.
19. Hamitova 15.09.11 07:50 Сейчас в теме
На 1С я перешла с Fox Pro, и мне показалась очень интересной и простой эта обработка. Спасибо...
20. aximo 2751 15.09.11 08:46 Сейчас в теме
(19) да пожалуйста. это у меня капля в море и еще идей непаханное поле ...
21. boriskud 19 19.10.11 10:28 Сейчас в теме
Спасибо! Функция пригодилась при написании процедуры загрузки в базу DBF файла.
22. anig99 2865 16.11.11 13:05 Сейчас в теме
(0) переделал под управляемые формы http://infostart.ru/public/98411/
(17) для xml вот есть - http://infostart.ru/public/84254/
23. xaker1C 20.12.11 18:05 Сейчас в теме
24. пользователь 04.01.12 10:57
Сообщение было скрыто модератором.
...
25. Waldor 130 29.01.12 17:24 Сейчас в теме
Спасибо. Оптимизировал свою дбф загрузку...
26. stormtg 13.02.12 14:41 Сейчас в теме
Спасибо, очень интересно
27. i132 130 16.02.12 16:27 Сейчас в теме
Получится немного быстрее если анализировать ответ ДБФ.Следующая();:

ЕстьЗаписи = ДбФ.Первая();
Пока ЕстьЗаписи Цикл
...
ЕстьЗаписи = ДБФ.Следующая();
КонецЦикла;

пример отчета на СКД по произвольному DBF файлу: http://infostart.ru/public/116645/
28. ef42 14.03.12 10:04 Сейчас в теме
Спасибо. Думаю функция пригодится. Как раз планируем добить FoxPro. Остались последние секции, так что думаю можно будет перетащить остатки на 8.2 автоматом, а не заниматься этим вручную. Хотя от ручной работы полностью не избавиться (в foxpro по моему штрихкоды отсутствуют).
29. h_vitya 28.03.12 14:00 Сейчас в теме
Спасибо. Думаю функция пригодится. Как раз планируем добить FoxPro. Остались последние секции, так что думаю можно будет перетащить остатки на 8.2 автоматом, а не заниматься этим вручную. Хотя от ручной работы полностью не избавиться (в foxpro по моему штрихкоды отсутствуют).


Меня устраивает через Exel смотреть dbf
30. electronik 25.04.12 16:21 Сейчас в теме
Спасибо но хотелось узнать как предстоят дела с кодировками, ато при работе с ДБФ возникает кучу моментов кодировками ето здесь предусмотрено или нужно руками допиливать
31. aximo 2751 25.04.12 17:01 Сейчас в теме
(30) в моих задачах еще не случалось его допиливать под что-то... малая вероятность...
32. Alfer 16.01.14 19:26 Сейчас в теме
меня устраивает во всем - а некоторые моменты возьму на вооружение для дальнейшего использования
33. vvirus 21 21.05.14 08:29 Сейчас в теме
добавь определение типов данных DBF, при формировании таблицы - это поможет при загрузке ТЗ в запрос
пример есть тут http://infostart.ru/public/100001/
34. cheiser1982 250 15.12.14 13:18 Сейчас в теме
Адаптированно для управляемых форм платформы 8.3:
DBFViewer8_3 для управляемых форм
Для отправки сообщения требуется регистрация/авторизация