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






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

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

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

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

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

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

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

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

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

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

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

 

Update 17.02.2024

Внесены изменения (проверено на релизе 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 не будет опубликован. Обязательные поля помечены *