Еще один способ загрузки из Екселя

07.04.10

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

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

 В екселе есть возможность выбрать только выделенные строки: Windows.Application.Selection.Value

таким образом требовалось выделить нужные строки в ексели, сохранить фаил и загрузить его в 1с примерно такой обработкой:

Если ПолеВвода="" Тогда
    Предупреждение("Не выбран файл загрузки!");
       возврат;
КонецЕсли;
 ФС = Новый Файл(ПолеВвода);
 Если ФС.Существует()=Истина Тогда
    Попытка
         XLSОбъектОсновной = Новый COMОбъект("Excel.Application");
    Исключение
       Предупреждение("Невозможно загрузить MS EXCEL !!!" + Символы.ПС + ОписаниеОшибки(), 10, "Ошибка");
       Возврат;
   КонецПопытки;
   
  XLSОбъектКниги = XLSОбъектОсновной.WorkBooks;
  
  Попытка
       XLSОбъект = XLSОбъектКниги.Open(ПолеВвода);
  Исключение
       Предупреждение("Невозможно открыть файл " + ПолеВвода + " !!!" + Символы.ПС + ОписаниеОшибки(), 10, "Ошибка");
       XLSОбъект.Application.Quit();
       Возврат;
  КонецПопытки;
  
  ExcellОткрыт=истина;
  XLSОбъект.Application.Caption = "Открыто из 1С";
  Лист = XLSОбъект.ActiveSheet;
  МассивЕкселя = XLSОбъект.Windows.Application.Selection.Value;
  Для СтрокаСДанными = 1  по МассивЕкселя.GetLength(1) цикл
   ОбработкаПрерыванияПользователя();
   Состояние("Обрабатывается строка № "+СтрокаСДанными);
   Если не ПустаяСтрока(МассивЕкселя.GetValue(2,СтрокаСДанными))тогда
    НоваяСтрока=ТабличнаяЧастьОС.Добавить();
    НоваяСтрока.Номер   = МассивЕкселя.GetValue(1,СтрокаСДанными);
    .............................................

    КонецЕсли;
 КонецЦикла;
     XLSОбъект.Application.Quit();
     ExcellОткрыт=Ложь;
     Предупреждение("Получение данных успешно завершено!");
 Иначе
     Возврат;
 КонецЕсли; 

 

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

5490 руб.

12.08.2021    45985    583    71    

219

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

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

12444 руб.

29.10.2014    232728    750    534    

498

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

Загружает данные из Акта приемки товара от ООО «Вайлдберриз», полученный из личного кабинета в формате *.xlsx или API в документ "Реализация (акты, накладные, УПД)" для конфигурации: Бухгалтерия предприятия, редакция 3.0, в документ "Реализация товаров и услуг" для Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP 2 Управление предприятием и в документ "Расходная накладная" для Управление нашей фирмой 3.0; Розница 3.0

6100 руб.

24.01.2021    24923    122    0    

63

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

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

6100 руб.

01.03.2021    12531    71    0    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artem666 29 25.03.10 21:03 Сейчас в теме
Я открою тебе секрет, через ADO можно делать запрос по определенным ячейкам.
2. Vit aka proger 107 26.03.10 07:29 Сейчас в теме
artem666, а как ты определишь, какие ячейки нужны пользователю в каждом документе?
или ты заставишь их редактировать екселевский документ по нужному тебе шаблону?
3. gaglo 26.03.10 11:19 Сейчас в теме
... а почему бы не удалить ненужные строки в ексели, сохранить файл с новым именем и потом загрузить в 1С целиком?
4. Vit aka proger 107 26.03.10 12:41 Сейчас в теме
gaglo, обычно так и делают, но у меня была особая ситуация: были очень большие екселевские документы, на их основе создавалось много 1с документов, строки которые шли в отдельный 1с документ, как правило шли подряд, друг за другом, но были исключения.
Конечно, я не спорю, можно было создавать из 1 екселя десяток других, но это более трудоемкая работа, чем выделить нужные строки.
5. Vit aka proger 107 26.03.10 13:15 Сейчас в теме
я не утверждаю, что изложенный мной способ лучше стандартного
Для СтрокаСДанными=5 по Лист.Cells(1,1).SpecialCells(11).Row цикл,
мой способ немного отличается и кому-то будет полезен, я думаю.
6. gaglo 29.03.10 09:29 Сейчас в теме
(5) С трудом, но понял. Автор считает стандартным способом цикл получения по одному значению ячейки за одно обращение к COM-объекту. Для меня же давно стало стандартным способом получение COMSafeArray (личная благодарность от меня за это астральному духу по имени Шепот теней ;-]), только я пишу XXX.UsedRange.Value и получаю все значения с листа; а автор довел до меня, что можно написать XXX.Selection.Value, и получить только выделенные! Уговорил.
8. WellMaster 106 31.03.10 09:20 Сейчас в теме
9. пользователь 31.03.10 09:31
Сообщение было скрыто модератором.
...
10. gerxxa 83 07.04.10 07:31 Сейчас в теме
текст только бы раскрасить, было бы читаемей
11. Vit aka proger 107 07.04.10 10:12 Сейчас в теме
(10) попытался, подскажите кто знает, как раскрасить текст не вручную
Для отправки сообщения требуется регистрация/авторизация