Работа с буфером обмена (импорт/экспорт в пределах ИБ, нескольких ИБ, Word, Excel и т.д.)

Опубликовал Александр Тарасинский (axxell) в раздел Обработки - Обработка документов

Обработки заполнения табличных частей "Копировать в буфер обмена" и "Вставить из буфера обмена" позволяют копировать и вставлять табличные части документов в пределах одной информационной базы, разных информационных баз, переносить данные между 1С и Excel, Word и т.д.

Предистория:

Меня всегда удручал тот факт, что для вставки табличных данных из какого-либо приложения в 1С необходимо разрабатывать отдельную обработку. Когда внедрял проект в одной торговой компании, столкнулся с тем, что операторы занимаются просто немыслимой ерундой - для ввода заявки на отгрузку, распечатывают эту заявку с сайта заказчика и вручную вводят данные уже в 1С. В результате родилась идея упростить такую работу за счет обработки содержимого буфера обмена. По горячим следам создал обработку для 1С 7.7, в которую были заложены функции импорта буфера обмена и обучения для настройки под разные форматы табличных данных (это был импорт заказов с порталов ЕКОД, Пятерочка, 7 Континент и т.д.). Причем вмешательство программиста в обучение программы не нужно.

Что делают обработки:

Предлагаемые обработки не претендует на универсальность, т.к. у меня была строго определенная задача упростить работу пользователей экономического отдела. Позволяют копировать и вставлять в/из буфер(а) обмена.  Операция копировавния означает, что для любого документа содержимое табличной части будет помещено в буфер обмена в виде удобном для считывания данных. Операция вставки из буфера обмена означает, что содержимое буфера обмена будет считано и импортировано в табличную часть документа. Копировать и вставлять буфер обмена можно в пределах одной информационной базы, разных информационных баз, разных приложений (1С и Excel, 1C и Word, 1С и браузер и т.д.).

Проверялось на релизе:

УПП 1.3.31.1, но есть возможность работы в любых конфигурациях, где встроен справочник "Внешние обработки" (Сервис -> Дополнительные внешние отчеты и обработки).

Подробности:

Работа с буфером обмена выполняется через объект InternetExplorer. Когда табличные данные помещаются в буфер обмена, разделителем колонок выступает символ табуляции (TAB). При считывании некоторых таблиц из браузера, столкнулся с неприятным фактом, что не всегда возможно корректно разделить колонки. Но с этой функцией замечательно справляется Word. Поэтому, когда анализ содержимого буфера обмена для разбиения на колонки проходит неудачно, создаю объект Word, копирую буфер в новый документ и заново считываю скопированные данные. В результате получаю таблицу, которую можно с успехом парсить. Импорт Номенклатуры выполнется если в табличных данных есть колонка "Артикул". При невозможности работы с артикулом, в ход идёт "Наименование".

Порядок встраивания:

В режиме 1С:Предприятие нужно в меню Сервис -> Дополнительные внешние отчеты и обработки -> Обработки заполнения табличных частей добавить 2 обработки "Копировать в буфер обмена" и "Вставить в буфер обмена". При добавлении файла как обработки заполнения табличной части, нужно указать для каких документов и табличных частей предназачена обработка по работе с буфером обмена. Параметры никакие указывать не нужно.

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

Наименование Файл Версия Размер
Копировать ТЧ в буфер обмена
.epf 9,68Kb
20.12.12
204
.epf 9,68Kb 204 Скачать
Вставить ТЧ из буфера обмена
.epf 20,80Kb
20.12.12
129
.epf 20,80Kb 129 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Василий Орлов (Bublik2011) 9 16.12.12 01:03 Сейчас в теме
Удивительно экономит время! Нечто подобное чудо встречаю второй раз. Первое было - "Изображение из буфера привязать к элементу номенклатуры". Не помню название. Но вам (или Вам?:) удалось создать потрясающую вещь! А можно-ли ее переписать на 8.1, есть такая возможность? :idea:
2. Александр Лыткин (TrinitronOTV) 16.12.12 07:16 Сейчас в теме
интересная идея, спасибо
3. Сергей Ожерельев (Поручик) 3472 16.12.12 19:48 Сейчас в теме
Для вставки изображений из буфера обмена существует набор обработок для разных конфигураций http://infostart.ru/public/81133/
4. Александр Тарасинский (axxell) 884 19.12.12 09:22 Сейчас в теме
(1) Bublik2011,
К сожалению такой возможности переписать под 8.1 у меня нет. Идёт полным ходом проект внедрения на УПП.
5. lion-killer Bilous (lion-killer) 19 19.12.12 14:32 Сейчас в теме
Синтаксическая ошибка:

{ВнешняяОбработка.БуферОбмена_Вставить.МодульОбъекта(745,18)}: Переменная не определена (вичи_МодульАвтоматизацияСерверКлиент)
ТекДанные = <<?>>вичи_МодульАвтоматизацияСерверКлиент.ВернутьНоменклатуруПоАртикулу(ТекПредставлениеДанных); (Проверка: Толстый клиент (обычное приложение))
6. юрий гулидов (gull22) 80 19.12.12 18:47 Сейчас в теме
Хотелось бы понять, для копирования в буфер исходный файл должен содержать ту же структуры, что и табличная часть документа, куда переносится таблица? Может автор разместит скриншоты для понимания?
7. Александр Тарасинский (axxell) 884 20.12.12 12:13 Сейчас в теме
(5) lion-killer,
Добрый день!
Сегодня уже будет исправленный вариант.
8. Александр Тарасинский (axxell) 884 20.12.12 12:14 Сейчас в теме
(6) gull22,
Добрый день!
Исправлю публикацию, где укажу пример в Excel. Структуры данных могут быть неодинаковы, главное наличие реквизитов Номенклатура и Количество
9. Наталия Мастербатова (zzz_natali) 54 17.01.13 15:40 Сейчас в теме
axxell,
Если я сама делаю документы для авторегистрации, как мне написать в макете(Параметры_Авторегистрации), чтобы третья колонка(Представление кнопки) заполнялась(авторегилась) после добавления Вашей обработки в конфигурацию?
Ну Вы поняли(скажем):
1я колонка Документы.ПоступлениеТоваровУслуг
2я колонка Товары
3я колонка ??? (и надо ли её как-то обзывать по аналогии с 1й и 2й колонками: ИмяДокумента, ИмяТЧ)
Спасибо.
10. Александр Тарасинский (axxell) 884 17.01.13 19:31 Сейчас в теме
(9) zzz_natali,
Вот конкретно к каждой табличной части привязать свое наименование - не знаю как. А так, можно оставить представление кнопки незаполненным и тогда само наименование обработки и будет представление кнопки при нажатии кнопки Заполнить
11. Василий Орлов (Bublik2011) 9 17.01.13 21:25 Сейчас в теме
(3) Поручик, да, именно эта публикация "набор обработок для изображений из буфера обмена " и была прекрасной идеей. Если ситуация складывается как в посте (4) , то для УТ10 пока нашел подходящее решение для моих нужд: на простой связке - COMОбъект и СоздатьОбъект("VBScript.RegExp"); Так, ляповато, почти SendKey))


Функция ПолучитьТекстБуфераОбмена() Экспорт
#Если Клиент Тогда
    Объект = Новый COMОбъект("htmlfile");
		  //Сообщить(Объект.ParentWindow.ClipboardData.Getdata("Text"));
    Возврат Объект.ParentWindow.ClipboardData.Getdata("Text");
#КонецЕсли
КонецФункции


...Показать Скрыть
12. Андрей Суханцов (&rew) 6 26.06.13 07:35 Сейчас в теме
(1)Переписать можно. Открываете в конфигураторе 1с 8.2 эту обработку, в 8.1 создаете новую, и как у девочек на футболках.
П.С. У девочки справа, судя по надписи на футболке, больше парней.
13. Ula1c (ula1c) 16.07.13 16:38 Сейчас в теме
Спасибо. Тестирую вашу обработку в такой ситуации: две идентичные базовые конфигурации БП 2.0.46.8. Нужно перебросить содержимое табличной части документа Авансовый отчет из одной базы в другую. Копирование происходит нормально. При вставке из буфера обмена не заполняются поля Наименование документа расхода, его дату и номер, счет учета остаютсяпустыми. Проверила в Worde содержимое буфера обмена - все поля есть. Подскажите в чем причина.
14. Ula1c (ula1c) 16.07.13 17:34 Сейчас в теме
(13) ula1c, Добавила в функцию Функция ПолучитьВозможныеНаименованияКолонок() недостающие наименования колонок (которые не заполнялись при вставке). Результата нет. А очень нужно.
15. Александр Тарасинский (axxell) 884 17.07.13 12:50 Сейчас в теме
(14) ula1c,
Добавил возможность работы с документом авансовый отчет и заменил обработку по вставке из буфера на новую. Напишите мне адрес эл. почты, чтобы я выслал обновленную версию
16. Ula1c (ula1c) 17.07.13 14:12 Сейчас в теме
(15) axxell, Добрый день, Александр! Спасибо за помощь. Адрес эл.почты отправила вам в сообщении.
17. Ula1c (ula1c) 18.07.13 14:54 Сейчас в теме
Присоединяюсь к (1) Bublik2011, очень простая, наглядная и удобная обработка, нашла для себя множество вариантов применения - от копирования документов между базами, до загрузки отсканированных документов из Excell и Word. Автору благодарность и "+" несомненно и за обработку и за помощь.
18. Зоя (zaika) 13.08.13 18:20 Сейчас в теме
Очень нужная обработка. У меня вопрос по ней. Есть две конфигурации, в которых у номенклатуры несколько различаются наименования, коды одинаковые, я же могу изменить вашу обработку, чтобы в выгрузке-загрузке принимали участие коды, а не наименования?
19. Александр Тарасинский (axxell) 884 14.08.13 09:52 Сейчас в теме
(18) zaika, Конечно, меняйте как Вам будет удобно.
20. Зоя (zaika) 14.08.13 10:17 Сейчас в теме
C загрузкой по коду вроде бы получилось, как я поняла, эта колонка должна обязательно присутствовать в ТЧ. А вот ссылка на документ не выгружается. Вроде бы все прописала по аналогии с вашим документов Заказ.
21. Зоя (zaika) 14.08.13 10:38 Сейчас в теме
22. Maxim Odinsov (Odinsov) 8 02.04.14 13:26 Сейчас в теме
23. Алексей Олешко (retif) 12.02.16 14:02 Сейчас в теме
24. Александр Тарасинский (axxell) 884 12.02.16 15:39 Сейчас в теме
(23) retif,
Не тестировал - возможно не получится запустить
25. Максим (user641933_valval669) 20.11.16 18:03 Сейчас в теме
Добрый день!
Специально зарегестрировался на этом форуме ради этой обработки, но что-то она не работает.
копирую и екселя таблицу с двумя столбцами (номенклатура и количество), при вставке через меню заполнить, ничего не происходит. помогите пожалуйста