gifts2017

Загрузка данных из табличного документа (управляемые формы)

Опубликовал Алексей Прокопьев (proal) в раздел Обмен - Загрузка и выгрузка в Excel

Обработка загрузки данных из табличного документа на основе стандартной от 1С, переделанная для тонкого клиента.
Для 8.2 и 8.3

Описание:

Загрузка данных из табличного документа для управляемых форм.

Создана на основе стандартной обработки для толстого клиента.

Возможности все те же, за исключением сохранения настроек в базе - настройки можно сохранить только в файл.

Писал для себя, но может ещё кому поможет.

31.03.2014

Устранил ошибку: При открытии обработки в интерфейсе Такси, при переключении загрузки в Таб. часть, в поле "Ссылка" нет кнопки выбора объекта.
В процедуре ПриОткрытии формы добавлена проверка версии платформы и для 8.3 устанавливается свойство элемента, отвечающее за кнопку выбора.

10.04.2014

Учтено замечание от qwinter - в поле "Значение по умолчанию" настроена связь по типу с полем "Описание типов". Отказ от программного ограничения типов.

Устранён недочет - в 8.3 в поле "Значение по умолчанию" не было кнопки выбора. Теперь есть.

08.12.2014

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

09.01.2015

Доработал сохранение настроек: Теперь при сохранении настройки загрузки сохраняются и номера колонок, заданные при ручной нумерации колонок (по замечанию от ToJIuK. Спасибо за замечание :).
А также наконец добавил функцию СведенияОВнешнейОбработке в модуль.
Обработка прописывается как Дополнительная обработка с одной командой открытия формы "Загрузка из табличного документа". Пробовал на Библиотеке стандартных подсистем 2.2.4.43 и Бухгалтерии 3.0. Необходимо будет ручками указать в каком разделе должна быть обработка, потом в списке дополнительных обработок её можно будет добавлять.

17.06.2015

Сохранение в настройках номеров колонок было реализовано только для платформы 8.3. Обновлена обработка для 8.2 - теперь в настройках этой версии обработки тоже сохраняются номера колонок. Ранее сохраненные настройки необходимо открыть, проставить номера колонок и сохранить заново. При последующем открытии номера колонок восстановятся.

Известные ошибки:

Перед восстановлением настроек загрузки, вначале нужно выбрать вид загружаемого объекта. Если вы загружаете файл с настройками загрузки Складов, а у вас в текущий момент выбран загружаемый справочник Номенклатуры, то при попытке настроить условие связи (в колонке "Условие связи / Выражение для значения") будет появлятся ошибка.

 

Если загружать файл с настройками по объекту метаданных, отсутствующих в текущей конфигурации - будет вызвана ошибка "Неправильный формат файла", настройки очистятся.

Известные особенности:

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

 

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

Наименование Файл Версия Размер
Загрузка данных из табличного документа (УФ) 1651
.epf 58,16Kb
17.06.15
1651
.epf 1.2 58,16Kb Скачать
Загрузка данных из табличного документа (УФ, без модальных окон) 651
.epf 56,89Kb
09.01.15
651
.epf 1.4 56,89Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. юрий гулидов (gull22) 02.04.14 14:07
Проверил на Итилиум. Работает. Желательно добавить заголовки у табличной части. А то при проверке сообщает номер ячейки с ошибкой, а среди 1500 строки искать 1235-ю трудновато.
Было бы еще добавить возможность правки в самой ячейке.
2. Павел Алексеенко (qwinter) 03.04.14 22:17
А я свой перевод данной обработки на УФ все никак не дошлифую))
3. Павел Алексеенко (qwinter) 03.04.14 22:28
если в форме элемент ТаблицаЗагружаемыхРеквизитовЗначениеПоУмолчанию связать по типу с описанием типов, то будет нормальный выбор значений по умолчанию.
4. Aleksandr Filonov (AleksSF) 09.04.14 09:47
В функциях описания событий определенных пользователем используется предопределенная переменная Объект.
И возникает неоднозначность, желательно ее изменить на например ТекОбъект.
А так +.
5. А П (AlexanderP) 10.04.14 11:14
Отличная вещь, спасибо!
Правда, с настройками не получилось. Сохранил в mxlz, выбираю тип документа, загружаю настройки, документ - настройки слетают. И наоборот, если сначала настройки, то документ слетает.
Не знаю, стоит ли при выборе документа считывать его ТЧ - если не нужно, то приходится зря ждать для больших непустых ТЧ
6. Юрий Лазаренко (TitanLuchs) 11.04.14 16:53
Давно пора было кому-то это написать. Сам юзаю загрузку из табличного документа года с 2008, но до написания универсальной обработки так и не добрался...
7. alean alean (alean) 17.04.14 16:32
почему бы не использовать типовую, запустив отладку в обычном приложении?
хотя...
вот к примеру типовая не умеет грузить в тч справочников.
8. Александр Хе (ext23) 22.04.14 02:17
9. Артём Рогов (ben_art) 12.05.14 13:37
Подскажите , как в список регистров сведений добавить периодичные
10. Павел Алексеенко (qwinter) 12.05.14 23:36
(9) ben_art, так там переодические и так же есть?
11. Татьяна Шавлак (Stety) 14.05.14 12:13
Спасибо, нужная и актуальная вещь. :)
12. Артём Рогов (ben_art) 19.05.14 17:58
а не планируется ли добавить возможность сохранения настроек ?
13. Артём Рогов (ben_art) 19.05.14 17:59
(10) qwinter, Прошу прощения , я имел ввиду как добавить регистры с регистратором
14. Павел Алексеенко (qwinter) 19.05.14 21:09
(13) ben_art, можете посмотреть как это реализовано тут http://infostart.ru/public/21890/ , ничего сложного нет.
15. Александр Горлов (gavlexx) 04.06.14 01:49
Не получается открыть обработку в веб-интерфейсе (конфигурация УТ3 для Украины). При открытии пишет "{(2267,20)}": Переменная не определена (КодировкаXBase)
16. Евгений (Algiz) 24.06.14 23:01
17. Макс С (MaksS) 30.06.14 12:54
Спасибо, как раз нужна загрузка табличной части справочников в УП.
18. Александр Синцов (Sintson) 10.08.14 23:25
Спасибо за обработку, то что надо, завтра опробую!
19. Ольга Николаевна (ron1) 16.08.14 00:25
Спасибо за обработку. Загрузила курс у.е. за год без проблем за 1 минуту.
20. Александр Топорков (Atow) 26.08.14 16:04
Спасибо за обработку!
Есть проблемка: вывела она 10 тыс. предупреждений при контроле заполнения. Переключился в другое окно, поправил данные, вернулся в окно обработки, а оно "повисло". И бегунок на списке сообщений уменьшается - видимо, повторно сообщения отображает.
Ну, подождал минут 20 - не отвисло.
Если сообщения в отдельную закладку обработки выводить, это может улучшить ситуацию?
21. Павел Алексеенко (qwinter) 26.08.14 20:28
(20) Atow, это стандартное поведение управляемых форм. Просто привыкните к этому.
22. Александр Топорков (Atow) 27.08.14 10:42
(21) qwinter, Дело не в привычке, а в том, что обработка, переделанная на УФ неюзабельна в ряде случаев.
Я и предложил добавить закладку на форму и выводить логи в табличный документ на форме. Ну или в список какой-нить.
Возможно, это было бы более правильно для УФ.
23. Алексей Прокопьев (proal) 27.08.14 11:36
(22) Atow, На таких больших объемах данных не пробовал. Поэтому не могу сказать, поможет или нет.
На днях протестирую, напишу.
24. andr bat (zoytsa) 04.09.14 06:33
Спасибо! Отличная работа!
25. cbr900 (cbr900) 08.09.14 02:53
А почему не сохраняются нумерация колонок при загрузке настроек
26. Ярослав Третьяков (Polkaver) 11.09.14 13:46
При запущенном конфигураторе обработка выдает ошибку

{Форма.Форма.Форма(1301)}: Поле объекта недоступно для записи (ПланСчетов)
Для каждого ПланСчетов Из Метаданные.ПланыСчетов Цикл

А если конфигуратор не запускать и сразу входить в тонкий клиент, то все работает нормально.

Скажите пожалуйста, так и должно быть или это ошибка?
27. Алексей Прокопьев (proal) 11.09.14 10:21
(26) Polkaver, я не сталкивался с таким... Можно считать ошибкой. На всякий случай надо исправить переменную цикла ПланСчетов на мПланСчетов.
(20) Atow, я попробовал контроль заполнения на больших объемах - у меня система в процессе контроля выводила сообщения, а после того как обработка закончилась - ещё 10 минут перерисовывала табличный документ. Может, в вашем случае обработка тоже была открыта на закладке с табличным документом? Он постоянно перерисовывается при переключении на окно обработки и при переключении с закладки на закладку в форме обработки. Тут я ничего сделать не могу, насколько я знаю - это сама платформа так работает.
28. Алексей Прокопьев (proal) 11.09.14 10:25
(25) cbr900, Можно поподробнее?
Например, я на закладке "Настройка" включил ручную нумерацию колонок, поставил номера колонок для каких-либо реквизитов, сохранил настройки, переоткрыл обработку, открыл настройки - номера колонок встали как надо.
Какие действия надо предпринять, чтобы нумерация колонок сбилась?
29. Ivan T (iaks) 07.10.14 20:17
Добрый день.

Хочу обновить справочник Номенклатура в Бухгалтерии 8.3
В файле с обновлением есть уже имеющиеся наименования товаров.

Как сделать чтобы при загрузке с помощью этой обработки не возникало дубликатов?
Как можно изменить отдельное свойство номенклатуры при совпадении наименования в файле импорта и справочнике Номенклатура, например артикул?
30. Алексей Прокопьев (proal) 08.10.14 05:37
(29) iaks, Насколько я понял, задачка такая:
Есть строки с новой номенклатурой, для которой нужно загрузить все реквизиты из файла
+ есть строки с существующей номенклатурой, для которых нужно загрузить только определённый реквизит.

Легкий путь: Разбить этот файл на два (новая, существующая номенклатура), и загружать каждый отдельно.
Сложный путь: Для каждого реквизита (кроме наименования) ставить режим загрузки "Вычислять" и задать выражение, в котором искать номенклатуру по наименованию из ячейки номер N, если номенклатура есть в справочнике - то значение реквизита брать из номенклатуры (или из ячейки, если это тот самый загружаемый реквизит), если номенклатуры нет - брать из ячейки.

Штука в том, что обработка обрабатывает всю строку, считывает все значения, которые отмечены как обрабатываемые на закладке "Настройка", и вгружает их в объект. Поэтому и надо считывать значения из существующей номенклатуры, чтобы не затереть их другими значениями.
31. Елена 777 (елена777) 17.10.14 08:21
Спасибо за обработку! Очень пригодилась!
32. Виталий (PVG_73) 23.10.14 14:41
Спасибо! Очень пригодилась.
34. Игорь Иванов (ketr) 03.12.14 14:51
Подскажите пожалуйста, а почему при загрузке в табличную часть я не могу выбрать справочник номенклатуры?
У него же в УФ есть табличная часть "ДополнительныеРеквизиты"
35. Sabfir Sabfir (Sabfir) 05.12.14 00:52
Здравствуйте!
Под 8.3 с установленным свойством конфигурации
"Режим использования модальности" = Не использовать
кто-то запускал? Работает?
36. Саша Коновалов (profisasha) 08.12.14 10:09
(35) Sabfir, Не работает. Необходимо избавится от модальных окон, в частности от Предупреждение И Вопрос.
Как один из примеров статья от 1с http://v8.1c.ru/o7/201312ref/index.htm
37. Алексей Прокопьев (proal) 08.12.14 13:22
(35) Sabfir, добавил второй файл - переработанная обработка для режима использования модальности "Не использовать".
И спасибо (36) Profisasha.
38. Григорьев Анатолий (ToJIuK) 18.12.14 21:53
Очень хотелось бы уточнить . Если ли возможность сохранить настройки формы с последующим восстановление . У меня что то не получается. нумерация Колонок сбрасывется.
39. Rustam Aitzhanov (PYCTAM) 27.12.14 15:52
метод объекта не обнаружен сведения о внешней обработке
40. Павел Алексеенко (qwinter) 04.01.15 12:01
(38) ToJIuK, в данной обработке нет.
41. Алексей Корн (carey) 10.02.15 20:36
Добрый вечер!
При загрузке выдает ошибку - Ошибка. Возможно неверно указан номер листа книги Excel.

в исходном файле номер листа - Лист1
42. lay lay (layout) 27.02.15 20:17
Подскажите, пожалуйста, а как можно загрузить данные в справочник, если у его элемента, помимо реквизитов, 3 табличные части, в которых может быть много строк? Можно как-то настроить автоматическую загрузку, не указывая каждый раз вручную к какому справочнику относится данная табличная часть. В поточной загрузке можно добавлять табличные части, но куда там вставлять данные для загрузки?
43. Алексей Прокопьев (proal) 02.03.15 13:45
(42) layout,
В этой обработке такого нет :(
44. Андрей Андрей (OldmenInfo) 18.03.15 11:52
В модулях обработок нет стандартных процедур для размещения в справочнике дополнительных отчетов обработок, немножко неудобно
45. Максим морозов (9830035) 02.04.15 18:16
Подскажите что я делаю не так, почему номенклатура загружается криво
Все этапы
http://clip2net.com/s/3fnXN4B
http://clip2net.com/s/3fnZAeO
http://clip2net.com/s/3fnZYIY
http://clip2net.com/s/3fo3fJU
http://clip2net.com/s/3fo3zxf
http://clip2net.com/s/3fo3LXW
Если зайти в номенклатуры и нажать сохранить, то выскакивает такое сообщение
http://clip2net.com/s/3fo4T2t
46. Михаил Щербаков (Morffinius) 07.04.15 14:33
Доброго дня, скачал оьработку все супер, только с одним вопросом не могу разобраться, гружу табличную часть в документ поступление товаров и услуг в бухгалтерии 3.0 товары цены количество, все грузит, а вот с номерами гтд возникает проблема пишет объект не найден, забыл сказать для обработки гтд свои настройки если по списку не находит, то в справочник выписывает, а вот в документ пишет объект не найден. В чем может быть проблема, подскадите.
47. Алексей Прокопьев (proal) 08.04.15 13:29
(45) 9830035,
Добрый день.
Я думаю, вы уже разобрались с проблемой, если же нет, то у меня вопрос:
На последней картинке ругается на пустое значение в поле "Вариант оформления продажи".
При этом на второй картинке (там где закладка Настройка) есть строка с этим полем, и флажок в этой строке выключен.
Т.е. поле не загружается.
Вопрос - Почему флажок не включен? Ведь если загружается новая номенклатура, очевидно что это поле надо заполнять.
48. Алексей Прокопьев (proal) 08.04.15 13:32
(46) Morffinius, Добрый день.
Я так понимаю, что элементы справочника ГТД вы создаете алгоритмом при загрузке.
А вы точно потом присваиваете Ссылку от созданного элемента? Не пытаетесь записать в документ сам объект?

Т.е. если есть код вида:
ОбъектСправочника = Справочники.НомераГТД.СоздатьЭлемент();
... обработка...
в конце должно быть вроде:
ОбъектСправочника.Записать();
СтрокаДокумента.НомерГТД = ОбъектСправочника.Ссылка;

если же идет такое присваивание:
СтрокаДокумента.НомерГТД = ОбъектСправочника; - тут слева требуется ссылка, а справа объект. Не сработает.
49. Михаил Щербаков (Morffinius) 08.04.15 19:40
(48) proal, Доброго дня proal, с программным кодом пока не силен, постараюсь объяснить на пальцах, в основной настройке указываю в поле гтд записывать, ссылка на настройка 1 номера ГТД, в настройке гтд ставлю искать указываю номер колонки ставлю галочку поле для поиска.
50. Хил Фикусович (yellowheel) 13.04.15 15:28
(41) carey, у меня та же проблема,в с ней разобрались?
51. Алексей Прокопьев (proal) 15.04.15 07:55
(50) yellowheel, Добрый день.
А перед сообщением об ошибке появляется сообщение "Обработка файла Microsoft Excel..." ?
Если нет, тогда ошибка возникла ещё при открытии файла. Может быть слишком длинный путь до файла, попробуйте перекинуть его в папку C:\Temp, например.
Если да, то ошибка возникла при попытке выбрать первый лист книги. Что-то не так с самой книгой Excel, попробуйте в файле добавить пустой лист _после_ листа с данными, сохранить и ещё раз загрузить.
52. Александра Коробицина (AlexandraSerg) 28.04.15 16:27
Спасибо большое! все отлично работает на бухгалтерии 3.0.39.65
53. Кристина (KristinaKometa) 16.06.15 08:38
(51) proal, Наверное повторю вопрос. Однако проблема возникает. Например, я на закладке "Настройка" включила ручную нумерацию колонок, поставила номера колонок для каких-либо реквизитов, сохранила настройки, переоткрыла обработку, открыла настройки - номера колонок встают по порядку от 1 до 9 , а не так как было задано. Уточню, что номера колонок были заданы в разброс.
Какие действия надо предпринять, чтобы нумерация сохранилась?
Прикрепленные файлы:
54. Станислав C (sstas007) 11.08.15 13:02
Отличная обработка, но в Веб-режиме выдает ошибку. Подскажите куда копать.
Прикрепленные файлы:
55. Andrey Sadf (tsifra@inbox.ru) 18.09.15 10:46
(51) proal, Здравствуйте,

Только что скачал данный скрипт. Выдается ошибка "Возможно неверное указан номер листа книги Excel". Ваш совет про добавить пустые листы видел. Но это не помогает. Не подскажете в какую сторону думать? Не могли бы вы выложить куда-то экселевский файл, который "подхватывается".
56. Андрей (A.Belash) 07.12.15 17:55
Обработка не преобразовывает значения ячеек к типу "Число".
Также не преобразовывает в число "ТекстЯчейки".
Преобразование получилось только таким способом: Результат = ЧИСЛО(ТекстыЯчеек[5])
Проверял только для импорта ТЧ "Товары" документа "Установка цен номенклатуры" в УТ11.
В целом отличная обработка!
57. 1801 13.01.16 16:32
Добрый день!

Суть проблемы - эта обработка (как и подобные стандартные) при загрузке в табличную часть документа каждый раз заново заполняет и перезаписывает эту табличную часть. Но часто требуется в уже имеющейся табличной части залить только один столбец, при этом не удаляя и не изменяя ранее заполненные данные.

Вопрос - можно ли доработать обработку так, что-бы был выбор (галка) перезаписывать всю табличную часть или только замещать данные в указанном столбце?

Пример: в документе "Поступление товаров и услуг", который заполнен на основании документа "Заказ поставщику", нужно исправить только колонку с количеством поступившего товара. В процессе обработка ищет в уже заполненной табличной части по реквизиту "Код номенклатуры поставщика" соответствующую строку табличной части и замещает данные в колонке "Количество".
58. Алексей Прокопьев (proal) 05.02.16 10:50
(57) 1801, Задачка в целом интересная, просто мне не встречалась. Насчет доработать - ничего пока сказать не могу, на работе завал.
Но когда разгребусь - то подумаю над её решением.
59. Денис Суходулов (DC) 05.02.16 15:33
{Форма.Форма.Форма(5104)}: Ошибка при вызове метода контекста (ЗапуститьПриложение)
ЗапуститьПриложение("http://it-titan.ru/index.php?id=4");
по причине:
Использование синхронных методов на клиенте запрещено!

{Форма.Форма.Форма(4157)}: Ошибка при вызове метода контекста (Выбрать)
Если ДиалогВыбораФайла.Выбрать() Тогда
по причине:
Использование синхронных методов на клиенте запрещено!



Я так понимаю, до конца от модальности так и не избавились).. Плюс отменять не буду, исправте пожалуйста... В свое время то же наваял подобное, для обычных форм... В справочники хорошо бы добавить возможность загрузки Групп - такое нередеко бывает и добавить ПланыВидовХарактеристик... Да и вообще хорошо бы уметь грузить в любые объекты)
60. Евгений Гордиенко (Alkemist) 30.03.16 11:52
Добрый день.
Столкнулся со следующей проблемой.
Загружаю в табличную часть "ПоступлениеТоваровУслуг"
Созданный документ видит, данные из него подгружает
Добавляю новые данные. Проверку заполнения проходит нормально.

При загрузке выдает следующую ошибку:

Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПередЗаписью': {Документ.УстановкаЦенНоменклатуры.МодульОбъекта(62)}: Поле объекта недоступно для записи (ЭтотОбъект)

Так происходит при записи и в любой другой документ (((
61. Алексей Баженов (bazhalex) 04.04.16 11:05
При загрузке в 1С Розница 2.2 отчет розничных продаж не загружается количество
62. Денис Кораблев (user595924_fedor_zaycev) 14.08.16 08:49
Не запускается 1С:Предприятие 8.2 (8.2.19.130) "Управление торговым предприятием для Украины", редакция 1.2. Очень жалко...
63. Дмитрий Крайнов (reshenie) 24.08.16 00:01
на конфигурации 1С:Розница 8. базовая версия. ред.2.2.2.15 не работает. Сначала выдает ошибку, а потом вешает программу.