С переодичностью раз в год, на меня падает задача, загрузить что-то эдакое из excel и каждый раз происходит мучительное вспоминание а как создать его COM, как там перебрать ячейки, найти "крайние", разобраться с форматированием... в какой-то момент лень таки победила и подкинула мне идею как перестать вспоминать - а именно: "Почему бы не загрузить файл целиком, в плоскую структуру, и потом просто выбрать данные запросом. Так родился этот справочник, встраиваемый в любую конфигурацию 8.2 c функционалом по загрузке excell файла в свои элементы.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Итак, после загрузки файлов(в форме выбора файлов используете множественный выбор) Вы получаете по одному элементу в справочнике для каждого файла, в табличной части которого, для каждой ячейки есть строка. Для каждой ячейки указано :
на каком листе она находится;
её координаты - номер строки и колонки в отдельных реквизитов;
текст который был в ячейке;
сумма или дата, в отдельных колонках, если в процессе загрузки они были распознаны;
формула забитая в ячейки;
цвет фона или шрифта.
Как мы можем всю эту радость использовать? Вам остается написать запрос который бы выбрал данные в нужной Вам форме и потом обработать результат. Лично я, для одноразовых загрузок использую консоль запроса с обработчиком, для чего-то более менее регулярного приходится накидывать уже более полноценные куски кода.
Во вложении, я к обработке кинул демо excel файл и sel который на примере демо бухгалтерии демонстрирует простоту работы данной методики.
Например, меня очень радует что я могу запросами проверить корректность файлов. Например, что при заполнении бюджета использовали корректные наименования статей затрат из справочника и.т.п.
Теперь немного о минусах:
файл грузится целиком, что может увеличивать время обработки - согласитесь, но работать без посредника будет быстрее. На этот аргумент, моя лень чихала. ) говорит что для регулярных обменах, где необходима оперативность надобно работьс xml.
для чтения файлов использует COMОбъект("Excel.Application") соответсвенно, для работы с управляемыми приложениями на сервере(или вашей тачке, клиент таки толстый) должен быть установлен MS Office. Но! если тема получит адекватный отзыв, моя лень заткнется и я перепишу что-бы читать xlsx напрямую.
В справочнике есть 2 набора форм, для Управляемого и Обычного приложения - устанавливайте по умолчанию как Вам необходимо в зависимости от ситуации.
Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, Магнит Маркет (быв.МагнитЭкспресс), Лемана про, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко, Каспи, Авито, Аптеки+ в документы "Отчет комиссионера (агента) о продажах" и другие.
Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:ERP.
Загрузка данных из Excel в 1С 8.3 одним кликом: документы, номенклатура, цены, прайсы и справочники без ручного ввода в УТ, КА, ERP, БП, УНФ и др. Попробуйте демо-версию бесплатно!
Обработки загрузки данных о продажах WildBerries предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3
Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.
Обработки загрузки данных о продажах Ozon предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3
Загружает данные из Акта приемки товара от ООО «Вайлдберриз», полученный из личного кабинета в формате *.xlsx или API в документ "Реализация (акты, накладные, УПД)" для конфигурации: Бухгалтерия предприятия, редакция 3.0, в документ "Реализация товаров и услуг" для Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP 2 Управление предприятием и в документ "Расходная накладная" для Управление нашей фирмой 3.0; Розница 3.0
Программа для распознавания сканов или фотографий товарных документов в 1С. Просто выбираете файл (PDF, XML, JPG, DOC, XLS, HTML) и нажимаете кнопку "Распознать и загрузить".
Загрузка данных отчета о реализации товаров из сервиса Lamoda «Ламода» для конфигурации: 1С:Бухгалтерия предприятия, редакция 3.0; 1C:Управление торговлей, редакция 11 и 1C:Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".
Мне кажется стоит поторговаться со своей совестью и прикрутить чтение файлов xlsx напрямую, не будет напрягов с наличием установленного пакета Office. Думаю, что идея оригинальна для нерегулярных загрузок.
Согласен - автору плюс. Как человек, допустим, который ищет подобную конкретную разработку, или просто идею, не вижу абсолютно никакого смысла лезть в какую-нибудь здоровую "самописную" подсистему, чтобы выделить в ней из кучи того что мне не нужно, малую толику того что нужно
При наличии Ctrl-C + Ctrl-V из Excel в 1С, имхо, тратить время на написание каких-то там COM-соединений для загрузки пары файлов раз в год - бессмысленно..
Ежели у вас загрузка по расписанию - еще было бы понятно.. Но для единичных файлов..
(16) RomanUzmov,
Создаете в обработке на форме табличный документ и тупо копируете туда данные Excel. В дальнейшем работаете только с этим табличным документом. Все. Никаких COM-объектов.
Если бы Вы привели только одну функцию поиска в файле Excel нужного вам зачения (find), то
это решило бы все проблемы. Такой метод/способ ЕСТЬ.
А так... просто трата времени и ресурсов.
Сопряжение 1С и Excel давно размусолено до самых последних "битов".
Уж даже не знаю, что там ещё можно нового найти?
Ничего личного.
1.Не работает в клиент-серверном варианте
2.Зачем нужен такой способ, если можно сразу обратиться запросом к экселю, считать нужные данные и не хранить их в базе
На счет красоты решения и целесообразности ради этого внесения изменений в конфу еще можно подумать.
А ведь всего лишь нужно: 1) Кусок кода для COM подключения 2) Циклом создается ТЗ и заполняется. 3) Обработка таблицы - хоть запросом, хоть чем. При желании это все выносится в шаблон. Выращивать базу элементами с ТЧ в десятки тысяч строк, как это бывает в прайсах, может быть, и не надо.
Коллеги, очень хочется потролить, но лень,и еще раз отвечая на вопрос "А НАФИГА???" -
я не люблю(мне лень) писать код, особенно связанный с выборкой данных. Я люблю запросы, они созданны только именно для этого, я пишу их быстро и с удовольствием.
Все остальные моменты которые меня радуют даже перечислять не буду. В шапке я упоминал. Решение не универсально, предназначенно для тех кто предпочитает окну конфигуратора консоль запросов + обработка.
На в клиент сервере работает при наличии на сервере excellя, в моменте - мне проще пойти и заставить админов поставить excell, чем парсить структуру xlsx - уверен вам тоже.
Решение "As Is" и не претендует "на истину в первой инстанции".
(23) Александр Серов, спасибо Александр за обработку, за идею! Можно хранить загруженные файлы (в смысле, из которых была загрузка). Чтобы потом была информация для "разбора полетов", когда, например, после загрузки задваивается номенклатура.
да каждая вторая обработка на инфостарте чтото делает с exceLL !! где загрузка и обработка таблиц из GOOGLE DOCS - я считаю это просто необходимо добавить в это разработку !! АФТАР ДОБАВЬ ПОЖАЛУЙСТА !!!