базы из 1С

Тема в разделе "1C и всё что с ней связано", создана пользователем Iscander, 22 июл 2008.

  1. Iscander

    Iscander Гость

    Вообщем есть такая необходимость забрать данные, набранные в справочнике в 1С, и использовать их в фокс про. Сам с 1С почти знаю, можно сказать только знаком.
    Я так понял все хранится в базах dbf, но их там много и не понятно, что в каком файле находится. В итоге мне надо получить один файл bdf, что бы использовать его в фокс про. Какие варианты могут тут быть??? Подскажите пожалуйста.
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    в файле *.DD хранится описание что в какой таблице находится
     
  3. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    По-моему, проще сделать выгрузку в dbf или в текстовый с разделителями. в родном файле может быть много лишнего.
     
  4. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    GorlanovMax, для вас цитата автора поста:
    автору будет проще разобраться со структурой базы, чем тратить время на изучение встроенного языка.
     
  5. Iscander

    Iscander Гость

    Файл *.DD я открыл, посмотрел dbf-ки, описанные в нем, но найти связь между ними помоему не очень реально.
    А могли бы вы написать как сделать эту "выгрузку в dbf или в текстовый с разделителями", а то как я уже писал не знаком с 1С. А в родным dbf и в правду куча лишнего.
     
  6. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    напиши, что за справочник, какие поля нужны.
     
  7. Iscander

    Iscander Гость

    Справочник называется "Операции" в нем следующие поля: "ПолноеНаименование", "Специальность", "Разряд", "ТипПодсчета", "КоэффВремя".
    Еще есть справочники, но они простые и я по аналогии смогу сделать. Проблема еще и в том, что конфигурация не мной писанная=)
     
  8. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    еще сообщи пожалуйста, типы указанных полей
     
  9. kaa

    kaa Гость

    Код (Text):
    Для Инд=1 По СписокН.РазмерСписка() Цикл
    Эл = СписокН.ПолучитьЗначение(Инд);    
    Список.УдалитьВсе();
    Список.ДобавитьЗначение(Эл.Код);
    Список.ДобавитьЗначение(Эл.Наименование);
    Список.ДобавитьЗначение(Эл.ПолнНаименование);
    Список.ДобавитьЗначение(Эл.ВидНоменклатуры);//в бух ТипНоменклатуры
    Список.ДобавитьЗначение(Эл.БазоваяЕдиница.Океи.Код);
    Список.ДобавитьЗначение(Эл.БазоваяЕдиница.Океи.Наименование);
    Список.ДобавитьЗначение(Эл.БазоваяЕдиница.Океи.ПолнНаименование);
    Список.ДобавитьЗначение(Эл.СтавкаНДС);
    Список.ДобавитьЗначение(Эл.СтавкаНП);
    Список.ДобавитьЗначение(НачДата);
    Текст.ДобавитьСтроку(Список.ВСтрокуСРазделителями());
    КонецЦикла;                                            
    Текст.Записать(СокрЛП(Каталог)+"\номенклатура.txt");
    СписокН это список со значениями Номенклатуры
     
  10. Iscander

    Iscander Гость

    "ПолноеНаименование" - строка
    "Специальность" - строка
    "Разряд" - Справочник.Разряды (в нем одно поле "СекТарифСтавка" типа число)
    "ТипПодсчета" - Перечисление.ТипПодсчета (в нем 2 значения "ВремяВСек" и "Коэффициент")
    "КоэффВремя" - число
     
  11. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    так в принципе тебе уже показали как сделать выгрузку в текстовый файл. если не получится, тогдапиши сделаем в dbf
     
  12. Iscander

    Iscander Гость

    Мне бы конечно лучше в дбф сразу потому что надо заюзать потом в фокс про, поэтому все равно перегонять придеться. И еще где этот код писать??? Как подсказывает мне мое чувство то в "Процедура ПриЗакрытии()".
     
  13. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    нет писать это удобней всего внешним отчетом
     
  14. Iscander

    Iscander Гость

    Блин вот что-то я не допонимаю. ((( Мог бы ты написать конкретно под мой пример????
     
  15. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    Гуру. подскажите, как мы вытаскиваем данные из перечисления, и какого они типа? а то раньше не сталкивался
     
  16. kaa

    kaa Гость

    Если бы из 1с в 1с то я б использовал ЗначениеПоИдентификатору или ПоНомеру, здесь надо думать как они будут попадать в программу и прям в коде определять, тоесть передовать строку
    Если ТоЧтоПередали = "Продажа" ТОгда
    и т.п.
     
  17. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    Ссылка для скачивания: http://files.mail.ru/UGBFI4

    обработка. попробуй, должно работать
     
  18. Iscander

    Iscander Гость

    Почти все работает=)
    Только выдало ошибку:
    Открыт файл экспорта Spr.dbf
    DBF.TVrem=Спр.ТипПодсчета.ВремяВСек;
    {D:\WORK\Выгрузка.ERT(34)}: Поле агрегатного состояния не обнаружено(ВремяВСек)
     
  19. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    было так
    DBF.ДобавитьПоле("TVrem",1,20,2);
    DBF.ДобавитьПоле("TKoeff",1,10,3);
    и вот так
    DBF.TVrem=Спр.ТипПодсчета.ВремяВСек;
    DBF.TKoeff=Спр.ТипПодсчета.Коэффициент;
    ___________________________________________________
    попробуй так
    DBF.ДобавитьПоле("TVrem",2,85,0);
    //DBF.ДобавитьПоле("TKoeff",1,10,3);
    и вот так
    DBF.TVrem=Спр.ТипПодсчета;
    //DBF.TKoeff=Спр.ТипПодсчета.Коэффициент;
     
  20. Iscander

    Iscander Гость

    Это помогло, но тоже надо исправить и Коэффициент. А так же еще ошибка:
    DBF.Сохранить();
    {D:\WORK\Выгрузка.ERT(37)}: Поле агрегатного состояния не обнаружено(Сохранить)
     
Загрузка...

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