8.х Выгрузка и загрузка через XML

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Berd_M, 19 апр 2016.

  1. TopicStarter Overlay
    Berd_M
    Offline

    Berd_M

    Регистрация:
    6 дек 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    В 1С программировать не приходилось, но поставлена задача, и ее надо решить.
    Требуется выгрузить в XML файл данные из 1С 8.3. Например справочник Номенклатура. А потом загрузить ее в такую же, но пустую базу. При этом обработка из диска итс "ВыгрузкаЗагрузкаДанныхXML" нам не совсем подходит, т.к. процесс выгрузки и загрузки должен идти полностью автоматизированно, без диалогов с пользователем. Все это требуется для того, чтобы типовые задачи загружать студентам (чтоб они лишних телодвижений не делали).
    Выгрузку в первом приближении понял как делать. Например:
    Код:
    &НаСервере
    Процедура ВыгрузитьДанные()
        Запись=Новый ЗаписьXML;
        Запись.ОткрытьФайл("c:\document.xml");
        Запись.ЗаписатьОбъявлениеXML();
        Запись.ЗаписатьНачалоЭлемента("Справочники");
        Запись.ЗаписатьНачалоЭлемента("Номенклатура");
        Выборка=Справочники.Номенклатура.Выбрать();
        Пока Выборка.Следующий() Цикл
            ПНОбъект = Выборка.ПолучитьОбъект();
            ЗаписатьXML(Запись, ПНОбъект );
        КонецЦикла;
        Запись.ЗаписатьКонецЭлемента();
        Запись.ЗаписатьКонецЭлемента();
        Запись.Закрыть();
    КонецПроцедуры
    А вот как все это дело загрузить в пустую базу, ума не приложу
  2. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Читаете этот файл и создаете необходимые объекты :)
  3. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Например, Все функции - Обработки - Универсальный обмен данными в формате XML. Это для Бух 3.0.
  4. TopicStarter Overlay
    Berd_M
    Offline

    Berd_M

    Регистрация:
    6 дек 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Я еще могу объяснить преподам, как пользоваться Универсальным обменом данных, например для выгрузки. Но всем студентам, очной и заочной формы обучения обучать этому нереально. Будут тупить по черному. Бегать на каждый комп преподу или нам сисадминам тоже не вариант. Поэтому хочу написать обработку, которая запускается при запуске программы, и все данные загружает в базу. До этого копировались базы, с готовыми данными, но сейчас на 8.3. базы все весят по полгига, что торговля, что бухгалтерия. Поэтому предложенный вами вариант нам не подходит.
  5. TopicStarter Overlay
    Berd_M
    Offline

    Berd_M

    Регистрация:
    6 дек 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Если только для одного справочника, то проблем нет, могу написать код, который читает построчно, и в зависимости от атрибута загружать в нужный справочник. Но там требуется для многих справочников, документов, регистров писать. На все писать свой код, поседеть можно.
    Вышеуказанный код работает на все виды справочников, с небольшим изменение и для всех документов, а вот так же красиво загрузить как можно?
  6. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    А почему не устраивает типовая обработка ?
  7. TopicStarter Overlay
    Berd_M
    Offline

    Berd_M

    Регистрация:
    6 дек 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Учебное заведение, обучаем уйму бухгалтеров, менеджеров, товароведов, логистов и прочих пользователей 1С. Раньше всем копировали базы с введеными данными для решения ихних задач. Но 8.3. базы разрослись до неприличия, каждая по полгига весит. Вот и думаю, как выйти из ситуации.
    Каждому студенту, очного и заочного обучения, слушателям краткосрочных курсов объяснять как делать загрузку используя Универсальный обмен данными в формате XML чтобы загрузить задачу нереально. Вот и хочу написать обработку, которая при запуске программы автоматически брала с сервера архивированный XML и подгружала в пустую базу. студенту останется только несколько минут подождать, пока все загрузится и начать работать, не вдаваясь в подробности.
  8. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Т.е. на каждого студента заводить новую базу :) ?
  9. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Я бы сделал так. Создал бы правила обмена нужные. Написал бы обработку, которая просто по нажатию на одну кнопочку подгрузит эти правила и по COM выгрузит все в нужную базу. А делается это как раз с использованием обработки, что Вам написали ранее.
  10. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Объединил две одинаковые темы.
  11. TopicStarter Overlay
    Berd_M
    Offline

    Berd_M

    Регистрация:
    6 дек 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Только так можно чему то их обучить.
    Т.е. как то можно автоматизировать стандартную обработку? В какую сторону копать чтобы правила создать?
    Просто я ламачок в программировании в 1С, третий день ковыряюсь. Почти день убил на то, чтоб создать внешнюю обработку с двумя кнопками на форме :( А так уже понял, что общий принцип похож с сиквел базами и их запросами, но до тонкостей далеко
  12. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Нет, стандартную обработку не нужно трогать.
    1) С помощью конфигурации "Конвертация данных" создать правила для переноса нужных Вам справочников.
    2) Сохранить эти правила куда либо в общедоступное место.
    3) Создать новую обработку и в ней прописать выполнение уже типовой обработки "УниверсальныйОбменДанными" с подключением этих правил и с загрузкой в базу приемник по COM.
    4) В итоге получите 2 действия. 1) Ваши студенты просто открывают обработку (хотя и это можно свести к минимуму) 2) нажимают огромную кнопку "ЗАГРУЗИТЬ" (или что-то в этом роде). И все происходит.
    5) Улыбаетесь.
  13. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104

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