gifts2017

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

Опубликовал Котэ Пруидзе (kote) в раздел Обработки - Универсальные обработки

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

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

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

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

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

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ЗагрузкаИзExcel
.1245758598 228,39Kb
18.01.13
1390
.1245758598 228,39Kb 1390 Скачать
МодифицированныйПример
.1253648094 85,50Kb
03.02.13
133
.1253648094 85,50Kb 133 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (Che) Коцюра (CheBurator) 23.06.09 16:12
на! ;-)
http://www.infostart.ru/projects/393/
а именно картинка http://www.infostart.ru/projects/data/0000393/images/large/fuzzy01.jpg
- так что вы - не первый велосипедист... ;-) практически все стоящее уже сваяно до вас... (а с учетом того, что приведенная ссылка - всего лишь сильно упрощенная часть бОльшего проекта - то и все остальное -тоже уже сделано...)
2. Сергей (Che) Коцюра (CheBurator) 23.06.09 16:14
Бегло посмотрел инструкцию юзеру - вроде так НА ПЕРВЫЙ ВЗГЛЯД ничего.. жить можно...
просто навскидку вопросы:
- если привязка соответствия поля сделана неправильно - есть возможность отменить? появляется отменгенная привязка в спсике непривязанных полей?
- есть такое хорошее юзабилити как сохранение сделанной настройки привязок полей в в иде "схемы" и в последующем автоопределение схемы при открытии эксельного файла?
- есть запоминание последней папки откуда открывался эксель?
- ну и т.д. - по юзабилити еще много чего можно рассказать... ;-)
3. Котэ Пруидзе (kote) 23.06.09 16:36
- если привязка соответствия поля сделана неправильно - есть возможность отменить? появляется отменгенная привязка в спсике непривязанных полей?
- да, появляется. Если попробовать назвать уже названное поле - прошлое название вернется в пул несопоставленных полей.

- есть такое хорошее юзабилити как сохранение сделанной настройки привязок полей в в иде "схемы" и в последующем автоопределение схемы при открытии эксельного файла?
- Нет. Такая мысль тоже была, но не все сразу - пользователям нужно срочно.. использовать уже можно.

- есть запоминание последней папки откуда открывался эксель?
- ну вроде это программировать не нужно. Оно и само так поступает - достаточно указать галочку у поля "НазваниеФайла" - Режим сохранения настройки.. Оно так и сделано.
4. Котэ Пруидзе (kote) 23.06.09 16:38
.. а именно картинка http://www.infostart.ru/projects/data/0000393/images/large/fuzzy01.jpg

Извиняюсь, конечно. Я на 8ке работал - тут вот пришлось столкнуться с 7кой. Долго искал хоть что нибудь типа меню.. наконец получилось это.
В общем, я не подсматривал. Честно.
5. Сергей (Che) Коцюра (CheBurator) 23.06.09 18:12
> - есть запоминание последней папки откуда открывался эксель?
- ну вроде это программировать не нужно. Оно и само так поступает - достаточно указать галочку у поля "НазваниеФайла" - Режим сохранения настройки.. Оно так и сделано.
- плохое решение имхо, если папка отсутствует/недоступна - она подставится
6. Котэ Пруидзе (kote) 24.06.09 00:17
- плохое решение имхо, если папка отсутствует/недоступна - она подставится

- тогда не понял, что имелось Вами ввиду. Если папка недоступна - тут хоть как поступай..
7. Сергей (Che) Коцюра (CheBurator) 24.06.09 01:31
доп проверка - при открытии обработки - "восстанавливаем" предыдущее значение. Проверяем на сущестование папки (более глубокие уровни доступа не смотрим) - если нет - берем папку пользователя.. примерно так...
8. Сергей (Che) Коцюра (CheBurator) 24.06.09 01:32
лучше скриншоты положит прямо в описание...
9. Виктор Левченко (lvictor58) 24.06.09 13:18
все ето конечно очень интересно и оригинально решено, но лишено универсализма. И как не крути - для других видов документов надо все прописывать по новому.

Не зря придумана технология xml-обмена!
10. Сергей (Che) Коцюра (CheBurator) 24.06.09 18:15
(9) не знаю возможности не посмотрев на xml визуально написать загрузку иксемеля...
11. Виктор Левченко (lvictor58) 25.06.09 16:28
(10) мой коммент несколько не в тему:
я вообще говорил, что рациональнее пользоваться при обмене данными не эксель, а эксемель файлами. И технология обмена создана спецами 1С. Под это заточена конфигурация "Конвертация данных", реализованая как на 7, так и на 8-й платформах, которая является прикладным решением для создания правил обмена. Та, которая на 8-ке более универсальна - она позволяет прописать правила обмена между не только разными окнфигурациями, но и конфами разных платформ. В правилах соответствия прописываются раз и навсегда как для выгрузки, так и для загрузки и не надо их каждый раз устанавливать в полях формы, да и много чего там есть еще - в часности идентификацию объектов можно осуществлять по наборам реквизитов, а не только тупо по коду, номеру или наименованию.

Мысль сводится к тому, что стоитли совершенствовать данный механизм если есть другие, более на данный момент совершенные. И не требующие наличие Экселя как у тех, кто отпрвляет данные так и у тех, кто их загруэает! В смысле лицензированного.
12. Алексей Плутенко (Noy) 25.06.09 16:57
(11) Звучит красиво, но на практике не работает. Всем нужно решение, позволяющее как автоматически загрузить данные, так и визуально их посмотреть/распечатать (что первично!) без каких-либо ухищрений.
Так что Ексель рулит.
13. dushelov (Душелов) 25.06.09 17:07
(11) >И не требующие наличие Экселя как у тех, кто отпрвляет данные так и у тех, кто их загруэает! В смысле лицензированного.

Так можно с файлами работать и без установленного экзеля!
14. Сергей (Che) Коцюра (CheBurator) 25.06.09 17:21
(11) да, конечно, согласен.. но есть ряд других соображений по обмену.. особенно когда работаешь с совершенно разношерстными покупателями - от мелких и крупных ИП до много паллетных отгрузок на сети...
15. Алексей (ua4fas) 26.06.09 23:29
+ Заявки от покупателей как были в экселе так и остаются в нём.
16. dushelov (Душелов) 26.06.09 23:35
(0) Автор, добавь сюда работу с экзелем без установленного экзеля ;)
С ВК и без них.
17. Котэ Пруидзе (kote) 01.07.09 15:00
(16) Вы имеете ввиду - через ADO?
====
PS. Извиняюсь, отсутствовал по причине небольшого отпуска ;)
18. Котэ Пруидзе (kote) 01.07.09 15:28
(9) > Не зря придумана технология xml-обмена!

Согласен, не зря. У нас просто данные присылают в Экселе, и все таблицы разные - как по составу полей так и по их порядку.. Вероятно вручную ведутся эти списки.
Проще придумать у меня не получилось.
Загрузка-выгрузка в XML здесь тоже не поможет - если бы из другой БД или иного постоянного источника грузилось, тогда можно было бы..
19. Виктор Левченко (lvictor58) 02.07.09 16:25
(18) Теперь и я получил возможность на практике заценить возможности этой обработки: у меня тоже появились клиенты которым надо загружать присылаемые в форме таблицы эксель данные в 1С. Как говорят: "На ловца и зверь бежит". И переубеждать их перейти на другой формат не никакой возможности - эти данные кем-то и где то набиваются вручную. Нормальная штука и свой плюс я уже давно поставил!
20. Котэ Пруидзе (kote) 05.07.09 04:08
(19) Нормальная штука и свой плюс я уже давно поставил!

Доброе слово - оно и кошке приятно, как говорится ;) К слову сказать, интересное это дело оказалось, - размещать здесь и смотреть, нужно людям то же, что и тебе, али нет..
В общем спасибо всем и, особенно, создателям ресурса за массу удовольствия от общения и предоставленные возможности. // извиняюсь за офтоп..
21. Петр Петров (Adoms) 03.09.09 14:17
почему то только два вида документов возможно загрузить? (
22. Котэ Пруидзе (kote) 04.09.09 11:18
to 21 (Adoms)
Эта разработка не "взял и начал работать" - а заготовка.. Там можно добавлять документы самому, в коде есть комментарии - и по аналогии с тем, что сделано, можно добавить свои виды документов..
23. Котэ Пруидзе (kote) 22.09.09 23:45
re 21: для примера добавил еще один файл.. правда там есть некоторые доработки - как то:
- устранение глюков при загрузке полей типа Дата (иногда некорректно импортировалось на форму)
- сравнения ФИО (это уже конкретная бизнеслогика) в справочнике Сотрудники и в загружаемом файле происходит после удаления всех пробелов и приведения символов к одному регистру (полезная техника оказалась при сравнении текстовых значений из разных источников)
- появились поля на форме - дата начала и конца - для возможности брать данные не из файла, а указавать их вручную.. ну и др. мелочи :)
24. Анна (Nysika) 17.12.09 16:59
Очень удобно сопоставлять столбцы +
25. Ирина Нечаева (Arin) 29.09.11 18:24
26. Леха Гордеев (X-morph) 28.11.11 09:28
так это только для конфигурации ЗиК? Господа разработчики, указывайте назначение своих разработок точнее пожалуйска, дабы по незнанию не тратить рейтинг на скачивание.
27. Котэ Пруидзе (kote) 22.12.11 04:06
(26) Это заготовка для программистов. Под конкретную базу нужно допиливать. Смысл использования - готовая обвязка и интерфейс, куда нужно добавить сам код конкретной загрузки.. Где-то так.
28. Алексей (alsoftik) 15.01.12 17:48
Спасибо, как пример очень помогло.
29. Максим (gorlanovmax) 22.01.12 23:34
И чего все ругают? Мне очень помогла. Никаких косяков не выявил
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа