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

04.01.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ExcelExp
.epf 1,69Mb
284
284 Скачать (1 SM) Купить за 1 850 руб.

Достаточно хорошо известны различные способы загрузки данных из 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

См. также

SALE! 15%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 1C:Бухгалтерия 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С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С.

6000 5100 руб.

09.11.2016    242670    1117    910    

1046

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

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием. Возможность подключить любые маркетплейсы. Анализ продаж ОZON. 30 дней БЕСПЛАТНОГО пользования!

5400 руб.

12.08.2021    38107    408    68    

174

Загрузка и выгрузка в 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 1С:Розница 3.0 Платные (руб)

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

16800 руб.

20.11.2015    159549    392    378    

521

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

Обработки загрузки данных о продажах WildBerries предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3

4800 руб.

11.12.2019    59507    1017    3    

255

SALE! 30%

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

Кто получает документы в формате XML из различных сервисов ЭДО (формат 820 приказ ФНС 31 мая 2019) и набивает их вручную в 1С, тот наверняка хотел бы автоматизировать этот процесс. Поддержка конфигураций: Бухгалтерии 3, УПП 1.3, 1С:КА 2.4 и 1С:КА 2.5, УТ10, УТ11.4 и УТ11.5. Для бухгалтерии 3 добавлена поддержка формат 5.03 от 23/01/2025

3600 руб.

11.02.2020    94876    320    157    

232

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

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

11100 руб.

29.10.2014    218693    668    529    

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

Вообще, можно ведь добавить и другие штуки - служебные элементы интерфейса, которые помогут юзеру лучше определить множество нужных данных, разметить его (например, ассоциировать колонки экселя с данными 1С прямо в экселе, выбрать режимы, итд) - словом, простор интеграции.
TrinitronOTV; +1 Ответить
6. TrinitronOTV 16 13.11.14 14:03 Сейчас в теме
7. Platon777 14.11.14 11:06 Сейчас в теме
Отличная штука! Сделаю в ней ещё себе ещё поле с выполнением произвольного кода 1С в "пользвательском" - вообще тогда ничего для Excel не нужно ...
8. ixijixi 1992 15.11.14 00:08 Сейчас в теме
Ну что могу сказать... Грандиозно!
9. Yashazz 4833 18.11.14 02:14 Сейчас в теме
Управляемая форма этой поделки кому-нибудь нужна? А то скоро сделаю, могу выложить.
10. bugagashenka 203 18.11.14 05:26 Сейчас в теме
(9) выкладывайте, наверняка понадобится
20. Yashazz 4833 27.11.14 14:58 Сейчас в теме
Таки сделал настройку чтения по колонкам.
(10), (11) - УФ будет не раньше середины декабря, я совсем закопался в текучке, прошу извинить.
21. CratosX 115 27.11.14 20:03 Сейчас в теме
(20) подпишусь и скачаю при апдейте, круто выглядит
23. fomix 33 02.12.14 11:43 Сейчас в теме
(21) Наверняка хорошая штука. Просьба к автору - сделай обработку 2in1 для обычных форм и под УФ, чтобы не плодить клоны. Заранее спасибо!
24. Yashazz 4833 02.12.14 13:38 Сейчас в теме
(23) fomix, только после 10 декабря. Собсно, так и собирался, 2 в 1.
11. UncleVader 129 19.11.14 09:37 Сейчас в теме
37. galich 166 24.12.14 14:18 Сейчас в теме
(9) УФ нужна. Спасибо. Интересная разработка.
12. Famza 85 19.11.14 11:04 Сейчас в теме
13. Famza 85 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 4833 19.11.14 14:43 Сейчас в теме
(13) Famza, проверьте, а правильно ли определилась версия. У меня вызывает подозрение HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\ в пути ключа. Может, у Вас 8.0 или что-то подобное?
Я это определяю динамически, но вдруг определялка лажает или там не прямая связь с версией офиса?
jobkostya1c_ERP; +1 Ответить
14. Goruch 19 19.11.14 11:30 Сейчас в теме
Даа, круто. Однозначно плюс.
15. PrinzOfMunchen 84 19.11.14 12:16 Сейчас в теме
Да, тоже когда-то так делал, но чисто для себя. ))
17. eugeniezheludkov 45 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 4833 27.11.14 14:57 Сейчас в теме
(17) eugeniezheludkov, то, что "установка низкого уровня безопасности" - поосторожничал я, обычно и без этого работает. Насчёт отсутствия ключа разрешения работы с VB, надо ещё курить мануалы, навскидку не отвечу. Но это довольно частый вопрос и распространённая проблема, мелкомягкие до сих пор боятся "страшных макровирусов" и запрещают всё на свете.

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

Человек сделал хорошую разработку и пытается ее продемонстрировать другим, однако сделать нормальные скриншоты религия, видимо, не позволяет ... Ну вот зачем делать изображение каких то данных и потом замазывать из них 90%? Неужели нельзя взять файлик, налупить туда абсолютно сторонней информации и демонстрировать?
22. WhiteOwl 448 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 684 10.12.14 21:06 Сейчас в теме
Там, знаете ли, и формулы могут оказаться, и жуткие объединённые ячейки, и вообще размер области иной раз такой, что копипастится десятки минут
И как все эти поднятые проблемы решает данная обработка? Баян.
29. Yashazz 4833 11.12.14 20:07 Сейчас в теме
(28) Очень просто: половина головной боли решается средствами экселя на стороне экселя БЕЗ какого-либо com-соединения, ДО того, как начинать игры с обменом. А размер области, учитывая, что у меня ADO-чтение, не сильно играет роль.

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

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

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

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

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

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

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

А вообще, господа, выглядите вы как два толстых завистливых тролля. Нелицеприятно то бишь. А посему я лучше буду тратить время на доводку своей поделки под УФ, нежели с вами общаться, и просьба своим антиконструктивом тут не мусорить. Вы наверняка сейчас попробуете, чтобы последнее словцо осталось за вами, ну так вот я отвечать вам и не стану)
jobkostya1c_ERP; +1 Ответить
35. KKelena 16.12.14 10:21 Сейчас в теме
под УФ нужна такая обработка
38. Yashazz 4833 04.01.15 15:06 Сейчас в теме
Сделал УФ, наконец-то дошли руки. Обычная форма переделана идеологически под работу с конкретным документом, с привязкой к его табчастям и их реквизитам; для УФ было влом. Кроме того, обычная форма теперь может цепляться как "заполнение". Если кому сильно надо, могу сделать такое же под УФ БСП 8.3
40. jobkostya1c_ERP 101 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 4833 08.01.15 19:53 Сейчас в теме
(40) Не очень понял, надо ли что-то отвечать))
(43) Вообще есть, говорят, интерфейсный способ всё включить, без реестра. Доступен любому юзверю и вроде даже не с админскими правами. Могу узнать подробнее. Единственно что, под восьмую винду не знаю, в силе ли это. Сам на Win2008 Server работаю или на семёрке.
Насчёт формата мануала - да вроде обычный текст или пакетник-chm. Если CHM, то сохранить куда угодно и запустить, как исполняемую прогу.
jobkostya1c_ERP; +1 Ответить
45. jobkostya1c_ERP 101 08.01.15 21:17 Сейчас в теме
(44) елки-палки CHM. Когда сложный материал уже забываешь что смотрел :) Отдыхать надо на праздниках, а не 1С мучить :)
39. jobkostya1c_ERP 101 08.01.15 14:55 Сейчас в теме
Попробую под что-нибудь переделать обработку загрузки из Екселя.
41. jobkostya1c_ERP 101 08.01.15 18:14 Сейчас в теме
Много компактных технологии по связи с Екселем. Вот если придется что-то подправить?
42. jobkostya1c_ERP 101 08.01.15 18:24 Сейчас в теме
Все-таки цели таких обработок - чтоб пользователь где угодно что угодно зажевал. Дальше что сам ексель сделал половину работы.
Как-то была самая простая. По тому же древнему "Excel.Application" все "проглотить" в 1С. Указать с каких колонок перед этим по номерам и с каких строк что куда (формат если приходится подгонять).
За вот этот фильтр отдельный плюс
рЗапретные="?,=\|:;&""@#$^!~`'[]{}№+-/*%()<>"+Символы.ВК+Символы.ВТаб+Символы.НПП+Символы.ПС+Символы.ПФ+Символы.Таб;
Сколько с ним бились все время. Каждый раз заново.
Все-таки цель повторюсь хоть как-то зажевать файл-источник. В моем случае кучу прайсов поставщиков и потом руками сопоставлять. Благо не тысячи величин.
Короче...Веселая обработка. Автору большой плюс. Прям она с этими перехватами событий (которые еще нужно запустить) и VBS который полезно знать теперь (про скрипты уже молчу).
Сначала помучиться запускать-исследовать и только потом увидеть подробное описание всех действий и технологий :)
46. German_Tagil 43 14.08.19 06:55 Сейчас в теме
подумаю - надо потестировать
47. andryandry 100 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 соединений. Вообще не понимаю, зачем для чего и почему.
Оставьте свое сообщение