8.х ОБМЕН Перенос данных из 7 в 8

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем observer, 7 апр 2008.

  1. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Всем привет!!!
    Суть вопроса мне необходимо подцепиться в базе (1С 8.1 файловый вариант) и считать от туда документы. Вот как я сделал!

    Код:
    V81=Новый COMОбъект("V81.Application");
    Попытка
    Открытие=V81.Connect("file=C:\123;Usr=ad;Pwd=123"); 
    Исключение
    сообщить("База не поключилась :( ");
    Возврат;
    Конецпопытки;
    ЗачётныйЛист=V81.Документы.ЗачетныйЛист.Выбрать();
    Пока ЗачётныйЛист.Следующий() Цикл
    сообщить("Зачётныйлист - "+ЗачётныйЛист.Специальность+" "+ЗачётныйЛист.Дата);
    ОбработкаПрерыванияПользователя();
    конеццикла;	
    
    Вот чего я добился он у меня перебирает документы но заместо я как думаю специальности он мне пишет COMОбъект. Вопрос обьясните прошу вас что и как подделать?
    Зачётный лист - COMОбъект 0 10.09.2002 15:30:50
    Зачётный лист - COMОбъект 0 11.09.2002 9:46:17
    Выполнение прервано пользователем!
  2. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Немного пообедав я тут немного навоял!
    У меня получается что в табличной части следующие реквезиты Студент, Шифр, СдачаЗач, СдачаКонтРаб я это дело получил вот так
    Для Каждого Студент из база.ТабличнаяЧасть1 Цикл
    Сообщить("Студент - "+Студент.Студент.Наименование+", "+Студент.Шифр+", "+Студент.СдачаЗач.Метаданные().Name+", "+Студент.СдачаКонтРаб.Метаданные().Name+" "+Студент.КоличествоЧасов);
    конеццикла;
    Но вот пародокс СдачаЗач и СдачаКонтРаб это перечисления и я их получаю но я не могу получиьт шапку документа, подскажите плизззззз :unsure:
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Что значит "не могу получить шапку"? Я вообще не вижу кода, где их пытаешься получить!
  4. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Как-то вообще неправильно, проще же из 8.1 подцепиться к 7.7 и юзать человеческий отладчик 8.1 =) И все будет видно и понятно.
  5. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Мучился я мучился и решил сделать вот так!
    Провести конвертацию 7.7 в 8.1 и с помощью xdto перенести документы. B)
    Стал читать про XDTO и не могу понять одного момента! Как он выгружает табличную часть...
    Если есть подобный опыт переноса документов покажите :unsure:
  6. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    А это обязательно самому ручками писать?
    Возьмите "Конвертацию данных" убейте на нее денек и перенесите за 5 минут :)
  7. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Да! Ручками всё же интересней, да и хочеться до конца понять этот механизм.
    Я вот тут пример нашол, ну как то не понятно :unsure:

    ЗаписьXML = Новый ЗаписьXML;
    ИмяФайла ="C:\СхемаXDTO\зачётнаяВедомость.xml";
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    Пути = Новый Массив();
    Пути.Добавить("C:\СхемаXDTO\зачётнаяВедомость.xsd");
    Фабрика = СоздатьФабрикуXDTO(Пути);
    ТипСобытие = Фабрика.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "DocumentObject.ЗачётнаяВедомость");

    ОбъектДокСобытие = Фабрика.Создать(ТипСобытие);
    ДокВыборка = Документы.ЗачетнаяВедомость.Выбрать();
    Пока ДокВыборка.Следующий() Цикл
    СобытиеОбъект = ДокВыборка.ПолучитьОбъект();
    ОбъектДокСобытие.Ref = СобытиеОбъект.Ссылка.УникальныйИдентификатор();
    ОбъектДокСобытие.DeletionMark = СобытиеОбъект.ПометкаУдаления;
    ОбъектДокСобытие.Date = СобытиеОбъект.Дата;
    ОбъектДокСобытие.Number = СобытиеОбъект.Номер;
    ОбъектДокСобытие.Posted = СобытиеОбъект.Проведен;
    ОбъектДокСобытие.КраткийСоставДокумента = СобытиеОбъект.Факультет;
    ОбъектДокСобытие.Ответственный = СобытиеОбъект.Ответственный.УникальныйИдентификатор();
    Фабрика.ЗаписатьXML(ЗаписьXML, ОбъектДокСобытие);
    ЗаписьXML.Закрыть();
    КонецЦикла;

    Но у меня он ругается на строчку ОбъектДокСобытие = Фабрика.Создать(ТипСобытие);

    {Форма.Форма(817)}: Ошибка при вызове метода контекста (Создать): Несоответствие типов (параметр номер '1')
    ОбъектДокСобытие = Фабрика.Создать(ТипСобытие);
    по причине:
    Несоответствие типов (параметр номер '1')
    Подскажите прошу вас у меня осталась 3 месяца
  8. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Тут не подскажу. С этим механизмм я не работал и разбираться лень.
    Если стоит задача просто выгрузить документы в хмл воспользуйтесь обработкой ВыгрузкаЗагрузкаДанныхXML.epf, лежит на ИТС-ах и сэкономите время.

    Опять же внутри этой обработки можно посмотреть как 1С работает с хмл файлами. Как формирует и как читает.
  9. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Это дело я уже пробывал, ну у меня базы не эдентичны!
    Там за место то что мне надо идентификаторы

    <Специальность>00000000-0000-0000-0000-000000000000</Специальность>
    <ГруппаД>52606196-8110-4d3e-b6fe-632f0f95c1b9</ГруппаД>
    <Дисципл>f25c553c-3f14-45c8-b967-f6359c04e785</Дисципл>
    <Препод>00000000-0000-0000-0000-000000000000</Препод>
    <ДатаПров>0001-01-01T00:00:00</ДатаПров>
    <Факультет>a945a5e8-b5a4-4a38-be71-0fe7240f4f3e</Факультет>
    - <ТабличнаяЧасть1>
    <Студент>db11ffb5-4f5d-451d-9774-bc2d54988f7a</Студент>
    <Шифр>ЭК-00-381-</Шифр>
    <СдачаЗач>зачтено</СдачаЗач>
    </ТабличнаяЧасть1>
  10. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Не понял.
  11. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
  12. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Снова мысль не уловил. Можно подробнее рассказать про "Там за место то что мне надо идентификаторы". Как-то расшифровать эту фразу. Ну или запятые что-ли как-то расставить.
  13. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Прошу простить меня за внесение путаницы! :unsure:
    Просто голова не работала, писал обработку для загрузки выполнения учебного плана через DBF сейчас загружается на сервер. Но проблема осталась.
    У меня база для работы документа оборота института по студентам, которая написана на 1С 7.7.
    У меня задача перенести все данные во вновь созданную конфигурацию но уже на 8.1.11.64. вот получается что я перенес всех студентов, сейчас переноситься учебный план, но мне надо перенести документы. Там получаются зачётные, экзаменационные ведомости и куча видов 15 приказов. Вот я и пытался различными способами это дело перенести в новую базу на 1С 8.1.11.64. И пришол к выводу что самый путёвый способ это через XDTO. Посмотрел по лазил по интернету, почитал нашел пару примеров но до конца не понял :D , если есть хоть что то по подробному описанию XDTO киньте в топик B)
  14. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    И все-таки я снова рекоменую посмотреть в сторону "Конвертации данных" и не изобретать очередной велосипед. Она (Конвертация) как раз и создана для подобных задач обмена данными между различными конфигурациями, будь-то 77 или 8.х.

    Про XDTO - ничего не подскажу. Я с этим ще не сталктвался, не работал.
    есть акая книжка: "1С:Предприятие: от 8.0 к 8.1" там этот механизм рассмотрен.
  15. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Так предложи свой вариант! Как бы Ты сделал? :unsure:
  16. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Я бы сделал этот перенос при помощи "Конвертации данных".
    Это опираясь на то, что было озвучено ранее. А так конечно сначала необходимо взглянуть на то, что есь и оценить трудозатраты.
Похожие темы
  1. agostev
    Ответов:
    6
    Просмотров:
    4.800
  2. j72001
    Ответов:
    1
    Просмотров:
    830
  3. nickvv
    Ответов:
    6
    Просмотров:
    2.353
  4. Yury
    Ответов:
    19
    Просмотров:
    6.377
  5. kogor
    Ответов:
    3
    Просмотров:
    2.968
Загрузка...

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