gifts2017

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

Опубликовал Владимир Зленко (ZLENKO) в раздел Обработки - Обработка документов

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

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

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

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

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

 

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

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

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

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

 

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

 

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

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

Наименование Файл Версия Размер
1C 8.1: Потоковая загрузка документов 1781
.1234732345 92,79Kb
01.11.09
1781
.1234732345 92,79Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Z1C (ZLENKO) 16.02.09 01:08
Наверное нет программиста 1С, который бы хоть раз не писал загрузку чего либо в 1С из Excel. Много различных вариантов выложено в разделе "1C + Excel". Не смотря на все многообразие выбора мне лично больше всего нравилась обработка от 1С "ЗагрузкаДанныхИзТабличногоДокумента". В ней не хватало "потоковой" загрузки документов - дописал. Просьба не писать в комментариях, что "таких обработок уже есть вагон и маленькая тележка" - обработок много - такой мне еще не попадалось. Вобщем выбор есть - выбирайте лучшее.
1vasia1; djon10000; CaB; sv80; +4 Ответить
2. Khisamov (n095) 16.02.09 09:56
клевая обработка.
с ее помощью загрузил массу документов по ОС
3. larissa builova (larisab) 16.02.09 10:09
(2) купил уже? для скачивания только файл примера!
4. Khisamov (n095) 16.02.09 10:18
Нет, воспользовался лазейкой.
Продажа ОС запарила уже.
5. Z1C (ZLENKO) 16.02.09 10:27
(2) n095 видимо имел ввиду что пользовался стандартной версией обработки (которую 1С на дисках ИТС распространяет).
6. Владимир Сухарев (vvs-jd) 16.02.09 14:49
Отличный продукт получился!!!!

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

Купил и пользуюсь!
Спасибо автору!
7. Яков Коган (Yashazz) 16.02.09 18:48
Ну, я такую написал, только полномасштабное сохранение настроек слегка не доделал... И по чему стыковать, и событийщики до/во время/после - всё было... Года полтора пользовался.

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

Кстати. А чегой-то она за деньги?!
8. Z1C (ZLENKO) 16.02.09 19:32
(7) Ну задача имеет два типовых решения:
- совсем без кода обработчиков (все только галочками настраивается) - просто и удобно но годится только для простых случаев;
- все прописать в коде - быстро и функционально но внимание отвлекается на вспомогательные задачи по работе с данными.

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

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

За деньги - потому что я потратил свое время на добавление нового режима загрузки - я продаю не саму обработку, а мои изменения в ней. Я считаю что добавленный функционал стоит запрашиваемых денег. Кому проще написать чем купить - никто же не заставляет покупать.
9. Яков Коган (Yashazz) 16.02.09 20:55
(8) Иногда да, имеет смысл делать обработчики для "ПередОбработкой", "ПриОбработкеПорцииДанных" и так далее; но лично для меня показался оптимальным вариант, когда данные обрабатываются в цикле, написанным мной целиком в некоем алгоритме. Отлаживать и просто проглядывать легче, плюс я предварительный анализ считанного прикрутил (сохранение туда-сюда, частотный анализ, фильтр а-ля Excel и прочую фигню), и сам текст алгоритма в один файлик легче сбрасывать-открывать. Прыгать по нескольким кускам алгоритма и париться с передачей параметров мне показалось сложнее. Ну, это сугубое имхо, конечно.
Обработка ваша, судя по проработке, неплохая.
10. Z1C (ZLENKO) 17.02.09 17:24
Обработка отличная ! Мне самому очень нравится :-) и купившие довольны. Я принципиально не выкладываю тут (на инфостарте) "поделок, которые пишутся за час".
11. Z-z-z (ZLENKO) 23.06.09 15:55
Обработка бесплатна и доступна зарегистрированным пользователям.
12. Aleksey (HitGroove) 23.06.09 17:08
Важная и полезная вещица!!!!!!!!!!!!!! Друзья просили написать но все как то не с руки! Z - красавчик! Теперь можно прайсы грузить!!!!!!!! Респект тебе Z!!!!!
13. Z-z-z (ZLENKO) 23.06.09 17:13
(12) Кстати хорошая мысль сделать настройку для загрузки документа "Установка цен номенклатуры" для этой обработки.
14. ron (ron1) 29.06.09 21:58
Если Вид документа: реализация,а табличная часть "Услуга" файлы настроек для загрузки документов: РеализацияТоваровИУслуг.mxlz не работают. Когда выбираешь файл настроек (этап рис. 2873) меняется "Услуга" на "Товар" и очищается закладка Табличный документ.
15. Z-z-z (ZLENKO) 30.06.09 09:46
(14) Файлы настроек созданы для загрузки в табличную часть "Товары". Для загрузки в табличную часть "Услуги" Вам необходимо создать свои настройки. Данные настройки прилагаются в качестве примера использования.
16. ron (ron1) 30.06.09 10:45
Настройки все сделала-программа показывает, что загрузка 100%. Но документов созданных нет. Посмотрела в Вашей настройке, там ещё дописано Событие, а я ни каких Событий не дописывала. Может скопировать у Вашей настройки "После добавления строки" ?
17. Z-z-z (ZLENKO) 30.06.09 10:59
(16) Основная функциональность реализуется при помощи обработчиков событий, т.к. для полноценной загрузки недостаточно просто загрузить данные в табличную часть документа - необходимо вызывать методы самого документа по автозаполнению и расчетам табличной части и шапки.

Еще раз акцентирую внимание - данная обработка - это механизм для создания различных правил загрузки, а не готовое решение по загрузке различных документов.
18. ron (ron1) 30.06.09 16:06
19. CrackedBone Bone (CrackedBone) 18.07.09 02:41
Может я что-то не так делаю, но у меня есть строки с ошибками и они никак не обозначены...а когда строк 1963 искать в них вручную ошибочные как-то сложно...
20. Z-z-z (ZLENKO) 18.07.09 03:54
(19) Наверное что то не так делаете раз у Вас строки с ошибками... А кто их должен обозначить ? Откуда обработка должна знать где у Вас ошибки ?
21. CrackedBone Bone (CrackedBone) 18.07.09 17:25
Смешно, шутку понял, но в описании сказано, цитирую : " Выполнить контроль заполнения (нажать на кнопку «Контроль заполнения»), при этом для каждой заполненной ячейки табличного документа заполняется расшифровка найденным значением. Если значение не однозначно, или не найдено, выдается сообщение об ошибке и заполняется комментарий в ячейке."
Мне бы хотя бы номер строк в которых ошибки знать.
22. Z-z-z (ZLENKO) 18.07.09 17:30
(21) Ну там почти все закачивается при помощи обработчиков событий. Контроль заполнения проверяет только значения в полях которые непосредствено отмечены галочками для загрузки.
23. Natalya Voronova (naivete) 27.09.09 14:50
Владимир, добрый день!
Прошу ответа: данная обработка - "бесплатна и доступна зарегистрированным пользователям" или все-же демо-вариант. Спрашиваю, т.к. пока позволяет загрузить лишь три документа :)
Благодарю за ответ заранее!
24. Алексей Козаченко (borman) 21.02.10 07:26
Скорее всего я протупил, но не пойму где. Подскажите, что я делаю не так. Есть только наименования контрагентов. Делаю загрузку в справочник Контрагенты. В настройках отмечаю только колонку "Наименование", соответственно и имеющиеся наименования вставил куда следует. Какой бы режим загрузки (Поиск/Устанавливать/Вычислять) в настройках колонки не использовал - результат один: создаются пустые контрагенты. В типовой обработке тоже самое. В код лезть не хочется. Быстрей бы сам написал обработку :), да вот решил сэкономить время - и убил час ниочем.
25. Алексей Козаченко (borman) 21.02.10 07:44
(24) Спасибо. Сам разобрался.
Оказывается если не используешь колонку (снял галочку), то ее нужно удалить.
26. Z-z-z (ZLENKO) 21.02.10 09:54
(24) Основная часть загрузки реализована в коде обработчиков событий. В том числе в коде задается в какой колонке содержится необходимый реквизит. От универсальной используется ее универсальные функции - хранение настроек, представление загружаемых данных и т.п. Если хотите изменить что то в логике загрузки - надо лезть в код, но не обоработки, а в код обработчиков событий загрузки обработки. Но это проще чем писать обработку с нуля.
27. Дмитрий Плотников (Zexes) 18.10.10 17:07
Пытаюсь отправить автору сообщение, сайт пишет ошибку связи =(

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

Как можно еще связаться с автором?
28. Z-z-z (ZLENKO) 19.10.10 05:30
(27)
сайт: http://zlenko.pro
e-mail: zlenko@gmail.com
Skype: ZLENKO.PRO
29. Mihail D (dmv78) 12.12.10 19:14
!!! догнал ))) можно рпописать любой варинт загрузки!
30. Сидор Сидоров (w-w-w-) 07.01.11 19:55
Пробую загрузить тестовый файл с прилагаемыми настройками, сообщение:
Ошибка при вызове метода контекста (Записать): Не задана дата документа
Объект не записан: ДокументТабличнаяЧастьСтрока.ПоступлениеТоваровУслуг.Товары.
======
В тестовом файле данные не менял. Что нетак с датой?
31. Dmitry (teleport7) 26.06.11 13:51
Присоединяюсь к 20. CrackedBone
Контроль заполнения, как наблюдал, делается также как в стандартной обработке с диска ИТС - только не показываются
примечаниями в ячейках, по которым поиск не удался в текущей базе. Похоже на ошибку.

Сразу оговорюсь, что обработку для 8.1 конвертировал через конфигураторе в v8.2 (8.2.13.213) - возможно в этом корень проблем.
Кофигурация: "УТП для Украины", редакция 1.2.
32. Vit IVA (1vasia1) 16.09.11 16:16
Давно пора было это сделать но руки не доходят. Группаво грузить доки всем нужно.
33. ULAS SV (ulas) 05.11.11 22:23
То есть здесь можно грузить в отличие от типовой - где сначала нужно загрузить справочники, затем - данные из этих справоников в табличный документ - в общем долго и из-за этого полезно только когда список номенклатуры большой.
34. ivan ivanov (ivan07) 27.01.12 14:16
Отличная обработка. Постоянно загружаю прайс-листы поставщиков. Все отлично. Автору респект.
35. Артур Асатрян (Tur_gad) 29.03.12 08:41
Спасибо автору. Постоянно приходиться работать с импортом в справочники и документы без вашей обработки был бы как без рук.
36. Карина -- (ponaroshku) 28.04.12 05:39
Спасибо большое автору за разработку
37. Анна Обухова (Ann-Nancy) 07.08.12 16:05
Добрый день! Пытаюсь воспользоваться данной обработкой, вожусь с примером, который идет вместе с самой обработкой.
Ставлю в обработчик событий:

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

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


Работаю на 8.2, Бухгалтерия ред.2.
В чем может быть проблема?
38. розница.net (ZLENKO) 08.08.12 11:28
(37) Рекомендуется избегать названий переменных, которые могут совпадать с названиями функций и операторов языка. В данном случае переменная Дата и функция Дата.
39. Евгений Рачковский (eugen91) 30.10.12 03:49
Спасибо вам. очень полезна публикация
40. Евгений (wirg) 17.04.13 15:23
41. Алексей Никитин (nikita1001) 12.07.13 10:19
День добрый. Очень помогла обработка. Но есть вопрос. Что то не как не получается решить. Как сложить два значения?. Колонка цена должна складывать их двух колонок
42. ZLENKO.PRO (ZLENKO) 31.07.13 17:25
Сложить значения ячеек можно в коде обработчика события. В прилагаемых примерах достаточно много функционала реализовано при помощи обработчиков событий - можно использовать в качестве примера. На скриншотах показано где находится код обработчиков событий.
43. Света Серебряная (silver-747) 08.10.13 16:50
День добрый. А для Бухгалтерии 8.2 можно вашу обработку использовать?
44. ZLENKO.PRO (ZLENKO) 08.10.13 17:14
(43) Можно, но надо открыть ее в конфигураторе чтобы она сконвертировалась и сохранить.
Обработка не моя - обработка 1С. Я ее доработал для массовой загрузки документов.
Также она является примером использования обработчиков событий при загрузке.
45. Света Серебряная (silver-747) 10.10.13 18:36
Извините пожалуйста :-) я не программист и не могу понять как правильно написать в форме редактирования выражения правила загрузки. Написала так как в скриншоте

ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
НомерДок=ПРАВ("0000000000"+СОКРЛП(ТекстыЯчеек[3]),11);
НайденыйОбьект=Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(НомерДок,ДатаДок);
Если ЗначениеЗаполнено(НайденыйОбъект) Тогда
Объект=НайденныйОбъект.ПолучитьОбъект();
ТабличнаяЧасть=Объект[ТабличнаяЧастьИсточника];
ТабличнаяЧасть.Очистить();
КонецЕсли;

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

Что делаю не так? файл из которого загружаю DBF
46. ZLENKO.PRO (ZLENKO) 11.10.13 10:32
(45) Видимо во второй колонке файла у Вас не дата и выражение выдает ошибку:
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
47. Александр Наумов (Alxxxx74) 11.10.13 16:50
Подскажите пожалуйста, что это за ошибка?
"Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,24)}: Переменная не определена (НайденыйОбъект)"
Прикрепленные файлы:
48. ZLENKO.PRO (ZLENKO) 11.10.13 17:21
(47) Вероятнее всего Вы пытаетесь загрузить правила обмена в конфигурацию, для которой они не предназначены (прилагаются правила для УТ 10.3 и БП 1.6).
49. Александр Наумов (Alxxxx74) 11.10.13 17:24
Я вообще правила не подгружал и та же ошибка(( Эти правила не подходят для бухгалтерии 2.0?
50. Света Серебряная (silver-747) 12.10.13 16:12
Дата стоит именно во второй колонке. Я пытаюсь загрузить в Бух 2.0, может из-за этого не получается?
51. Вася Вася (kuman) 26.11.13 18:17
Подскажите, как в событиях при экспорте из Экселя задать дату документа.
Я делал так
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
И какой в экселе должен быть формат даты.
В примере 20090113185138 - пишет Преобразование значения к типу Дата не может быть выполнено

52. Вася Вася (kuman) 26.11.13 18:18
Подскажите, как в событиях при экспорте из Экселя задать дату документа.
Я делал так
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
И какой в экселе должен быть формат даты.
В примере 20090113185138 - Получение элемента по индексу для значения не определено
Прикрепленные файлы:
53. Вася Вася (kuman) 26.11.13 18:18
Подскажите, как в событиях при экспорте из Экселя задать дату документа.
Я делал так
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
И какой в экселе должен быть формат даты.
В примере 20090113185138 - пишет Преобразование значения к типу Дата не может быть выполнено
54. Npoen Dzogchen (Dansur) 20.12.13 00:03
афигительная вещь!!! спасибо автор.
55. Андрей Поволокин (PovAndy) 10.02.14 18:23
Как запустить Вашу обработку под 1С 8.2 Розница 2.0?

Есть ли такая возможность?
56. hzhz hzhz (hzhz) 28.04.14 13:53
Вопрос. Если у документа нет табличной части, или есть, но её не надо заполнять? Например в БП "ПриходноКассовыйОрдер". Надо заполнить Номер, Дату, Контрагента, Сумма, НДС. Как тогда сделать настройки?
57. Stas Bobkov (stas1kbob) 13.02.15 20:24
Выполняется загрузка строк в документы: "Заказ покупателя"
Всего: 1
---------------------------------------------
Строка 1 не может быть записана.Не указано значение ключевых реквизитов: Контрагент
---------------------------------------------
Ошибка при вызове метода контекста (Записать): Значение поля "Дата" не может быть пустой датой
Объект не записан: .
Такая ошибка, подскажите пожалуйста что делать
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа