База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как адаптировать обработку загрузки данных из Excel на платформу 1С 8.3?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 7 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
1 мая 2026 в 6:00 #36937
эта обработка для 8.2. Мне надо для 8.3
-
1 мая 2026 в 6:00 #36938
Для платформы 1С:Предприятие 8.3 универсальная обработка загрузки данных из Excel в табличную часть документа есть, и она во многом похожа на ту, что была для 8.2, но с учетом новых возможностей платформы 8.3.
Рекомендую использовать следующий подход:
1. Считывание Excel-файла в ТабличныйДокумент средствами платформы 8.3 без использования COM (OLE) и без необходимости установленного Microsoft Office. В 8.3 метод ТабличныйДокумент.Прочитать() поддерживает чтение нескольких листов, как вы уже заметили.
2. Обход областей (листов) ТабличногоДокумента через свойство Области, получение нужной области с помощью ПолучитьОбласть(ИмяОбласти).
3. Использование ПостроителяЗапроса для удобного отбора и фильтрации данных из ТабличногоДокумента.
4. Заполнение табличной части документа через цикл по строкам полученной ТаблицыЗначений.
5. Для универсальности можно сделать обработку с настройками, где пользователь указывает соответствие колонок Excel и полей табличной части.
Примерный алгоритм кода для 8.3:
1С (Код)1234567891011121314151617ТабДок = Новый ТабличныйДокумент;ТабДок.Прочитать(ПутьКФайлу);ПостроительЗапроса = Новый ПостроительЗапроса;ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ИсточникДанных);ПостроительЗапроса.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;ПостроительЗапроса.ЗаполнитьНастройки();ПостроительЗапроса.Выполнить();ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();Для Каждого Строка Из ТаблицаДанных ЦиклНоваяСтрока = Документ.ТабличнаяЧасть.Добавить();НоваяСтрока.Поле1 = Строка.Колонка1;НоваяСтрока.Поле2 = Строка.Колонка2;// и так далее по нужным полямКонецЦикла;Если нужна готовая универсальная обработка, то на Infostart есть несколько современных вариантов, адаптированных под 8.3, например:
— Обработка «Загрузка данных из Excel в 1С 8.3» с поддержкой нескольких листов и гибкой настройкой соответствия колонок: https://infostart.ru/marketplace/560551/ (платная, но с демо-версией)
— Универсальные обработки из методической поддержки 1С (есть в ИТС) — «Загрузка данных из табличного документа» с обновлениями для 8.3.
Если хотите сделать сами, то советую использовать именно ТабличныйДокумент и ПостроительЗапроса, как в вашем примере, это современный и надежный способ.
Также полезна статья с примером создания универсальной обработки выгрузки/загрузки: https://infostart.ru/1c/articles/1695607/
Таким образом, универсальная обработка для 8.3 есть, и она базируется на ТабличномДокументе и ПостроителеЗапроса, что позволяет работать с любыми листами Excel и гибко настраивать загрузку в табличные части документов.
Если нужна помощь с конкретным кодом под вашу задачу — могу помочь составить.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.