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

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

Описание:

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

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

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

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

31.03.2014

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

10.04.2014

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

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

08.12.2014

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

09.01.2026

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

17.06.2026

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

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

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

 

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

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

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

 

76 Comments

  1. gull22

    Проверил на Итилиум. Работает. Желательно добавить заголовки у табличной части. А то при проверке сообщает номер ячейки с ошибкой, а среди 1500 строки искать 1235-ю трудновато.

    Было бы еще добавить возможность правки в самой ячейке.

    Reply ↓
  2. qwinter

    А я свой перевод данной обработки на УФ все никак не дошлифую))

    Reply ↓
  3. qwinter

    если в форме элемент ТаблицаЗагружаемыхРеквизитовЗначениеПоУмолчанию связать по типу с описанием типов, то будет нормальный выбор значений по умолчанию.

    Reply ↓
  4. AleksSF

    В функциях описания событий определенных пользователем используется предопределенная переменная Объект.

    И возникает неоднозначность, желательно ее изменить на например ТекОбъект.

    А так +.

    Reply ↓
  5. AlexanderP

    Отличная вещь, спасибо!

    Правда, с настройками не получилось. Сохранил в mxlz, выбираю тип документа, загружаю настройки, документ — настройки слетают. И наоборот, если сначала настройки, то документ слетает.

    Не знаю, стоит ли при выборе документа считывать его ТЧ — если не нужно, то приходится зря ждать для больших непустых ТЧ

    Reply ↓
  6. TitanLuchs

    Давно пора было кому-то это написать. Сам юзаю загрузку из табличного документа года с 2008, но до написания универсальной обработки так и не добрался…

    Reply ↓
  7. alean

    почему бы не использовать типовую, запустив отладку в обычном приложении?

    хотя…

    вот к примеру типовая не умеет грузить в тч справочников.

    Reply ↓
  8. ext23

    Отличная вещь, спасибо!

    Reply ↓
  9. ben_art

    Подскажите , как в список регистров сведений добавить периодичные

    Reply ↓
  10. qwinter

    (9) ben_art, так там переодические и так же есть?

    Reply ↓
  11. Stety

    Спасибо, нужная и актуальная вещь. 🙂

    Reply ↓
  12. ben_art

    а не планируется ли добавить возможность сохранения настроек ?

    Reply ↓
  13. ben_art

    (10) qwinter, Прошу прощения , я имел ввиду как добавить регистры с регистратором

    Reply ↓
  14. qwinter

    (13) ben_art, можете посмотреть как это реализовано тут http://infostart.ru/public/21890/ , ничего сложного нет.

    Reply ↓
  15. gavlexx

    Не получается открыть обработку в веб-интерфейсе (конфигурация УТ3 для Украины). При открытии пишет «{(2267,20)}»: Переменная не определена (КодировкаXBase)

    Reply ↓
  16. Algiz

    Спасибо, заберу

    Reply ↓
  17. MaksS

    Спасибо, как раз нужна загрузка табличной части справочников в УП.

    Reply ↓
  18. Sintson

    Спасибо за обработку, то что надо, завтра опробую!

    Reply ↓
  19. ron1

    Спасибо за обработку. Загрузила курс у.е. за год без проблем за 1 минуту.

    Reply ↓
  20. Atow

    Спасибо за обработку!

    Есть проблемка: вывела она 10 тыс. предупреждений при контроле заполнения. Переключился в другое окно, поправил данные, вернулся в окно обработки, а оно «повисло». И бегунок на списке сообщений уменьшается — видимо, повторно сообщения отображает.

    Ну, подождал минут 20 — не отвисло.

    Если сообщения в отдельную закладку обработки выводить, это может улучшить ситуацию?

    Reply ↓
  21. qwinter

    (20) Atow, это стандартное поведение управляемых форм. Просто привыкните к этому.

    Reply ↓
  22. Atow

    (21) qwinter, Дело не в привычке, а в том, что обработка, переделанная на УФ неюзабельна в ряде случаев.

    Я и предложил добавить закладку на форму и выводить логи в табличный документ на форме. Ну или в список какой-нить.

    Возможно, это было бы более правильно для УФ.

    Reply ↓
  23. proal

    (22) Atow, На таких больших объемах данных не пробовал. Поэтому не могу сказать, поможет или нет.

    На днях протестирую, напишу.

    Reply ↓
  24. zoytsa

    Спасибо! Отличная работа!

    Reply ↓
  25. cbr900

    А почему не сохраняются нумерация колонок при загрузке настроек

    Reply ↓
  26. proal

    (26) Polkaver, я не сталкивался с таким… Можно считать ошибкой. На всякий случай надо исправить переменную цикла ПланСчетов на мПланСчетов.

    (20) Atow, я попробовал контроль заполнения на больших объемах — у меня система в процессе контроля выводила сообщения, а после того как обработка закончилась — ещё 10 минут перерисовывала табличный документ. Может, в вашем случае обработка тоже была открыта на закладке с табличным документом? Он постоянно перерисовывается при переключении на окно обработки и при переключении с закладки на закладку в форме обработки. Тут я ничего сделать не могу, насколько я знаю — это сама платформа так работает.

    Reply ↓
  27. proal

    (25) cbr900, Можно поподробнее?

    Например, я на закладке «Настройка» включил ручную нумерацию колонок, поставил номера колонок для каких-либо реквизитов, сохранил настройки, переоткрыл обработку, открыл настройки — номера колонок встали как надо.

    Какие действия надо предпринять, чтобы нумерация колонок сбилась?

    Reply ↓
  28. Polkaver

    При запущенном конфигураторе обработка выдает ошибку

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

    Для каждого ПланСчетов Из Метаданные.ПланыСчетов Цикл

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

    Скажите пожалуйста, так и должно быть или это ошибка?

    Reply ↓
  29. iaks

    Добрый день.

    Хочу обновить справочник Номенклатура в Бухгалтерии 8.3

    В файле с обновлением есть уже имеющиеся наименования товаров.

    Как сделать чтобы при загрузке с помощью этой обработки не возникало дубликатов?

    Как можно изменить отдельное свойство номенклатуры при совпадении наименования в файле импорта и справочнике Номенклатура, например артикул?

    Reply ↓
  30. proal

    (29) iaks, Насколько я понял, задачка такая:

    Есть строки с новой номенклатурой, для которой нужно загрузить все реквизиты из файла

    + есть строки с существующей номенклатурой, для которых нужно загрузить только определённый реквизит.

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

    Сложный путь: Для каждого реквизита (кроме наименования) ставить режим загрузки «Вычислять» и задать выражение, в котором искать номенклатуру по наименованию из ячейки номер N, если номенклатура есть в справочнике — то значение реквизита брать из номенклатуры (или из ячейки, если это тот самый загружаемый реквизит), если номенклатуры нет — брать из ячейки.

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

    Reply ↓
  31. елена777

    Спасибо за обработку! Очень пригодилась!

    Reply ↓
  32. PVG_73

    Спасибо! Очень пригодилась.

    Reply ↓
  33. ketr

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

    У него же в УФ есть табличная часть «ДополнительныеРеквизиты»

    Reply ↓
  34. Sabfir

    Здравствуйте!

    Под 8.3 с установленным свойством конфигурации

    «Режим использования модальности» = Не использовать

    кто-то запускал? Работает?

    Reply ↓
  35. profisasha

    (35) Sabfir, Не работает. Необходимо избавится от модальных окон, в частности от Предупреждение И Вопрос.

    Как один из примеров статья от 1с http://v8.1c.ru/o7/201312ref/index.htm

    Reply ↓
  36. proal

    (35) Sabfir, добавил второй файл — переработанная обработка для режима использования модальности «Не использовать».

    И спасибо (36) Profisasha.

    Reply ↓
  37. ToJIuK

    Очень хотелось бы уточнить . Если ли возможность сохранить настройки формы с последующим восстановление . У меня что то не получается. нумерация Колонок сбрасывется.

    Reply ↓
  38. PYCTAM

    метод объекта не обнаружен сведения о внешней обработке

    Reply ↓
  39. qwinter

    (38) ToJIuK, в данной обработке нет.

    Reply ↓
  40. carey

    Добрый вечер!

    При загрузке выдает ошибку — Ошибка. Возможно неверно указан номер листа книги Excel.

    в исходном файле номер листа — Лист1

    Reply ↓
  41. layout

    Подскажите, пожалуйста, а как можно загрузить данные в справочник, если у его элемента, помимо реквизитов, 3 табличные части, в которых может быть много строк? Можно как-то настроить автоматическую загрузку, не указывая каждый раз вручную к какому справочнику относится данная табличная часть. В поточной загрузке можно добавлять табличные части, но куда там вставлять данные для загрузки?

    Reply ↓
  42. proal

    (42) layout,

    В этой обработке такого нет 🙁

    Reply ↓
  43. OldmenInfo

    В модулях обработок нет стандартных процедур для размещения в справочнике дополнительных отчетов обработок, немножко неудобно

    Reply ↓
  44. 9830035

    Подскажите что я делаю не так, почему номенклатура загружается криво

    Все этапы

    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

    Reply ↓
  45. Morffinius

    Доброго дня, скачал оьработку все супер, только с одним вопросом не могу разобраться, гружу табличную часть в документ поступление товаров и услуг в бухгалтерии 3.0 товары цены количество, все грузит, а вот с номерами гтд возникает проблема пишет объект не найден, забыл сказать для обработки гтд свои настройки если по списку не находит, то в справочник выписывает, а вот в документ пишет объект не найден. В чем может быть проблема, подскадите.

    Reply ↓
  46. proal

    (45) 9830035,

    Добрый день.

    Я думаю, вы уже разобрались с проблемой, если же нет, то у меня вопрос:

    На последней картинке ругается на пустое значение в поле «Вариант оформления продажи».

    При этом на второй картинке (там где закладка Настройка) есть строка с этим полем, и флажок в этой строке выключен.

    Т.е. поле не загружается.

    Вопрос — Почему флажок не включен? Ведь если загружается новая номенклатура, очевидно что это поле надо заполнять.

    Reply ↓
  47. proal

    (46) Morffinius, Добрый день.

    Я так понимаю, что элементы справочника ГТД вы создаете алгоритмом при загрузке.

    А вы точно потом присваиваете Ссылку от созданного элемента? Не пытаетесь записать в документ сам объект?

    Т.е. если есть код вида:

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

    … обработка…

    в конце должно быть вроде:

    ОбъектСправочника.Записать();

    СтрокаДокумента.НомерГТД = ОбъектСправочника.Ссылка;

    если же идет такое присваивание:

    СтрокаДокумента.НомерГТД = ОбъектСправочника; — тут слева требуется ссылка, а справа объект. Не сработает.

    Reply ↓
  48. Morffinius

    (48) proal, Доброго дня proal, с программным кодом пока не силен, постараюсь объяснить на пальцах, в основной настройке указываю в поле гтд записывать, ссылка на настройка 1 номера ГТД, в настройке гтд ставлю искать указываю номер колонки ставлю галочку поле для поиска.

    Reply ↓
  49. yellowheel

    (41) carey, у меня та же проблема,в с ней разобрались?

    Reply ↓
  50. proal

    (50) yellowheel, Добрый день.

    А перед сообщением об ошибке появляется сообщение «Обработка файла Microsoft Excel…» ?

    Если нет, тогда ошибка возникла ещё при открытии файла. Может быть слишком длинный путь до файла, попробуйте перекинуть его в папку C:Temp, например.

    Если да, то ошибка возникла при попытке выбрать первый лист книги. Что-то не так с самой книгой Excel, попробуйте в файле добавить пустой лист _после_ листа с данными, сохранить и ещё раз загрузить.

    Reply ↓
  51. AlexandraSerg

    Спасибо большое! все отлично работает на бухгалтерии 3.0.39.65

    Reply ↓
  52. KristinaKometa

    (51) proal, Наверное повторю вопрос. Однако проблема возникает. Например, я на закладке «Настройка» включила ручную нумерацию колонок, поставила номера колонок для каких-либо реквизитов, сохранила настройки, переоткрыла обработку, открыла настройки — номера колонок встают по порядку от 1 до 9 , а не так как было задано. Уточню, что номера колонок были заданы в разброс.

    Какие действия надо предпринять, чтобы нумерация сохранилась?

    Reply ↓
  53. sstas007

    Отличная обработка, но в Веб-режиме выдает ошибку. Подскажите куда копать.

    Reply ↓
  54. tsifra@inbox.ru

    (51) proal, Здравствуйте,

    Только что скачал данный скрипт. Выдается ошибка «Возможно неверное указан номер листа книги Excel». Ваш совет про добавить пустые листы видел. Но это не помогает. Не подскажете в какую сторону думать? Не могли бы вы выложить куда-то экселевский файл, который «подхватывается».

    Reply ↓
  55. A.Belash

    Обработка не преобразовывает значения ячеек к типу «Число».

    Также не преобразовывает в число «ТекстЯчейки».

    Преобразование получилось только таким способом: Результат = ЧИСЛО(ТекстыЯчеек[5])

    Проверял только для импорта ТЧ «Товары» документа «Установка цен номенклатуры» в УТ11.

    В целом отличная обработка!

    Reply ↓
  56. 1801

    Добрый день!

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

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

    Пример: в документе «Поступление товаров и услуг», который заполнен на основании документа «Заказ поставщику», нужно исправить только колонку с количеством поступившего товара. В процессе обработка ищет в уже заполненной табличной части по реквизиту «Код номенклатуры поставщика» соответствующую строку табличной части и замещает данные в колонке «Количество».

    Reply ↓
  57. proal

    (57) 1801, Задачка в целом интересная, просто мне не встречалась. Насчет доработать — ничего пока сказать не могу, на работе завал.

    Но когда разгребусь — то подумаю над её решением.

    Reply ↓
  58. DC

    {Форма.Форма.Форма(5104)}: Ошибка при вызове метода контекста (ЗапуститьПриложение)

    ЗапуститьПриложение(«http://it-titan.ru/index.php?id=4»);

    по причине:

    Использование синхронных методов на клиенте запрещено!

    {Форма.Форма.Форма(4157)}: Ошибка при вызове метода контекста (Выбрать)

    Если ДиалогВыбораФайла.Выбрать() Тогда

    по причине:

    Использование синхронных методов на клиенте запрещено!

    Я так понимаю, до конца от модальности так и не избавились).. Плюс отменять не буду, исправте пожалуйста… В свое время то же наваял подобное, для обычных форм… В справочники хорошо бы добавить возможность загрузки Групп — такое нередеко бывает и добавить ПланыВидовХарактеристик… Да и вообще хорошо бы уметь грузить в любые объекты)

    Reply ↓
  59. Alkemist

    Добрый день.

    Столкнулся со следующей проблемой.

    Загружаю в табличную часть «ПоступлениеТоваровУслуг»

    Созданный документ видит, данные из него подгружает

    Добавляю новые данные. Проверку заполнения проходит нормально.

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

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

    Так происходит при записи и в любой другой документ (((

    Reply ↓
  60. bazhalex

    При загрузке в 1С Розница 2.2 отчет розничных продаж не загружается количество

    Reply ↓
  61. user595924_fedor_zaycev

    Не запускается 1С:Предприятие 8.2 (8.2.19.130) «Управление торговым предприятием для Украины», редакция 1.2. Очень жалко…

    Reply ↓
  62. reshenie

    на конфигурации 1С:Розница 8. базовая версия. ред.2.2.2.15 не работает. Сначала выдает ошибку, а потом вешает программу.

    Reply ↓
  63. zaia

    Спасибо большое, очень помогло! Загрузил серийники для ОС в БП 3

    Reply ↓
  64. 7OH

    А можно добавить загрузку и документ ?

    В табличную часть не совсем то — нужно именно в шапку загрузитьизменить.

    Reply ↓
  65. dj_serega

    Спасибо за обработку.

    Я бы состояние добавил на основные кнопки.

    А то нажал, и непонятно, работает или нет. Ну и когда закончилось не ясно 🙁

    Reply ↓
  66. CheBurator

    Как абсолютно невосьмерочник — попробовал данной обработкой перенести простейшие справочники из 7.7

    вроде как все в целом получилось

    но

    ожидал, что будет какая-то возможность указать, типа «колонка табличных данных «Артикул» соответствует реквизиту (загружаемого справочника) «Номенклатура» — но навскидку такого не нашел… Есть такая возможность?

    и как вообще колонки табличного документа сопоставляются с реквизитами загружаемого справочника..?

    Reply ↓
  67. CheBurator

    хм.. на картинках вроде есть «номер колонки»…

    возможно, я проглядел? или такого параметра нет при загрузке в регистр сведений?

    Reply ↓
  68. CheBurator

    При выборе загрузки в регистр сведений — при нажатии на кнопку «события» — выдает ошибку.

    Reply ↓
  69. CheBurator

    Усовершенствованный вариант этой обработки https://infostart.ru/public/281544/

    — сохранение/восстановление настроек,

    — загрузка плана счетов,

    — загрузка реквизитов объектов типа ПВХ

    Reply ↓
  70. proal

    (67) На закладке «Настройка» есть кнопка «Нумерация колонок» — там нужно выбрать пункт «Ручная нумерация колонок табличного документа».

    И тогда в таблице настройки появится дополнительная колонка. В которой можно будет указать номер колонки, из которой брать данные для реквизита. Для всех реквизитов, для которых включена «Пометка», номер колонки должен быть указан ( <> 0 ).

    Reply ↓
  71. CheBurator

    (71) спсб!

    Reply ↓
  72. request4t

    Пытаюсь загрузить данные в док «Установка цен». Все ок, только не получается с характеристиками. Для вида товара они общие. Справочник «Характеристики» подчинен справочнику «Виды номенклатуры». Реквизит «условие связи» = Искать по Наименование по владельцу Справочник.ВидыНоменклатуры. При загрузке получаю ошибку «Задано неверное имя атрибута структуры».

    Reply ↓
  73. proal

    (73)

    Такие сложные случаи не пробовал. Запускаете в конфигурации УТ? Может, вам попробовать с выполнением произвольного кода?

    Reply ↓
  74. Nefilimus

    Скачивали эту обработку давно. Очень полезная для интегратора и программиста. советую всем!

    Reply ↓
  75. s-a-n-t-a

    Не загружает данные в периодический регистр сведений.

    Reply ↓
  76. s-a-n-t-a

    (76) Загрузка в периодический регистр сведений работает, надо просто оставить «Режим загрузки» у реквизитов везде «Искать».

    Reply ↓

Leave a Comment

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