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: Потоковая загрузка документов
.1234732345 92,79Kb
01.11.09
1777
.1234732345 92,79Kb 1777 Скачать

См. также

Лучшие комментарии

1. Z1C 16.02.2009 01:08
Наверное нет программиста 1С, который бы хоть раз не писал загрузку чего либо в 1С из Excel. Много различных вариантов выложено в разделе "1C + Excel". Не смотря на все многообразие выбора мне лично больше всего нравилась обработка от 1С "ЗагрузкаДанныхИзТабличногоДокумента". В ней не хватало "потоковой" загрузки документов - дописал. Просьба не писать в комментариях, что "таких обработок уже есть вагон и маленькая тележка" - обработок много - такой мне еще не попадалось. Вобщем выбор есть - выбирайте лучшее.
+ 4 [ 1vasia1; djon10000; CaB; sv80; ]
# Ответить

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Что делаю не так? файл из которого загружаю DBF
Ответили: (46)
# Ответить
46. ZLENKO.PRO 11.10.2013 10:32
(45) Видимо во второй колонке файла у Вас не дата и выражение выдает ошибку:
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
# Ответить
47. Alxxxx74 11.10.2013 16:50
Подскажите пожалуйста, что это за ошибка?
"Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(4,24)}: Переменная не определена (НайденыйОбъект)"
Ответили: (48)

Прикрепленные файлы:

10_2.gif
# Ответить
48. ZLENKO.PRO 11.10.2013 17:21
(47) Вероятнее всего Вы пытаетесь загрузить правила обмена в конфигурацию, для которой они не предназначены (прилагаются правила для УТ 10.3 и БП 1.6).
# Ответить
49. Alxxxx74 11.10.2013 17:24
Я вообще правила не подгружал и та же ошибка(( Эти правила не подходят для бухгалтерии 2.0?
# Ответить
50. silver-747 12.10.2013 16:12
Дата стоит именно во второй колонке. Я пытаюсь загрузить в Бух 2.0, может из-за этого не получается?
# Ответить
51. kuman 26.11.2013 18:17
Подскажите, как в событиях при экспорте из Экселя задать дату документа.
Я делал так
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
И какой в экселе должен быть формат даты.
В примере 20090113185138 - пишет Преобразование значения к типу Дата не может быть выполнено
# Ответить
52. kuman 26.11.2013 18:18
Подскажите, как в событиях при экспорте из Экселя задать дату документа.
Я делал так
ДатаДок=Дата(СОКРЛП(ТекстыЯчеек[2]));
И какой в экселе должен быть формат даты.
В примере 20090113185138 - Получение элемента по индексу для значения не определено

Прикрепленные файлы:

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

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