Загрузка данных из Excel 1С 8.1

15.04.10

Интеграция - Загрузка и выгрузка в Excel

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

Рассмотрим пример.
Допустим у нас есть файл Excel. На первом листе присутствует следующая таблица данных:

Код Наименование Розничная цена
6461 Ванна Evolution 180x102/87 525
39311 Ванна Evolution PU-PLUS 180x102/87 675
11225 Ванна Magnolia 1,7х0.75 800
3567 Ванна Magnolia 1,8х0.75 700


Для импорта данных используем следующую функцию:

//Номер листа в книге Excel для получения данных
НомерЛиста         = 1;
   
//Пытаемся подключиться к Excel
Попытка
    Excel = новый COMОбъект("Excel.Application");
Исключение
    Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
    Возврат;
КонецПопытки;     
   
//Подключились удачно, открываем файл
Excel.Workbooks.Open(ИмяФайла);
   
//Открываем необходимый лист
Excel.Sheets(НомерЛиста).select();   
   
//Получим количество строк и колонок.
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
Если Версия = "8" тогда
    ФайлСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
    ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
    ФайлСтрок   = Excel.Cells(1,1).SpecialCells(11).Row;
    ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;   
Конецесли;
 
//Для установки цен необходимо создать документ "Установка цен номенклатуры"
//Заполним шапку документа, в т.ч. заполним тип цены и валюту
ТипЦеныРозничный                 = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
НоваяСтрока                      = ДокументУстановкиЦенГривна.ТипыЦен.Добавить();
НоваяСтрока.ТипЦен               = ТипЦеныРозничный;
ДокументУстановкиЦенГривна.Дата  = ТекущаяДата();
ВалютаГривна                     = Справочники.Валюты.НайтиПоКоду("980");
   
//определим по файлу в каких колонках необходимые данные
НомерКолонкиКодаТовара             = 1;
НомерКолонкиНаименованияТовара     = 2;
НомерКолонкиЦеныТовара             = 3;
   
// Выбираем данные из файла
Для а = НомерСтрокиТЧ по ФайлСтрок Цикл           
       
    //Получим данные из соответсвующих ячеек
    КодТовара             = СокрЛП(Excel.Cells(а,НомерКолонкиКодаТовара).Value);
    НаименованиеТовара    = СокрЛП(Excel.Cells(а,НомерКолонкиНаименованияТовара).Value);
    Цена                  = Число(Excel.Cells(а,НомерКолонкиЦеныТовара).Value);
       
    Товар = Справочники.Номенклатура.ПустаяСсылка();       
       
    // Ищем товар в справочнике по коду 
    Товар = Справочники.Номенклатура.НайтиПоКоду(КодТовара);
       
    // Если не нашли по коду, то ищем по наименованию
    Если Товар.Пустая() Тогда
        Товар = Справочники.Номенклатура.НайтиПоНаименованию(тНаименование, Истина);
    Конецесли;
       
    //Если не нашли создаем новый
    Если Товар.Пустая() Тогда
        Товар                      = Справочники.Номенклатура.СоздатьЭлемент();
        Товар.Код                  = КодТовара;
        Товар.Наименование         =  НаименованиеТовара;
        Товар.НаименованиеПолное   =  НаименованиеТовара;
        Товар.Записать();
    Конецесли;   
       
    //Запишем товар и цену в документ установки цен
    НоваяСтрока                     = ДокументУстановкиЦенГривна.Товары.Добавить();
    НоваяСтрока.Валюта              = ВалютаГривна;
    НоваяСтрока.Цена                = Цена;
    НоваяСтрока.Номенклатура        = Товар.Ссылка;                
    НоваяСтрока.ТипЦен              = ТипЦеныРозничный;         
Конеццикла;
 
//Если в документе есть товары записываем и проводим
Если Не(ДокументУстановкиЦенГривна.Товары.Количество() = 0) Тогда
    ДокументУстановкиЦенГривна.Записать(РежимЗаписиДокумента.Запись);
    ДокументУстановкиЦенГривна.Записать(РежимЗаписиДокумента.Проведение);
Конецесли;   
   
//Закрываем Excel
Excel.ActiveWorkbook.Close();   

См. также

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 9504 руб.

29.10.2014    210147    620    524    

439

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150703    367    375    

501

Маркетплейсный загрузчик для 12-ти маркетплейсов в "БП 3", "УТ 11", "КА 2", ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    31890    226    63    

117

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    214904    925    886    

939

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15070    79    0    

60

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101363    296    173    

312
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. artem666 29 15.04.10 19:24 Сейчас в теме
сколько раз уже поднималась тема на счет загрузки из Экселя... твой метод при больших объемах ооооооооччченььь медленный, уже нав. 100 раз говорили про ADO
2. Arabo_xv 5 19.04.10 16:18 Сейчас в теме
дайте пожалуйста ссылку где с помощью ADO загружают данные из EXCEL
3. PlatonStepan 38 21.04.10 03:14 Сейчас в теме
народ универсальные вещи корячится-делает, а у вас обычный частный случай :)...

для Arabo_xv,artem666 :
а как называется метод загрузки в ТЗ по колонкам массивом ?
4. MoneG2 27 21.04.10 05:31 Сейчас в теме
Товар = Справочники.Номенклатура.НайтиПоНаименованию(тНаименование, Истина);


>> Товар = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеТовара, Истина);
5. sss999 48 21.04.10 11:02 Сейчас в теме
главное что работает!!!а адо слово слишком страшное,никаких дел иметь с адо аж не хочется))
6. ozyab 01.07.10 14:32 Сейчас в теме
7. AlexO 135 02.07.10 18:29 Сейчас в теме
Работает?! Что работает - строка "Excel = новый COMОбъект("Excel.Application")"?
Больше похоже на учебный файл или сборную солянку.
Откуда появился НомерСтрокиТЧ в:
"Для а = НомерСтрокиТЧ по ФайлСтрок Цикл"?

Где создание документа ДокументУстановкиЦен?
(а потом еще и ТЧ ДокументУстановкиЦенГривна, я так понимаю).
8. zsrg 343 13.07.10 09:27 Сейчас в теме
ADO конечно хорошо, но проблема появляется при работе с Excel'евскими документами, сохраненными из 1С 8-ки. Дело в том, что числа с буквенным префиксом 8-ка сохраняет как число без префикса, а сам префикс хранит в описании формата вывода ячейки. На экране с префиксом, а в ячейке без префикса. При обработке через АДО мы доступ к префиксу не получаем и имеем серьезные проблемы.
Но данный пример всеравно "кривой" и не имеет универсальности. Плюс ко всему не учитывает ситуацию, когда документ состоит из большого количества узких колонок, который потом объединяются под нужный размер.
Я писал универсальную загрузку для 7-ки, которая автоматически находила табличную часть и определяла в какой колонке товар, артикул цена и т.п. А так же автоматически учитывала формат листа и т.п. Но впоследствии пришлось адаптировать под конкретные задачи.
Сделать 100% универсальную обработку практически невозможно, но попыток я не оставляю :)
9. OBEH 30.09.10 07:16 Сейчас в теме
Посмотри на ИТС. Там, действительно, универсальная вещь по загрузке. И не только из файла, типа, EXEL.
Сам только что хотел набросать обработку для загрузки. Структура присланного файла заранее не была определена. Но обработкой с ИТС за 5 минут решилось все. Просто и элегантно.
10. 6630 1 03.05.12 08:40 Сейчас в теме
спасибо большое за выложенный код, хочу разобраться с переносом из excel и с вашей помощью надеюсь у меня получится
11. пользователь 23.10.12 14:46
Сообщение было скрыто модератором.
...
12. Stanislav1993 21.10.18 07:52 Сейчас в теме
Спасибо!) Здоровья и благ!)
Оставьте свое сообщение