Импорт из Excel справочников, независимых записей в регистр сведений, реквизитов шапки документов v1.2

Простая загрузка из экселя реквизитов справочников, независимые записи регистра сведений, реквизиты шапки документа, с возможностью загрузок реквизитов сложных типов и картинок.

Выкладываю еще один импорт справочников (регистров сведений в версии 1.1, реквизитов шапки документа в версии 1.2) из Excel. Сначала это была простенькая обработка неизвестного автора (спасибо, Друг!), которую я сильно доработал под свои задачи и довел до возможности поделиться с сообществом. Осознаю все несовершенство полученного результата, но, возможно, именно такое сочетание функциональности кому-то окажется полезным.

Возможности:

Загрузка реквизитов простых типов, перечислений (в экселе должен указываться идентификатор перечисления), справочников (в экселе может указываться предопределенное имя, код, полный код, наименование), хранилищ данных (картинок или двоичных файлов) и составных типов, являющихся сочетанием вышеуказанных.

Настраиваемая нумерация колонок с данными, строки стартовой загрузки.

Возможность в процессе загрузки устанавливать родителя для загружаемых элементов

Возможность создавать новые элементы при загрузке (важно: ключом при поиске-создании является Код или Наименование (первичен код)).

Минусы: нет возможности загрузки табличных частей справочников, нет возможности указать владельца для подчиненных справочников (это легко докрутить, если будут пожелания), нет возможности загрузки реквизитов типа Документ, загружаемые данные тупо записываются, без сравнения с текущими значениями (если нужно несколько раз подряд загрузить похожие наборы данных, то обработка во второй раз будет работать также долго, как и первый, не смотря на то, что после первого раза 90% данных уже заполнено и можно было бы пропустить обновление реквизитов).

Плюсы (имхо):есть загрузка картинок, простая и легко настраиваемая

В ближайших планах объединение этой обработки с копией, которую я сделал для загрузки данных в регистры сведений и исправление пары минусов (владелец, сравнение с текущими значениями).

Новое в версии 1.1:

Возможность загружать данные в регистр сведений (не привязанный к регистратору), подправлены мелкие баги.

Новое в версии 1.2:

Возможность загружать данные реквизитов шапки документа (ключевые поля номер и дата), подправлены мелкие баги.

 

13 Comments

  1. iov

    За выкладывание +

    За не указание автора или попытку извинится заранее за плагиат —

    итог — 0

    Уважайте авторов разработок.

    Reply
  2. pal_alex

    Первоначальная обработка позволяла загружать из экселя только реквизиты простого типа в существующие элементы (ключом являлся только код).

    Переписана на 70%, весь оригинальный функционал — мой, а тот, который достался в наследство, во многих местах был соптимизирован. Считаю, что плагиатом подобная разработка считаться не может, иначе я бы ее не выкладывал — мне чужого не нужно.

    Reply
  3. shard

    (1) позволю себе не согласиться, действительно бывают случаи когда обработка начинает ходить «по рукам» и автор теряется.

    Reply
  4. iov

    (3) НО написать строчку » спасибо — автору простите за плагиат» никто же не запрещает и уже совсем смотрится по другому…

    Reply
  5. pal_alex

    Наверное, это моя вина, так как из описания непонятно, насколько сильно была переделана обработка. Упоминание о наследстве — это и есть дань уважения и благодарности неизвестному мне программисту, чью обработку я начал дополнять и улучшать. В первоначальной обработке было 157 строк, после моих доработок стало 379 строк, при этом осталась только одна процедура из 10 строк, в которой не было бы моих изменений. То есть код обработки перелопачен полностью, где-то дополнен, где-то улучшен. Не уверен, что можно считать мои действия плагиатом, я бы скорее назвал это ленью. Кто не копировал визуальные элементы и куски кода из типовых конфигураций пусть первым бросит в меня камень 🙂

    Reply
  6. REA

    Здравствуйте Александр!

    На строку

    xl = Новый COMОбъект(«Excel.Application»);

    Выходит сообщение: Недопустимая строка с указанием класса.

    В чем может быть причина, как бы поправить.

    Reply
  7. pal_alex

    (6) На компьютере, на котором запускается обработка, должен быть установлен Excel (точно работает на 2000 и 2003). Эта ошибка говорит о том, что или не установлен excel, или он какой-то очень старой (новой?) версии, в которой у класса имя отличается от Excel.Application. На инфостарте была публикация, в которой описывалась методика загрузки данных из excel файлов без наличия excel на компьютере, но разбираться и прикручивать этот механизм в свою обработку не готов.

    Reply
  8. mikelebedev

    Зравствуйте Александр!

    Подскажите, как подобраться к значениям перечислений 1С 77 из Excel?

    Как объекты из VB они не создаются.

    Reply
  9. pal_alex

    (8). Плохо понял вопрос — если речь идет о том, как загрузить значение перечисления моей обработкой, то это 1С 8.х и для этого нужно в Excel указать Идентификатор перечисления. Если же речь идет о доступе из VB к объектам 1С 77, то первым на ум приходит OLE. Есть статьи на эту тему, ключевой момент — в локальный контекст из OLE объекта можно получить только примитивные типы (строки, числа, даты).

    Reply
  10. REA

    Здравствуйте Александр! У нас 1С серверный вариант. Может это как то связано?

    Reply
  11. pal_alex

    (10) У меня тоже серверный — с этим не связано. Причина на 99% в том, что я описал. Запустите загрузку с компьютера, на котором установлен Excel 2000 или 2003 и все должно работать. Если вы работаете в терминале, то это значит, что Excel должен быть установлен на сервере или для загрузки нужно заходить в базу по сети и тогда обработка подхватит локальный Excel.

    Reply
  12. Снусмумрик

    В простейшем варианте работает. Что и требовалось. Спасибо

    Reply
  13. Doka13

    Для простых задач загрузки простых справочников сделано достаточно удобно. Спасибо за работу.

    Reply

Leave a Comment

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