Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:58

Дайте пожалуйста совет!

Автор Лейсан, 31 мая 2012, 10:30

0 Пользователей и 1 гость просматривают эту тему.

Лейсан

Пишу обработку по загрузке файлов dbf.При выполнении выгрузки выходит ошибка:{Форма.Форма.Форма(56)}: Ошибка при вызове метода контекста (Первая)
      ДБФ.Первая();
по причине:
Перед выполнением операции нужно открыть базу!!!

Путь находит,файл с данными dbf есть.

Вот кусок кода:

Перем ТекстСообщенияОшибки;

Процедура ПутьКФайлуНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка=ложь;
   Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Диалог.Заголовок = "Выберите файл";
   Диалог.ПолноеИмяФайла = "";
   Фильтр = "(*.dbf)|*.dbf";
   Диалог.Фильтр = Фильтр;
    Диалог.МножественныйВыбор = Ложь;
   Диалог.Каталог = "\\report\ExportCRM";
   Если Диалог.Выбрать() Тогда
      //Элемент.значение = Диалог.ПолноеИмяФайла;
      ПутьКФайлу = Диалог.ПолноеИмяФайла;
   КонецЕсли;

КонецПроцедуры


Процедура НоменклатураНажатие(Элемент)
       НоменклатуруЗагрузить();

КонецПроцедуры

Функция НоменклатуруЗагрузить()
        ДБФ = Новый XBase;
      ДБФ.ОткрытьФайл(ПутьКФайлу);
      ДБФ.Кодировка=КодировкаXBase.OEM;
      //Проверка на наличие записей
   //Если ДБФ.КоличествоЗаписей() = 0 Тогда
   //   Сообщить("Файл данных пуст");
   //   ДБФ.ЗакрытьФайл();
   //   //Возврат   
   //КонецЕсли;
      СпрНоменклатура=Справочники.Номенклатура;                   
      СпрВидыНоменклатуры=Справочники.ВидыНоменклатуры;
      СпрЕдиницыИзмерения=Справочники.КлассификаторЕдиницИзмерения;
      ДБФ.Первая();
      Пока Истина Цикл
         
      Код=СокрЛП(ДБФ.KOD);
   Если СпрНоменклатура.НайтиПоКоду(Код)=СпрНоменклатура.ПустаяСсылка() Тогда
        Номенклатура = СпрНоменклатура.СоздатьЭлемент();
      //Если ЗначениеЗаполнено(ДБФ.KOD) Тогда
      //Код=СокрЛП(ДБФ.KOD);
      //   Если Код Тогда
          Номенклатура.Наименование = СокрЛП(ДБФ.NAMEN);
        Номенклатура.Артикул = СокрЛП(ДБФ.ART);
      Номенклатура.ВидНоменклатуры = СпрВидыНоменклатуры.НайтиПоНаименованию(СокрЛП(ДБФ.VID),Истина);
      Номенклатура.БазоваяЕдиницаИзмерения=СпрЕдиницыИзмерения.НайтиПоНаименованию(СокрЛП(ДБФ.ED),Истина);   
      Номенклатура.Код=Код;
       Номенклатура.Записать();
      КонецЕсли;

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


  КонецФункции



sadovod

Можно перед вызовом
ДБФ.Первая();
проверить, удалось ли открыть dbf
Если НЕ ДБФ.Открыта()  Тогда
      // всё же есть какие-то проблемы с файлом
КонецЕсли;

Лейсан


Лейсан

проверила загружать разные файлы dbf.не загружает(((До этого делала обработку,указывая конкретный путь.все хорошо загружало.

Лейсан


cska-fanat-kz

Если не сложно...

напишите, КАК ИМЕННО...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

sadovod

Цитата: cska-fanat-kz от 31 мая 2012, 12:39
Если не сложно...напишите, КАК ИМЕННО...
Может быть что-то было не так с диалогом выбора файла? Ведь
Цитата: Лейсан от 31 мая 2012, 11:21
...До этого делала обработку,указывая конкретный путь.все хорошо загружало.

Лейсан

да.с путем проблемы.когда файлы dbf копирую на свой комп и обращаюсь к ним-все работает.когда обращаюсь к файлам,которые лежат на сервере-доступа нет((

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск