УФ + БСП: копирование строк табличных частей (даже между разными инфобазами)



Внешняя обработка для конфигураций на БСП, работает на управляемых формах (включая Такси) в толстом клиенте, тонком клиенте и веб-клиенте

Общее описание

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

Для передачи используется буфер обмена той операционной системы, в которой запущен клиент 1С.

Внешние компоненты (ВК) не используются. Для работы с буфером обмена используется обращение к COM-объекту из свойства поля HTML-документа ParentWindow (методы SetData и GetData свойства ClipboardData).

Подключение обработки к инфобазе

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

Чтобы добавить внешнюю обработку в инфобазу, нужно открыть раздел "Администрирование" и перейти к пункту "Печатные формы, отчеты и обработки":

 

При необходимости установить флажок "Дополнительные отчеты и обработки" и нажать рядом с флажком гиперссылку "Дополнительные отчеты и обработки".

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

Использование обработки

Чтобы скопировать строки ТЧ в буфер обмена, нужно их выделить и вызвать команду "Скопировать":

Обратите внимание, что в разных версиях подсистемы БСП расположение команд дополнительных обработок может быть как в командной панели табличной части формы, так и в командной панели самой формы (т.е. в шапке).

Чтобы вставить строки ТЧ из буфера обмена, необходимо поставить фокус (щелкнуть мышкой) в желаемую табичную часть и вызвать команду "Вставить":

Особенности и ограничения

Ссылочные объекты ищутся по GUID’ам.

При вставке новые строки добавляются в конец таблицы (старые не затираются).

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

Объект перед копированием или вставкой строк ТЧ должен быть записан в информационной базе (если это не так, то пользователю задается соответствующий вопрос).

Обработка работает только с теми таблицами на формах:

  • которые связаны с реквизитом управляемой формы "Объект.<ИмяТабличнойЧасти>" или "<ИмяТабличнойЧасти>"
  • у которых свойство "Имя" равно имени табличной части объекта

Вместо заключения

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

При обнаружении ошибок в работе инструмента просьба писать в комментариях, указывая:

  • операционную систему
  • версию платформы 1С
  • версию конфигурации инфобазы
  • версию БСП (смотреть в общем модуле ОбновлениеИнформационнойБазыБСП в процедуре ПриДобавленииПодсистемы())

30 Comments

  1. retif

    Ошибка в документе ЗаказПоставщику

    25.03.2016 12:03:32

    {Форма.Форма.Форма(137)}: Значение не является значением объектного типа (ИмяТипа)

    ИмяТипа = XMLТипЗнч(ЗначениеКолонки).ИмяТипа;

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

    Управление торговлей, редакция 11.1 (11.1.9.51)1С:Предприятие 8.3 (8.3.7.1949)

    Причем в заказе Клиента и Поступление Товаров- все работает

    Reply ↓
  2. retif

    🙁 в заказе поставщика не копирует «назначение«,

    Подразделение получатель, списать на раходы и аналитика расходов — заполняются не так как были в оригинале.

    Две первые строчки скопировал и вставил четвертой и пятой строками

    Скриншот прилагается

    Reply ↓
  3. AKV77

    Удобный механизм. Спасибо, работает.

    Один для меня существенный нюанс — при копировании и затем вставке не правильно переносится информация о характеристике номенклатуры в случае ее использования — Пример копирую в буфер строку содержащую номенклатуру с характеристикой, вставляется только номенклатура, а характеристика — нет (якобы не используется хар-ка). УТ 11.1 проверял на нескольких версиях.

    Reply ↓
  4. tormozit

    Автор забыл указать еще одно требование «копируются только значения полей, имена которых соответствуют шаблону <ИмяТЧ><ИмяРеквизитаТЧ>». Думаю в (6) именно поэтому не копируется.

    Reply ↓
  5. AKV77

    (8) СПАСИБО. Проверил — характеристики переносятся корректно.

    Reply ↓
  6. retif

    (5) большое спасибо!!!

    Reply ↓
  7. vlastapov

    Да, между разными базами очень впечатляет, спасибо.

    Reply ↓
  8. retif

    (1) просьба доработать для документа «Установка цен Номенклатуры»

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

    При копировании ошибка- «Поле объекта не обнаружено (ДеревоЦен)»

    Reply ↓
  9. Cyberhawk

    (12) Обработка предназначена только для работы с табличными частями объектов .

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

    Reply ↓
  10. wig8

    Добрый день!

    Конфигурация БП 3.0 (3.0.43.173) и УНФ (1.6.3.11) обработка не работает. Выводит сообщения при переносе из БП в УНФ «Поле объекта не обнаружено (Хозрасчетный)», из УНФ в БП «Поле объекта не обнаружено (ХарактеристикиНоменклатуры)».

    Reply ↓
  11. Cyberhawk

    (15) wig8, исправлено в 1.0.0.5

    Reply ↓
  12. German_Tagil

    у меня не много по другому был реализован вариант копирования строк — http://infostart.ru/public/460032/

    при этом писал если между документами то писал во временное хранилище

    если между системами — то в файл

    но никому не показалось интересным .

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

    Reply ↓
  13. Zexes

    Просто красавец, дико спас.

    Reply ↓
  14. Zexes

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

    Reply ↓
  15. Cyberhawk

    (19) возможно, буфер обмена в терминале запрещен — проверь

    Reply ↓
  16. Zexes

    (20),первым делом проверил, все копирует без проблем =( server 2012 r2

    Reply ↓
  17. Cyberhawk

    (21) Тогда да — дело может быть в определенных настройках политики безопасности. Попробую реализовать альтернативный вариант работы с буфером обмена.

    Reply ↓
  18. alexfolk

    Ошибка при копировании между разными базами, не переносится номенклатура <Объект не найден> (81:969a00235453ced911e71f5b94452f75).

    ОС Windows 10 Home

    1С:Предприятие 8.3 (8.3.9.2170)

    Розница, редакция 2.2 (2.2.5.27)

    версия БСП 2.3.4.45

    Reply ↓
  19. Cyberhawk

    (23) Почему считаешь, что номнеклатура в твоем случае должна переноситься?

    Рекомендую внимательно ознакомиться с текстом публикации.

    Reply ↓
  20. alexfolk

    А что не так с моим случаем? Где написано в тексте публикации, что в Рознице 2.2 в документе списание товаров НОМЕНКЛАТУРА не будет переноситься?

    Reply ↓
  21. Cyberhawk

    (25) Весьма странный вопрос. Вроде очевидно, что конкретно про какую-то конфигурацию и/или ее документ нигде в тексте не написано.

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

    Reply ↓
  22. anton448

    Спасибо, отличная обработка! 🙂

    Reply ↓
  23. klaus38

    Серию перенесет? Штатный механизм этого не делает.

    Reply ↓
  24. Cyberhawk

    (28) У меня в, например, ЗУПе никаких серий нет, так что, видимо, тебе придется проверить это самостоятельно

    Reply ↓
  25. German_Tagil

    Благодарю!!! Надо было из табличной части Материалы в эксплуатации Спецодежда

    перенести в Спецоснастку

    добавил в Спецоснастку физлицо в расширении

    и ву а ля один к одному все скопировалось

    Reply ↓
  26. klaus38

    Все переносит и серии и колонки с доп.реквизитами. УТ11.7. Спасибо.

    Reply ↓
  27. ProkopyukIN

    на платформе 8.3.15 перестало работать. выдает ошибку «Значение не является значением объектного типа (ClipboardData)»

    Reply ↓
  28. Cyberhawk

    (32) Скорее всего перестало работать, начиная с 8.3.14.1565, в связи с переориентированием платформы с Internet Explorer на WebKit.

    Посмотрю, что можно сделать, и отпишусь отдельным комментарием.

    Reply ↓
  29. ProkopyukIN

    я просто с 13 сразу на 15 прыгнул. 14 даже ни разу не ставил.

    Reply ↓
  30. Cyberhawk

    (34) Ошибка исправлена в версии 1.0.0.6, файл обновлен.

    Тебе доступно его повторное скачивание (без повторной траты стартмани)?

    Reply ↓

Leave a Comment

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