Записки программиста 1с

Загрузка данных в 1с из Excel

Загрузка данных в 1с из Excel применяется для организации заполнения базы данных 1с информацией. Ниже представлен код обработки позволяющий загрузить в справочник данные с листа Excel. Код рабочий предложен в качестве подсказки всем заинтересованным.


&НаСервере
Процедура ЗагрузитьНоменклатуруНаСервере(ВыбранноеИмяФайла)
Сообщить("ыыыыыыы");
ТабДок = Новый ТабличныйДокумент;
Попытка
    ТабДок.Прочитать(ВыбранноеИмяФайла);
Исключение
    Сообщить("ОЙ, НЕ ПРОЧИТАЛОСЬ");
    Возврат;
КонецПопытки;

ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область("Организация"));
ПостроительЗапроса.Выполнить();

ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
ТаблицаДанных.Количество();
Мой = Справочники.Агенты2;
для каждого Строка из ТаблицаДанных цикл
    Если строка.Наименование = "" Тогда
        //Сообщить("Создаем Группу");
        НоваяГруппа = Мой.СоздатьГруппу();
        НоваяГруппа.Наименование = Строка.Код;
    //  Если Число(Мас[2]) > 1 Тогда
    //      НоваяГруппа.Родитель = Группы[Число(Мас[2]) - 2];
    //  КонецЕсли;
        НоваяГруппа.Записать();
    //  Группы[Число(Мас[2]) - 1] = НоваяГруппа.Ссылка;
    Иначе


    Попытка
            НовыйЭлемент = Мой.СоздатьЭлемент();
            НовыйЭлемент.Код = строка.Код;
            НовыйЭлемент.Наименование = строка.Наименование;

            НовыйЭлемент.Организация = строка.Наименование;
            Сотрудник=Справочники.Сотрудники.НайтиПоКоду(Строка.Код);
            Сообщить(Сотрудник.Имя);
            НовыйЭлемент.Имя=Сотрудник;
            НовыйЭлемент.ФИО=Сотрудник.Наименование;
            //НовыйЭлемент.Родитель = НоваяГруппа.Ссылка;//мой.НайтиПоНаименованию(строка.Группа);
            НовыйЭлемент.Записать();
            //Сообщить(Мас[0] + " " + Мас[1] + " / " + Группы[Число(Мас[2]) - 2]);
        Исключение
            Сообщить("Ошибка в строке " + (Строка));
        КонецПопытки;

     конецесли;




    //сообщить(строка.Название);    

конеццикла;

КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьНоменклатуру(Команда)
НачатьПомещениеФайла(Новый ОписаниеОповещения(“ПослеВыбораФайла”, ЭтотОбъект));
КонецПроцедуры

&НаКлиенте
Процедура ПослеВыбораФайла(Результат, Адрес, ВыбранноеИмяФайла, ДопПараметры) Экспорт
Если Не ПустаяСтрока(ВыбранноеИмяФайла) Тогда
ЗагрузитьНоменклатуруНаСервере(ВыбранноеИмяФайла);
КонецЕсли;
КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован.