База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать обработку для загрузки данных из Excel в 1С:Бухгалтерия 8.3?
- В этой теме 1 ответ, 2 участника, последнее обновление 10 часов, 13 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
16 апреля 2026 в 10:52 #36560
Сформируй код для Загрузки данных из Excel (обработку ) и последовательность действий как её установить в конфигурацию «Бухгалтерия предприятия»
-
16 апреля 2026 в 10:52 #36561
Вот конкретный пример внешней обработки для загрузки данных из Excel в 1С:Бухгалтерия предприятия (8.3), с пошаговой инструкцией по установке и использованию.
—
### 1. Создание внешней обработки загрузки из Excel
Код обработки (управляемое приложение):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970&НаКлиентеПроцедура ЗагрузитьИзExcel(Команда)// Диалог выбора файла ExcelДиалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);Диалог.Фильтр = "Файлы Excel (*.xls;*.xlsx)|*.xls;*.xlsx";Если Не Диалог.Показать() ТогдаСообщить("Файл не выбран");Возврат;КонецЕсли;ПутьКФайлу = Диалог.ПолноеИмяФайла;// Получаем COM-объект ExcelПопыткаExcel = ПолучитьCOMОбъект("","Excel.Application");ИсключениеСообщить("Не удалось создать объект Excel. Проверьте, установлен ли Microsoft Excel.");Возврат;КонецПопытки;ПопыткаКнига = Excel.Workbooks.Open(ПутьКФайлу);Лист = Книга.Worksheets(1);ИсключениеСообщить("Не удалось открыть файл Excel.");Excel.Quit();Возврат;КонецПопытки;// Читаем данные с 2-й строки (предполагается, что 1-я - заголовки)Строк = Лист.UsedRange.Rows.Count;Для НомерСтроки = 2 По Строк Цикл// Пример: читаем 3 колонки: Код, Наименование, ЦенаКод = СокрЛП(СтрЗначение(Лист.Cells(НомерСтроки, 1).Value));Наименование = СокрЛП(СтрЗначение(Лист.Cells(НомерСтроки, 2).Value));Цена = Лист.Cells(НомерСтроки, 3).Value;Если Код = "" ТогдаПродолжить;КонецЕсли;// Ищем элемент справочника Номенклатура по кодуНоменклатура = Справочники.Номенклатура.НайтиПоКоду(Код);Если Номенклатура.Пустая() Тогда// Создаем новый элементНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();Номенклатура.Код = Код;Номенклатура.Наименование = Наименование;Номенклатура.Записать();Иначе// Обновляем наименование, если нужноЕсли Номенклатура.Наименование <> Наименование ТогдаНоменклатура.Наименование = Наименование;Номенклатура.Записать();КонецЕсли;КонецЕсли;// Можно добавить логику по цене, если нужноКонецЦикла;Книга.Close(Ложь);Excel.Quit();Сообщить("Загрузка завершена. Обработано строк: " + Строк - 1);КонецПроцедуры—
### 2. Создание формы обработки
— Создайте внешнюю обработку (файл .epf) в конфигураторе.
— Добавьте на форму кнопку «Загрузить из Excel».
— В обработчике нажатия кнопки вызовите процедуруЗагрузитьИзExcel.Пример кода кнопки:
1С (Код)1234&НаКлиентеПроцедура КнопкаЗагрузитьНажатие(Кнопка)ЗагрузитьИзExcel(Неопределено);КонецПроцедуры—
### 3. Установка обработки в конфигурацию «Бухгалтерия предприятия»
1. Откройте конфигуратор 1С:Предприятия.
2. В меню «Файл» выберите «Открыть» и укажите вашу базу «Бухгалтерия предприятия».
3. В дереве конфигурации выберите «Обработки».
4. Нажмите правой кнопкой мыши -> «Добавить внешнюю обработку».
5. Укажите путь к созданному файлу .epf с обработкой загрузки.
6. Сохраните конфигурацию и обновите базу (конфигурацию).
7. Запустите 1С в режиме предприятия.
8. В меню «Сервис» -> «Внешние обработки» выберите вашу обработку.
9. Откроется форма с кнопкой «Загрузить из Excel».
10. Нажмите кнопку, выберите файл Excel с данными и загрузите.—
### 4. Рекомендации по подготовке Excel-файла
— В первой строке должны быть заголовки (например, Код, Наименование, Цена).
— Данные начинаются со второй строки.
— Колонки: 1 — Код, 2 — Наименование, 3 — Цена (можно изменить под свои нужды).
— Код должен быть уникальным для поиска элементов справочника.—
### 5. Важные моменты
— Для работы с Excel на клиенте должен быть установлен Microsoft Excel.
— Если база клиент-серверная, загрузка происходит на клиенте.
— Для загрузки других данных (например, документы, регистры) логику нужно доработать.
— Для больших объемов данных лучше использовать загрузку через Табличный документ или временные таблицы.—
Рекомендую посмотреть подробный пример и обсуждения по загрузке из Excel здесь:
https://infostart.ru/public/19062/
https://infostart.ru/articles/709245/—
Если нужно, могу помочь адаптировать под конкретные объекты конфигурации.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.