Как прочитать файл Excel на сервере в 1С?

Поділитися
Вставка
  • Опубліковано 17 жов 2024
  • Как можно меня отблагодарить: pay.cloudtips....
    В данном видео мы рассмотрим чтение файла Excel средствами 1С, и разберем пример того, как прочитать файл в 1С на сервере.
    Существует несколько способов передачи файла с клиента на сервер - мы разберем использование временного хранилища и использование потока в памяти.
    Использование временного хранилища предполагает сохранение полученных двоичных данных во временный файл. Далее этот файл можно прочитать в табличный документ.
    Поток в памяти позволяет передавать файл без создания промежуточного временного файла. И для простой передачи файла с клиента на сервер 1С это будет предпочтительный вариант. Однако в случае, если мы хотим переданный файл прочитать в табличный документ, использование потока накладывает ограничение - доступны только форматы mxl и ods.
    В видео используются следующие методы:
    02:19 - ПоместитьВоВременноеХранилище
    04:49 - ТабличныйДокумент.Прочитать
    13:38 - НачатьПомещениеФайлаНаСервер
    18:14 - ДвоичныеДанные.ОткрытьПотокНаЧтение
    Добавляйте в закладки мой сайт 1c.alexcode.ru... с полезными материалами по настройке и программированию 1С
    Курс «Разработчик 1С с нуля»
    1c.alexcode.ru/
    Индивидуальное обучение 1С
    1c.alexcode.ru...
    Видео также размещено на моем Дзен-канале «1С с Леоновым»: dzen.ru/video/...

КОМЕНТАРІ • 19

  • @sazarchik2597
    @sazarchik2597 Рік тому +2

    Лучшее что я видел по этой теме , просто и эффективно

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Спасибо за душевный отзыв! 🤝

  • @НатальяИванова-ю9к1о

    Почему так мало комментариев?!)) Пересмотрела много видео про чтение файла Excel. Это очень доступно, особенно для новичка. Спасибо за видео

    • @alexcode_1c
      @alexcode_1c  2 роки тому

      Спасибо за такой позитивный отклик! Как раз и старался записать видео максимально доступно для начинающих. Но иногда и сам подглядываю)))

  • @ЕвгенийФеоктистов-т3ф

    Спасибо за интересную практическую задачу. Надо будет попробовать самому написать код, а потом сравнить с вашим.

    • @alexcode_1c
      @alexcode_1c  2 роки тому +1

      Пробуйте, экспериментируйте!)) Почти любую задачу в 1С можно решить несколькими способами.😉

  • @UrmatKasymov
    @UrmatKasymov 4 місяці тому +1

    Супер, держи подписку

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

      Поймал, благодарю :)

  • @cubatorstvo
    @cubatorstvo 2 роки тому +2

    Спасибо за адекватный код, хоть 1С и нереальное говно)

    • @alexcode_1c
      @alexcode_1c  2 роки тому +3

      1С не стоит рассматривать как ЯП общего назначения, тогда и не будет разочарования. А вот в среде энтерпрайз решений и автоамтизации бизнеса он очень даже конкурентоспособен.

  • @ButInButOut
    @ButInButOut Місяць тому +1

    Пришлось отказаться от такого способа: в файле несколько листов.

    • @alexcode_1c
      @alexcode_1c  Місяць тому +1

      при чтении файла с несколькими листами при помощи метода табличного документа Прочитать(), каждый лист будет отдельной именованной областью. В остальном все то же самое.

    • @ButInButOut
      @ButInButOut Місяць тому

      @@alexcode_1c Что значит, отдельной именованной областью? Вижу после последней строки первого листа следует первая строка второго, как узнать, что это следующий лист? Решил, что проще будет используя ОЛЕ, тем более, что придется еще и записывать файл после редактирования. В настоящее время обрабатываю файл, в csv формате, конечно, не удобно.

    • @alexcode_1c
      @alexcode_1c  Місяць тому +1

      @@ButInButOut Поищите информацию по работе с табличным документом. У таб. документа есть области, к ним можно обращаться по имени. Например, вы прочитали эксель табличным документом с именем ТабДок. Первый лист будет что-то типа ТабДок.ПолучитьОбласть("Лист1")
      и дальше с этим работаете как с отдельным табличным документом.
      потом второй лист, и т.п.
      Важно. Скрытые листы 1С читать не умеет. если нужно - сперва их надо сделать видимыми.

    • @ButInButOut
      @ButInButOut Місяць тому +1

      @@alexcode_1c спасибо, действительно, без проблем считывает нужный лист. Хорошо не начал переделывать обработку, но для записи в файл все равно придется ОЛЕ подключать? Извините за назойливость, я не программист, но простые обработки иногда пишу сам.

    • @alexcode_1c
      @alexcode_1c  Місяць тому

      если вам нужно на выходе получить новый файл excel с несколькими листами, то придется работать с com-объектом Excel, скорее всего. это уже совсем другая история :)

  • @dionis2898
    @dionis2898 Рік тому +2

    Очень познавательное видео, спасибо! Я сегодня столкнулся с задачей, когда нужно получить данные из файла exel в базу. Проблема в том, что файл там не просто голая таблица, а документ заявка на запчасти, где в начале идет шапка, потом таблица(которая может быть разной величины), и в конце подвал с итогами, суммами и ФИО. Было бы классно найти разбор похожей задачи. Как это реализовать, до сих пор бьюсь.

    • @alexcode_1c
      @alexcode_1c  Рік тому +2

      Как правило, задачи загрузки файлов со сложной структурой очень специфичны, и решаются не тривиально. Чаще всего я такие задачи решал путем перебора колонок и строк и сопоставлением с определенным текстом. Например, встретили в первой колонке слово Итого - значит таблица закончилась, дальше ищем подписи, и т.п. то же и с колонками.
      Часто ещё помогает гибкий маппиннг - когда мы в соответствие записываем номера колонок и их имя, чтобы не хардкодить. Если шапка может быть разной высоты, то иногда помогает определение начала тч по тексту - например, если в ячейке r3c1 текст "Номенклатура", значит это шапка таблицы, и допустим через одну строку начинается уже сама таб. Часть. А бывает, что можно опираться даже на цвет фона ячейки. Например, мне доводилось загружать каталог номенклатуры, где разные уровни групп были разного цвета. В общем, такие задачи сложные, но интересные. Надеюсь, мои советы хоть немного помогут вам с загрузкой.