gifts2017

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

Опубликовал Василий Пупкин (Cyberhawk) в раздел Обработки - Обработка документов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наименование Файл Версия Размер
Внешняя обработка для БСП: копирование и вставка строк ТЧ между разными инфобазами 30
.epf 10,97Kb
14.09.16
30
.epf 1.0.0.5 10,97Kb Скачать

См. также

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

Комментарии

2. Алексей Олешко (retif) 25.03.16 12:08
Ошибка в документе ЗаказПоставщику
25.03.2016 12:03:32
{Форма.Форма.Форма(137)}: Значение не является значением объектного типа (ИмяТипа)
ИмяТипа = XMLТипЗнч(ЗначениеКолонки).ИмяТипа;
--------------------------------------------------------------------------------
Управление торговлей, редакция 11.1 (11.1.9.51)1С:Предприятие 8.3 (8.3.7.1949)

Причем в заказе Клиента и Поступление Товаров- все работает
4. Алексей Олешко (retif) 28.03.16 09:50
:-( в заказе поставщика не копирует "назначение",
Подразделение получатель, списать на раходы и аналитика расходов - заполняются не так как были в оригинале.
Две первые строчки скопировал и вставил четвертой и пятой строками
Скриншот прилагается
Прикрепленные файлы:
6. Андрей (AKV77) 28.03.16 12:07
Удобный механизм. Спасибо, работает.
Один для меня существенный нюанс - при копировании и затем вставке не правильно переносится информация о характеристике номенклатуры в случае ее использования - Пример копирую в буфер строку содержащую номенклатуру с характеристикой, вставляется только номенклатура, а характеристика - нет (якобы не используется хар-ка). УТ 11.1 проверял на нескольких версиях.
7. Сергей Старых (tormozit) 28.03.16 15:24
Автор забыл указать еще одно требование "копируются только значения полей, имена которых соответствуют шаблону <ИмяТЧ><ИмяРеквизитаТЧ>". Думаю в (6) именно поэтому не копируется.
9. Андрей (AKV77) 28.03.16 17:09
(8) Cyberhawk, СПАСИБО. Проверил - характеристики переносятся корректно.
10. Алексей Олешко (retif) 29.03.16 09:12
(5) Cyberhawk, большое спасибо!!!
11. Владимир Астапов (vlastapov) 30.03.16 22:34
Да, между разными базами очень впечатляет, спасибо.
12. Алексей Олешко (retif) 22.04.16 10:50
(1) Cyberhawk, просьба доработать для документа "Установка цен Номенклатуры"
мне нужно скопировать из одного документа в другой,
При копировании ошибка- "Поле объекта не обнаружено (ДеревоЦен)"
13. Василий Пупкин (Cyberhawk) 22.04.16 14:35
(12) Обработка предназначена только для работы с табличными частями объектов .
Доработка текущей обработки под работу с деревьями значений не планируется.
15. Vova Gold (wig8) 22.04.16 15:43
Добрый день!
Конфигурация БП 3.0 (3.0.43.173) и УНФ (1.6.3.11) обработка не работает. Выводит сообщения при переносе из БП в УНФ «Поле объекта не обнаружено (Хозрасчетный)», из УНФ в БП «Поле объекта не обнаружено (ХарактеристикиНоменклатуры)».

16. Василий Пупкин (Cyberhawk) 22.04.16 17:01
17. Игорь Герман (German_Tagil) 04.05.16 22:35
у меня не много по другому был реализован вариант копирования строк - http://infostart.ru/public/460032/
при этом писал если между документами то писал во временное хранилище
если между системами - то в файл
но никому не показалось интересным .
Делали инвентаризацию шибко пригодилась гонять туда сюда номенклатуру
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа