Нестандартная загрузка из Excel

04.01.15

Интеграция - Загрузка и выгрузка в Excel

Взгляд на привычную задачу под неожиданным углом - пусть пользователь прямо в Excel решает, что ему надо, и грузит в 1С только нужное. Установите любой отбор, выделите фрагмент, и вот он уже в 1С. Для обычных и УФ 8.3

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

Наименование Файл Версия Размер
ExcelExp
.epf 1,69Mb
283
.epf 1,69Mb 283 Скачать

Достаточно хорошо известны различные способы загрузки данных из MS Excel 97-2010, а именно - COM-соединение, ADO, COMSafeArray и прочие извраты; но почти все их реализации для 1С совпадают в одном. Из 1С указывается, какой файл и лист(ы) интересуют пользователя, после чего выполняется некий явный или скрытый вызов, обращение, читающее данные в 1С. В ряде случаев уже на стороне 1С предполагается разбирательство с прочитанными данными, их дальнейшая обработка и анализ.

Но что, если пользователю сложно/неинтересно копаться в наворотах обработки-загрузчика на стороне 1С? Или если у вас нет времени делать такие навороты с прочитанными данными, а пользователь прекрасно владеет экселем, умеет сам ставить там нужные отборы? Если пользователь в принципе хочет определить множество данных, подлежащих загрузке в 1С, на стороне экселя и чисто его средствами?

Оговорюсь, речь не идёт о копипасте простой области в mxl, откуда уже можно прочитать. Там, знаете ли, и формулы могут оказаться, и жуткие объединённые ячейки, и вообще размер области иной раз такой, что копипастится десятки минут.

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

Важно: вы можете использовать любой отбор, отфильтровать данные и просто выделить их. Отбор по значению, цвету, шрифту - всё к вашим услугам. Потом выделяете получившееся, мышкой или клавиатурой, и нажимаете спецкнопку - и все данные уже в 1С именно согласно отбору. См. картинки с 4 по 7.

Обновление: добавлена возможность указать конкретные колонки-приёмники в 1С, и сопоставить им столбцы в экселе. Если задействован этот режим (указана хоть одна колонка), читаются только данные из сопоставленных столбцов (т.е. Select F1..FN, а не Select *). См. картинки 8 и 9.

 

Техническая реализация:

1. Обработка 1С запускает com-соединение экселя с указанным файлом, добавляя в код проекта свой модуль и процедуры обработки событий, в инструментальную панель свои кнопки, и цепляя подписки на штатные события экселя;

2. Нажатие кнопки чтения выделенного фрагмента вызывает событие, перехватываемое обработкой 1С, где и происходит считывание средствами ADO. Считываются все ячейки выделенного фрагмента, их значения приводятся к строковым (IMEX=1), хотя можно и более внимательно рассмативать типы. Условий в запросе ADO нет.

3. Все считываемые данные вносятся в единую таблицу значений согласно их абсолютным адресам в исходном файле. Нумерация строк и колонок таблицы идёт с разрывами, таблица содержит только прочитанное (без пустот между ними). Если используется чтение по колонкам, читаются только данные из столбцов, сопоставленных колонкам 1С.

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

5. Попытка сохранения изменений заблокирована, чтобы всё добавленное в п.1 не сохранилось навечно (принудительную удалялку добавленных фич я не писал, но это несложно сделать). Попытка закрытия перехватывается 1С.

6. Всё вышеперечисленное возможно при наличии доступа к VB IDE, что проверяется в реестре и,  при необходимости и наличии прав у пользователя, может включаться/выключаться.

Далее заполнения таблицы значений ничего не делал - т.к. публикация рассчитана на разработчиков, то думаю, коллеги, все сами смогут распорядиться прочитанными данными по своему усмотрению.

Собственно, можно обойтись и без ADO, это мне захотелось так сделать; на идее реализации способ чтения не сказывается.

UPD: сделана версия для УФ 8.3 с учётом модной нынче немодальности.

Кто найдёт баги - сообщайте, буду оперативно дорабатывать.

p.s. А всё просто потому, что мне поставили задачу "загрузить из экселя", брать готовую (свою или чужую) выходило громоздко, а писать в сотый раз одни и те же баяны уже не было сил. Вот и захотелось извратиться)))

excel загрузка эксель считывание из excel чтение из excel

См. также

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    209832    620    524    

438

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150387    365    375    

499

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

5400 руб.

04.06.2019    101140    296    173    

312

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

3600 руб.

07.06.2022    14956    78    0    

59

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 руб.

09.11.2016    214616    921    886    

938

Универсальная загрузка остатков и цен поставщиков в 1С (УТ 11, КА 2, ERP 2.0) из файлов Excel, CSV, XML (YML и CML)

Прайсы Оптовая торговля Розничная торговля Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

12000 руб.

23.01.2017    58796    59    48    

67
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4707 12.11.14 17:41 Сейчас в теме
Да, ещё что забыл: работа под Excel 2003 и древнее предполагается, но не гарантируется (не тестировал).
2. stanru1 91 12.11.14 18:06 Сейчас в теме
Идея понравилась, спасибо!
3. Pasha1st 837 12.11.14 23:10 Сейчас в теме
Очень интересное решение! + за оригинальный подход.
4. TrinitronOTV 14 13.11.14 05:54 Сейчас в теме
Это всё хорощо конечно, но вот у меня в некоторых случаях есть необходимость при загрузке данных определять ещё цвет шрифта для решения вопроса загружать эти данные или нет, так что практически все методы отпадают...
5. Yashazz 4707 13.11.14 08:41 Сейчас в теме
(4) TrinitronOTV, идею это не отменяет - можно ДО обмена в экселе поймать строки с нужным шрифтом, скриптом выделить их в selection и уж его грузануть. В том и фишка, что это гораздо проще выяснить средствами самого экселя, а не при обмене. Можно в скрипте прописать вызов события, на которое подписана 1С, тогда вообще не кнопку жамкать, а любые нужные области сразу перекидывать.

Вообще, можно ведь добавить и другие штуки - служебные элементы интерфейса, которые помогут юзеру лучше определить множество нужных данных, разметить его (например, ассоциировать колонки экселя с данными 1С прямо в экселе, выбрать режимы, итд) - словом, простор интеграции.
TrinitronOTV; +1 Ответить
6. TrinitronOTV 14 13.11.14 14:03 Сейчас в теме
7. Platon777 14.11.14 11:06 Сейчас в теме
Отличная штука! Сделаю в ней ещё себе ещё поле с выполнением произвольного кода 1С в "пользвательском" - вообще тогда ничего для Excel не нужно ...
8. ixijixi 1761 15.11.14 00:08 Сейчас в теме
Ну что могу сказать... Грандиозно!
9. Yashazz 4707 18.11.14 02:14 Сейчас в теме
Управляемая форма этой поделки кому-нибудь нужна? А то скоро сделаю, могу выложить.
10. buganov 200 18.11.14 05:26 Сейчас в теме
(9) выкладывайте, наверняка понадобится
20. Yashazz 4707 27.11.14 14:58 Сейчас в теме
Таки сделал настройку чтения по колонкам.
(10), (11) - УФ будет не раньше середины декабря, я совсем закопался в текучке, прошу извинить.
21. CratosX 112 27.11.14 20:03 Сейчас в теме
(20) подпишусь и скачаю при апдейте, круто выглядит
23. fomix 33 02.12.14 11:43 Сейчас в теме
(21) Наверняка хорошая штука. Просьба к автору - сделай обработку 2in1 для обычных форм и под УФ, чтобы не плодить клоны. Заранее спасибо!
24. Yashazz 4707 02.12.14 13:38 Сейчас в теме
(23) fomix, только после 10 декабря. Собсно, так и собирался, 2 в 1.
11. UncleVader 129 19.11.14 09:37 Сейчас в теме
37. galich 162 24.12.14 14:18 Сейчас в теме
(9) УФ нужна. Спасибо. Интересная разработка.
12. Famza 84 19.11.14 11:04 Сейчас в теме
13. Famza 84 19.11.14 11:17 Сейчас в теме
Ошибка при определении доступности обмена; возможно, у Вас нет права даже на чтение системного реестра!
ОпределитьДоступностьОбмена: {Форма.ОсновнаяФорма.Форма(194)}: Ошибка при вызове метода контекста (RegRead): Произошла исключительная ситуация (WshShell.RegRead): Не удается открыть для чтения раздел реестра "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\AccessVBOM".
Обратитесь к Вашему системному администратору!

Ось ХР СП3, 1С 8.3.5.1248, права админа. Ось не поддерживается?
16. Yashazz 4707 19.11.14 14:43 Сейчас в теме
(13) Famza, проверьте, а правильно ли определилась версия. У меня вызывает подозрение HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\ в пути ключа. Может, у Вас 8.0 или что-то подобное?
Я это определяю динамически, но вдруг определялка лажает или там не прямая связь с версией офиса?
jobkostya1c_ERP; +1 Ответить
14. Goruch 7 19.11.14 11:30 Сейчас в теме
Даа, круто. Однозначно плюс.
15. PrinzOfMunchen 83 19.11.14 12:16 Сейчас в теме
Да, тоже когда-то так делал, но чисто для себя. ))
17. eugeniezheludkov 43 26.11.14 09:25 Сейчас в теме
Ошибка при определении доступности обмена; возможно, у Вас нет права даже на чтение системного реестра!
ОпределитьДоступностьОбмена: {Форма.ОсновнаяФорма.Форма(194)}: Ошибка при вызове метода контекста (RegRead): Произошла исключительная ситуация (WshShell.RegRead): Не удается открыть для чтения раздел реестра "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\AccessVBOM".
Обратитесь к Вашему системному администратору!

у меня в реестре ветка не так выглядит: есть HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\Trusted Documents, но нет HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\AccessVBO.
Полный офис, лицензионный. Бил Гейтс лично приезжал ставил. Так понимаю без этого ключа, данная обработка, не будет работать у всех 9000 или 10000 пользователей, при таком количестве лучше юзать типовые ?
ПС во всех компаниях где работал в домене, права у пользователя на компьютере совсем не админские, что так же накладывает ограничение на "установка низкого уровня безопасности (применится после перезапуска Excel!)" в коде :(
jobkostya1c_ERP; +1 Ответить
19. Yashazz 4707 27.11.14 14:57 Сейчас в теме
(17) eugeniezheludkov, то, что "установка низкого уровня безопасности" - поосторожничал я, обычно и без этого работает. Насчёт отсутствия ключа разрешения работы с VB, надо ещё курить мануалы, навскидку не отвечу. Но это довольно частый вопрос и распространённая проблема, мелкомягкие до сих пор боятся "страшных макровирусов" и запрещают всё на свете.

(18) Упрёк про замазывание в общем-то справедлив, но вот поверьте - не могу "взять и налупить"; либо конфиденциалка, либо времени совсем йок, либо недостоверно выходит. Не умею я высасывать из пальца красивые демо-данные.
Какие ещё претензии к скриншотам, кроме замазывания?
43. jobkostya1c_ERP 100 08.01.15 19:13 Сейчас в теме
(19) тут насчет этого самого
Насчёт отсутствия ключа разрешения работы с VB, надо ещё курить мануалы
Тут точно даже библиотека BBide.dll не регистрируется. Кстати сам мануал в обработке в каком формате?
Прикрепленные файлы:
18. ValeriTim 20 27.11.14 10:40 Сейчас в теме
Знаете что меня раздражает в подобных постах?

Человек сделал хорошую разработку и пытается ее продемонстрировать другим, однако сделать нормальные скриншоты религия, видимо, не позволяет ... Ну вот зачем делать изображение каких то данных и потом замазывать из них 90%? Неужели нельзя взять файлик, налупить туда абсолютно сторонней информации и демонстрировать?
22. WhiteOwl 427 28.11.14 10:33 Сейчас в теме
25. пользователь 09.12.14 14:21
Сообщение было скрыто модератором.
...
26. SemenovaMarinaV 09.12.14 15:46 Сейчас в теме
27. SemenovaMarinaV 09.12.14 15:47 Сейчас в теме
Жду под управляемые формы
28. qwinter 671 10.12.14 21:06 Сейчас в теме
Там, знаете ли, и формулы могут оказаться, и жуткие объединённые ячейки, и вообще размер области иной раз такой, что копипастится десятки минут
И как все эти поднятые проблемы решает данная обработка? Баян.
29. Yashazz 4707 11.12.14 20:07 Сейчас в теме
(28) Очень просто: половина головной боли решается средствами экселя на стороне экселя БЕЗ какого-либо com-соединения, ДО того, как начинать игры с обменом. А размер области, учитывая, что у меня ADO-чтение, не сильно играет роль.

Но я соглашусь с Вами в части баянности, если вы в обоснование своей оценки подкинете ссылку на именно такой подход, чтобы с оператором "ДобавитьОбработчик" и автовстраиванием функционала подготовки чтения в сам эксель. Жду с нетерпением)))
30. qwinter 671 12.12.14 10:08 Сейчас в теме
(29) а какой смысл в встраивании, если все это уже много лет решалось копированием в область табличного документа в 1С? Причем никаких тормазов с копированием нет. Все копируется очень быстро, и все хорошо, как со скрытыми строками, так и с формулами, то есть Вы своей статьей вводите в заблуждение читателей, которые теперь считают, что при копировании области в 1С есть какие то проблемы с формулами и скрытыми ячейками. Причем копирование, а затем чтение построителем происходит даже чуть быстрее, чем чтение ADO, разница там очень минимальная и появляется на очень больших объемах данных (документ 12 колонок, 500000 строк - копирование - 20 секунд, чтение построителем - 127с, чтение ADO - 177с). Безусловно метод копирования тоже имеет изъяны. У 1С есть проблемы с отображением очень больших табличных документов (более 6.5 миллионов ячеек) и она валится с ошибкой памяти. Но куда будет загружать пользователь такой объем данных? Для сравнения это полностью заполненная табличная часть документа с 66 колонками. Сможете назвать хоть один документ в типовых или отраслевых с таким количеством колонок?
31. Yashazz 4707 15.12.14 19:38 Сейчас в теме
(30) qwinter, не найдя аналогов, позволяющих упрекнуть меня в баянизме, вы решили перейти к тональности наезда) В заблуждение я ввожу, ага))) Какой я нехороший.

Что, неужели вы думаете, все пользователи экселя освоили дзен выделения только тех строк, что удовлетворяют отбору? Большинство выделит прямоугольный фрагмент как обычно ("что вижу, то беру"), и в него попадут строки, которых юзеру было не надо. Аналогично, проблема с формулами не в том даже, что их данные как-то криво попадут, а в том, что работа с ними будет идти на стороне 1С, в отрыве от контекста. Проблемы, о которых я говорю, не программно-технические, а операционно-технологические, вероятность ошибки выше, а средств диагностики меньше - при копировании все связи с исходной книгой обрываются, контекст теряется.

Ну и повторюсь - нет смысла купить в магазине всё, надрываясь тащить домой, и дома разбираться, что надо и что лишнее.

Кстати, спасибо, что напомнили. В лохматые времена я опубликовал действительно баян, как раз на эту тему: http://infostart.ru/public/78817/ - так что плюсы и минусы способа копирования знаю не понаслышке.
32. qwinter 671 15.12.14 21:45 Сейчас в теме
qwinter, не найдя аналогов, позволяющих упрекнуть меня в баянизме, вы решили перейти к тональности наезда) В заблуждение я ввожу, ага))) Какой я нехороший.
Мой вопрос предельно точно был задан в моем первом сообщении. Но Вы вместо ответа прицепились, к слову "баян". Ваша обработки никаким образом не решает, Вами же самим озвученные проблемы.
Что, неужели вы думаете, все пользователи экселя освоили дзен выделения только тех строк, что удовлетворяют отбору? Большинство выделит прямоугольный фрагмент как обычно ("что вижу, то беру"), и в него попадут строки, которых юзеру было не надо.
Что в данном случае меняет использование Вашей обработки?
Аналогично, проблема с формулами не в том даже, что их данные как-то криво попадут, а в том, что работа с ними будет идти на стороне 1С, в отрыве от контекста.
Вы заблуждаетесь, и продолжаете вводить в заблуждение тех кто Вас читает. При копировании читаются уже рассчитанные данные ячейки, для этого используется то же самое ADO-соединение, которое используете Вы.
34. AlexO 135 16.12.14 09:40 Сейчас в теме
(32) qwinter,
Ваша обработки никаким образом не решает, Вами же самим озвученные проблемы.

Согласен полностью.
для этого используется то же самое ADO-соединение

Копи-паста работает по ADO? Я что-то сомневаюсь ))
33. AlexO 135 16.12.14 09:30 Сейчас в теме
(0) Вот сразу резануло - "нестандартная загрузка в Excel".
А какая стандартная? А почему эта - нестандартная? Не средствами 1С? А если средствами 1С - то какое там может быть принципиальное отличие от "стандартных"?
Важно: вы можете использовать любой отбор, отфильтровать данные и просто выделить их. Отбор по значению, цвету, шрифту - всё к вашим услугам. Потом выделяете получившееся, мышкой или клавиатурой, и нажимаете спецкнопку - и все данные уже в 1С именно согласно отбору.

Каким образом Excel "рааскажет" 1С, какие типы данных использовать? Кто создаст нужную типизацию? Не говоря уже о контроле за корректностью передачи.
Согласен с qwinter - обработка не решает ни одну из поднятых проблем лучше, чем прямая "тупая" копи-паста в MXL.
Да плюс к этому, н асамом деле - чуть ли не открытым текстом ввод в заблуждение:
"Человек сделал хорошую разработку"
"Наверняка хорошая штука"...
36. Yashazz 4707 16.12.14 21:06 Сейчас в теме
(33) AlexO, обработка - это пример. А концепция поднятые вопросы позволяет решить проще, нежели через COM, и это очевидный факт. Типизацию можно рулить, в т.ч. из настроек. Контроль корректности на совести АДО-запроса. Почему "нестандартная" - я уже сказал, читайте внимательно; или покажите мне аналогичные разработки) Концепция позволяет решать вопросы качественно иначе, нежели копипаста.

А вообще, господа, выглядите вы как два толстых завистливых тролля. Нелицеприятно то бишь. А посему я лучше буду тратить время на доводку своей поделки под УФ, нежели с вами общаться, и просьба своим антиконструктивом тут не мусорить. Вы наверняка сейчас попробуете, чтобы последнее словцо осталось за вами, ну так вот я отвечать вам и не стану)
jobkostya1c_ERP; +1 Ответить
35. KKelena 16.12.14 10:21 Сейчас в теме
под УФ нужна такая обработка
38. Yashazz 4707 04.01.15 15:06 Сейчас в теме
Сделал УФ, наконец-то дошли руки. Обычная форма переделана идеологически под работу с конкретным документом, с привязкой к его табчастям и их реквизитам; для УФ было влом. Кроме того, обычная форма теперь может цепляться как "заполнение". Если кому сильно надо, могу сделать такое же под УФ БСП 8.3
40. jobkostya1c_ERP 100 08.01.15 18:13 Сейчас в теме
(38) довольно интересная обработка. По ней много вопросов.
1. Это что за системный параметр "VBIDE"? Используется как ключ реестра для определения пути
рКлюч="HKEY_CURRENT_USER\Software\Microsoft\Office\"+мВерсияЭкселя+"\Excel\Security\AccessVBOM";
Может как-то в винде включать VB. Обработка то для простых пользователей нужна. Я про то, что используется объект винды, который придется изучать
шелл=Новый COMОбъект("WScript.Shell");
. Настала необходимость. Видимо, версия Windows 8 у нее свой ключ.
Дальше вначале ввело в ступор использование зарезервированных слов без кода:
ДобавитьОбработчик рКнигаЭксель.BeforeClose, ПередЗакрытиемКнигиЭкселя;	
	ДобавитьОбработчик рКнигаЭксель.BeforeSave, ПередЗаписьюКнигиЭкселя;
	ДобавитьОбработчик рЛист.Change, ПриИзмененииЛиста;
Хорошо в 1С справка есть :)
И, конечно код VBA для екселя непонятен, если не знаешь особо.
|Public Sub SetColumnRoleOf1C()
	|	On Error Resume Next
	|	'taking neigther action nor event in 1C, just tuning
	|	Set CurBtn=Application.CommandBars.ActionControl
	|	Set colCell=Application.Selection.Cells(1, 1)
	|	oldColNum=Trim(CurBtn.Parameter)
	|	newColNum=CStr(colCell.Column)
	|	If oldColNum<>"""" and oldColNum<>newColNum Then
	|		If msgbox(""Колонке <""+Trim(CurBtn.Tag)+""> уже сопоставлен столбец ""+oldColNum+"", переприсвоить?"",4,""Уже указано!"")=7 Then Exit Sub 'no
	|	End If
	|	CurBtn.Parameter=newColNum
	|	CurBtn.Caption=Trim(CurBtn.Tag)+"" (кол.""+newColNum+"")""
	|End Sub
Показать
Хорошо хоть догадаться можно :)
Тоже интересна технология работы с обработчикам уже внешнего объекта Екселя:
Попытка
	Если СокрЛП(мЭксель.CommandBars("LoadDataTo1C").Controls(1).Tag)<>"ToDo:Close" Тогда
		Отказ=Истина; // "спасибо" уродам из 1С, лишившим нас возможности передачи прямого контекста в обработчик завершения НЕ-модального вызова
		ОтключитьРаботуСЭксель(Команды.Найти("ОтключитьРаботуСЭксель")); // и ещё "спасибо" за невозможность написать Команды.<ИмяКоманды>
	КонецЕсли;
Исключение
	// ничего не будем делать
КонецПопытки;

Это уже сами события Екселя.
Так в целом понятно, что есть фильтр на недопустимые знаки, динамическое считывание. Хотел уже через ADO только сделать доступ, но увидел что для него тоже есть поддержка.
44. Yashazz 4707 08.01.15 19:53 Сейчас в теме
(40) Не очень понял, надо ли что-то отвечать))
(43) Вообще есть, говорят, интерфейсный способ всё включить, без реестра. Доступен любому юзверю и вроде даже не с админскими правами. Могу узнать подробнее. Единственно что, под восьмую винду не знаю, в силе ли это. Сам на Win2008 Server работаю или на семёрке.
Насчёт формата мануала - да вроде обычный текст или пакетник-chm. Если CHM, то сохранить куда угодно и запустить, как исполняемую прогу.
jobkostya1c_ERP; +1 Ответить
45. jobkostya1c_ERP 100 08.01.15 21:17 Сейчас в теме
(44) елки-палки CHM. Когда сложный материал уже забываешь что смотрел :) Отдыхать надо на праздниках, а не 1С мучить :)
39. jobkostya1c_ERP 100 08.01.15 14:55 Сейчас в теме
Попробую под что-нибудь переделать обработку загрузки из Екселя.
41. jobkostya1c_ERP 100 08.01.15 18:14 Сейчас в теме
Много компактных технологии по связи с Екселем. Вот если придется что-то подправить?
42. jobkostya1c_ERP 100 08.01.15 18:24 Сейчас в теме
Все-таки цели таких обработок - чтоб пользователь где угодно что угодно зажевал. Дальше что сам ексель сделал половину работы.
Как-то была самая простая. По тому же древнему "Excel.Application" все "проглотить" в 1С. Указать с каких колонок перед этим по номерам и с каких строк что куда (формат если приходится подгонять).
За вот этот фильтр отдельный плюс
рЗапретные="?,=\|:;&""@#$^!~`'[]{}№+-/*%()<>"+Символы.ВК+Символы.ВТаб+Символы.НПП+Символы.ПС+Символы.ПФ+Символы.Таб;
Сколько с ним бились все время. Каждый раз заново.
Все-таки цель повторюсь хоть как-то зажевать файл-источник. В моем случае кучу прайсов поставщиков и потом руками сопоставлять. Благо не тысячи величин.
Короче...Веселая обработка. Автору большой плюс. Прям она с этими перехватами событий (которые еще нужно запустить) и VBS который полезно знать теперь (про скрипты уже молчу).
Сначала помучиться запускать-исследовать и только потом увидеть подробное описание всех действий и технологий :)
46. German_Tagil 42 14.08.19 06:55 Сейчас в теме
подумаю - надо потестировать
47. andryandry 94 13.08.20 09:51 Сейчас в теме
48. retr0 03.06.21 08:49 Сейчас в теме
Достаточно хорошо известны различные способы загрузки данных из MS Excel 97-2010, а именно - COM-соединение, ADO, COMSafeArray и прочие извраты
- Поэтому я решил сделать все сразу, вот вам и COM и ADO сразу. А еще тупа ничего нового не привнес, исключительно зачем-то вынес в 1С часть интерфейса Excel - Genius Genius..... Шли годы, люди продолжали пилить кучу обработок обмена с Excel путем com соединений. Вообще не понимаю, зачем для чего и почему.
Оставьте свое сообщение