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

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

Загрузка данных Excel в 1с-это одна из типовых задач программиста 1с.

Существует несколько вариантов ее решения:

Во-первых можно на просторах сети Интернет найти внешнюю обработку для загрузки данных. Существует несколько внешних загрузчиков таблиц Excel для 1С, которые созданы различными разработчиками. Одним из них является инструмент для обработки информации «Загрузка данных из табличного документа» для версии 1С 8.3. Рассматривать пример использования чужой внешней обработки мы не будем.

Во-вторых создаем собственную обработку с использованием области для получения данных с листа Excel. Следует заметить, что на начальном этапе необходимо привести данные в таблице Excel к “правильному” или однородному виду. Все данные в том или ином столбце должны быть одного типа и похожего формата.


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

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

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


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

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

     конецесли;

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

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

В третьих вариант с применением таблицы значений для получения результата.

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

В четвертых вариант с использованием строк и столбцов листа Excel.

Загрузка данных Excel в 1с
Импорт данных в Excel

Выполнена загрузка данных Excel в 1с различными способами.

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

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