gifts2017

Работа с буфером обмена (импорт/экспорт в пределах ИБ, нескольких ИБ, 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
201
.epf 9,68Kb 201 Скачать
Вставить ТЧ из буфера обмена
.epf 20,80Kb
20.12.12
126
.epf 20,80Kb 126 Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

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

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


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


...Показать Скрыть
12. Андрей Суханцов (&rew) 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) 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) 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) 02.04.14 13:26
23. Алексей Олешко (retif) 12.02.16 14:02
24. Александр Тарасинский (axxell) 12.02.16 15:39
(23) retif,
Не тестировал - возможно не получится запустить
25. Максим (user641933_valval669) 20.11.16 18:03
Добрый день!
Специально зарегестрировался на этом форуме ради этой обработки, но что-то она не работает.
копирую и екселя таблицу с двумя столбцами (номенклатура и количество), при вставке через меню заполнить, ничего не происходит. помогите пожалуйста
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа