4 способа прочитать Excel в 1С

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 100

  • @ДенисПушкин-ъ7ш
    @ДенисПушкин-ъ7ш 8 місяців тому +3

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

  • @anatoliykalinin6855
    @anatoliykalinin6855 Рік тому +16

    Очень крутое изложение. Кратко, ёмко и по существу. Отдельный респект за тембр голоса, дикцию и позитив!!!

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

    Как всегда, кратко, четко по существу. Вань по братский сделай для разработчиков типовых конфигураций видео, "ОСТОРОЖНО ПОПЫТКА", а то они задобали делать ПОПЫТКА вызвают общий модуль, где выполняется еще одна попытка вызова COM объекта, собсна говоря, количество попыток в Докуметообороте 3.0 дошло до 5 штук. Либо сделай разбор собсна когда ПОПЫТКА В ПОПЫТКЕ, я так понимаю, если что-то пойдет не так, то возврат будет к первой попытки. Ну это надо в отладке просто проверить. Спасибо тебе что ты есть, ты классный.

  • @Lexa-channel-AlinaRomanovna
    @Lexa-channel-AlinaRomanovna 3 дні тому

    Спасибо за видео, очень выручило сегодня

  • @alex-pravdorub
    @alex-pravdorub 9 місяців тому +2

    Спасибо! Добрый человек! Четко, ясно, понятно, исчерпывающе.

  • @cryptoprofit1190
    @cryptoprofit1190 Рік тому +3

    Круто все разложили, сейчас многие даже опытные 1С ники всех 4х технологий не знаю, а тут все наглядно и доходчиво, спасибо за обучение, надеемся на новые уроки!

  • @alexeynelepa1090
    @alexeynelepa1090 Рік тому +4

    Кайф вообще! По работе сталкиваешься не раз с такими задачами, при выборе более универсальной и быстрой загрузки, самый полезный контент, спасибо огромное за материал!

  • @Foxy2002-s3l
    @Foxy2002-s3l Рік тому +2

    Иван больше спасибо. Я делал обработку для загрузки заказов, по первому вашему видео. Но теперь вижу 2й способ и беру его в замен первого. Пойду переписывать)))

  • @cam_180
    @cam_180 Рік тому +3

    Спасибо. Как всегда отличный ролик.

  • @АндрейСоловьев-ч2к

    Иван, спасибо! Всегда жду Ваши уроки.

  • @triviumfan9411
    @triviumfan9411 Рік тому +1

    Есть к чему прицепится, в смысле неточности, но в целом - очень грамотно и доступно. Лектор молодец.

  • @R4VENekb
    @R4VENekb Рік тому +11

    для номерСтроки = 2 по количествоСтрок

  • @mikefrygin6615
    @mikefrygin6615 Рік тому +3

    Спасибо, как и всегда все очень понятно и на таком позитиве. Великолепно!

  • @sashaperevisly7755
    @sashaperevisly7755 Рік тому +1

    Спасибо, за сравнительный обзор!

  • @rafikov_aleksandr
    @rafikov_aleksandr Рік тому +1

    Отличное видео! С замерами - прямо научный подход. Через табличные документы будет работать и на linux. Большое спасибо!

    • @1c_kz_all
      @1c_kz_all Рік тому

      Да, это важны момент. Но была ситуация когда таким способом символы некоторые не поняла 1с, а через эксел нормально. Но это скорее исключение

  • @karambaichickiz_gondurasa902
    @karambaichickiz_gondurasa902 Рік тому +1

    Как всегда шикарно!

  • @ВиссарионБалашефф

    Спасибо! Очень полезный контент.
    Для определения количества строк и колонок в 3-м способе лучше использовать:
    КоличествоКолонок = Лист.UsedRange.Columns.Count();
    КоличествоСтрок = Лист.UsedRange.Rows.Count();

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

    2 последних способов подходят только для Winows-систем.
    Сам пользуюсь уже давно 2-м способом, через построитель.

  • @ucccer
    @ucccer 6 місяців тому

    Будь счастлив, мил человек!

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

    Отличное видео Иван! Недавно решал задачу, где нужно было вытащить данные из табличной части внешнего документа exel -заявки на запчасти, с шапкой в несколько строк и различными подписями и расшифровками в подвале, пришлось помучиться с анализом содержимого загружаемых ячеек.

  • @АндрейМ-т6р
    @АндрейМ-т6р Рік тому +1

    Очень полезно! Спасибо!

  • @РоманСавинов-щ6ю

    Крутяк! Особая благодарность за замеры !

  • @asg5511
    @asg5511 Рік тому +1

    Мега полезное видео! Большое спасибо!

  • @РоманКислинский-ч9ш

    Как всегда на уровне! Красава!

  • @ТатьянаБелькова-ф7в
    @ТатьянаБелькова-ф7в 7 місяців тому

    Супер! Пушка! Всё по делу и понятно !

  • @imbagrille1688
    @imbagrille1688 Рік тому +1

    Как исправляли пропущенную кавычку в строке соединения ADO так и не показали) Спасибо за видео!

  • @Imitation_of_content
    @Imitation_of_content Рік тому +1

    Как всегда, великолепно!)

  • @ВикторКнязькин-ш5о

    Как всегда круто! Идея для следующего видео, запись данных из 1с в google-таблицы.

  • @MoriAtaee
    @MoriAtaee Рік тому +1

    Это было хорошо, и я использовал это

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

    Ваня крут как всегда!!!

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

    Просто супер! Спасибо

  • @fastAbout1s
    @fastAbout1s Рік тому +1

    Еще можно через внешние источники данных, тогда можно сразу запросы на СКД делать к данным экселя.

  • @АртемКузнецов-ч9г
    @АртемКузнецов-ч9г 9 місяців тому

    Хотелось бы такой разбор для файлов эксель где нужна не только ТЧ, а и реквизиты.

  • @Foxy2002-s3l
    @Foxy2002-s3l Рік тому +2

    Самое главное не забыть что, табДок.Прочитать(Путь_КФайлуНаСервере, СпособЧтенияЗначенийТабличногоДокумента.Текст); обязательно укажите способ чтения данных, если вам данные нужны как строка

  • @ПетрВикторовичДорожкин

    Огонь.🙃🙃🙃

  • @vallak1981
    @vallak1981 Рік тому +1

    Для конфигураций на БСП неплохо научиться применять подсистему "Загрузка данных из файлов". Сам один раз разобрался, теперь другие методы и не применяю.

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

      у меня никак руки не дойдут до бсп, немного смущает,что сами библиотеки могут меняться, не бывает так,что меняется бсп и нужно менять код? если есть ссылки на материалы про бсп, которые понрачились при разборех темы, может, поделитесь?)

    • @ЕвгенийМедведев-б8я
      @ЕвгенийМедведев-б8я Рік тому

      Спасибо! Конечно все зависит от задачи.

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

    Иван! Целую вас в мозг!

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

    Круто. Спасибо.

  • @Семёныч-у4с
    @Семёныч-у4с 7 місяців тому

    спасибо!

  • @olegkim615
    @olegkim615 Рік тому +1

    И еще при OLE - не все методы Excel доступны из 1С ... , ADO не пробовал с EXCEL, но сталкивался - не установлен драйвер ODBC - для других приложений ... а так надо переходить наверное на OpenOffice наверное .. ? Ввиду санкций? Похоже самый популярный метод - через Построитель запрос ?

  • @SkiPastor
    @SkiPastor Рік тому +1

    Чтобы пропустить первую строку, надо ставить Если вместо банального Для НомерСтроки=2 ??? Вообще то оператор Если в 1С весьма длительный и при чтении больших файлов из-за такой пустышки будут нехилые тормоза.

    • @ironskills-1c
      @ironskills-1c  11 місяців тому

      Спасибо за дополнение, сделаем замеры на большом файле, чтобы оценить влияние)

  • @МашаЕфимова-щ9ф

    Спасибо) а можно видео про программную установку отбора на формах?)

  • @PTolkachev
    @PTolkachev Рік тому +5

    1. Чтобы пользователя не пугать системной информацией (номер строки, текст кода этой строки, стек вызовов и т.п.) в сообщениях об ошибке лучше вместо "ОписаниеОшибки()" использовать "КраткоеПредставлениеОшибки(ИнформацияОбОшибке())".
    2. Вопрос по третьему способу. А почему ошибка запуска Excel обрабатывается "мягко", а открытие файла нет? Другими словами, почему "Книга = Эксел.Workbooks.Open(ПутьКФайла)" не заключено в "Попытка...Исключение"? А вообще, тут более глобальный вопрос. Зачем, в принципе, нужна "Попытка...Исключение"? Какая разница, увидит пользователь ошибку в диалоговом окне или окне сообщений с припиской вначале: "Не удалось прочитать файл по причине...". При этом, во втором случае получит кучу непонятной информации, возвращаемой функцией "ОписаниеОшибки()", вместо краткого представления ошибки. Хотя, открытие файла, всё же, хорошо бы делать через попытку и в случае исключения выполнить Эксель.Quit(). Иначе в процессах зависнет процесс Excel, в чём можно убедиться, открыв диспетчер задач.
    3. Ну и в четвёртом способе при ошибке создания выборки необходимо закрывать соединение, иначе, если, по какой-то причине, выборка не создастся, то соединение останется открытым.

  • @КрасивыеМыслииСлова
    @КрасивыеМыслииСлова 10 місяців тому

    Добрый день.
    Подскажите, пожалуйста, а при чтение Экселя из Линукса планируется видео?

  • @SmartEnot
    @SmartEnot 2 місяці тому

    Иван, скажите пожалуйста, для обычных форм - методом ПостроительЗапросов можно загрузить файл XLS в ТЗ, если нет, можете подсказать вариант решения? Заранее благодарен!

  • @tikeyl7563
    @tikeyl7563 Рік тому +1

    Подскажите какой шрифт у Ивана стоит, пожалуйста.

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

    очень полезное видео, описаны все основные варианты, но есть нюансы. Часто приходится читать и записывать данные 1С-Эксель и обратно. COM-соединение не всегда можно использовать, и OLE тоже, так что всегда пользовалась методом 1, с полгода назад в очередной задаче воспользовалась для реализации методом через построитель. И вот с метод с построителем очень прям удобный в плане кода, не нужно читать каждую ячейку (у меня по 30 колонок в таблице и порядка 50000строк), на практике столкнулась с косяками при чтении и записи. Например, с чтением возникла проблема типизации колонок. То есть, когда НЕ заполнена ячейка тип значения строка, а если заполнена, то число (или наоборот, точно не помню, были нюансы). Как этого избежать? При записи файла экселя тоже столкнулась с такими трудностями, что если текст ячейки не помещается в ячейку, то при записи он заносится в соседнюю ячейку справа от записываемой, опять же файл я получаю от подрядчика, они себе вообще не дают труд типизировать данные, передают тип Общий. Видимо, я что-то упускаю. Первый метод работает вполне корректно, но из-за описанных выше проблем, с построителем мне не понравилось на данный момент, буду разбираться, возможно, придется использовать другой метод, пока не знаю, какой лучше. В любом случае спасибо за разбор актуальной всегда темы.
    Если есть совет, подскажите, пожалуйста, как избежать проблем при преобразовании значений при чтении и записи. Большое спасибо за Вашу работу!

    • @1c_kz_all
      @1c_kz_all Рік тому

      Ещё столкнулся с тем, что некорректно некоторые символы сели в 1С через построитель, а через эксел нормально...

  • @EvilBloodEye
    @EvilBloodEye Рік тому +1

    Еще можно добавить 5-й способ как развитие 4-го - через внешние источники данных.

    • @ironskills-1c
      @ironskills-1c  Рік тому

      Спасибо за дополнение :)

  • @filaretbusoni3135
    @filaretbusoni3135 Рік тому +1

    Во втором способе если не писать Выгрузить(), Загрузить(), а обойти результат в выборке и заполнить строки, то скорость будет еще быстрее.

    • @ironskills-1c
      @ironskills-1c  Рік тому

      Спасибо за комментарий)

  • @АлексЧерный-у6п
    @АлексЧерный-у6п 11 місяців тому

    Добрый день!
    Можете подсказать, какой из способов применим для баз находящихся на Линуксе?

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

    Спасибо за урок! А как заставить 1С создавать документы поступления или реализации по файлу эксель ? читая его заполненные строки. Хочется научиться парсить эксель файлы в 1С.

    • @Shaluniya
      @Shaluniya Рік тому +1

      так вы читаете данные в ТЗ или ещё куда и потом создавайте средствами 1С, как обычно создаете документы, с этим нет проблем

  • @justhorrorgames7900
    @justhorrorgames7900 7 місяців тому

    Добрый день, а можно ли грузить данные ссылочного типа из Excel в документ напрямую?

  • @Шахло-ц5э
    @Шахло-ц5э Рік тому +1

    💥💥

  • @AlexeySimf
    @AlexeySimf Рік тому +1

    Стоит отметить, что Прочитать (в табличный документ) не работает с файлами Excel старых версий, например, если файл выгружен из 1с 7.7, раз уж мы в контексте 1с.

  • @ЕвгенийМедведев-б8я

    Не для всех табличных документов работает способ с построителем запросов или построителем отчетов. Если первая строка таблицы иксель пустая, то будет ошибка.

    • @ironskills-1c
      @ironskills-1c  Рік тому +1

      Спасибо за дополнение)

    • @Dendemixture
      @Dendemixture 8 місяців тому

      спасибо. а то не мог разобраться. достаточно неочевидный момент

  • @МашаЕфимова-щ9ф
    @МашаЕфимова-щ9ф Рік тому +1

    Не увидела ссылку на сайт с методами экселя🤔

  • @gaia3478
    @gaia3478 6 місяців тому

    а как во втором способе перейти на другую страницу в файле?

  • @АнтонДолгих-ц3г
    @АнтонДолгих-ц3г Рік тому +2

    Огромное Вам спасибо, Иван за то что делитесь знаниями, да ещё с такой крутой подачей! Лайк сразу поставил(еще до просмотра!), потому что не сомневался в качестве, ну а комментарий-это мотивация для продолжения и развития канала. Я совсем недавно в этой сфере, но контента, который был бы более качественный, чем Ваш, я пока не встретил. Единственный // комент
    Почаще пилите ролики!!!! 😉

    • @ironskills-1c
      @ironskills-1c  Рік тому

      Спасибо большое за поддержку)

  • @WhoAmI-sx6fb
    @WhoAmI-sx6fb Рік тому

    В 1 и 2 примерах как можно по странично получить эксель? 1 и 2 примераз там все в 1 документ а если 2 и более страниц и разные колонки?

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

    Ваня, скажи где ты работаешь, я кину свою работу зам. начальника управления и пойду к тебе в подмастерье!😊

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

    Для полного счастья не хватает закрытия ком объектов в случае ошибки

  • @__wuzzy__
    @__wuzzy__ 22 дні тому

    ошибка метода контекста прочитать, нет доступа к файлу, хз почему

  • @АнастасияЕрмакова-в4з
    @АнастасияЕрмакова-в4з 9 місяців тому

    А что делать если столбцы не совпадают по названиям(это я про ПостроительЗапроса)? Как обойти всё аккуратно?

    • @ironskills-1c
      @ironskills-1c  8 місяців тому

      Можно к столбцам по индексам обращаться) А в коде можно хранить соответствие ИмяПоля - Индекс колонки)

  • @stogramm6290
    @stogramm6290 Рік тому +1

    А вот что делать, если в файле несколько страниц, и нужно обратиться к последней, например...

    • @ironskills-1c
      @ironskills-1c  11 місяців тому +1

      Покажем в отдельном ролике)

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

    А если в экселе куча формул и надо их сохранить? Я пока 3им способом пользуюсь так как переживаю что какие то формулы могу затереться при всех преобразованиях.

    • @ironskills-1c
      @ironskills-1c  Рік тому

      При чтении формулы мы не потеряем) Разве что при записи.

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

    На линухах не работает. 1С:Предприятие 8.3 (8.3.23.1865) Версия для разработчиков. Linux Mint 21.2 Cinnamon

  • @daniilmatveev
    @daniilmatveev 11 місяців тому

    Про табуляции, которые делают код более "красивым".
    Полагаю не раз приходилось искать по большому тексту место инициализации переменной или место присвоения значения (как в способе №1).
    Логично было бы искать по "ИмяПеременной =".
    В случае с ручной табуляцией это просто невозможно.
    А еще если программист по тексту сделает замену имени переменной каким-либо образом и поленится выровнять опять вручную эти красивости, то получится форменный беспорядок.
    Поэтому сделать картинку на обучающем видео это одно, а ручные красивости в рабочем коде это совсем другое.
    Поэтому же приходится нещадно стирать табуляции (про себя тихо матерясь) в совсем некрасивом коде.

  • @krutoyinfo
    @krutoyinfo 10 місяців тому

    А где парсинг самого файла???

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

    Жаль, что 1С может просто зависнуть при попытке открыть некоторые файлы Excel табличным документом.

  • @Онлайнкурсы-л4щ

    Не запускается:
    Ошибка инициализации модуля: ВнешняяОбработка.IRONSKILLS_КакПрочитатьExcel.Форма.Форма.Форма
    по причине:
    {ВнешняяОбработка.IRONSKILLS_КакПрочитатьExcel.Форма.Форма.Форма(16,1)}: Ожидается определение процедуры/функции
    >ПараметрыДиалогаПомещенияФайлов;
    {ВнешняяОбработка.IRONSKILLS_КакПрочитатьExcel.Форма.Форма.Форма(22,23)}: Ожидается символ ';'
    ОписаниеФайла = Ждать

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

      Проверьте версию 1С Предприятия и установленный режим совместимости. Асинхронные методы стали доступны начиная с версии 8.3.18.

    • @Онлайнкурсы-л4щ
      @Онлайнкурсы-л4щ Рік тому

      @@AntonPahomov Спасибо. У меня действительно 8.3.17.

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

    В импортозамещеном варианте уже только через ТабДок)))

  • @АлексейЛ-й1ш
    @АлексейЛ-й1ш Рік тому +6

    Если есть возможность, то не надо сканировать эксель построчно. Это попа. Загрузить весь лист в ТЗ и потом её сканировать в сто раз быстрее

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

    Эх, а как же прямое чтение xml из xlsx? 😂

  • @ПеЛьМеНь-л1м
    @ПеЛьМеНь-л1м 5 місяців тому +1

    Зачем добавлять лишние строки "Если НомерСтроки=1 Тогда Продолжить КонецЕсли;" если можно просто начинать считывать со строки = 2 ???? Зачем лишние строки кода???

    • @ironskills-1c
      @ironskills-1c  4 місяці тому

      Спасибо за дополнение) Любую задачу можно решить несколькими способами, действительно тут можно было короче)

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

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

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

    Супер, большое спасибо. Очень полезно.

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

    Запустить счётчик от 1 , а потом проверять не равен ли счётчик 1? Л - логика.

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

      Это что бы было понятней, наверное, а так да, сразу с 2 счетчик..🙃