Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка выгрузка с xml в 1с, Загрузка выгрузка с xml в 1с 
:(
    Опции темы
edzie
Дата 11.4.2013, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 25.12.2008

Репутация: нет
Всего: нет



Здравствуйте, помогите доделать работу. Как сделать чтобы сохраненные в xml организации сотрудника загружались в справочник? и как 
сделать так, чтобы одинаковые записи не появлялись? 
http://rghost.ru/45218617.view как сделать чтобы при чтении xml добавляло организацию? 
http://rghost.ru/45218804.view - структура xml 
http://rghost.ru/45218853 - сама база
Код

Процедура ЗаписьXML(файл)
    // Выгрузить в файл xml
    Запись = Новый ЗаписьXML;
    Запись.ОткрытьФайл(файл, "UTF-8");
    
    // Записать директиву
    Запись.ЗаписатьОбъявлениеXML();
    
    // Записать начало корневого элемента
    Запись.ЗаписатьНачалоЭлемента("Запись_Данных");
    Выборка = Справочники.Организации.Выбрать();
    Запись.ЗаписатьНачалоЭлемента("Организации");
    пока Выборка.Следующий() цикл
        
        // Записать начало корневого элемента
        Запись.ЗаписатьНачалоЭлемента("Организация");
        
        // Записать атрибут корневого элемента
        Запись.ЗаписатьАтрибут("Код",Строка(Выборка.Код));
        Запись.ЗаписатьАтрибут("Наименование",Строка(Выборка.Наименование));
        Запись.ЗаписатьКонецЭлемента();
    КонецЦикла;
    Запись.ЗаписатьКонецЭлемента();

    Выборка = Справочники.Сотрудники.Выбрать();
    Запись.ЗаписатьНачалоЭлемента("Сотрудники");
    пока Выборка.Следующий() цикл
        Запись.ЗаписатьНачалоЭлемента("Сотрудник");
        Запись.ЗаписатьАтрибут("Код",Строка(Выборка.Код));
        Запись.ЗаписатьАтрибут("Наименование",Строка(Выборка.Наименование));
        Запись.ЗаписатьАтрибут("Паспорт",Строка(Выборка.паспорт));
        ВыбОрг = Выборка.Организации.Количество();                   
        Если ВыбОрг > 0 Тогда
             Запись.ЗаписатьНачалоЭлемента("Место_работы");
            Для сч=0 по ВыбОрг-1 цикл
                Запись.ЗаписатьНачалоЭлемента("Место_работы");
                Запись.ЗаписатьАтрибут("Организация",Формат(Выборка.Организации.Получить(сч).Организация.Код, "ЧГ=0"));
                Запись.ЗаписатьКонецЭлемента();
            КонецЦикла;
            Запись.ЗаписатьКонецЭлемента();
        КонецЕсли;
    
        ВыбОрг = Выборка.Адрес.Количество();  
        Если ВыбОрг > 0 Тогда
            Запись.ЗаписатьНачалоЭлемента("Контакты");
            Для сч=0 по ВыбОрг-1 цикл
                Запись.ЗаписатьНачалоЭлемента("Контакты");
                Запись.ЗаписатьАтрибут("Адрес",Выборка.Адрес.Получить(сч).адрес);
                Запись.ЗаписатьАтрибут("Телефон",Выборка.Адрес.Получить(сч).телефон);
                 Запись.ЗаписатьКонецЭлемента();
            КонецЦикла;
            Запись.ЗаписатьКонецЭлемента();
        КонецЕсли;    
        Запись.ЗаписатьКонецЭлемента();
    
    КонецЦикла;
    Запись.ЗаписатьКонецЭлемента();
    Запись.ЗаписатьКонецЭлемента();
    Сообщить("Выгрузка данных из 1С прошла успешно");
КонецПроцедуры


Код

Процедура ЗагрузитьXML(файл)
    СпрОрг = Справочники.Организации;
    СпрСот = Справочники.Сотрудники;
    
//    ВыборкаИзСотрудников = СпрСот.Выбрать();
//    Пока ВыборкаИзСотрудников.Следующий() Цикл
//        del = ВыборкаИзСотрудников.ПолучитьОбъект();
//        del.Удалить();
//    КонецЦикла;

//    ВыборкаИзОрганизаций = СпрОрг.Выбрать();
//    Пока ВыборкаИзОрганизаций.Следующий() Цикл
//        del = ВыборкаИзОрганизаций.ПолучитьОбъект();
//        del.Удалить();
//    КонецЦикла;        
    
    загXML = Новый ЧтениеXML;
    загXML.ОткрытьФайл(файл); 
    НовыйОбъектОрганизации = NULL;

    // Прочитать фрагменты элемента
    Пока загXML.Прочитать() Цикл
        
            // После чтения проверить тип уза
            Если загXML.Имя = "Организация" И загXML.ТипУзла = ТипУзлаXML.НачалоЭлемента тогда
                РезультатПоиска = СпрОрг.НайтиПоКоду(загXML.ПолучитьАтрибут("Организация Код"));
                Если РезультатПоиска.Пустая() Тогда
                    НовыйОбъектОрганизации = СпрОрг.СоздатьЭлемент();
                    НовыйОбъектОрганизации.Код = загXML.ПолучитьАтрибут("Организация Код");
                    НовыйОбъектОрганизации.Наименование = загXML.ПолучитьАтрибут("Наименование");
                    НовыйОбъектОрганизации.Записать();                
                КонецЕсли;
                
            НовыйОбъектСотрудника = NULL;
    ИначеЕсли загXML.Имя = "Сотрудник" И загXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            РезультатПоиска = СпрСот.НайтиПоКоду(загXML.ПолучитьАтрибут("Сотрудник Код"));
            Если РезультатПоиска.Пустая() Тогда
                    НовыйОбъектСотрудника = СпрСот.СоздатьЭлемент();
                    НовыйОбъектСотрудника.Код = загXML.ПолучитьАтрибут("Сотрудник Код");
                    НовыйОбъектСотрудника.Наименование = загXML.ПолучитьАтрибут("Наименование");
                    НовыйОбъектСотрудника.паспорт = загXML.ПолучитьАтрибут("Паспорт");                
                    НовыйОбъектМестоРаботыСотрудника = НовыйОбъектСотрудника.Организации.Добавить();
                    НовыйОбъектМестоРаботыСотрудника.Организация = СпрОрг.НайтиПоКоду(загXML.ПолучитьАтрибут("Организация"));
                    НовыйОбъектКонтактыСотрудника = НовыйОбъектСотрудника.Адрес.Добавить();
                    НовыйОбъектКонтактыСотрудника.адрес = загXML.ПолучитьАтрибут("Адрес");
                    НовыйОбъектКонтактыСотрудника.телефон = загXML.ПолучитьАтрибут("Телефон");
                    НовыйОбъектСотрудника.Записать();
                КонецЕсли;
            КонецЕсли;
    КонецЦикла;
    загXML.Закрыть();
    Сообщить("Загрузка данных в 1С прошла успешно");
КонецПроцедуры

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.