Кайф вообще! По работе сталкиваешься не раз с такими задачами, при выборе более универсальной и быстрой загрузки, самый полезный контент, спасибо огромное за материал!
@cryptoprofit1190 Жыл бұрын
Круто все разложили, сейчас многие даже опытные 1С ники всех 4х технологий не знаю, а тут все наглядно и доходчиво, спасибо за обучение, надеемся на новые уроки!
@Lexa-channel-AlinaRomanovna6 күн бұрын
Спасибо за видео, очень выручило сегодня
@triviumfan9411 Жыл бұрын
Есть к чему прицепится, в смысле неточности, но в целом - очень грамотно и доступно. Лектор молодец.
@Foxy2002-s3l Жыл бұрын
Иван больше спасибо. Я делал обработку для загрузки заказов, по первому вашему видео. Но теперь вижу 2й способ и беру его в замен первого. Пойду переписывать)))
@АндрейСоловьев-ч2к Жыл бұрын
Иван, спасибо! Всегда жду Ваши уроки.
@cam_180 Жыл бұрын
Спасибо. Как всегда отличный ролик.
@R4VENekb Жыл бұрын
для номерСтроки = 2 по количествоСтрок
@sergeymizhev5095Ай бұрын
Как всегда, кратко, четко по существу. Вань по братский сделай для разработчиков типовых конфигураций видео, "ОСТОРОЖНО ПОПЫТКА", а то они задобали делать ПОПЫТКА вызвают общий модуль, где выполняется еще одна попытка вызова COM объекта, собсна говоря, количество попыток в Докуметообороте 3.0 дошло до 5 штук. Либо сделай разбор собсна когда ПОПЫТКА В ПОПЫТКЕ, я так понимаю, если что-то пойдет не так, то возврат будет к первой попытки. Ну это надо в отладке просто проверить. Спасибо тебе что ты есть, ты классный.
@mikefrygin6615 Жыл бұрын
Спасибо, как и всегда все очень понятно и на таком позитиве. Великолепно!
@sashaperevisly7755 Жыл бұрын
Спасибо, за сравнительный обзор!
@ВиссарионБалашефф Жыл бұрын
Спасибо! Очень полезный контент. Для определения количества строк и колонок в 3-м способе лучше использовать: КоличествоКолонок = Лист.UsedRange.Columns.Count(); КоличествоСтрок = Лист.UsedRange.Rows.Count();
@ironskills-1c Жыл бұрын
Спасибо за дополнение)
@rafikov_aleksandr Жыл бұрын
Отличное видео! С замерами - прямо научный подход. Через табличные документы будет работать и на linux. Большое спасибо!
@1c_kz_all Жыл бұрын
Да, это важны момент. Но была ситуация когда таким способом символы некоторые не поняла 1с, а через эксел нормально. Но это скорее исключение
@karambaichickiz_gondurasa902 Жыл бұрын
Как всегда шикарно!
@РоманСавинов-щ6ю Жыл бұрын
Крутяк! Особая благодарность за замеры !
@asg5511 Жыл бұрын
Мега полезное видео! Большое спасибо!
@dionis2898 Жыл бұрын
Отличное видео Иван! Недавно решал задачу, где нужно было вытащить данные из табличной части внешнего документа exel -заявки на запчасти, с шапкой в несколько строк и различными подписями и расшифровками в подвале, пришлось помучиться с анализом содержимого загружаемых ячеек.
@ucccer6 ай бұрын
Будь счастлив, мил человек!
@РоманКислинский-ч9ш Жыл бұрын
Как всегда на уровне! Красава!
@АндрейМ-т6р Жыл бұрын
Очень полезно! Спасибо!
@Imitation_of_content Жыл бұрын
Как всегда, великолепно!)
@ТатьянаБелькова-ф7в7 ай бұрын
Супер! Пушка! Всё по делу и понятно !
@ВикторКнязькин-ш5о Жыл бұрын
Как всегда круто! Идея для следующего видео, запись данных из 1с в google-таблицы.
@imbagrille1688 Жыл бұрын
Как исправляли пропущенную кавычку в строке соединения ADO так и не показали) Спасибо за видео!
@spiller26 Жыл бұрын
2 последних способов подходят только для Winows-систем. Сам пользуюсь уже давно 2-м способом, через построитель.
@dkorppinen Жыл бұрын
Просто супер! Спасибо
@MoriAtaee Жыл бұрын
Это было хорошо, и я использовал это
@Rarogg Жыл бұрын
Ваня крут как всегда!!!
@fastAbout1s Жыл бұрын
Еще можно через внешние источники данных, тогда можно сразу запросы на СКД делать к данным экселя.
@ironskills-1c Жыл бұрын
Спасибо за дополнение)
@Foxy2002-s3l Жыл бұрын
Самое главное не забыть что, табДок.Прочитать(Путь_КФайлуНаСервере, СпособЧтенияЗначенийТабличногоДокумента.Текст); обязательно укажите способ чтения данных, если вам данные нужны как строка
@PTolkachev Жыл бұрын
1. Чтобы пользователя не пугать системной информацией (номер строки, текст кода этой строки, стек вызовов и т.п.) в сообщениях об ошибке лучше вместо "ОписаниеОшибки()" использовать "КраткоеПредставлениеОшибки(ИнформацияОбОшибке())". 2. Вопрос по третьему способу. А почему ошибка запуска Excel обрабатывается "мягко", а открытие файла нет? Другими словами, почему "Книга = Эксел.Workbooks.Open(ПутьКФайла)" не заключено в "Попытка...Исключение"? А вообще, тут более глобальный вопрос. Зачем, в принципе, нужна "Попытка...Исключение"? Какая разница, увидит пользователь ошибку в диалоговом окне или окне сообщений с припиской вначале: "Не удалось прочитать файл по причине...". При этом, во втором случае получит кучу непонятной информации, возвращаемой функцией "ОписаниеОшибки()", вместо краткого представления ошибки. Хотя, открытие файла, всё же, хорошо бы делать через попытку и в случае исключения выполнить Эксель.Quit(). Иначе в процессах зависнет процесс Excel, в чём можно убедиться, открыв диспетчер задач. 3. Ну и в четвёртом способе при ошибке создания выборки необходимо закрывать соединение, иначе, если, по какой-то причине, выборка не создастся, то соединение останется открытым.
@АртемКузнецов-ч9г10 ай бұрын
Хотелось бы такой разбор для файлов эксель где нужна не только ТЧ, а и реквизиты.
@vallak1981 Жыл бұрын
Для конфигураций на БСП неплохо научиться применять подсистему "Загрузка данных из файлов". Сам один раз разобрался, теперь другие методы и не применяю.
@Shaluniya Жыл бұрын
у меня никак руки не дойдут до бсп, немного смущает,что сами библиотеки могут меняться, не бывает так,что меняется бсп и нужно менять код? если есть ссылки на материалы про бсп, которые понрачились при разборех темы, может, поделитесь?)
@ЕвгенийМедведев-б8я Жыл бұрын
Спасибо! Конечно все зависит от задачи.
@odilgafurov2558 Жыл бұрын
Круто. Спасибо.
@ПетрВикторовичДорожкин Жыл бұрын
Огонь.🙃🙃🙃
@SkiPastor Жыл бұрын
Чтобы пропустить первую строку, надо ставить Если вместо банального Для НомерСтроки=2 ??? Вообще то оператор Если в 1С весьма длительный и при чтении больших файлов из-за такой пустышки будут нехилые тормоза.
@ironskills-1c11 ай бұрын
Спасибо за дополнение, сделаем замеры на большом файле, чтобы оценить влияние)
@Feofan4ik Жыл бұрын
Иван! Целую вас в мозг!
@МашаЕфимова-щ9ф Жыл бұрын
Спасибо) а можно видео про программную установку отбора на формах?)
@EvilBloodEye Жыл бұрын
Еще можно добавить 5-й способ как развитие 4-го - через внешние источники данных.
@ironskills-1c Жыл бұрын
Спасибо за дополнение :)
@Семёныч-у4с7 ай бұрын
спасибо!
@olegkim615 Жыл бұрын
И еще при OLE - не все методы Excel доступны из 1С ... , ADO не пробовал с EXCEL, но сталкивался - не установлен драйвер ODBC - для других приложений ... а так надо переходить наверное на OpenOffice наверное .. ? Ввиду санкций? Похоже самый популярный метод - через Построитель запрос ?
@Шахло-ц5э Жыл бұрын
💥💥
@helmetson652 Жыл бұрын
Для полного счастья не хватает закрытия ком объектов в случае ошибки
@filaretbusoni3135 Жыл бұрын
Во втором способе если не писать Выгрузить(), Загрузить(), а обойти результат в выборке и заполнить строки, то скорость будет еще быстрее.
@ironskills-1c Жыл бұрын
Спасибо за комментарий)
@tikeyl7563 Жыл бұрын
Подскажите какой шрифт у Ивана стоит, пожалуйста.
@SmartEnot2 ай бұрын
Иван, скажите пожалуйста, для обычных форм - методом ПостроительЗапросов можно загрузить файл XLS в ТЗ, если нет, можете подсказать вариант решения? Заранее благодарен!
@КрасивыеМыслииСлова10 ай бұрын
Добрый день. Подскажите, пожалуйста, а при чтение Экселя из Линукса планируется видео?
@МашаЕфимова-щ9ф Жыл бұрын
Не увидела ссылку на сайт с методами экселя🤔
@AlexeySimf Жыл бұрын
Стоит отметить, что Прочитать (в табличный документ) не работает с файлами Excel старых версий, например, если файл выгружен из 1с 7.7, раз уж мы в контексте 1с.
@ironskills-1c Жыл бұрын
Спасибо за уточнение)
@justhorrorgames79007 ай бұрын
Добрый день, а можно ли грузить данные ссылочного типа из Excel в документ напрямую?
@ЕвгенийМедведев-б8я Жыл бұрын
Не для всех табличных документов работает способ с построителем запросов или построителем отчетов. Если первая строка таблицы иксель пустая, то будет ошибка.
@ironskills-1c Жыл бұрын
Спасибо за дополнение)
@Dendemixture8 ай бұрын
спасибо. а то не мог разобраться. достаточно неочевидный момент
@АнтонДолгих-ц3г Жыл бұрын
Огромное Вам спасибо, Иван за то что делитесь знаниями, да ещё с такой крутой подачей! Лайк сразу поставил(еще до просмотра!), потому что не сомневался в качестве, ну а комментарий-это мотивация для продолжения и развития канала. Я совсем недавно в этой сфере, но контента, который был бы более качественный, чем Ваш, я пока не встретил. Единственный // комент Почаще пилите ролики!!!! 😉
@ironskills-1c Жыл бұрын
Спасибо большое за поддержку)
@АлексЧерный-у6п11 ай бұрын
Добрый день! Можете подсказать, какой из способов применим для баз находящихся на Линуксе?
@stepanuchnnn4123 Жыл бұрын
Ваня, скажи где ты работаешь, я кину свою работу зам. начальника управления и пойду к тебе в подмастерье!😊
@Shaluniya Жыл бұрын
очень полезное видео, описаны все основные варианты, но есть нюансы. Часто приходится читать и записывать данные 1С-Эксель и обратно. COM-соединение не всегда можно использовать, и OLE тоже, так что всегда пользовалась методом 1, с полгода назад в очередной задаче воспользовалась для реализации методом через построитель. И вот с метод с построителем очень прям удобный в плане кода, не нужно читать каждую ячейку (у меня по 30 колонок в таблице и порядка 50000строк), на практике столкнулась с косяками при чтении и записи. Например, с чтением возникла проблема типизации колонок. То есть, когда НЕ заполнена ячейка тип значения строка, а если заполнена, то число (или наоборот, точно не помню, были нюансы). Как этого избежать? При записи файла экселя тоже столкнулась с такими трудностями, что если текст ячейки не помещается в ячейку, то при записи он заносится в соседнюю ячейку справа от записываемой, опять же файл я получаю от подрядчика, они себе вообще не дают труд типизировать данные, передают тип Общий. Видимо, я что-то упускаю. Первый метод работает вполне корректно, но из-за описанных выше проблем, с построителем мне не понравилось на данный момент, буду разбираться, возможно, придется использовать другой метод, пока не знаю, какой лучше. В любом случае спасибо за разбор актуальной всегда темы. Если есть совет, подскажите, пожалуйста, как избежать проблем при преобразовании значений при чтении и записи. Большое спасибо за Вашу работу!
@1c_kz_all Жыл бұрын
Ещё столкнулся с тем, что некорректно некоторые символы сели в 1С через построитель, а через эксел нормально...
@gaia34786 ай бұрын
а как во втором способе перейти на другую страницу в файле?
@WhoAmI-sx6fb Жыл бұрын
В 1 и 2 примерах как можно по странично получить эксель? 1 и 2 примераз там все в 1 документ а если 2 и более страниц и разные колонки?
@andrey_pav Жыл бұрын
Спасибо за урок! А как заставить 1С создавать документы поступления или реализации по файлу эксель ? читая его заполненные строки. Хочется научиться парсить эксель файлы в 1С.
@Shaluniya Жыл бұрын
так вы читаете данные в ТЗ или ещё куда и потом создавайте средствами 1С, как обычно создаете документы, с этим нет проблем
@stogramm6290 Жыл бұрын
А вот что делать, если в файле несколько страниц, и нужно обратиться к последней, например...
@ironskills-1c11 ай бұрын
Покажем в отдельном ролике)
@daniilmatveev11 ай бұрын
Про табуляции, которые делают код более "красивым". Полагаю не раз приходилось искать по большому тексту место инициализации переменной или место присвоения значения (как в способе №1). Логично было бы искать по "ИмяПеременной =". В случае с ручной табуляцией это просто невозможно. А еще если программист по тексту сделает замену имени переменной каким-либо образом и поленится выровнять опять вручную эти красивости, то получится форменный беспорядок. Поэтому сделать картинку на обучающем видео это одно, а ручные красивости в рабочем коде это совсем другое. Поэтому же приходится нещадно стирать табуляции (про себя тихо матерясь) в совсем некрасивом коде.
@__wuzzy__25 күн бұрын
ошибка метода контекста прочитать, нет доступа к файлу, хз почему
@TRIALEX3 Жыл бұрын
А если в экселе куча формул и надо их сохранить? Я пока 3им способом пользуюсь так как переживаю что какие то формулы могу затереться при всех преобразованиях.
@ironskills-1c Жыл бұрын
При чтении формулы мы не потеряем) Разве что при записи.
@krutoyinfo10 ай бұрын
А где парсинг самого файла???
@АнастасияЕрмакова-в4з9 ай бұрын
А что делать если столбцы не совпадают по названиям(это я про ПостроительЗапроса)? Как обойти всё аккуратно?
@ironskills-1c8 ай бұрын
Можно к столбцам по индексам обращаться) А в коде можно хранить соответствие ИмяПоля - Индекс колонки)
@Alcoholdehydrogenas Жыл бұрын
На линухах не работает. 1С:Предприятие 8.3 (8.3.23.1865) Версия для разработчиков. Linux Mint 21.2 Cinnamon
@alm6543 Жыл бұрын
Жаль, что 1С может просто зависнуть при попытке открыть некоторые файлы Excel табличным документом.
@alexflanker25 Жыл бұрын
В импортозамещеном варианте уже только через ТабДок)))
@ironskills-1c11 ай бұрын
😃
@АлексейЛ-й1ш Жыл бұрын
Если есть возможность, то не надо сканировать эксель построчно. Это попа. Загрузить весь лист в ТЗ и потом её сканировать в сто раз быстрее
@Онлайнкурсы-л4щ Жыл бұрын
Не запускается: Ошибка инициализации модуля: ВнешняяОбработка.IRONSKILLS_КакПрочитатьExcel.Форма.Форма.Форма по причине: {ВнешняяОбработка.IRONSKILLS_КакПрочитатьExcel.Форма.Форма.Форма(16,1)}: Ожидается определение процедуры/функции >ПараметрыДиалогаПомещенияФайлов; {ВнешняяОбработка.IRONSKILLS_КакПрочитатьExcel.Форма.Форма.Форма(22,23)}: Ожидается символ ';' ОписаниеФайла = Ждать
@AntonPahomov Жыл бұрын
Проверьте версию 1С Предприятия и установленный режим совместимости. Асинхронные методы стали доступны начиная с версии 8.3.18.
@Онлайнкурсы-л4щ Жыл бұрын
@@AntonPahomov Спасибо. У меня действительно 8.3.17.
@ПеЛьМеНь-л1м5 ай бұрын
Зачем добавлять лишние строки "Если НомерСтроки=1 Тогда Продолжить КонецЕсли;" если можно просто начинать считывать со строки = 2 ???? Зачем лишние строки кода???
@ironskills-1c4 ай бұрын
Спасибо за дополнение) Любую задачу можно решить несколькими способами, действительно тут можно было короче)
@fizikrnd Жыл бұрын
Эх, а как же прямое чтение xml из xlsx? 😂
@sergeymizhev5095Ай бұрын
А вся беда в том, что бегаешь по отладке минут 30, и херак, куда-то вообще непонятно вернулся, в какое-то исключение, а ты вообще не выкупаешь че это за исключение .... Ну или осторожно транзакция в попытке, тоже проблема в типовых конфигурациях.
@dnk3569 Жыл бұрын
Супер, большое спасибо. Очень полезно.
@danxai Жыл бұрын
Запустить счётчик от 1 , а потом проверять не равен ли счётчик 1? Л - логика.
@olegkim615 Жыл бұрын
Это что бы было понятней, наверное, а так да, сразу с 2 счетчик..🙃