Главная  |  Продукты  |  Услуги и цены  |  Клиенты  |  Контакты
 
1C Предприятие 7.7
Наши решения
Программирование
1С Предприятие 8.*
Наши решения
Партнерские разработки
Типовые решения
Программирование
Администрирование
Web проекты
Интернет-магазины
Поиск по сайту

дельные вещи
 
Управление интернет-магазином
 

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

Цена: 1000$ Подробная информация о модуле

 

Главная arrow Программирование arrow Загрузка данных из ДБФ файла
Загрузка данных из ДБФ файла Версия в формате PDF Версия для печати Отправить на e-mail
Рейтинг: / 4
ХудшаяЛучшая 
Написал Валецкий Станислав   
Загрузку из DBF файла рассмотрим на примере банковской выписки. DBF файл был экспортирован из клиент-банка. Наша задача выбрать из файла платежи на дату документа и заполнить основные реквизиты - приход-расход, контрагент,сумма и т.д. Процедура загрузки будет выглядеть следующим образом:

 
 
Процедура ЗагрузитьВыпискуизДБФФайла()     
  
  //Если в файле есть записи на дату документа, возведем флаг в 1
  ЕстьЗаписиНаДату = 0;
  
  //Проверка существования выбранного файла
  Если ФС.СуществуетФайл(ФайлЗагрузки) = 0 Тогда
    Предупреждение("Неверное имя файла."+ ФайлЗагрузки);
  Иначе                    
    Спр=СоздатьОбъект("Справочник.Контрагенты");    
    
    //Обрабатываем только если тип файла dbf
    Если (ВРЕГ(Прав(ФайлЗагрузки,3))="DBF")Тогда
      
      //Создаем объект для работы с ДБФ файлом
      ДБФ = СоздатьОбъект("XBase");           
      
      //Определяем кодовую страницу нашего файла
      ДБФ.КодоваяСтраница(0);
      ДБФ.ОткрытьФайл(ФайлЗагрузки);  
      
      //Начинаем выборку записей файла
      ДБФ.Первая();
      Пока ДБФ.ВКонце()=0 Цикл         
        
        //Проверяем дату записи в файле
        //если соответствует дате документа значит обрабатываем
        Если ДБФ.DT = Датадок тогда  
          
          //Возводим флаг найденной записи на дату документа
          ЕстьЗаписиНаДату = 1;                             
          
          //Создаем и заполняем запись в ТЧ документа
          //на основании записи в файле ДБФ
          НоваяСтрока();
          НомерДокумента = ДБФ.NDOC;  
          
          //поступление / расход
          Если не(ДБФ.DK = 1) Тогда
            ВидДвижения = Перечисление.ВидыДвиженийПоРасчетномуСчету.Списание; 
            
            //Вызовем дополнительные процедуры при изменении реквизитов
            ИзмВидДвижения();  
            ИзмСчет();                                                         
            ДоходИздержка = Перечисление.ПлюсМинусНичего.Минус;
            Если Спр.НайтиПоРеквизиту("ЕДРПОУ",СокрЛП(ДБФ.OKPOCOR),1) = 1 Тогда
              Субконто1 = Спр.ТекущийЭлемент();
              Субконто2 = Спр.ТекущийЭлемент().БазДоговор;            
            Иначе
              Предупреждение ("Контрагент " + СокрЛП(ДБФ.NAMECOR) + "
              | с кодом ОКПО "+ СокрЛП(ДБФ.OKPOCOR) + " не найден.
              | Проверьте  внесен ли код или это новый элемент справочника.");
              Рез = Вопрос("Создать нового контрагента?","Да+Нет+Отмена");
              Если Рез = "Отмена" Тогда Продолжить;
              Иначеесли Рез = "Да" Тогда  
                
                //Создаем контрагента
                Спр.Новый(); 
                Спр.Наименование = СокрЛП(ДБФ.NAMECOR);
                Спр.ЕДРПОУ   = СокрЛП(ДБФ.OKPOCOR);               
                Спр.Записать();
              Конецесли;     
              ТекКонтрагент = Спр.ТекущийЭлемент();
              Если НЕ(ТекКонтрагент = "") Тогда                  
                Субконто1 = ТекКонтрагент.ТекущийЭлемент(); 
                Субконто2 = ТекКонтрагент.ТекущийЭлемент().БазДоговор;                
              Конецесли;
            Конецесли;      
            ТекСуммаДБФ   = ДБФ.SUMMA;
            СуммаСНДС  = ДБФ.SUMMA; 
            СуммаПлатежа  = ДБФ.SUMMA; 
            Содержание  = ДБФ.NAZN;
          Иначе 
            ВидДвижения = Перечисление.ВидыДвиженийПоРасчетномуСчету.Поступление;
            
            //Вызовем дополнительные процедуры при изменении реквизитов            
            ИзмВидДвижения(); 
            ИзмСчет();                                                           
            ДоходИздержка = Перечисление.ПлюсМинусНичего.Плюс;
            Если Спр.НайтиПоРеквизиту("ЕДРПОУ",СокрЛП(ДБФ.OKPOCOR),1)=1 Тогда
              Субконто1    = Спр.ТекущийЭлемент();
              Субконто2    = Спр.ТекущийЭлемент().БазДоговор;                
            Иначе
              Предупреждение ("Контрагент "+ДБФ.NAMECOR+" 
              | с кодом ОКПО "+СокрЛП(ДБФ.OKPOCOR)+" не найден.
              | Проверьте  внесен ли код или это новый элемент справочника.");
              Рез = Вопрос("Создать нового контрагента?","Да+Нет+Отмена");
              Если Рез = "Отмена" Тогда   Продолжить;
              Иначеесли Рез = "Да" Тогда  
                
                //Создаем контрагента
                Спр.Новый(); 
                Спр.Наименование  = СокрЛП(ДБФ.NAMECOR);
                Спр.ЕДРПОУ    = СокрЛП(ДБФ.OKPOCOR); 
                Спр.Записать();
              Конецесли;      
              ТекКонтрагент = Спр.ТекущийЭлемент();
              Если НЕ(ТекКонтрагент = "") Тогда                   
                Субконто1    = Спр.ТекущийЭлемент();  
                Субконто2    = Спр.ТекущийЭлемент().БазДоговор;                
              Конецесли;
            Конецесли;                                
            ТекСуммаДБФ   = ДБФ.SUMMA;
            СуммаСНДС  = ДБФ.SUMMA; 
            СуммаПлатежа  = ДБФ.SUMMA; 
            Содержание  = ДБФ.NAZN;
          Конецесли;     
          
          //Расчет суммы НДС
          ИзмСуммаСНДС();          
        Конецесли; 
        
        //Перейдем к следующей щаписи файла
        ДБФ.Следующая();  
      Конеццикла;
      
      //Сообщим об отсутствии записей на дату документа
      Если ЕстьЗаписиНаДату=0 Тогда
        Сообщить("На дату документа отсутствуют записи в выбранном файле");
      Конецесли;
    Конецесли;      
  Конецесли;      
КонецПроцедуры
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:
Жирный Курсив Подчеркнутый Зачеркнутый Цитата


Защитный код
Обновить

< Пред.   След. >
Карта сайта
1C-PROFI © 2018
Использование материалов разрешено только с указанием ссылки (для web сайтов гиперссылки)
www.megastock.ru