🔥 Горящие вакансии
Все статьи

Обработка COM-объекта на клиенте: Загрузка из Excel в 1С

Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti

Рассмотрим пример обработки COM-объекта на Клиенте на примере загрузки из файла xls.

В случаях, когда на сервере не установлен Excel или когда сервер 1С:Предприятие 64-х битный, а объем загружаемых данных небольшой, данные файла xls можно обработать на Клиенте и передать для дальнейшей обработки на Сервер. Рассмотрим на примере.

Внешняя обработка с табличной частью ТабЧасть, СотрудникСтр — строка для заполнения из xls файла на Клиенте, Сотрудник — СправочникСсылка.СотрудникиОрганизаций для заполнения из значения СотрудникСтр на Сервере. В файле xls в колонке 1 — наименования сотрудников, в колонке 2 — суммы, данные по сотрудникам начинаются с 7-й строки файла.

Обработка COM-объекта на клиенте: Загрузка из Excel в 1С

Форма обработки

Процедуры модуля формы обработки:

&НаКлиенте
Процедура ОткрытьФайл(Команда)
                ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);        
                ДиалогВыбораФайла.Заголовок = "Прочитать табличный документ из файла";
                ДиалогВыбораФайла.Фильтр    = "Лист Excel (*.xlsx)|*.xlsx|Лист Excel (*.xls)|*.xls";
                Если ДиалогВыбораФайла.Выбрать() Тогда                   
                               ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;                            
                КонецЕсли;       
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьФайл(Команда)
                ПрочитатьДокумент(ИмяФайла);
                Обработать();
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьДокумент(ИмяФайла)
                Попытка
                               Excel = ПолучитьCOMОбъект(ИмяФайла);
                               ExcelЛист = Excel.Sheets(1);
                Исключение
                               Сообщить(ОписаниеОшибки());                           
                               Возврат;                            
                КонецПопытки;
               
                Объект.ТабЧасть.Очистить(); 
                сч = 7;
                Пока НЕ ПустаяСтрока(ExcelЛист.Cells(сч, 1).Value) Цикл                        
                               //Заполнение табличной части обработки
                               НоваяСтр = Объект.ТабЧасть.Добавить();
                               НоваяСтр.СотрудникСтр = СокрЛП(ExcelЛист.Cells(сч, 1).Value);
                               НоваяСтр.Сумма = ExcelЛист.Cells(сч, 2).Value;                            
                               сч = сч + 1;
                КонецЦикла;   
                Excel.Application.Quit();             
КонецПроцедуры        

&НаСервере
Процедура Обработать()
                //заполнение значений как элементов справочников
                //получение значения Сотрудник из СотрудникСтр
КонецПроцедуры

Оставить коментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправить резюме

    Я согласен на обработку персональных данных в соответствии
    со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

    Отправить резюме

      Я согласен на обработку персональных данных в соответствии
      со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

      Pекомендовать друга

        Отправьте контактные данные вашего друга и предупредите его, что мы с ним свяжемся. Когда друг успешно отработает 3 месяца, вы получите 20 000 ₽.


        Выбрать вакансию
        • Bitrix-разработчик
        • Программист 1С
        • Консультант-аналитик 1С
        • Проекты для команды специалистов 1С
        • Проекты для специалистов 1С
        • Стажёр-программист 1С
        • Ведущий консультант Microsoft Dynamics 365 Sales
        • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
        • Консультант Microsoft Dynamics AX на зарубежные проекты
        • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
        • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
        Я согласен на обработку персональных данных в соответствии
        со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

        Pекомендовать друга

          Отправьте контактные данные вашего друга и предупредите его, что мы с ним свяжемся. Когда друг успешно отработает 3 месяца, вы получите 20 000 ₽.


          Выбрать вакансию
          • Bitrix-разработчик
          • Программист 1С
          • Консультант-аналитик 1С
          • Проекты для команды специалистов 1С
          • Проекты для специалистов 1С
          • Стажёр-программист 1С
          • Ведущий консультант Microsoft Dynamics 365 Sales
          • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
          • Консультант Microsoft Dynamics AX на зарубежные проекты
          • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
          • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
          Я согласен на обработку персональных данных в соответствии
          со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

          Спасибо!

          Мы получили ваше резюме. Менеджер свяжется с вами в течение трех дней

          Горящие вакансии