7.7 x-base Выгрузка сотрудников в файл дбф

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем змейкин, 20 июн 2013.

  1. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ну прямо магия 5го уровня... Попробуйте заменить name на name0
  2. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    добавил 0 блин всеравно не перепсывает что то вообще не понятное( :aua:

    Код:
     ДБФ=СоздатьОбъект("XBase");
    
    // Определяем поля
    ДБФ.ДобавитьПоле("Code","S", 10,);
    ДБФ.ДобавитьПоле("Name0","S",30,);
    ДБФ.Добавить();
    ДБФ.Code  = СпрСотры.Код;
    ДБФ.Name0  = СпрСотры.Наименование;
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Это кусок кода вырезали или это полный код? Где цикл по справочнику?
  4. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    кусок вырезал вот полный
    Код:
    Перем Путь, ИмяФайла;
    Процедура ВыбратьПутьИмя()
    
    Если ФС.ВыбратьФайл(1, ИмяФайла, Путь, "Укажите имя DBF-файла (Запасы.DBF)","Файлы ДБФ (*.dbf)","dbf") <> 1 Тогда
    Возврат
    КонецЕсли;
    
    КонецПроцедуры
    //*******************************************
    Процедура Выгрузить()
    
    Попытка				
    Если ФС.СуществуетФайл(Путь+"\"+ИмяФайла) = 1 Тогда
    ФС.УдалитьФайл(Путь+"\"+ИмяФайла);	  
    КонецЕсли;
    Исключение
    Сообщить("Невозможно перезаписать файл с предыдущей выгрузкой.","!!!");
    Возврат ;
    КонецПопытки;
    ДБФ=СоздатьОбъект("XBase");
    
    // Определяем поля
    ДБФ.ДобавитьПоле("Code","S", 10,);
    ДБФ.ДобавитьПоле("Name0","S",30,);
    //ДБФ.ДобавитьПоле("Imya","S",20,);	//Имя
    //	ДБФ.ДобавитьПоле("Famil","S",25,);   //Фамилия
    //	ДБФ.ДобавитьПоле("Otch","S",20,);	//Отчество
    //
    //	ДБФ.ДобавитьПоле("Adres","S",100,);   //Адрес
    //	ДБФ.ДобавитьПоле("Pfone","S",32,);   //Телефон
    //	ДБФ.ДобавитьПоле("Sex","S",1,);	  //Пол
    //	ДБФ.ДобавитьПоле("Dol","S",25,);   //Должность
    //
    //	ДБФ.ДобавитьПоле("Dat1","D",8,);	//Дата приема
    //
    // ДБФ.ДобавитьПоле("Okl","N",12,2);	//Оклад
    // ДБФ.ДобавитьПоле("Av", "N",12,2);	 //Аванс
    //	ДБФ.ДобавитьПоле("Ser","S",12,2);
    //	ДБФ.ДобавитьПоле("Nom","S",12,2);
    //
    //	ДБФ.ДобавитьПоле("Inv", "N",1,0);	 //Инвалид
    //
    //
    // ДБФ.ДобавитьПоле("INN","S",10,);	  
    Попытка
    ДБФ.СоздатьФайл(Путь+"\"+ИмяФайла);
    Исключение
    Предупреждение("Ошибка создания файла " + Путь+"\"+ИмяФайла);
    Возврат;
    КонецПопытки;
    Если ДБФ.Открыта() = 0 Тогда
    Предупреждение("Ошибка открытия файла " + Путь+"\"+ИмяФайла);
    Возврат;
    КонецЕсли;
    Сч=0;
    СпрСотры=СоздатьОбъект("Справочник.Сотрудники");
    ДБФ.КодоваяСтраница(0);
    СпрСотры.ИспользоватьДату(ДатаВыборки);
    СпрСотры.ВыбратьЭлементы();
    Пока СпрСотры.ПолучитьЭлемент() > 0 Цикл
    Если СпрСотры.ПометкаУдаления()=1 Тогда
    Продолжить;  
    КонецЕсли;
    
    Если ПустоеЗначение(СпрСотры.ДатаПриема)=1 Тогда
    Продолжить;
    КонецЕсли;
    Если ПустоеЗначение(СпрСотры.ДатаУвольнения)=0 Тогда
    Если СпрСотры.ДатаУвольнения<'01.01.2007' Тогда
    Продолжить;
    КонецЕсли;
    КонецЕсли;
    
    ДБФ.Добавить();
    ДБФ.УстановитьЗначениеПоля("Code",СпрСотры.Код);//Пробовал так тоже не получается  вообще ДбФ.Code=СпрСотры.Код
    ДБФ.Name0  = СпрСотры.Наименование;
    //	 ДБФ.Famil = СпрСотры.Фамилия;	  
    //ДБФ.Imya  = СпрСотры.Имя;		
    //	 ДБФ.Otch  = СпрСотры.Отчество;	  
    //
    //	 ДБФ.Adres = СпрСотры.Адрес;						
    //	 ДБФ.Pfone = СпрСотры.Телефон;					  
    //	 ДБФ.Sex   = СпрСотры.Пол.Идентификатор();				
    //	 //ДБФ.Podr  = СпрСотры.Подразделение.Наименование;	
    //	 ДБФ.Dol   = СпрСотры.Должность;//Должность
    //  ДБФ.Inv  =  СпрСотры.фЭтоИнвалид;
    //
    //	 ДБФ.Dat1  = СпрСотры.ДатаПриема;			  
    //  //ДБФ.Tip   = Совмещ;									
    //
    //  ДБФ.Okl   = СпрСотры.Оклад;									
    //	ДБФ.Av	= СпрСотры.Аванс;
    //  //Паспортные данные
    //	 ДБФ.Ser   = СпрСотры.ПаспортСерия;	
    //  ДБФ.Nom   = СпрСотры.ПаспортНомер;	
    //
    //  ДБФ.INN   = СпрСотры.ИНН;
    Сообщить("равно="+ДбФ.КоличествоЗаписей());
    Сообщить("равно="+ДБФ.КоличествоПолей());
    Попытка
    
    ДБФ.Записать();
    Сч=Сч+1;
    Сообщить("Добавлена запись №" + Строка(Сч));
    Исключение
    Предупреждение("Ошибка записи!");
    Возврат ;
    КонецПопытки;
    
    КонецЦикла;
    ДБФ.ЗакрытьФайл();
    Предупреждение("Выгрузка закончена!");
    
    КонецПроцедуры
    Процедура ПриОткрытии()
    
    Путь=КаталогИБ()+"\ExtForms";
    ИмяФайла="Сотрики.DBF";
    ДатаВыборки= '31.12.2006';
    
    КонецПроцедуры
    
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не вижу ошибки. Рабочий код.
  6. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    403
    Симпатии:
    71
    Баллы:
    54
    Здравствуйте.
    Остаётся только предположить, что не заполнена дата приёма или дата увольнения меньше 01.01.2007. Попробуйте закомментировать эти условия или проверьте цикл в отладчике.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Предлагал.. Пост №12
  8. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    403
    Симпатии:
    71
    Баллы:
    54
    Тогда у меня больше нет предположений.
  9. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Загвоздка была в этом коде в выгрузке все норм работает я исправил!Спасибо вам огромное очень помогли разобраться!!!
    Код:
     Пока СпрСотры.ПолучитьЭлемент() > 0 Цикл
    Если СпрСотры.ПометкаУдаления()=1 Тогда
    Продолжить;   
    КонецЕсли;
    
    Если ПустоеЗначение(СпрСотры.ДатаПриема)=1 Тогда
    Продолжить;   
    КонецЕсли;
    Если ПустоеЗначение(СпрСотры.ДатаУвольнения)=0 Тогда
    Если СпрСотры.ДатаУвольнения<'01.01.2007' Тогда
    Продолжить;   
    КонецЕсли;
    КонецЕсли;

Поделиться этой страницей