Обработка не претендует на уникальность. Скорее еще один вариант из многих. Суть работы с обработкой
- подключается как внешняя обработка заполнения табличной части (по умолчанию - подключается к документу "Счет на оплату поставщика")
- пользователь выбирает файл xls или xlsx
- в файле Excel не всегда удобно визуально определить номера колонок, в которых указаны реквизиты, необходимые для табличной части. В качестве помощи - кнопка "Прочитать файл (необязательно)". При нажатии на кнопку считывается файл в табличный документ. Определить колонки можно точно
- пользователь указывает номера колонок и номера строк, из которых будут считаны данные, нажимает кнопку "1 - Заполнить таблицу". Таблица заполняется информацией из файла
- теперь необходимо выполнить сопоставление с Номенклатурой, существующей в базе. Выбирается вариант поиска - "По наименования", "По артикулу", "По наименованию и артикулу", "По наименованию, затем по артикулу", "По артикулу, затем по наименованию". Поиск выполнен в виде запросов в цикле (по каждой строке). Понимаю, что в ущерб производительности.
"Наименование" - это Полное наименование Номенклатуры (из-за ограничения длины "Наименования")
- если Номенклатура не найдена, ячейка выделяется оранжевым фоном. Пользователь нажимает кнопку "2 - Создать номенклатуру". Номенклатура создается в указанной папке с указанным "Видом номенклатуры"
- затем нажимается кнопка "3 - Перенести в документ" и происходит окончательная обработка табличной части штатными средствами (по кнопке "Изменить" - устанавливается ставка НДС, например)
Проверено на конфигурации "Бухгалтерия предприятия, редакция 3.0 (3.0.44.188)"
Update 17.02.2019
Внесены изменения (проверено на релизе 3.0.67.74)
- Изменено - чтение файла Excel выполняется средствами платформы (режим совместимости, соответственно, должен быть не ниже 8.3.6), наличие установленного MS Office (Exel) на клиентском компьютере или сервере не требуется
- Исправлено - теперь обработка работает и в серверном режиме (ранее при открытии обработки на стороне сервера, если файл находился на компьютере клиента, и путь к файлу был указан не сетевой - возникало сообщение, что файл не найден)