1C 8.1: Потоковая загрузка документов из Excel ( универсальная, xls dbf txt mxl )











Настраиваемая потоковая загрузка документов из "плоской" (денормализованной) таблицы (xls, dbf, txt, mxl)

В стандартную обработку от 1С «ЗагрузкаДанныхИзТабличногоДокумента» добавлен режим «Загрузка в документ», обеспечивающий потоковую загрузку нескольких документов из одной таблицы. Новый документ создается при изменении значения в указанной колонке данных (например, номер документа).

При загрузке можно создавать новые элементы справочников при помощи написания кода обработчиков событий загрузки. При этом необходимые данные для нового элемента справочника должны быть в загружаемой строке документа или использовать значения «по умолчанию».

Естественно, сохранены все режимы стандартной обработки «ЗагрузкаДанныхИзТабличногоДокумента» (и устранено несколько «глюков» в ее работе).

Использование обработки наглядно демонстрируют скриншоты.

 

В комплект поставки входит:

— обработка: ЗагрузкаДанныхИзТабличногоДокумента_Z.epf

— файлы настроек для загрузки документов конфигурации «Бухгалтерия предприятия, редакция 1.6»: ПоступлениеТоваровИУслуг.mxlz и РеализацияТоваровИУслуг.mxlz

— файл примера загружаемых данных: test_load.xls

 

Готовые настройки этой обработки для импорта документов (в данном случае в конфигурацию «Бухгалтерия предприятия, редакция 1.6») «ПоступлениеТоваровИУслуг» и «РеализацияТоваровИУслуг» могут послужить примером использования обработки либо прототипом для загрузки вашего варианта данных в эти документы.

 

P.S.: Принимаю заказы на создание настроек для загрузки необходимых Вам видов документов из Ваших данных. Быстро. Качественно. Дорого 🙂

57 Comments

  1. ZLENKO

    Наверное нет программиста 1С, который бы хоть раз не писал загрузку чего либо в 1С из Excel. Много различных вариантов выложено в разделе «1C + Excel». Не смотря на все многообразие выбора мне лично больше всего нравилась обработка от 1С «ЗагрузкаДанныхИзТабличногоДокумента». В ней не хватало «потоковой» загрузки документов — дописал. Просьба не писать в комментариях, что «таких обработок уже есть вагон и маленькая тележка» — обработок много — такой мне еще не попадалось. Вобщем выбор есть — выбирайте лучшее.

    Reply
  2. n095

    клевая обработка.

    с ее помощью загрузил массу документов по ОС

    Reply
  3. larisab

    (2) купил уже? для скачивания только файл примера!

    Reply
  4. n095

    Нет, воспользовался лазейкой.

    Продажа ОС запарила уже.

    Reply
  5. ZLENKO

    (2) n095 видимо имел ввиду что пользовался стандартной версией обработки (которую 1С на дисках ИТС распространяет).

    Reply
  6. vvs-jd

    Отличный продукт получился!!!!

    И для большого количества документов с бесконечной номенклатурой, лучшего решения просто не найти!

    Купил и пользуюсь!

    Спасибо автору!

    Reply
  7. Yashazz

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

    А потом плюнул и сделал другую, попроще. Такие, они иногда излишне громоздки. Теперь у меня идея такая: данные считываю во временный набор, а при обработке в настройках хранятся алгоритмы обработки этого набора, с возможностью вызова каждого алгоритма как процедуры поимённо и передачей всяких переменных… Но, поскольку, как верно заметил автор, и без меня уже понаделано, выкладывать не стал… Хотя, хелп допаяю, может и выложу…

    Кстати. А чегой-то она за деньги?!

    Reply
  8. ZLENKO

    (7) Ну задача имеет два типовых решения:

    — совсем без кода обработчиков (все только галочками настраивается) — просто и удобно но годится только для простых случаев;

    — все прописать в коде — быстро и функционально но внимание отвлекается на вспомогательные задачи по работе с данными.

    Этот вариант — компромисное решение — что можно — настораиваем галочками, что не получается — пишем код, думая при этом исключительно о предметной области.

    Обработка послужившая прототипом мне нравилась всегда, но вот потоковой загрузки документов в ней не было.

    За деньги — потому что я потратил свое время на добавление нового режима загрузки — я продаю не саму обработку, а мои изменения в ней. Я считаю что добавленный функционал стоит запрашиваемых денег. Кому проще написать чем купить — никто же не заставляет покупать.

    Reply
  9. Yashazz

    (8) Иногда да, имеет смысл делать обработчики для «ПередОбработкой», «ПриОбработкеПорцииДанных» и так далее; но лично для меня показался оптимальным вариант, когда данные обрабатываются в цикле, написанным мной целиком в некоем алгоритме. Отлаживать и просто проглядывать легче, плюс я предварительный анализ считанного прикрутил (сохранение туда-сюда, частотный анализ, фильтр а-ля Excel и прочую фигню), и сам текст алгоритма в один файлик легче сбрасывать-открывать. Прыгать по нескольким кускам алгоритма и париться с передачей параметров мне показалось сложнее. Ну, это сугубое имхо, конечно.

    Обработка ваша, судя по проработке, неплохая.

    Reply
  10. ZLENKO

    Обработка отличная ! Мне самому очень нравится 🙂 и купившие довольны. Я принципиально не выкладываю тут (на инфостарте) «поделок, которые пишутся за час».

    Reply
  11. ZLENKO

    Обработка бесплатна и доступна зарегистрированным пользователям.

    Reply
  12. HitGroove

    Важная и полезная вещица!!!!!!!!!!!!!! Друзья просили написать но все как то не с руки! Z — красавчик! Теперь можно прайсы грузить!!!!!!!! Респект тебе Z!!!!!

    Reply
  13. ZLENKO

    (12) Кстати хорошая мысль сделать настройку для загрузки документа «Установка цен номенклатуры» для этой обработки.

    Reply
  14. ron1

    Если Вид документа: реализация,а табличная часть «Услуга» файлы настроек для загрузки документов: РеализацияТоваровИУслуг.mxlz не работают. Когда выбираешь файл настроек (этап рис. 2873) меняется «Услуга» на «Товар» и очищается закладка Табличный документ.

    Reply
  15. ZLENKO

    (14) Файлы настроек созданы для загрузки в табличную часть «Товары». Для загрузки в табличную часть «Услуги» Вам необходимо создать свои настройки. Данные настройки прилагаются в качестве примера использования.

    Reply
  16. ron1

    Настройки все сделала-программа показывает, что загрузка 100%. Но документов созданных нет. Посмотрела в Вашей настройке, там ещё дописано Событие, а я ни каких Событий не дописывала. Может скопировать у Вашей настройки «После добавления строки» ?

    Reply
  17. ZLENKO

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

    Еще раз акцентирую внимание — данная обработка — это механизм для создания различных правил загрузки, а не готовое решение по загрузке различных документов.

    Reply
  18. ron1

    Всё поняла. Спасибо.

    Reply
  19. CrackedBone

    Может я что-то не так делаю, но у меня есть строки с ошибками и они никак не обозначены…а когда строк 1963 искать в них вручную ошибочные как-то сложно…

    Reply
  20. ZLENKO

    (19) Наверное что то не так делаете раз у Вас строки с ошибками… А кто их должен обозначить ? Откуда обработка должна знать где у Вас ошибки ?

    Reply
  21. CrackedBone

    Смешно, шутку понял, но в описании сказано, цитирую : » Выполнить контроль заполнения (нажать на кнопку «Контроль заполнения»), при этом для каждой заполненной ячейки табличного документа заполняется расшифровка найденным значением. Если значение не однозначно, или не найдено, выдается сообщение об ошибке и заполняется комментарий в ячейке.»

    Мне бы хотя бы номер строк в которых ошибки знать.

    Reply
  22. ZLENKO

    (21) Ну там почти все закачивается при помощи обработчиков событий. Контроль заполнения проверяет только значения в полях которые непосредствено отмечены галочками для загрузки.

    Reply
  23. naivete

    Владимир, добрый день!

    Прошу ответа: данная обработка — «бесплатна и доступна зарегистрированным пользователям» или все-же демо-вариант. Спрашиваю, т.к. пока позволяет загрузить лишь три документа 🙂

    Благодарю за ответ заранее!

    Reply
  24. borman

    Скорее всего я протупил, но не пойму где. Подскажите, что я делаю не так. Есть только наименования контрагентов. Делаю загрузку в справочник Контрагенты. В настройках отмечаю только колонку «Наименование», соответственно и имеющиеся наименования вставил куда следует. Какой бы режим загрузки (Поиск/Устанавливать/Вычислять) в настройках колонки не использовал — результат один: создаются пустые контрагенты. В типовой обработке тоже самое. В код лезть не хочется. Быстрей бы сам написал обработку :), да вот решил сэкономить время — и убил час ниочем.

    Reply
  25. borman

    (24) Спасибо. Сам разобрался.

    Оказывается если не используешь колонку (снял галочку), то ее нужно удалить.

    Reply
  26. ZLENKO

    (24) Основная часть загрузки реализована в коде обработчиков событий. В том числе в коде задается в какой колонке содержится необходимый реквизит. От универсальной используется ее универсальные функции — хранение настроек, представление загружаемых данных и т.п. Если хотите изменить что то в логике загрузки — надо лезть в код, но не обоработки, а в код обработчиков событий загрузки обработки. Но это проще чем писать обработку с нуля.

    Reply
  27. Zexes

    Пытаюсь отправить автору сообщение, сайт пишет ошибку связи =(

    Интересует редактирование правил для загрузки в Бухгалтерию 2.0 типовых документов Реализация товаров и услуг и Поступление товаров и услуг.

    Как можно еще связаться с автором?

    Reply
  28. ZLENKO

    (27)

    сайт: http://zlenko.pro

    e-mail: zlenko@gmail.com

    Skype: ZLENKO.PRO

    Reply
  29. dmv78

    !!! догнал ))) можно рпописать любой варинт загрузки!

    Reply
  30. w-w-w-

    Пробую загрузить тестовый файл с прилагаемыми настройками, сообщение:

    Ошибка при вызове метода контекста (Записать): Не задана дата документа

    Объект не записан: ДокументТабличнаяЧастьСтрока.ПоступлениеТоваровУслуг.Товары.

    ======

    В тестовом файле данные не менял. Что нетак с датой?

    Reply
  31. teleport7

    Присоединяюсь к 20. CrackedBone

    Контроль заполнения, как наблюдал, делается также как в стандартной обработке с диска ИТС — только не показываются

    примечаниями в ячейках, по которым поиск не удался в текущей базе. Похоже на ошибку.

    Сразу оговорюсь, что обработку для 8.1 конвертировал через конфигураторе в v8.2 (8.2.13.213) — возможно в этом корень проблем.

    Кофигурация: «УТП для Украины», редакция 1.2.

    Reply
  32. 1vasia1

    Давно пора было это сделать но руки не доходят. Группаво грузить доки всем нужно.

    Reply
  33. ulas

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

    Reply
  34. ivan07

    Отличная обработка. Постоянно загружаю прайс-листы поставщиков. Все отлично. Автору респект.

    Reply
  35. Tur_gad

    Спасибо автору. Постоянно приходиться работать с импортом в справочники и документы без вашей обработки был бы как без рук.

    Reply
  36. ponaroshku

    Спасибо большое автору за разработку

    Reply
  37. Ann-Nancy

    Добрый день! Пытаюсь воспользоваться данной обработкой, вожусь с примером, который идет вместе с самой обработкой.

    Ставлю в обработчик событий:

    Дата = Дата(СокрЛП(ТекстыЯчеек[13]));
    Номер = ПРАВ(‘0000000000’+СокрЛП(ТекстыЯчеек[1]),11);

    программа ругается, пишет:

    Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(2,14)}: Неправильная константа типа Дата

    Работаю на 8.2, Бухгалтерия ред.2.

    В чем может быть проблема?

    Reply
  38. ZLENKO

    (37) Рекомендуется избегать названий переменных, которые могут совпадать с названиями функций и операторов языка. В данном случае переменная Дата и функция Дата.

    Reply
  39. eugen91

    Спасибо вам. очень полезна публикация

    Reply
  40. wirg

    Супер

    Reply
  41. nikita1001

    День добрый. Очень помогла обработка. Но есть вопрос. Что то не как не получается решить. Как сложить два значения?. Колонка цена должна складывать их двух колонок

    Reply
  42. ZLENKO

    Сложить значения ячеек можно в коде обработчика события. В прилагаемых примерах достаточно много функционала реализовано при помощи обработчиков событий — можно использовать в качестве примера. На скриншотах показано где находится код обработчиков событий.

    Reply
  43. silver-747

    День добрый. А для Бухгалтерии 8.2 можно вашу обработку использовать?

    Reply
  44. ZLENKO

    (43) Можно, но надо открыть ее в конфигураторе чтобы она сконвертировалась и сохранить.

    Обработка не моя — обработка 1С. Я ее доработал для массовой загрузки документов.

    Также она является примером использования обработчиков событий при загрузке.

    Reply
  45. silver-747

    Извините пожалуйста 🙂 я не программист и не могу понять как правильно написать в форме редактирования выражения правила загрузки. Написала так как в скриншоте

    ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));

    НомерДок=ПРАВ(«0000000000″+СОКРЛП(ТекстыЯчеек[3]),11);

    НайденыйОбьект=Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(НомерДок,ДатаДок);

    Если ЗначениеЗаполнено(НайденыйОбъект) Тогда

    Объект=НайденныйОбъект.ПолучитьОбъект();

    ТабличнаяЧасть=Объект[ТабличнаяЧастьИсточника];

    ТабличнаяЧасть.Очистить();

    КонецЕсли;

    выдает ошибку

    Объект не записан: ДокументТабличнаяЧастьСтрока.ПоступлениеТоваровУслуг.Товары.

    Преобразование значения к типу Дата не может быть выполнено

    Что делаю не так? файл из которого загружаю DBF

    Reply
  46. ZLENKO

    (45) Видимо во второй колонке файла у Вас не дата и выражение выдает ошибку:

    ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));

    Reply
  47. Alxxxx74

    Подскажите пожалуйста, что это за ошибка?

    «Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,24)}: Переменная не определена (НайденыйОбъект)»

    Reply
  48. ZLENKO

    (47) Вероятнее всего Вы пытаетесь загрузить правила обмена в конфигурацию, для которой они не предназначены (прилагаются правила для УТ 10.3 и БП 1.6).

    Reply
  49. Alxxxx74

    Я вообще правила не подгружал и та же ошибка(( Эти правила не подходят для бухгалтерии 2.0?

    Reply
  50. silver-747

    Дата стоит именно во второй колонке. Я пытаюсь загрузить в Бух 2.0, может из-за этого не получается?

    Reply
  51. kuman

    Подскажите, как в событиях при экспорте из Экселя задать дату документа.

    Я делал так

    ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));

    И какой в экселе должен быть формат даты.

    В примере 20090113185138 — пишет Преобразование значения к типу Дата не может быть выполнено

    Reply
  52. kuman

    Подскажите, как в событиях при экспорте из Экселя задать дату документа.

    Я делал так

    ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));

    И какой в экселе должен быть формат даты.

    В примере 20090113185138 — Получение элемента по индексу для значения не определено

    Reply
  53. kuman

    Подскажите, как в событиях при экспорте из Экселя задать дату документа.

    Я делал так

    ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));

    И какой в экселе должен быть формат даты.

    В примере 20090113185138 — пишет Преобразование значения к типу Дата не может быть выполнено

    Reply
  54. Dansur

    афигительная вещь!!! спасибо автор.

    Reply
  55. PovAndy

    Как запустить Вашу обработку под 1С 8.2 Розница 2.0?

    Есть ли такая возможность?

    Reply
  56. hzhz

    Вопрос. Если у документа нет табличной части, или есть, но её не надо заполнять? Например в БП «ПриходноКассовыйОрдер». Надо заполнить Номер, Дату, Контрагента, Сумма, НДС. Как тогда сделать настройки?

    Reply
  57. stas1kbob

    Выполняется загрузка строк в документы: «Заказ покупателя»

    Всего: 1

    ———————————————

    Строка 1 не может быть записана.Не указано значение ключевых реквизитов: Контрагент

    ———————————————

    Ошибка при вызове метода контекста (Записать): Значение поля «Дата» не может быть пустой датой

    Объект не записан: .

    Такая ошибка, подскажите пожалуйста что делать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *