5. Как прочитать файл EXCEL в 1С

Поділитися
Вставка
  • Опубліковано 4 жов 2024
  • В этом видео рассмотрим как прочитать файл Excel в 1С.
    Задача по загрузке Excel в 1С встречается очень часто. После этого видео Вы без труда сможете сделать обработку по загрузке Excel в 1С.
    #уроки1С#excelв1c#ironskills#эксель1с
    🔴Записаться на курс "Работа с файлами в 1С":
    ironskills.by/...

КОМЕНТАРІ • 85

  • @evgunrururu4150
    @evgunrururu4150 3 роки тому +16

    Дай бог автору здоровья

  • @A.M.2014
    @A.M.2014 11 місяців тому

    Супер темп! Супер голос! Супер изложение! Спасибо!

  • @Александр-в3б1у
    @Александр-в3б1у Рік тому +3

    Спасибо! Прекрасно работает. Сначала с расширением немного ошибся в коде, пришлось понервничать, но потом успокоился, "випил чашечку кофе", нашел ошибку.

  • @Туська-н8е
    @Туська-н8е 2 роки тому +2

    При реализации столкнулась с тем, что в качестве параметра метода Прочитать нужно передавать имя временного файла xls, полученного на стороне сервера, иначе можно получить ошибку чтения файла.
    Спасибо за такие понятные уроки, возникла задача перехода на УФ, и Ваш канал очень актуален) Жду новых видосов)

    • @Anton-ni8un
      @Anton-ni8un 2 роки тому +1

      Не обязательно xls, должно быть любое расширение из поддерживаемых файлов.

  • @ExcelStore
    @ExcelStore 4 роки тому +1

    Спасибо за видео!

  • @igorzabelkin5229
    @igorzabelkin5229 4 роки тому +1

    Спасибо за видео, очень помогло

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

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

  • @никитататарников-ы9к

    Здравствуйте , а что делать если на компьютере нет установленного exel? Данная обработка прочтет файл?

  • @Ahir100
    @Ahir100 3 роки тому +1

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

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

    Подскажите а есть ли разница в чтении XLS и XLSX - старый новый форматы Excel?
    Так же еще интересно а как в Excel файле XLS можно прочитать например вторую или последующие вкладки, ведь в этом файле может быть несколько вкладок

  • @АртемЧеркашин-щ9ж

    Здравствуйте! Большое спасибо за ваш труд! Подскажите пожалуйста, как устроен реквизит "путь к файлу"? Как к реквизиту привязать диалог выбора?) Заранее благодарю)

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

      Здравствуйте! Реквизит ПутьКФайлу имеет тип "Строка". На форме отображается с помощью элемента вида "Поле ввода". У элемента формы установлен флаг "Кнопка выбора", и создан обработчик события НачалоВыбора, которое возникает при нажатии на кнопку выбора) Для того чтобы показать диалог выбора файла используется объект встроенного языка ДиалогВыбораФайла. Кстати, про диалоги у нас есть материал на канале: ua-cam.com/video/t1Uiv9FQyyo/v-deo.html

  • @betmobile
    @betmobile 3 роки тому

    Каждый раз убеждаюсь, что многое нужно просто запоминать! Метод ПолучитьОбласть используется, например, при создании печатной формы. И эта область заполняется значениями из документа. А тут нужно из табличного документа прочитать значение. Поэтому используется свойство ТекущаяОбласть.Текст. Если конечно я правильно поняла....

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

    Добрый день! Вы можете показать как загрузить из Excel таблицу с иерархией на форму в Дерево Значений в документе (и чтобы данные документа сохранялись)? Таблица в файле содержит колонки: [Номер строки], [Номер строки родителя], [Наименование], [Количество]?

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

    Тут ниже "дедушка Повидло" спрашивал зачем промежуточная процедура на клиенте ПрочитатьФайл_XLS ему ответили, но я думаю он иное имел ввиду, поэтому присоединяюсь к его вопросу. Я думаю почему сразу из Процедуры ПрочитатьФайл(Команда) перед которой стоит &НаКлиенте нельзя сразу вызвать процедуру &НаСервере ПрочитатьФайл_XLS_НаСервере()

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

      Отвечаю сам себе)) Помотал по ниже нашёл ответ)

  • @ДедушкаПовидло-к1я
    @ДедушкаПовидло-к1я 3 роки тому +5

    Подскажите, почему в 02:20 нельзя сразу из процедуры ПрочитатьФайл() вызвать процедуру ПрочитатьФайлXLSНаСервере? Для чего нужна промежуточная процедура ПрочитатьФайлXLS?

    • @ОгырМудыс
      @ОгырМудыс 2 роки тому

      Метод Табличного документа прочитать не доступен на клиенте

  • @ЕвгенийБережнов-ч3ю

    Прекрасный курс, но вы не рассмотрели создание обработчика для команды Записать данные.

  • @OskemenEV
    @OskemenEV 3 роки тому

    По Вашим видео дорабатываю рабочую базу бухгалтера. Расскажите как прописать процедуру записи в номенклатуру, все работает все прочитывает, хотелось бы еще узнать как зделать что бы и записывались все данные в номенклатуру.

  • @РавшанМамажанов-з7ж

    а если несколько страниц, как задать номер страницы ?

  • @SmartEnot
    @SmartEnot 24 дні тому

    Как быстро писать процедура из шаблона?

  • @AlekseiAstahov
    @AlekseiAstahov 3 роки тому +1

    Для чтения этого формата существует несколько разных способов. А хотя бы просто названия, каких? У вас в реквизитах формы Объект с плюсом, а у меня реквизиты создаются рядом. Плюса нет.

    • @ironskills-1c
      @ironskills-1c  3 роки тому +2

      Алексей, здравствуйте) Наличие плюса рядом с реквизитом "Объект" зависит от типа этого реквизита и наличия у него собственных свойств, т.е. если, например, это ДокументОбъект.СчетНаОплату, то плюс будет, а если, к примеру, ОбработкаОбъект.ЗагрузкаДанных и у обработки нет ни одного реквизита и нет табличной части - плюса не будет)
      Про другие способы загрузки из Excel будем разбирать ещё на канале)

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

    Здравствуйте, делал все по вашим урокам, только внешнюю обработку и решил протестить на вэбклиенте, возникает ошибка "Конструктор не обнаружен"

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

      Да, в веб-клиенте есть особенности по работе с файлами, которые не раскрыты в этом видео... Сделаем дополнение)

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

    Здравствуйте! Я пока только учусь....Подскажите, пожалуйста, в данном видео используется процедура ПоместитьВоВременноеХранилище файла в виде двоичных данных. А как при таком способе можно передать информацию о расширении файла (xls или xlsx) чтобы в дальнейшем на сервере можно было получить оба варианта? У Вас в этом же плейлисте есть другое видео, где информация о расширении файла передается, но там уже метод ПоместитьФайлНаСерверАсинх...получается, используя процедуру ПоместитьВоВременноеХранилище такую вариантность расширений не предусмотреть?

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

    Не удалось прочитать указанный файл по причине: {ВнешняяОбработка.ЗакрузкаСправочникаТоваровИзXLS.Форма.Форма.Форма(40)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\dobre\AppData\Local\Temp\v8_8CCE_20.xls'. Доступ к файлу не может быть получен.
    Как это поправить?

    • @ironskills-1c
      @ironskills-1c  2 роки тому

      Возможно файл открыт во время выполнения кода, нужно его закрыть и повторить)

  • @sta.7931
    @sta.7931 2 роки тому +1

    Подскажите пожалуйста, какой видеоролик является продолжением курса? Записать прочитанные данные в Базу

    • @ironskills-1c
      @ironskills-1c  2 роки тому +1

      На канале такого ролика пока что нет(

  • @АлександрГалимзянов-р9ц

    Здравствуйте, все сделал как вы объяснили. Ошибок нет, все работает. Но данные из Ексель не заполняются. Нажимаю кнопку прочитать, и ничего не происходит. Хотя в текущих вызовах по нужному времени цифра какая то пишется Отправлено 1580 Принято 667199. Не пойму в чем проблема

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

      Нужно смотреть код, так сложно сказать, можете через этот сервис фрагментом кода поделиться: paste1c.ru/

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

    А если содержимое хранится в ячейке A2 как правильно будет записать?

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

      А я разобрался , стиль ссылок в экселе забыл поставить)

  • @lykanas01
    @lykanas01 3 роки тому +1

    Из-за чего система может выдавать ошибку "ПрочитатьФайл_XLS_НаСервере"?

    • @ironskills-1c
      @ironskills-1c  3 роки тому

      Напишите, пожалуйста, полный текст ошибки

  • @NOBODY-kq5fy
    @NOBODY-kq5fy 3 роки тому +1

    Подскажите пожалуйста, почему может выдавать такую ошибку? Делал все один в один как в ролике
    Не найден экспортируемый метод: ПослеВыбораФайла

    • @ironskills-1c
      @ironskills-1c  3 роки тому

      Скорее всего для процедуры ПослеВыбораФайла не указали ключевое слово Экспорт)

  • @KaI7KaH
    @KaI7KaH 3 роки тому +1

    Команды формы Обработать Выбрать файл и Прочитать пустые... При нажатии на кнопку ничего не меняется.. Хмммм

    • @ironskills-1c
      @ironskills-1c  3 роки тому

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

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

    Как читать дату? В 1с тип данных - дата. При загрузке из файла данные не заполняются.

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

      Нужно преобразовать строку вида "dd.mm.yyyy" в строку вида "yyyymmdd", и уже эту строку можно преобразовать к дате, с помощью функции Дата().

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

      @@ironskills-1c Спасибо!

  • @Алексей-ж2с2ч
    @Алексей-ж2с2ч 3 роки тому +1

    На 1:46
    ИначеЕсли Объект. ФорматФайла = ‘’’’
    Эту часть кода = ‘’’’ как так быстро написали?

    • @ironskills-1c
      @ironskills-1c  3 роки тому

      Алексей, это скорее всего чудеса монтажа :)

  • @NonStopPlayChannel
    @NonStopPlayChannel 3 роки тому +1

    Спасибо за видео. НО есть вопрос. Все делаю, как и ты, но только во внешней обработке. И после нажатия на кнопку получаю следующую ошибку. Не удалось прочитать указанный файл по причине: {ВнешняяОбработка.ЗакрузкаСправочникаТоваровИзXLS.Форма.Форма.Форма(40)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\dobre\AppData\Local\Temp\v8_8CCE_20.xls'. Доступ к файлу не может быть получен.
    Как это поправить?

    • @NonStopPlayChannel
      @NonStopPlayChannel 3 роки тому +1

      Вопрос отпал, надо было полностью закрыть файл и пересохранить в xls. Перезагрузка компа помогла

    • @ironskills-1c
      @ironskills-1c  3 роки тому +1

      Отлично, что сами смогли разобраться в проблеме) И спасибо что написали, как решили проблему!)

    • @A.M.2014
      @A.M.2014 11 місяців тому

      Такая же была ошибка. Оказывается адрес ячейки в эксель указала в русской раскладке С, но понятно, что надо в англ. Исправила, все сработало

  • @нрп-ш8х
    @нрп-ш8х 3 роки тому +1

    Здравствуйте, подскажите как получить Дату? У меня в excel одна из колонок формате даты. Когда запускаю обработку все колонки заполняются, кроме этой

    • @нрп-ш8х
      @нрп-ш8х 3 роки тому

      Если вместо "текст" ставлю "значение", выдаёт ошибку "поле объекта недоступно для чтения(значение)"

    • @ironskills-1c
      @ironskills-1c  3 роки тому

      @@нрп-ш8х Здравствуйте! Попробуйте получить дату сначала строкой, например, "28.05.2021", а уже из этой строки можно получить дату, выделив день, месяц и год и воспользовавшись функцией Дата(,,)

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

    Добрый день, все сделал как в уроке, но не могу понять почему не может прочитать ячейку , выдает ошибку:
    Ошибка при вызове метода контекста (ПолучитьОбласть)
    {Обработка.ЗгрузкаДанныхИзФайла.Форма.Форма.Форма(80)}: СтрокаДанных.Инвойс = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки,"ЧГ=0")+ "С" + 1).ТекущаяОбласть.Текст;
    {Обработка.ЗгрузкаДанныхИзФайла.Форма.Форма.Форма(138)}: ПрочитатьФайлНаСервере();
    по причине:
    Область не найдена: R2С1
    Область не найдена: R2С1
    Файл уже привел к формату 2003 года, но не помогает, не может прочитать, если не ставить параметры (ПолучитьОблать), загружает 1 ячейку во все колонки.

    • @ironskills-1c
      @ironskills-1c  2 роки тому

      Проверьте, что в обрабатываемом файле есть 2-я строка и 1-я колонка)

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

      @@ironskills-1c та же проблема, все заполнено, но не работает почему - то

  • @panalike
    @panalike 3 роки тому +1

    Зачем тогда создавать процедуру на клиенте? Почему бы сразу не вызвать на сервере?

    • @ironskills-1c
      @ironskills-1c  3 роки тому +3

      Это ошибка, введенная в учебный процесс намеренно, чтобы когда человек, который столкнется с ней в реальной практике, понимал что нужно делать))

  • @ДмитрийКукушкин-ы7ы

    Не удалось прочитать указанный файл по причине: {Обработка.ЗагрузкаДанныхИзФайла.Форма.Форма.Форма(45)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\dkukushkin\Desktop\База \Кол11мая2022 .xls'. Формат файла не поддерживается. Ребят как исправить?

    • @ironskills-1c
      @ironskills-1c  2 роки тому

      Возможно файл открыт во время выполнения кода, нужно его закрыть и повторить)

    • @КВН-и6щ
      @КВН-и6щ 11 місяців тому

      @@ironskills-1c Такая же проблема, но файл закрыт

  • @АлександрГончаров-в9г2ъ

    Доброго времени суток!
    Вроде бы делал по аналогии с видео, так же для клиент-серверного варианта временное хранилище использовал. Все хорошо, файл читается, но у меня есть поле в котором появляется разделитель. Пробовал и через Формат пробел убирать и через СтрЗаменить(Значение," ",""). Но пробел не уходит и в итоге вместо строки с 6 символами (123456) получается 7 символов ("123 456"). Подскажите пожалуйста, как это поправить? На примере у Вас УПП отлично заполняется без пробелов.

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

      Здравствуйте!) Скорее всего в строке содержится неразрывный пробел, удалить его из строки можно так:
      Результат = СтрЗаменить(ИсходнаяСтрока, Символы.НПП, "");

  • @PTolkachev
    @PTolkachev 3 роки тому +3

    ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1). Текст
    Короче и не нужно ни каких форматов строк.

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

    можете подсказать , при выборе файла , выдает ошибку Поле объекта не обнаружено "(ПутьКФайлу)" , в чем проблема , не могу понять

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

      Добрый день, Денис! А покажите фрагмент кода, пожалуйста

  • @ДанилМиронычев-ф3д

    Почему то у меня возникает ошибка : Поле объекта не обнаружено (ДанныеФайла)

    • @ironskills-1c
      @ironskills-1c  2 роки тому

      Данил, воспользуйтесь отладчиком - нужно поставить точку останова на строке, в которой возикает ошибка и вычислить значение переменной, имя которой указано перед ".ДанныеФайла"

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

    {Обработка.ЗагрузкаДанных.Форма.Форма.Форма(35,1)}: Неопознанный оператор
    >&НаКлиенте (Проверка: Тонкий клиент)
    {Обработка.ЗагрузкаДанных.Форма.Форма.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Тонкий клиент)

  • @ДианаЛукьянова-ь1л

    А как прочитать сразу несколько файлов Excel?

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

      С помощью метода НайтиФайлы() можно получить все файлы в каталоге с нужным расширением (все файлы Excel), а затем каждый файл прочитать)

  • @МаксимКудрен
    @МаксимКудрен Рік тому

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

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

      Посмотрите вот тут пример: infostart.ru/1c/articles/1760327/

  • @KaI7KaH
    @KaI7KaH 3 роки тому +1

    Доброго дня, делаю по вашим видео, но только во внешней обработке.
    Есть Вопрос: у вас ячейки в excel имеют формат R1C2, у меня просто A1 либо B4
    Как прописать чтения ячейки, (7:44) для моего типа ячейки?

    • @ЕгорЛеоненко-ъ5э
      @ЕгорЛеоненко-ъ5э 3 роки тому +3

      Добрый вечер. Можете заменить стиль ссылок в Экселе в настройках.

    • @ОгырМудыс
      @ОгырМудыс 2 роки тому

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

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

    *3:53** - Крайне плохая практика обучения, т.к. нужно сперва передать данные на сервер, а затем их прочитать.*
    _Подобным действием, вы лишь запутаете "новобранцев"._

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

      Да, материал старый, согласен, что можно было объяснить лучше, но мы стараемся расти в этом плане ;)

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

      @@ironskills-1c *, раз стараетесь, то молодцы.*
      _Просто я уже не раз встречал "жертв" подобных уроков, а когда им говоришь, что это не правильно, то они воспринимают замечания "в штыки"._
      *Зачем делать заведомо не верные действия, а затем объяснять что это не правильно.*
      _Крайне не верный подход. Вам же в школе не говорили, что 2+2 это 5, а потом говорили о том, что на самом деле, это 4._

  • @_A-M-A-D-E-U-S_
    @_A-M-A-D-E-U-S_ Рік тому +1

    Ну и смысл в этом видео? Большинство баз работают на клиент-сереверной архитектуре. А принцип загрузки данных из электронной таблицы в табдок уже только ленивый не расписал.

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

      В видео один из способов чтения файла Excel, в другом видео есть пример чтения файла на сервере)

  • @lusjaK
    @lusjaK 3 роки тому

    Не понимаю почему пишется ошибка {Обработка.ЗагрузкаДанных.Форма.Форма.Форма(54,88)}: Переменная не определена (НомерСтроки)
    СтрокаДанных.Наименование = ТабДок.ПолучитьОбласть("R" + Формат(>НомерСтроки, "ЧГ=0") + "C" + 2).ТекущаяОбласть.Текст; (Проверка: Сервер)
    {Обработка.ЗагрузкаДанных.Форма.Форма.Форма(56,88)}: Переменная не определена (НомерСтроки)
    СтрокаДанных.ПродолжительностьЭкскурсии = ТабДок.ПолучитьОбласть("R" + Формат(

    • @NonStopPlayChannel
      @NonStopPlayChannel 3 роки тому +1

      В начале цикла переменная называется НомераСтроки, а в самом цикле НомерСтроки. Поэтому переменная и неопределенна.