Загрузка файла Excel в 1С с проработкой юзабилити

Универсиализированная обработка по 1С 7.7, позволяющая взять любой файлик Excel, открыть его, указать действие, которое нужно сделать, сопоставить поля экселя с предложенными и загрузить данные в 1С..

Если Вы посмотрите код, то найдете 2 места, для правок — куда нужно вносить изменения, когда будете добавлять свой тип документа для загрузки. Больше нигде ничего менять не нужно будет, думаю, в любой конфигурации.

Поработал над юзабилити. Как оцените сопоставление имен по 2м кликам в ТЗ на форме? — вроде такого нигде не встречал. Порядок нажатия на клавиши пользователем тоже не случаен, доступность кнопок зависит от того, на каком этапе обработки документа находится пользователь. Уже сопоставлнные поля пропадают из списка сопоставления и это видно пользователю — сколько ему еще осталось..

Есть небольшая защита «от дурака».. например, подсказывающая пользователю, что он уже грузил этот файл Excel в текущем сеансе работы и спрашивающая, уверен ли он что хочет загрузить данные снова; может понравится способ загрузки полей сопоставления в зависимости от выбранного вводимого документа (см. ПриОткрытии) — с указанием необходимых полей одной строкой (а второй аргумент там — это строка заголовка по умолчанию в указанном типе документов)

Оказались удобными функции создания ТЗ по строке с полями (СоздатьКолонкиТЗ), метод обработки ошибок, с промежуточным накоплением из в СЗ и вывод из по окончании работы обработки.

Не доделал: хотел еще написать проверку на типы данных перед загрузкой в БД. Руки не дошли.. ну да ладно.

Код по работе с Excel не мой, откуда он не знаю. Если знаете автора — подскажите, вставлю ссылку.

Пользователям нравится, надеюсь, Вам тоже облегчит работу эта заготовка.. Спасибо.

PS. Да, там используются неколько вызовов глоб функций, которые есть в любой 1С 7.7 конфигурации. (типа глРазложить() и т.п.).. В общем, у них название по типу: гл[ИмяФункции]..

29 Comments

  1. CheBurator

    на! 😉

    http://www.infostart.ru/projects/393/

    а именно картинка http://www.infostart.ru/projects/data/0000393/images/large/fuzzy01.jpg

    — так что вы — не первый велосипедист… 😉 практически все стоящее уже сваяно до вас… (а с учетом того, что приведенная ссылка — всего лишь сильно упрощенная часть бОльшего проекта — то и все остальное -тоже уже сделано…)

    Reply
  2. CheBurator

    Бегло посмотрел инструкцию юзеру — вроде так НА ПЕРВЫЙ ВЗГЛЯД ничего.. жить можно…

    просто навскидку вопросы:

    — если привязка соответствия поля сделана неправильно — есть возможность отменить? появляется отменгенная привязка в спсике непривязанных полей?

    — есть такое хорошее юзабилити как сохранение сделанной настройки привязок полей в в иде «схемы» и в последующем автоопределение схемы при открытии эксельного файла?

    — есть запоминание последней папки откуда открывался эксель?

    — ну и т.д. — по юзабилити еще много чего можно рассказать… 😉

    Reply
  3. kote

    — если привязка соответствия поля сделана неправильно — есть возможность отменить? появляется отменгенная привязка в спсике непривязанных полей?

    — да, появляется. Если попробовать назвать уже названное поле — прошлое название вернется в пул несоп

    Reply
  4. kote

    .. а именно картинка http://www.infostart.ru/projects/data/0000393/images/large/fuzzy01.jpg

    Извиняюсь, конечно. Я на 8ке работал — тут вот пришлось столкнуться с 7кой. Долго искал хоть что нибудь типа меню.. наконец получилось это.

    В общем, я не подсматривал. Честно.

    Reply
  5. CheBurator

    > — есть запоминание последней папки откуда открывался эксель?

    — ну вроде это программировать не нужно. Оно и само так поступает — достаточно указать галочку у поля «НазваниеФайла» — Режим сохранения настройки.. Оно так и сделано.

    — плохое решение имхо, если папка отсутствует/недоступна — она подставится

    Reply
  6. kote

    — плохое решение имхо, если папка отсутствует/недоступна — она подставится

    — тогда не понял, что имелось Вами ввиду. Если папка недоступна — тут хоть как поступай..

    Reply
  7. CheBurator

    доп проверка — при открытии обработки — «восстанавливаем» предыдущее значение. Проверяем на сущестование папки (более глубокие уровни доступа не смотрим) — если нет — берем папку пользователя.. примерно так…

    Reply
  8. CheBurator

    лучше скриншоты положит прямо в описание…

    Reply
  9. lvictor58

    все ето конечно очень интересно и оригинально решено, но лишено универсализма. И как не крути — для других видов документов надо все прописывать по новому.

    Не зря придумана технология xml-обмена!

    Reply
  10. CheBurator

    (9) не знаю возможности не посмотрев на xml визуально написать загрузку иксемеля…

    Reply
  11. lvictor58

    (10) мой коммент несколько не в тему:

    я вообще говорил, что рациональнее пользоваться при обмене данными не эксель, а эксемель файлами. И технология обмена создана спецами 1С. Под это заточена конфигурация «Конвертация данных», реализованая как на 7, так и на 8-й платформах, которая является прикладным решением для создания правил обмена. Та, которая на 8-ке более универсальна — она позволяет прописать правила обмена между не только разными окнфигурациями, но и конфами разных платформ. В правилах соответствия прописываются раз и навсегда как для выгрузки, так и для загрузки и не надо их каждый раз устанавливать в полях формы, да и много чего там есть еще — в часности идентификацию объектов можно осуществлять по наборам реквизитов, а не только тупо по коду, номеру или наименованию.

    Мысль сводится к тому, что стоитли совершенствовать данный механизм если есть другие, более на данный момент совершенные. И не требующие наличие Экселя как у тех, кто отпрвляет данные так и у тех, кто их загруэает! В смысле лицензированного.

    Reply
  12. Noy

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

    Так что Ексель рулит.

    Reply
  13. Душелов

    (11) >И не требующие наличие Экселя как у тех, кто отпрвляет данные так и у тех, кто их загруэает! В смысле лицензированного.

    Так можно с файлами работать и без установленного экзеля!

    Reply
  14. CheBurator

    (11) да, конечно, согласен.. но есть ряд других соображений по обмену.. особенно когда работаешь с совершенно разношерстными покупателями — от мелких и крупных ИП до много паллетных отгрузок на сети…

    Reply
  15. ua4fas

    + Заявки от покупателей как были в экселе так и остаются в нём.

    Reply
  16. Душелов

    (0) Автор, добавь сюда работу с экзелем без установленного экзеля 😉

    С ВК и без них.

    Reply
  17. kote

    (16) Вы имеете ввиду — через ADO?

    ====

    PS. Извиняюсь, отсутствовал по причине небольшого отпуска 😉

    Reply
  18. kote

    (9) > Не зря придумана технология xml-обмена!

    Согласен, не зря. У нас просто данные присылают в Экселе, и все таблицы разные — как по составу полей так и по их порядку.. Вероятно вручную ведутся эти списки.

    Проще придумать у меня не получилось.

    Загрузка-выгрузка в XML здесь тоже не поможет — если бы из другой БД или иного постоянного источника грузилось, тогда можно было бы..

    Reply
  19. lvictor58

    (18) Теперь и я получил возможность на практике заценить возможности этой обработки: у меня тоже появились клиенты которым надо загружать присылаемые в форме таблицы эксель данные в 1С. Как говорят: «На ловца и зверь бежит». И переубеждать их перейти на другой формат не никакой возможности — эти данные кем-то и где то набиваются вручную. Нормальная штука и свой плюс я уже давно поставил!

    Reply
  20. kote

    (19) Нормальная штука и свой плюс я уже давно поставил!

    Доброе слово — оно и кошке приятно, как говорится 😉 К слову сказать, интересное это дело оказалось, — размещать здесь и смотреть, нужно людям то же, что и тебе, али нет..

    В общем спасибо всем и, особенно, создателям ресурса за массу удовольствия от общения и предоставленные возможности. // извиняюсь за офтоп..

    Reply
  21. Adoms

    почему то только два вида документов возможно загрузить? (

    Reply
  22. kote

    to 21 (Adoms)

    Эта разработка не «взял и начал работать» — а заготовка.. Там можно добавлять документы самому, в коде есть комментарии — и по аналогии с тем, что сделано, можно добавить свои виды документов..

    Reply
  23. kote

    re 21: для примера добавил еще один файл.. правда там есть некоторые доработки — как то:

    — устранение глюков при загрузке полей типа Дата (иногда некорректно импортировалось на форму)

    — сравнения ФИО (это уже конкретная бизнеслогика) в справочнике Сотрудники и в загружаемом файле происходит после удаления всех пробелов и приведения символов к одному регистру (полезная техника оказалась при сравнении текстовых значений из разных источников)

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

    Reply
  24. Nysika

    Очень удобно сопоставлять столбцы +

    Reply
  25. Arin

    Спасибо!!!

    Reply
  26. X-morph

    так это только для конфигурации ЗиК? Господа разработчики, указывайте назначение своих разработок точнее пожалуйска, дабы по незнанию не тратить рейтинг на скачивание.

    Reply
  27. kote

    (26) Это заготовка для программистов. Под конкретную базу нужно допиливать. Смысл использования — готовая обвязка и интерфейс, куда нужно добавить сам код конкретной загрузки.. Где-то так.

    Reply
  28. alsoftik

    Спасибо, как пример очень помогло.

    Reply
  29. gorlanovmax

    И чего все ругают? Мне очень помогла. Никаких косяков не выявил

    Reply

Leave a Comment

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