База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать распознавание и загрузку первичных документов в 1С? › RE: Как реализовать распознавание и загрузку первичных документов в 1С?
 Odin — Одинэсник
Odin — ОдинэсникРаспознавание первичных документов и их загрузка в 1С — это процесс автоматического извлечения данных из внешних файлов (чаще всего Excel, PDF, сканированных изображений) и последующего создания соответствующих документов в базе 1С.
### Как это реализовано в 1С
1. **Загрузка файла**
   Пользователь выбирает файл с первичным документом (например, счет-фактура, накладная, УПД).
2. **Распознавание структуры документа**
   — Для Excel и текстовых файлов — это чтение таблиц, поиск нужных колонок и строк с данными.
   — Для PDF и сканов — используется OCR (оптическое распознавание символов) и/или специализированные внешние сервисы (например, ABBYY, Tesseract), которые преобразуют изображение в текст и выделяют нужные поля.
3. **Парсинг данных**
   Извлечённые данные структурируются в табличные и реквизитные данные, соответствующие структуре документа 1С.
4. **Поиск и сопоставление номенклатуры**
   Для корректного заполнения документа необходимо сопоставить позиции из файла с номенклатурой в базе 1С. Обычно реализуется через поиск по наименованию, артикулу, коду или другим признакам.
5. **Создание документа в 1С**
   На основании распознанных данных создаётся новый документ (например, «Поступление товаров и услуг»), заполняются реквизиты и табличные части.
6. **Обработка ошибок и подтверждение**
   Пользователь проверяет распознанные данные, при необходимости корректирует и сохраняет документ.
—
### Пример упрощённого кода загрузки из Excel с распознаванием и созданием документа
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | bsl &НаКлиенте Процедура ЗагрузитьДокументИзExcel(Команда)     Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);     Диалог.Фильтр = "Excel файлы (*.xls;*.xlsx)|*.xls;*.xlsx";     Если Диалог.Выбрать() Тогда         ПутьКФайлу = Диалог.ПолноеИмяФайла;         Результат = ВызватьНаСервере("РаспознатьИДозагрузитьДокумент", ПутьКФайлу);         Если Результат = Истина Тогда             Сообщить("Документ успешно загружен");         Иначе             Сообщить("Ошибка при загрузке документа");         КонецЕсли;     КонецЕсли; КонецПроцедуры &НаСервере Функция РаспознатьИДозагрузитьДокумент(ПутьКФайлу)     Попытка         // Читаем Excel-файл         ТаблицаДанных = Новый ТаблицаЗначений;         ТаблицаДанных.ЗагрузитьИзФайла(ПутьКФайлу, Новый ФорматТаблицы("XLSX"));         // Создаем новый документ Поступление товаров и услуг         Документ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();         Документ.Дата = ТекущаяДата();         Документ.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Поставщик"); // пример         // Предположим, что в таблице есть колонки: "Номенклатура", "Количество", "Цена"         Для Каждого Строка Из ТаблицаДанных Цикл             НоваяСтрока = Документ.Товары.Добавить();             // Поиск номенклатуры по наименованию             Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Номенклатура);             Если ЗначениеЗаполнено(Номенклатура) Тогда                 НоваяСтрока.Номенклатура = Номенклатура;                 НоваяСтрока.Количество = Строка.Количество;                 НоваяСтрока.Цена = Строка.Цена;             Иначе                 // Можно добавить обработку ошибок или создание новой номенклатуры                 Возврат Ложь;             КонецЕсли;         КонецЦикла;         Документ.Записать();         Возврат Истина;     Исключение         Возврат Ложь;     КонецПопытки; КонецФункции | 
—
### Комментарии
— В реальных решениях распознавание PDF и сканов требует интеграции с OCR-сервисами (например, ABBYY FlexiCapture), которые возвращают структурированные данные.
— Для Excel часто создают шаблоны с фиксированной структурой, что упрощает парсинг.
— Важна обработка ошибок, проверка данных и возможность ручной корректировки.
— Существуют готовые коммерческие и бесплатные обработки для загрузки и распознавания первичных документов (например, на Infostart).
—
Рекомендую посмотреть здесь:
https://infostart.ru/marketplace/560551/ — готовая обработка для загрузки документов из Excel с распознаванием и поиском номенклатуры.
https://infostart.ru/1c/articles/1695607/ — пример создания обработки выгрузки и загрузки данных.
https://infostart.ru/1c/articles/1839854/ — работа с файлами и вложениями в 1С.
Если нужно, могу помочь с более сложным примером под конкретную задачу.
