5. Как прочитать файл EXCEL в 1С
Вставка
- Опубліковано 4 жов 2024
- В этом видео рассмотрим как прочитать файл Excel в 1С.
Задача по загрузке Excel в 1С встречается очень часто. После этого видео Вы без труда сможете сделать обработку по загрузке Excel в 1С.
#уроки1С#excelв1c#ironskills#эксель1с
🔴Записаться на курс "Работа с файлами в 1С":
ironskills.by/...
Дай бог автору здоровья
Супер темп! Супер голос! Супер изложение! Спасибо!
Спасибо! Прекрасно работает. Сначала с расширением немного ошибся в коде, пришлось понервничать, но потом успокоился, "випил чашечку кофе", нашел ошибку.
При реализации столкнулась с тем, что в качестве параметра метода Прочитать нужно передавать имя временного файла xls, полученного на стороне сервера, иначе можно получить ошибку чтения файла.
Спасибо за такие понятные уроки, возникла задача перехода на УФ, и Ваш канал очень актуален) Жду новых видосов)
Не обязательно xls, должно быть любое расширение из поддерживаемых файлов.
Спасибо за видео!
Спасибо за видео, очень помогло
Круто. СПасибо.
Здравствуйте , а что делать если на компьютере нет установленного exel? Данная обработка прочтет файл?
Очень полезные все видеоматериалы
Я начинающий программист и очень много полезного взял с ваших уроков
Вы обещали рассказать про чтении файла при загрузке в клиент-серверном варианте
Дошел до этого выдает ошибку не обнаружен каталог
А в файловом варианте все работает. Не могли бы дать ссылку на урок если есть, а то сам не могу найти?
Подскажите а есть ли разница в чтении XLS и XLSX - старый новый форматы Excel?
Так же еще интересно а как в Excel файле XLS можно прочитать например вторую или последующие вкладки, ведь в этом файле может быть несколько вкладок
Здравствуйте! Большое спасибо за ваш труд! Подскажите пожалуйста, как устроен реквизит "путь к файлу"? Как к реквизиту привязать диалог выбора?) Заранее благодарю)
Здравствуйте! Реквизит ПутьКФайлу имеет тип "Строка". На форме отображается с помощью элемента вида "Поле ввода". У элемента формы установлен флаг "Кнопка выбора", и создан обработчик события НачалоВыбора, которое возникает при нажатии на кнопку выбора) Для того чтобы показать диалог выбора файла используется объект встроенного языка ДиалогВыбораФайла. Кстати, про диалоги у нас есть материал на канале: ua-cam.com/video/t1Uiv9FQyyo/v-deo.html
Каждый раз убеждаюсь, что многое нужно просто запоминать! Метод ПолучитьОбласть используется, например, при создании печатной формы. И эта область заполняется значениями из документа. А тут нужно из табличного документа прочитать значение. Поэтому используется свойство ТекущаяОбласть.Текст. Если конечно я правильно поняла....
Добрый день! Вы можете показать как загрузить из Excel таблицу с иерархией на форму в Дерево Значений в документе (и чтобы данные документа сохранялись)? Таблица в файле содержит колонки: [Номер строки], [Номер строки родителя], [Наименование], [Количество]?
Тут ниже "дедушка Повидло" спрашивал зачем промежуточная процедура на клиенте ПрочитатьФайл_XLS ему ответили, но я думаю он иное имел ввиду, поэтому присоединяюсь к его вопросу. Я думаю почему сразу из Процедуры ПрочитатьФайл(Команда) перед которой стоит &НаКлиенте нельзя сразу вызвать процедуру &НаСервере ПрочитатьФайл_XLS_НаСервере()
Отвечаю сам себе)) Помотал по ниже нашёл ответ)
Подскажите, почему в 02:20 нельзя сразу из процедуры ПрочитатьФайл() вызвать процедуру ПрочитатьФайлXLSНаСервере? Для чего нужна промежуточная процедура ПрочитатьФайлXLS?
Метод Табличного документа прочитать не доступен на клиенте
Прекрасный курс, но вы не рассмотрели создание обработчика для команды Записать данные.
По Вашим видео дорабатываю рабочую базу бухгалтера. Расскажите как прописать процедуру записи в номенклатуру, все работает все прочитывает, хотелось бы еще узнать как зделать что бы и записывались все данные в номенклатуру.
а если несколько страниц, как задать номер страницы ?
Как быстро писать процедура из шаблона?
Для чтения этого формата существует несколько разных способов. А хотя бы просто названия, каких? У вас в реквизитах формы Объект с плюсом, а у меня реквизиты создаются рядом. Плюса нет.
Алексей, здравствуйте) Наличие плюса рядом с реквизитом "Объект" зависит от типа этого реквизита и наличия у него собственных свойств, т.е. если, например, это ДокументОбъект.СчетНаОплату, то плюс будет, а если, к примеру, ОбработкаОбъект.ЗагрузкаДанных и у обработки нет ни одного реквизита и нет табличной части - плюса не будет)
Про другие способы загрузки из Excel будем разбирать ещё на канале)
Здравствуйте, делал все по вашим урокам, только внешнюю обработку и решил протестить на вэбклиенте, возникает ошибка "Конструктор не обнаружен"
Да, в веб-клиенте есть особенности по работе с файлами, которые не раскрыты в этом видео... Сделаем дополнение)
Здравствуйте! Я пока только учусь....Подскажите, пожалуйста, в данном видео используется процедура ПоместитьВоВременноеХранилище файла в виде двоичных данных. А как при таком способе можно передать информацию о расширении файла (xls или xlsx) чтобы в дальнейшем на сервере можно было получить оба варианта? У Вас в этом же плейлисте есть другое видео, где информация о расширении файла передается, но там уже метод ПоместитьФайлНаСерверАсинх...получается, используя процедуру ПоместитьВоВременноеХранилище такую вариантность расширений не предусмотреть?
Не удалось прочитать указанный файл по причине: {ВнешняяОбработка.ЗакрузкаСправочникаТоваровИзXLS.Форма.Форма.Форма(40)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\dobre\AppData\Local\Temp\v8_8CCE_20.xls'. Доступ к файлу не может быть получен.
Как это поправить?
Возможно файл открыт во время выполнения кода, нужно его закрыть и повторить)
Подскажите пожалуйста, какой видеоролик является продолжением курса? Записать прочитанные данные в Базу
На канале такого ролика пока что нет(
Здравствуйте, все сделал как вы объяснили. Ошибок нет, все работает. Но данные из Ексель не заполняются. Нажимаю кнопку прочитать, и ничего не происходит. Хотя в текущих вызовах по нужному времени цифра какая то пишется Отправлено 1580 Принято 667199. Не пойму в чем проблема
Нужно смотреть код, так сложно сказать, можете через этот сервис фрагментом кода поделиться: paste1c.ru/
А если содержимое хранится в ячейке A2 как правильно будет записать?
А я разобрался , стиль ссылок в экселе забыл поставить)
Из-за чего система может выдавать ошибку "ПрочитатьФайл_XLS_НаСервере"?
Напишите, пожалуйста, полный текст ошибки
Подскажите пожалуйста, почему может выдавать такую ошибку? Делал все один в один как в ролике
Не найден экспортируемый метод: ПослеВыбораФайла
Скорее всего для процедуры ПослеВыбораФайла не указали ключевое слово Экспорт)
Команды формы Обработать Выбрать файл и Прочитать пустые... При нажатии на кнопку ничего не меняется.. Хмммм
Да, если для команды не назначена процедура или содержимое процедуры пустое, ничего не будет происходить)
Как читать дату? В 1с тип данных - дата. При загрузке из файла данные не заполняются.
Нужно преобразовать строку вида "dd.mm.yyyy" в строку вида "yyyymmdd", и уже эту строку можно преобразовать к дате, с помощью функции Дата().
@@ironskills-1c Спасибо!
На 1:46
ИначеЕсли Объект. ФорматФайла = ‘’’’
Эту часть кода = ‘’’’ как так быстро написали?
Алексей, это скорее всего чудеса монтажа :)
Спасибо за видео. НО есть вопрос. Все делаю, как и ты, но только во внешней обработке. И после нажатия на кнопку получаю следующую ошибку. Не удалось прочитать указанный файл по причине: {ВнешняяОбработка.ЗакрузкаСправочникаТоваровИзXLS.Форма.Форма.Форма(40)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\dobre\AppData\Local\Temp\v8_8CCE_20.xls'. Доступ к файлу не может быть получен.
Как это поправить?
Вопрос отпал, надо было полностью закрыть файл и пересохранить в xls. Перезагрузка компа помогла
Отлично, что сами смогли разобраться в проблеме) И спасибо что написали, как решили проблему!)
Такая же была ошибка. Оказывается адрес ячейки в эксель указала в русской раскладке С, но понятно, что надо в англ. Исправила, все сработало
Здравствуйте, подскажите как получить Дату? У меня в excel одна из колонок формате даты. Когда запускаю обработку все колонки заполняются, кроме этой
Если вместо "текст" ставлю "значение", выдаёт ошибку "поле объекта недоступно для чтения(значение)"
@@нрп-ш8х Здравствуйте! Попробуйте получить дату сначала строкой, например, "28.05.2021", а уже из этой строки можно получить дату, выделив день, месяц и год и воспользовавшись функцией Дата(,,)
Добрый день, все сделал как в уроке, но не могу понять почему не может прочитать ячейку , выдает ошибку:
Ошибка при вызове метода контекста (ПолучитьОбласть)
{Обработка.ЗгрузкаДанныхИзФайла.Форма.Форма.Форма(80)}: СтрокаДанных.Инвойс = ТабДок.ПолучитьОбласть("R" + Формат(НомерСтроки,"ЧГ=0")+ "С" + 1).ТекущаяОбласть.Текст;
{Обработка.ЗгрузкаДанныхИзФайла.Форма.Форма.Форма(138)}: ПрочитатьФайлНаСервере();
по причине:
Область не найдена: R2С1
Область не найдена: R2С1
Файл уже привел к формату 2003 года, но не помогает, не может прочитать, если не ставить параметры (ПолучитьОблать), загружает 1 ячейку во все колонки.
Проверьте, что в обрабатываемом файле есть 2-я строка и 1-я колонка)
@@ironskills-1c та же проблема, все заполнено, но не работает почему - то
Зачем тогда создавать процедуру на клиенте? Почему бы сразу не вызвать на сервере?
Это ошибка, введенная в учебный процесс намеренно, чтобы когда человек, который столкнется с ней в реальной практике, понимал что нужно делать))
Не удалось прочитать указанный файл по причине: {Обработка.ЗагрузкаДанныхИзФайла.Форма.Форма.Форма(45)}: Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 'C:\Users\dkukushkin\Desktop\База \Кол11мая2022 .xls'. Формат файла не поддерживается. Ребят как исправить?
Возможно файл открыт во время выполнения кода, нужно его закрыть и повторить)
@@ironskills-1c Такая же проблема, но файл закрыт
Доброго времени суток!
Вроде бы делал по аналогии с видео, так же для клиент-серверного варианта временное хранилище использовал. Все хорошо, файл читается, но у меня есть поле в котором появляется разделитель. Пробовал и через Формат пробел убирать и через СтрЗаменить(Значение," ",""). Но пробел не уходит и в итоге вместо строки с 6 символами (123456) получается 7 символов ("123 456"). Подскажите пожалуйста, как это поправить? На примере у Вас УПП отлично заполняется без пробелов.
Здравствуйте!) Скорее всего в строке содержится неразрывный пробел, удалить его из строки можно так:
Результат = СтрЗаменить(ИсходнаяСтрока, Символы.НПП, "");
ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1). Текст
Короче и не нужно ни каких форматов строк.
спасибо
можете подсказать , при выборе файла , выдает ошибку Поле объекта не обнаружено "(ПутьКФайлу)" , в чем проблема , не могу понять
Добрый день, Денис! А покажите фрагмент кода, пожалуйста
Почему то у меня возникает ошибка : Поле объекта не обнаружено (ДанныеФайла)
Данил, воспользуйтесь отладчиком - нужно поставить точку останова на строке, в которой возикает ошибка и вычислить значение переменной, имя которой указано перед ".ДанныеФайла"
{Обработка.ЗагрузкаДанных.Форма.Форма.Форма(35,1)}: Неопознанный оператор
>&НаКлиенте (Проверка: Тонкий клиент)
{Обработка.ЗагрузкаДанных.Форма.Форма.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Тонкий клиент)
А как прочитать сразу несколько файлов Excel?
С помощью метода НайтиФайлы() можно получить все файлы в каталоге с нужным расширением (все файлы Excel), а затем каждый файл прочитать)
подскажите кто-нибудь пожалуйста, как этим методом решить задачу, если у меня в файле ексель несколько страниц и загрузку необходимо производить с определенной страницы?
Посмотрите вот тут пример: infostart.ru/1c/articles/1760327/
Доброго дня, делаю по вашим видео, но только во внешней обработке.
Есть Вопрос: у вас ячейки в excel имеют формат R1C2, у меня просто A1 либо B4
Как прописать чтения ячейки, (7:44) для моего типа ячейки?
Добрый вечер. Можете заменить стиль ссылок в Экселе в настройках.
чтение ячеек мы прописываем не для эксель файла, а для областей созданного табличного документа куда пихается ексель независимо каклй у него стиль
*3:53** - Крайне плохая практика обучения, т.к. нужно сперва передать данные на сервер, а затем их прочитать.*
_Подобным действием, вы лишь запутаете "новобранцев"._
Да, материал старый, согласен, что можно было объяснить лучше, но мы стараемся расти в этом плане ;)
@@ironskills-1c *, раз стараетесь, то молодцы.*
_Просто я уже не раз встречал "жертв" подобных уроков, а когда им говоришь, что это не правильно, то они воспринимают замечания "в штыки"._
*Зачем делать заведомо не верные действия, а затем объяснять что это не правильно.*
_Крайне не верный подход. Вам же в школе не говорили, что 2+2 это 5, а потом говорили о том, что на самом деле, это 4._
Ну и смысл в этом видео? Большинство баз работают на клиент-сереверной архитектуре. А принцип загрузки данных из электронной таблицы в табдок уже только ленивый не расписал.
В видео один из способов чтения файла Excel, в другом видео есть пример чтения файла на сервере)
Не понимаю почему пишется ошибка {Обработка.ЗагрузкаДанных.Форма.Форма.Форма(54,88)}: Переменная не определена (НомерСтроки)
СтрокаДанных.Наименование = ТабДок.ПолучитьОбласть("R" + Формат(>НомерСтроки, "ЧГ=0") + "C" + 2).ТекущаяОбласть.Текст; (Проверка: Сервер)
{Обработка.ЗагрузкаДанных.Форма.Форма.Форма(56,88)}: Переменная не определена (НомерСтроки)
СтрокаДанных.ПродолжительностьЭкскурсии = ТабДок.ПолучитьОбласть("R" + Формат(
В начале цикла переменная называется НомераСтроки, а в самом цикле НомерСтроки. Поэтому переменная и неопределенна.