Последнее обновление: 23 мая 2015 в 14:58
Подпишись на RSS
rss Подпишитесь на RSS, чтобы всегда быть в курсе событий.
30 января 2009 · Анализ

Все помнят, что динозавры когда-то вымерли. А вымерли из-за того, что не смогли приспособиться к изменению внешней среды. Когда было тепло — хавки было догуя, жрали-срали-спали-росли-трахались-и тд. И все было бы хорошо, если бы не похолодание. Как следствие — меньше хавки, спать холодно, болезни, войны за территории и хавку и прочая херь истребили динозавров. Кончилось […]


12 июля 2010 · Новости

Сегодня обновил клиенту 1с  бухгалтерия 8 до релиза 1.6.25.5. После этого при попытке распечатать или сохранить данные форм CPD-6 в файл выдается ошибка {ОбщийМодуль.ПроцедурыПерсонифицированногоУчета(716)}: Поле объекта не обнаружено (КПП) Данные = Запись.Значение[Поле.ИмяПоля]; А клиент — ЧПыжник ведет учет в полноценной классической бухгалтерии, естественно такого реквизита, как КПП у него нет. Но программа упорно не хотела […]


Метки

Метки записей
свертка торговли Печатные формы Drivers Установка Windows вирус Документы на почту сайт антивирусы расчет ПЗД Драйвера редактирование DBF Спутниковое ТВ Фото перенос документов Армия скачать конвертер office 2003-2007 Оборудование office 2007 мошенничество Альпинизм Удаление партий Обработки Деньги Видео Жизнь свертка в картинках уменьшить размер базы Работа Лирика удаляем пароли автоматизация Сайты Файлы 1С Экономика Драйвер ODBC скачать Проблемы портативный аккумулятор бесплатно перенумарация Пошаговая свертка дравер MySQL скачать Делаем LiveCD Новая форма счет-Фактуры Оптимизация Вирусы Структура 1С Бухгалтерия сертфикаты антивирус сбились номера документов Свертка 1С Автомобили Взлом 1 jaws пакетный запуск 1С Методика свертки 1С homachi локальная сеть через интернет Взлом 1С восстановить нумерацию 1с и MySQL СМС Экстремальные игры переустановка windows Интернет LiveCD Dr.Web Мужчина и женщина взломать пароль Программы связь удаление документов код защита XPE Скачать 1С Взлом Интересные места Добавить новую метку реестр СМС оплата партии Игры office 2003 Загрузка с компакт - диска Ошибки 1С узнать пароль Интренет Zver DVD Asus Eee Анализ ПДЗ Отчет вирус эмулирует нажатие Win гаджеты Система Отношения Подключить 1С к MySQL Свертка базы 1С ZverCD День жестянщика Интерент Вопросы автозапуск печать от поставщика Отзывы 1с реестр Windows XP Свертка по партиям новости контент-провайдер заблокирован Вся открыть xlsx docx Спорт Финансы просроченная дебиторская задолженность Юмор Программы для 1С сверка базы 1С Командная строка Кино Oracle программы для слепых свертка Обзоры HP Pavilion dv6000 вирус SMS
25 июня 2010

Как 1С 7.7 и 8.1 работает с DBF, примеры кода

Автор статьи: , 25 июня 2010 в рубрике . Метки: , . Просмотров: 34 450

Иногда возникает необходимость хранить какие — либо данные не в самой базе 1С, а во внешних файлах, например DBF.

Это может понадобиться в нескольких случаях, например, когда нельзя вносить изменений в конфиругацию 1С, например если 1С базовой версии. Так же сохранение в DBF файлах может понадобиться при переносе данных между конфигурациями, различного рода выгрузок-загрузок. Такие схемы часто можно встретить в работе аптечных сетей, так как номенклатуры там много и поставщики лекарств стараются автоматизировать процесс ввода накладных путем электронного обмена с покупателями. Для работы с DBF файлами можно использовать так же редактор DBF — просматривать и редакстирвоать DBF.

Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru

Работаем с DBF в 1С: Предприятие 7.7

Создаем и записываем данные в DBF 1C 7.7

//Создаем объект
База = СоздатьОбъект(«XBASE»);

База.КодоваяСтраница(1); // 1- DOS, 0 — Windows


//Добавляем поля в объект
База.ДобавитьПоле("NOM","C",8,);
База.ДобавитьПоле("KOL","N",14,3);
База.ДобавитьПоле("ED","C",8,);
База.ДобавитьПоле("CENA","N",15,2);
База.ДобавитьПоле("SUMMA","N",15,2);
База.ДобавитьПоле("K","C",1,);
База.ДобавитьПоле("NOMDOC","C",10,);
База.ДобавитьПоле("DATDOC","C",10,);
База.ДобавитьПоле("NOMNAME","C",50,);  //наименование номенклатуры
База.ДобавитьПоле("NOMNAMEP","C",50,);  //полное наименование номенклатуры
База.ДобавитьПоле("ART","C",50,);  //артикул
База.ДобавитьПоле("GRUPPA","C",8,);  //артикул
База.ДобавитьПоле("KONTR","C",100,);

//Создаем новый файл C:exch.dbf
База.СоздатьФайл("C:exch.dbf");
База.ОчиститьФайл();
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()= 1 Цикл
База.Добавить();

База.УстановитьЗначениеПоля("NOM",Док.Номенклатура.Код);
База.УстановитьЗначениеПоля("KOL",Док.Количество);
База.УстановитьЗначениеПоля("ED",Док.Единица.ОКЕИ.Наименование);
База.УстановитьЗначениеПоля("CENA",Док.Цена);
База.УстановитьЗначениеПоля("SUMMA",Док.Сумма);
База.УстановитьЗначениеПоля("K",Док.Коэффициент);
База.УстановитьЗначениеПоля("NOMDOC",Док.НомерДок);
База.УстановитьЗначениеПоля("DATDOC",СокрЛП(Док.ДатаДок));
База.УстановитьЗначениеПоля("KONTR",СокрЛП(Док.Контрагент.Наименование));
База.УстановитьЗначениеПоля("NOMNAME",СокрЛП(Док.Номенклатура.Наименование));
База.УстановитьЗначениеПоля("NOMNAMEP",СокрЛП(Док.Номенклатура.ПолнНаименование));
База.УстановитьЗначениеПоля("ART",СокрЛП(Док.Номенклатура.Артикул));
База.УстановитьЗначениеПоля("GRUPPA",СокрЛП(Номенклатура.Родитель.Код));
База.Записать();
КонецЦикла;

Сообщить("Выгружен " +Док.ТекущийДокумент());

Читаем данные из DBF файла 1c 7.7


База = СоздатьОбъект("XBASE");
База.ОткрытьФайл("C:exch.dbf");
База.Первая();
Для й = 1 По База.КоличествоЗаписей() Цикл
Таб.НоваяСтрока();
Таб.Контр = База.ПолучитьЗначениеПоля("KONTR");

Таб.Ед= База.ПолучитьЗначениеПоля("ED");
Таб.Количество = База.ПолучитьЗначениеПоля("KOL");
Таб.Цена = База.ПолучитьЗначениеПоля("CENA");
Таб.Сумма = База.ПолучитьЗначениеПоля("SUMMA");
Таб.Коэффициент = База.ПолучитьЗначениеПоля("K");
........
База.Следующая();
КонецЦикла;

Работаем с DBF в 1С: Предприятие 8.1

Создаем и записываем данные в DBF 1C 8.1


Файл = Новый XBase;
Файл.Кодировка = КодировкаXBase.OEM;
Файл.Поля.Добавить("KOD","S",11);
Файл.Поля.Добавить("NOMER","S",50) ;
Файл.Поля.Добавить("DATAV","D",10,0);
Файл.Поля.Добавить("SROK","D",10,0);
Файл.Поля.Добавить("ORGAN","S",50) ;
Файл.Поля.Добавить("PROIZV","S",50) ;
Путь = КаталогИБ() + "SERT.DBF"; // КаталогИБ() - функция, которая определяет путь к базе - в 8 ке нет встроенного механизма
Файл.СоздатьФайл(Путь);
Файл.Записать();

Файл.ОчиститьФайл();
Для Каждого Стр из Т Цикл
Файл.Добавить();
Файл.KOD = Стр.Номенклатура.Код;
Файл.NOMER = Стр.Номер;
Файл.DATAV = Стр.ДатаВыдачи;
Файл.SROK = Стр.СрокДействия;
Файл.ORGAN = Стр.Орган;
Файл.PROIZV = Стр.Производитель;
Файл.Записать();
КонецЦикла;
Файл.Записать();
Файл.ЗакрытьФайл();

Читаем данные из DBF файла 1c 8.1


Путь = КаталогИБ() + "SERT.DBF";
Файл = Новый XBase;
Файл.ОткрытьФайл(Путь,,Истина); //открываем для чтения
Макет = ПолучитьМакет("Сертификаты");
Файл.Первая();
Пока НЕ Файл.ВКонце() Цикл
НомерСерт = СокрЛП(Файл.NOMER);
ДатаВыдачи = Файл.DATAV;
СрокДействия = Файл.SROK;
Орган = СокрЛП(Файл.ORGAN);
Производитель = СокрЛП(Файл.PROIZV);
Файл.Следующая();
КонецЦикла;
Файл.ЗакрытьФайл();



К записи "Как 1С 7.7 и 8.1 работает с DBF, примеры кода" 11 комментариев

помести код в теги ковычки не верно отображаются

Ответить

Пока не получается ))
Я ж 1С ник, а не ПэХэПэшник))
Еще не догнал как в Вордпрессе отображать красиво код 1С, но работаю над этим)
Думаю скоро переведу все статьи на красивое отображение кода)))

Ответить

спасибо большое. я как новичек парился бы с этими дбф-ами целый день. а тут раз, и все сделал по шаблону)

Ответить

Пожалуста.
Я сам периодичесик захожу на эту статью, чтобы шаблон кода скопировать, который работает с DBF

Ответить

Спасибо Вам за статейку ) необходимо было оперативно выгрузить в *.dbf. Очень помогло\

Ответить

Здравствуйте, я тоже новичок! а у меня вот запара: надо прочитать данные из дбф .возникает ошибка «Ошибка при вызове метода контекста (Следующая): Перед выполнением операции нужно открыть базу» так я же её и так открываю 🙁   или я чего-то не понимаю…..?БД = Новый XBase; БД.ОткрытьФайл(«C:\Выгрузка в банк\1.dbf»); Пока БД.Следующая()Цикл  Сообщить(БД.SBK_FIO); КонецЦикла; БД.ЗакрытьФайл();

Ответить

Перед выполнением операции нужно открыть базу
Скорее у Вас в момент работы обработки открыт DBF-файл
Попробуйте закрыть его, а лишь потом запускать обработки 1С.

Ответить

да, действительно так оно и было:), спасибо за совет!!!!!!

Ответить

Спасибо, статья ОЧЕНЬ помогла 🙂

Ответить

Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только монопольно. 

Ответить


Оставить комментарий

*

Блог программиста 1С. Программирование 1С
Если Вас что-то заинтересовало или возникли вопросы, пишите.
petr@evseev.ru
Skype - evseev_petr
ICQ - 262808698

Сохраните меня в социальных сервисах

Комментарии

Присоединяйтесь к обсуждению
  • Леха: Мало того, что это говно-антивирус требует .Net Framework не ниже 4.0, так он еще пожирает ресурсы компьютера,...
  • tommy: AVG равно еще хуже Касперского . Иди в жопу с ним
  • просто_чайник: Не люблю этот антивирус. Заметил такую особенность. Если обновить базы в начале работы, довольно часто...
  • Елена: Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только...
  • Виктор: Поставили мне на работе эту замечательную программку. Работать невозможно, ужасные тормоза. Стали...

Избранное видео

Ссылки