Универсальная загрузка любых документов из Excel с использованием нечеткого сравнения по реквизиту типа "Справочник"

04.09.09

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

В помощь антиглобалистам!
Для мелких и очень мелких 1С - это дорого (ноутбук стоит дешевле). Поэтому практикуется такой порядок работы: в центральном офисе выгружают в Excel из 1С "Продажный лист"; торгуют и отмечают продажи в файле; приносят в офис вечером файл результата и загружают отчет о продажах за день.
Грузить можно и заявки, и перемещения, и поступления, и списания, и счета, и все для  ОС, НМА, МБП... была бы табличная часть!

Скачать файл

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

Наименование По подписке [?]
ZagruzkaIzExcelstrmatch
.1251841437 1,15Mb
931
931 Скачать бесплатно

По мотивам УПБ01.ert - Удар По Бездуховности, версия 1.0д
Автор: Che Burashka
E-mail: e.meil@mail.ru 
За что ему огромное спасибо!
Все его секретные кнопки тут рассекречены. Надеюсь за свои секреты он уже все деньги получил.

Особая благодарность автору внешней компоненты strmatch.dll
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=2485
  Автор: Ракунов Александр.
  E-mail: Skorp@newmail.ru
  ICQ#: 63919227
Немного невнятно в описании компоненты сказано по поводу нескольких "Кэшей":
возможны два и более Кэш по разным справочникам одновременно?
Если да, то теорию можно развить до бесконечности.

Также благодарность автору библиотеки V7XLSD7.dll .

Недавно появилась и очень интересная штучка - использована способность открывать XLS файлы и не заботиться о их закрытии даже в случае аварийной ситуации.

Порядок работы:

  1. Выбрали XLS файл (пункт 1) и он тут же загрузился в таблицу значений (окно 1). Ход загрузки отображается в строке состояния. Предполагается, что Excel файл имеет заголовки столбцов (строка 1 пункт 5а).
  2. В таблице (окно 2), отображается номер или название столбца входного Excel файла.
    Рядом с названием "Столбец" еще один столбец "Значение" - для сопоставления реквизитов документа и загружаемого файла, а фактически уже таблицы значений.
  3. Выбираем из окна "Документ" тот вид документа, который должен быть создан или догружен в результате выполнения обработки.(пункт 2)
  4. В окно списка реквизитов документа выводятся общие реквизиты, реквизиты шапки документа и реквизиты табличной части документа. Основная потребность, конечно же грузить в табличную часть, но и шапка может быть автоматически загружена. (Правда существует необходимость повторять реквизиты шапки в каждой строке Excel файла (таблицы значений)).
    Отмечаем (окно 3 пункт 3) все реквизиты, которые собираемся грузить.
  5. Выбираем реквизит по которому будем проводить нечеткое сравнение (окно 4 пункт 4).
  6. Если количество элементов для нечеткого сравнения в исходном файле с одинаковым названием велико, пытаемся построить комплексный ключ ("Наименование") для качественного поиска. В окно объединяемых столбцов, через запятую вписываем номера столбцов, которые хотим объединить.(пункт 5б) Последним записываем номер столбца с наименованием по которому будем осуществлять нечеткий поиск. (Помните! Это сработает, если в справочнике (например: "Номенклатура"), для  нечеткого сравнения, наименование элемента уже содержит объединяемые Вами (например: "Артикул" И "Наименование") ячейки). Вам заранее следует думать о названии элементов справочника, если собираетесь использовать нечеткое сравнение.(Пункт 5в)
    Можно дорисовать еще одно окно, в котором информация по справочнику будет подготовлена с формированием комплексного ключа по любой комбинации атрибутов справочника  ("Артикул"+"Наименование"+"Партия"+"ДатаПоступления" и т.д.), Кэш "заглотит" это как источник поиска, а ссылка на объект в таблице значений останется примитивной. Но мне влом! Может когда ...
  7. Проводим сопоставление реквизитов Excel файла (таблицы значений) и выбранных для загрузки реквизитов, двойным щелчком мыши по полю "Значение" напротив названия нужного реквизита таблицы значений.(окно 2 пункт 6)
  8. Выбираем, при необходимости, документ, в который собираемся загрузить информацию. (не обязательно, документ будет создан автоматически, если окно останется пустым).(пункт 7)
  9. Нажимаем на кнопку "Загрузить документ".(пункт 8)

Контролируем окно сообщений... После подготовки информации откроется окно сравнения.

Интерфейс окна интуитивно понятен за исключением 2-х нюансов.
Если в справочнике нет загружаемой позиции (нет в режиме автоматического поиска; нет в режиме ручного выбора), вы можете создать необходимый элемент справочника на основе наиболее подобного ему. Для этого:

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

Желаю приятной работы.

См. также

Банковские операции Загрузка и выгрузка в Excel Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет Платные (руб)

Решение предоставляет комплексную загрузку банковской выписки из CSV, XLS, TXT файла в 1С 7.7 любой конфигурации. Позволяет создавать документы выбранного вида, например "Строка выписки банка (приход/расход)", или многострочный табличный документ, например Выписка, для каждой операции из загружаемого файла банковской выписки. Загружает реквизиты документа, а также создаёт контрагентов и другие необходимые элементы справочников.

3588 руб.

29.07.2021    22296    14    22    

15

Загрузка и выгрузка в Excel Программист Платформа 1С v7.7 Абонемент ($m)

Сводная таблица Excel из 1С - как сделать ее программно через COM соединение.

1 стартмани

30.07.2021    6567    1    atdonya    1    

2

Загрузка и выгрузка в Excel ККМ Программист Бухгалтер Пользователь Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Бухгалтерский учет Управленческий учет Абонемент ($m)

Выполняет выгрузку товаров (всех, только с признаком в прайсе, только из указанной папочки) с гибкой настройкой выгружаемых данных. Формируется файл в формате XLSX подходящий для прямой удаленной загрузки в кассовый аппарат АТОЛ 91Ф/92Ф и им подобных, имеющих управление через Личный кабинет АТОЛ (lk.atol.ru).

1 стартмани

31.01.2021    8322    2    &-rey    1    

4

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Программист Пользователь Платформа 1С v7.7 1С:Комплексная 7.7 Управленческий учет Абонемент ($m)

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

1 стартмани

11.10.2019    12060    2    ksnik    2    

2

Оптовая торговля Загрузка и выгрузка в Excel Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Оптовая торговля, дистрибуция, логистика Управленческий учет Абонемент ($m)

В данной публикации приведены примеры обработок обмена дистрибьютора с поставщиками и покупателями через Эксель. Создание товаров-новинок. Автоматическое формирование Заказа поставщику по продажам. Заполнение бланка заказа поставщику. Загрузка приходной накладной от поставщика. Загрузка любых справочников из Эксель, например товарных сертификатов. Выгрузка прайслиста в бланк заказа (создание бланка заказа). Загрузка заявки покупателя из произвольного файла Эксель. Загрузка заявки покупателя из бланка заказа.. Для работы требуется установленный MS Excel.

1 стартмани

08.09.2019    16453    10    ksnik    2    

3

Загрузка и выгрузка в Excel Перенос данных 1C Программист Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 1С:ERP Управление предприятием 2 Абонемент ($m)

Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!

1 стартмани

16.08.2019    19586    18    ksnik    12    

8

Загрузка и выгрузка в Excel Оптовая торговля Розничная торговля Перенос данных 1C Программист Платформа 1С v7.7 Платформа 1С v8.3 1С:Управление торговлей 10 1С:Комплексная 7.7 1С:ERP Управление предприятием 2 Управленческий учет Абонемент ($m)

Описание практического опыта переноса данных из двух устаревших учетных систем в одну современную с обобщением справочников (например номенклатуры, контрагентов, партнеров) и объединением учетных данных устаревших систем в единую новую УС применяя комбинацию стандартной загрузки из Эксель и КД2. Данная публикация является примером переноса данных из сильно устаревших и сильно переписанных конфигураций 1С:Предприятия 7.7 и 8 в современную 1С 8.3 своими силами при условии невозможности или нежелания пользоваться обновлением релизов и типовой функциональностью универсального обмена данными типовых мастеров переноса данных. Отличительной особенностью публикации является устранение зависимости от версий релиза конфигураций, отказ от обновлений устаревших конфигураций.

1 стартмани

29.07.2019    21372    16    ksnik    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2696 02.09.09 03:11 Сейчас в теме
скриншоты лучше нарисовал бы
user624794_dianka25239; +1 Ответить
2. CheBurator 2696 02.09.09 03:15 Сейчас в теме
Упомянутая в начале описания УПБ (Удар По Бездуховности) лежит здесь: http://infostart.ru/projects/393/
3. CheBurator 2696 02.09.09 03:17 Сейчас в теме
"...столбец ЗПТ соответстсвующий..."
4. ge_ni 306 02.09.09 18:12 Сейчас в теме
Скриншот внутри архива
5. Froloid 66 03.09.09 17:20 Сейчас в теме
Если вопрос ведется о стоимости 1С, то надо учесть, что MS Office не на много дешевле (если вообще дешевле)...
6. kliman 03.09.09 21:55 Сейчас в теме
Т.НоваяКолонка(ИД,,,,,30);
Недопустимый идентификатор колонки!

ошибку выкидывает
7. ge_ni 306 04.09.09 14:56 Сейчас в теме
(6) В Excel у колонки болжен быть заголовок в 1 й строке. Нельзя подсовывать что попало...
8. ge_ni 306 04.09.09 15:30 Сейчас в теме
(6) А что Вы грузите? Вышлите на ge_ni@mail.ru? Не мои это ошибки...
(5) Есть у меня MS ценник. Есть у меня MS Office официальный. Большинство же не покупает, и что будем делать ...?
9. ge_ni 306 04.09.09 15:44 Сейчас в теме
(6) Возможно у Вас не загружена V7XLSD7.dll
...
ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "V7XLSD7.dll")
10. kliman 05.09.09 18:46 Сейчас в теме
При присваивании значений периодически выскакивает след глюк:
реквизиты помеченные галочками - недоступны к выбору в окне2 п6, чтобы была возможность выбрать там необходимо несколько раз ставить и убирать галочки.
скрин http://ipicture.ru/Gallery/Viewfull/23267821.html

В окно подбора похожей номенклатуры, в строку excel; наименование аналога попадает только 70 символов, как можно увеличить??
скрин http://ipicture.ru/Gallery/Viewfull/23268017.html
11. kliman 06.09.09 16:16 Сейчас в теме
с глюком разобрался, все нормально если выбор реквизитов делать двойным кликом.
12. kliman 06.09.09 16:27 Сейчас в теме
При попытке записи номенклатуры на основании аналога, номенклатура записывается без наименований(сокращенного и полного)
14. ge_ni 306 08.09.09 20:28 Сейчас в теме
(12) Все под контролем!? Когда Вы пытаетесь создать новый элемент справочника, вы видите и Наименование и полное наименование и даже код, до того как записать его и выбрать. Далее действует запись атрибутов из табмицы значений в реквизиты справочника и все ... ??? Это называется: попробуйте еще раз !? Пришлите в конце концов то, что грузите я себе создам и загружу
13. Sk0rp 119 07.09.09 11:48 Сейчас в теме
Тем кто обращается ко мне по поводу обработки: "Спасибо вам за вопросы, я тронут вниманием" - хочу только заметить, то я так же как и вы вижу её в первый раз. То что тут используется моя компонента для нечеткого сравнения не наделяет меня знанием о форматировании файла Excell и т.п. У обработки есть автор, я уверен, он будет рад ответить на ваши вопросы.

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

Спасибо за использование компоненты.
15. rasswet 82 09.09.09 08:56 Сейчас в теме
плюсанул за длинное, подробное описание, саму обработку не качал, без надобности на данном этапе)
16. ivanovozoo 22.09.09 12:40 Сейчас в теме
Не грузится единица в реализацию
18. ge_ni 306 23.09.09 15:14 Сейчас в теме
(16) Если Единица - перечисление, тогда замените строку модуля обработки ЗагрузкаЛюбыхДокументов.ert №781 на
Пер=Метаданные.РеквизитТабличнойЧасти(ИмяРеквизита);
17. ge_ni 306 23.09.09 15:03 Сейчас в теме
Если Единица, тип - текст в 1С, или Единица - справочник - тогда может быть только ошибочный заголовок столбца Excel. Кстати для всех!!! Заголовок столбца в Excel должен состоять из одного слова, т.к. таблица значений не переваривает названия столбцов из 2х и более слов.
19. avi88 147 27.09.09 00:37 Сейчас в теме
Идея отличная я давнотакую искал, но нуждается в срочной доработке!
Т.К. если в exl таблици совмещены - обьеденены столбци то она её не видет нельзя ли ТЗ сделать на подобе как тут http://infostart.ru/public/22197/ она все таблици читает, правда есть свой глюк виснет но зато читает любые документы! http://infostart.ru/public/download.php?file=56737
20. Nysika 17.12.09 14:19 Сейчас в теме
Хорошая штука загрузила "отгрузку товаров", очень лояльно относится к названию товара выбирает достаточно правильно. Вот знать бы еще как в "окно 3" добавить параметр "код товара" чтоб можно было по артикулам загружать, а не по наименованию. Мой плюс. И спасибо.
21. ge_ni 306 21.12.09 13:11 Сейчас в теме
(19,20) Очень занят... Как освобожусь обязательно добавлю эти моменты
22. ОльгаС 06.03.10 16:47 Сейчас в теме
При попытки загрузить документ пишет следующее: ПромТекст=ПромТекст+СокрЛП(ТЗ1.ПолучитЗначение(ТЗ1.НомерСтроки,НомерСтолбца));
{C:\DOCUMENTS AND SETTINGS\Админ\РАБОЧИЙ СТОЛ\ЗАГРУЗКАИЗEXCEL\ЗАГРУЗКАЛЮБЫХДОКУМЕНТОВ.ERT(548)}: Поле агрегатного объекта не обнаружено (ПолучитЗначение)
И ничего не формирует.
23. ge_ni 306 07.03.10 19:35 Сейчас в теме
(22) Приношу свои глубокие извинения за недочёт: т.к. ".ПолучитЗначение" - содержит синтаксическую ошибку, видимо редко кто попадал в это состояние и я не заметил при тестировании! :oops: :oops: Нужно ".ПолучитьЗначение" Ай - яй- яй -яй яй!!! :cry:
30. erthia 07.02.14 18:02 Сейчас в теме
(23)ge_ni, будет ли сделана идентификация существующих элементов справочника по загружаемым кодам, для загрузки в документ?
24. isn 15 12.03.10 09:13 Сейчас в теме
ставлю "+" за подробное описание, за проделанную работу
25. OksanaMM 11.03.11 00:13 Сейчас в теме
Жаль что так и не добавили поиск по артикулу. Если в экселе строка наименование больше 30символов(с пробелами)тогда при загрузке ТЧ пишет Т.НоваяКолонка(ИД,,,,,30) когда пообрезала по 30символов ТЧ загрузилась. Дальше прогнал номенклатуру так и не выдал совпадений наверное строка "Бумага А4 "Снегурочка"" отличается от "Бумага А4 "Снегурочка" 80гр\м 500л". Компоненты все загрузила. Может ошибка из-за того что у меня платформа установлена не через setup я ее просто скопировала.
26. xDee 29.09.11 18:44 Сейчас в теме
27. Fruit83 28 07.12.11 19:32 Сейчас в теме
Эх...по 8-чке бы такое действо.
28. hate 20.01.12 01:38 Сейчас в теме
одназначно +, немного переписал по нужды компании, а вцелом - Шекарно
29. пользователь 28.02.12 16:43
Сообщение было скрыто модератором.
...
31. ge_ni 306 08.02.14 00:03 Сейчас в теме
Замените в запросе

ТекстЗапроса = "
|Обрабатывать НеПомеченныеНаУдаление;
|Элемент = *.ТекущийЭлемент;
|Наименование = *.Наименование;
|Функция Хеш = Сумма(0);
|Группировка Элемент Упорядочить по Элемент.Наименование Без Групп;
|";
ТекстЗапроса=СтрЗаменить(ТекстЗапроса,"*",ТипСпра);
Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=0
Тогда Возврат;
КонецЕсли;
*.Наименование;
на
*.Код;

Но тогда и в Excel один из столбцов, по которому Вы собираетесь грузить, должен содержать не наименования, а коды элементов справочника
32. erthia 09.02.14 16:14 Сейчас в теме
(31) как отключить нечеткое сравнение? при загрузке документа выскакивает подбор элементов, в которых совпадает:
1)часть НАИМЕНОВАНИЯ элемента
и 2) код из Excel.
Или он должен предлагать элемент совпадающий по коду, а не по части наименования.
33. ge_ni 306 09.02.14 19:45 Сейчас в теме
Грузить автоматически, как не крути, не получится. Особенность нечеткого сравнения в том, что в списке подбора для кода (например 36), первой строкой (значением по умолчанию) может быть вначале
136
236
и только после этих значений
36
ну и далее
336
4336

Поиск по коду эффективен если "Тип кода" текстовый и все коды имеют одинаковую длину, например 7 символов.

в этом случае код 0000036 находится однозначно...
И значит в обработке можно поставить флаг "грузить накладную автоматически"

что еще нужно быдо доправить:
1-ну строчку

-------> ТЗ.Представление = СокрЛП(ТЗ.Элемент.Код);
//ТЗ.Представление = СокрЛП(ТЗ.Элемент.Наименование);
ТЗ.ИД = СтрЗаменить(ВРег(ТЗ.Представление)," ","");

хеш = хеш + 1;
ТЗ.Хеш = хеш;
Адин.ДобавитьВКэш(Кеш,СокрЛП(ВРег(ТЗ.ИД)),хеш,СокрЛП(ТЗ.Элемент.Код));


34. erthia 10.02.14 04:59 Сейчас в теме
(33) теперь подбор элементов выдает нужные элементы, щелкаешь по первому, сообщение об ошибке: > НАЧАЛО: ПРИЕМ ИНФОРМАЦИИ ИЗ ФАЙЛА <C:\DOCUMENTS AND SETTINGS\BUH5\МОИ ДОКУМЕНТЫ\МОИ ЭЛЕКТРОННЫЕ КНИГИ\ЛИСТ MICROSOFT EXCEL.XLS>
> обработка строки накладной 0001: элемент 40119 СДЕЛАН ВЫБОР: (40119) Рычаг 24-14-104СП
ДокЗаявка.УстановитьАтрибут(ИмяРеквизита,ЗначениеРеквизита);
{C:\BASES_1S\1SBDB\EXTFORMS\ЗАГРУЗКАЛЮБЫХДОКУМЕНТОВ.ERT(808)}: Неверное имя атрибута
35. ge_ni 306 10.02.14 22:58 Сейчас в теме
Вчера специально установил 7ку и загрузил "Приходную накладную" по Вашему принципу: сопоставив столбец файла Excel "Код" и реквизит накладной "Товар"... и ... всё загрузилось

У Вас проблемма с именем реквизита, который соответствует справочнику подбора по нечеткому поиску. т.е. "код" соответствует реквизиту "Товар" или реквизиту "Материал" или реквизиту"ОС" и т.д.
36. rus_rf 22.09.14 22:04 Сейчас в теме
Ошибка при создании объекта из компоненты C:\Program Files\1Cv77\BIN\StrMatch.dll (отсутствует CLSID)
> Отказано в запуске обработки
> Не найдена компонента StrMatch.dll (нечеткое сравнение строк)
Регистрация компоненты прошла успешна! Как быть дальше?
37. rus_rf 22.09.14 22:07 Сейчас в теме
Ошибка при создании объекта из компоненты C:\Program Files\1Cv77\BIN\StrMatch.dll (отсутствует CLSID)
> Отказано в запуске обработки
> Не найдена компонента StrMatch.dll (нечеткое сравнение строк)
Доброе время суток. Установка компоненты прошла успешно! Но увы! Как быть дальше?
38. ge_ni 306 23.09.14 23:47 Сейчас в теме
Здравствуйте! Это чисто теоретически "Успешно". На самом деле Win 7 и не думал регистрировать её на вашем компьютере. Судя по всему Вы не "Администратор", хотя и числитесь наверное в списке "Администраторов". Для начала попробуйте запустить 1С от имени "Администратора". Если не поможет - нужно создать ярлык работы в режиме командной строки, запустить этот ярлык от имени "Администратора" и повторить регистрацию компоненты в командной строке.... Всё относится к периоду, когда царствовал WinXP и всё регистрировалось "в лёт" ... У Win 7 к сожалению через обряд...
39. ge_ni 306 23.09.14 23:52 Сейчас в теме
Кстати лучше погуглите регистрацию библиотек для Win 7 . Вариантов решения в интернете море. Обработка как бы не сильно заморочена на регистрацию компонент, всё в традиции 1С...
Оставьте свое сообщение