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