Внешняя обработка заполнения табличной части из Excel (с созданием Номенклатуры)






Внешняя обработка заполнения табличной части из Excel (с созданием Номенклатуры)

Обработка не претендует на уникальность. Скорее еще один вариант из многих. Суть работы с обработкой

— подключается как внешняя обработка заполнения табличной части (по умолчанию — подключается к документу "Счет на оплату поставщика")

— пользователь выбирает файл xls или xlsx

— в файле Excel не всегда удобно визуально определить номера колонок, в которых указаны реквизиты, необходимые для табличной части. В качестве помощи — кнопка "Прочитать файл (необязательно)". При нажатии на кнопку считывается файл в табличный документ. Определить колонки можно точно

— пользователь указывает номера колонок и номера строк, из которых будут считаны данные, нажимает кнопку "1 — Заполнить таблицу". Таблица заполняется информацией из файла

— теперь необходимо выполнить сопоставление с Номенклатурой, существующей в базе. Выбирается вариант поиска — "По наименования", "По артикулу", "По наименованию и артикулу", "По наименованию, затем по артикулу", "По артикулу, затем по наименованию". Поиск выполнен в виде запросов в цикле (по каждой строке). Понимаю, что в ущерб производительности.

"Наименование" — это Полное наименование Номенклатуры (из-за ограничения длины "Наименования")

— если Номенклатура не найдена, ячейка выделяется оранжевым фоном. Пользователь нажимает кнопку "2 — Создать номенклатуру". Номенклатура создается в указанной папке с указанным "Видом номенклатуры"

— затем нажимается кнопка "3 — Перенести в документ" и происходит окончательная обработка табличной части штатными средствами (по кнопке "Изменить" — устанавливается ставка НДС, например)

Проверено на конфигурации "Бухгалтерия предприятия, редакция 3.0 (3.0.44.188)"

 

Update 17.02.2026

Внесены изменения (проверено на релизе 3.0.67.74)

— Изменено — чтение файла Excel выполняется средствами платформы (режим совместимости, соответственно, должен быть не ниже 8.3.6), наличие установленного MS Office (Exel) на клиентском компьютере или сервере не требуется

— Исправлено — теперь обработка работает и в серверном режиме (ранее при открытии обработки на стороне сервера, если файл находился на компьютере клиента, и путь к файлу был указан не сетевой — возникало сообщение, что файл не найден)

34 Comments

  1. Blackie

    Спасибо за обработку. Вроде, удобно. А можете добавить способ загрузки xls-файла не только через com-соединение, но и без установленного на компьютере MS Excel? В 8.3, вроде, у табличного документа уже есть метод Прочитать().

    Reply ↓
  2. Batman

    С предложением полностью согласен. Начиная с 8.3.6, если мне память не изменяет, появилась эта возможность. На дворе — 8.3.9, разумное пожелание. Будет время — придумаю, спасибо за предложение

    Reply ↓
  3. lebedenko

    Очень существенное пожелание! При работе на сервере часто сталкиваюсь с такой проблемой com-соединений… из за чего приходится переходить на пользовательский компьютер с установленным Экселем.

    Reply ↓
  4. ImHunter

    XLSX без Excel — легко. Ибо это зазипованный XML. Из какой-то обработки из состава БСП нужно использовать/скопировать 2-3-4 процедуры. Будет кому интересно — поищу.

    Reply ↓
  5. Batman

    (4) ImHunter, информация пригодится, мне точно интересно 🙂 Заранее — спасибо

    Reply ↓
  6. ImHunter
    Reply ↓
  7. Batman

    (6) Спасибо!

    Reply ↓
  8. rozer

    велосипед это конечно хорошо но в БСП есть же «загрузка из файлов» https://youtu.be/ovjumkjtn9I?list=PL8TlceaQF_l_CMirNFV1rgUfXUM_w_JMD …. enjoy ))

    Reply ↓
  9. ir.iv

    Здравствуйте, Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.52.32)

    При открытии возникла ошибка:

    Поле объекта не обнаружено (ОбъектыНазначения)

    Помогите, будьте добры…..

    Reply ↓
  10. Batman

    (9) ir.iv, доброго времени суток, отвечаю Вам в личном сообщении

    Reply ↓
  11. ir.iv

    (10) Спасибо огромное-все заработало! Обработку подключила в самой программе (администрирование-подключение внешних печатных форм и обработок). Давно искала такую «без заморочек». Так что +++++

    Reply ↓
  12. Batman

    Спасибо, приятно знать

    Reply ↓
  13. user777072

    Добрый день,

    Не работает в конфигурации КОРП

    Ошибка — Поле объекта не обнаружено (объекты назначения)

    Как можно исправить?

    Reply ↓
  14. Batman

    Добрый день.

    При подключении обработки — указали объекты назначения (документы), к которым должна подключиться эта обработка заполнения табличных частей?

    Reply ↓
  15. nata_87

    При нажатии на кнопку прочитать файл, данные с файла читаются, а при нажатии на 1-Заполнить таблицу выходит сообщение, что Файл не существует!

    Reply ↓
  16. Batman

    Что может быть…. Длина пути к файлу — не превышает ли 255 символов?

    Reply ↓
  17. AlexB1

    не заполняет таблицу. файл видит. бп (3.0.67.43)

    Reply ↓
  18. Batman

    (17) Доброго времени суток. Уточните — база файловая или серверная? Пришлите для примера файл, пожалуйста

    Reply ↓
  19. AlexB1

    Доброго дня. Пробую на файловой.Но работать будет на серверной.

    Reply ↓
  20. llg_44

    (10) У меня аналогичная ошибка. Могу я расчитывать на помощь? время прошло, релиз уже 3.0. 67.67.

    {ВнешняяОбработка.изExcel.Форма.Форма.Форма(4)}: Поле объекта не обнаружено (ОбъектыНазначения)

    Если НЕ Параметры.ОбъектыНазначения = Неопределено Тогда

    Reply ↓
  21. llg_44

    (10) У меня аналогичная ошибка. Могу я расчитывать на помощь? время прошло, релиз уже 3.0. 67.67.

    {ВнешняяОбработка.изExcel.Форма.Форма.Форма(4)}: Поле объекта не обнаружено (ОбъектыНазначения)

    Если НЕ Параметры.ОбъектыНазначения = Неопределено Тогда

    (10)

    Прикрепление обработки к базе ничего не дало. Я не нахожу следы обработки в базе(

    Reply ↓
  22. Batman

    (21) Доброго времени суток. Давайте проверим, к каким типам документов Вы подключили обработку?

    Reply ↓
  23. llg_44

    (22) К счету на оплату покупателю.

    Reply ↓
  24. Batman

    (23) Проверил на демо-базе релиза 3.0.67.74, серверная, подключив обработку к документу «Счет на оплату покупателю», воспроизвести ситуацию не удалось, к сожалению. В чем еще может быть причина….

    В одном из сообщений была фраза, что на версии КОРП не работает. Не проверял на этой версии конфигурации. У Вас, случайно, не КОРП?

    Reply ↓
  25. llg_44

    (24) нет, это ПРОФ-версия.

    Reply ↓
  26. Batman

    (25) Ответил личным сообщением

    Reply ↓
  27. VKuser105103569

    двс!

    аудит на фреше пройдет?

    Reply ↓
  28. Batman

    (27) Затрудняюсь ответить. С фрешем еще не работал

    Reply ↓
  29. tsk-ga2011

    Здравствуйте, Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.70.30)

    При открытии возникла ошибка:

    Поле объекта не обнаружено (Товары)

    Помогите, пожалуйста.

    Reply ↓
  30. Batman

    (30) Доброго времени суток. Проверьте, для какого документа подключена внешняя обработка. Судя по тексту — либо не подключена к документу, либо подключена к документу, у которого нет табличной части с названием «Товары». Чуть выше в переписке, в ответе с номером 22 показана картинка, проверьте на своей ситуации

    Reply ↓
  31. tsk-ga2011

    Добрый день, высылаю скриншоты, посмотрите пожалуйста.

    Reply ↓
  32. Batman

    (32) Верно, у этого документа нет табличных частей с названием «Товар» . Выслал в личном сообщении обработку

    Reply ↓
  33. shmax

    БП 3.0.73.60 8.3.12.1685

    Reply ↓
  34. Batman

    (34) В почту пришло сообщение с текстом «БП 3.0.73.60 8.3.12.1685 при открытии сразу ошибка 🙁 {ВнешняяОбработка.изExcel.Форма.Форма.Форма(4)}: Поле объекта не обнаружено (ОбъектыНазначения) Если НЕ Параметры.ОбъектыНазначения…». Думаю, это был Ваш вопрос, хотя у меня видна только часть «БП 3.0.73.60 8.3.12.1685»

    Проверьте, пожалуйста, для каких документов подключена эта обработка (картинку с примером прилагаю)

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *