Суббота, 20.04.2024, 02:38
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Проблемные ситуации » Вставка из буфера обмена ничего не делает (а точнее: вставка из буфера обмена возвращает Неопределено)
Вставка из буфера обмена ничего не делает
GetNightДата: Четверг, 22.09.2022, 12:31 | Сообщение # 1
Майор
Группа: Проверенные
Сообщений: 93
Репутация: 60
Статус: Оффлайн
ирПлатформа.Массив:


Код
Процедура КоманднаяПанельИзБуферОбмена(Кнопка)
   
   ОбъектИзБуфера = ирОбщий.БуферОбменаПриложения_ЗначениеЛкс();
   Если Ложь
      Или ТипЗнч(ОбъектИзБуфера) = Тип("Массив") 
      Или ТипЗнч(ОбъектИзБуфера) = Тип("ФиксированныйМассив")
   Тогда
      УстановитьРедактируемоеЗначение(ОбъектИзБуфера);
      ЭтаФорма.Модифицированность = Истина;
   ИначеЕсли ТипЗнч(ОбъектИзБуфера) = Тип("СписокЗначений") Тогда
      УстановитьРедактируемоеЗначение(ОбъектИзБуфера.ВыгрузитьЗначения());
      ЭтаФорма.Модифицированность = Истина;
   КонецЕсли; 
   
КонецПроцедуры


Функция "ирОбщий.БуферОбменаПриложения_ЗначениеЛкс()" возвращает Неопределено

Не понятно, зачем тогда "вставка из буфера обмена" вообще существует

ожидалось что-то типа получения из общего (а не внутреннего) буфера обмена (и что такое внутренний буфер обмена тоже не понял)

сам использую такой метод: ОбъектИзБуфера = ПолучитьБуферОбмена();

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

потом преобразование в массив:
если (на первом этапе внедрения) предположить, что это исключительно текстовые данные, то можно
сформировать массив по принципу СтрРазделить(ОбъектИзБуфера, Разделитель)
а Разделитель тогда желательно вынести на форму, чтобы он сохранялся

не знаю, как кто, но я в 90% случаев использую загрузку из столбика экселя, там разделитель "перевод строки",
но вставка из буфера не может этого знать наверняка, поэтому настройка разделителя должна быть отдельно, чтобы каждый раз его не выбирать

У меня загрузка из буфера реализована не только текста, но и объектов из списка справочников и документов (по их представлению), но там код очень специфический, адаптировать нужно (но это как минимум после).

Хотя было бы очень удобно, скажем, список для обработки Подбор и Обработка объектов заполнять из буфера (например, из отчета берется список документов, точнее, их представлений) и вставляется. Вот я получил этот список из анализа метаданных удаленных случайно объектов, и хотел выгрузить ИХ с копии базы для восстановления, и этот процесс затянулся на несколько шагов.

А так бы просто скопировал и вставил (вставились бы сами документы, а не их представление), далее выгрузка в файл и загрузка на другой базе. Хотел было отобрать по "ссылка.представление в списке", но такой опции тоже не нашел, пришлось использовать другие средства.

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

 
tormozitДата: Четверг, 22.09.2022, 13:41 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6168
Репутация: 156
Статус: Оффлайн
Непонятно, о какой пользовательской функции речь. Хотя бы один маленький пример нужен типа "Нахожусь в форме ХХХ в поле ЦЦЦ и нажимаю CTRL+V и происходит ... , а ожидалось ..."
 
tormozitДата: Четверг, 22.09.2022, 19:08 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 6168
Репутация: 156
Статус: Оффлайн
Еще имеет смысл описать типовые задачи, решение которых тебя интересует. Возможно для них уже есть способ решения, который ты просто не нашел. Например заполнить список значений ссылками из списка кодов/номеров/УИДов/наименований/представлений документов можно командой "Получить/Из текста".
 
GetNightДата: Пятница, 23.09.2022, 06:56 | Сообщение # 4
Майор
Группа: Проверенные
Сообщений: 93
Репутация: 60
Статус: Оффлайн
В принципе, любое заполнение массива из буфера обмена. Он не заполняется.



Сообщение отредактировал GetNight - Пятница, 23.09.2022, 07:48
 
tormozitДата: Пятница, 23.09.2022, 07:32 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 6168
Репутация: 156
Статус: Оффлайн
Теперь стало немного понятнее. Но опять же нет четкой конкретики применительно в ИР. Хотелось бы увидеть четкие шаги пользователя с примером конкретных данных. Думаю тебе не стоит ограничиваться привязкой к вставке из буфера, а переместить фокус на конкретную задачу пользователя. Вставка из буфера - лишь один из способов переноса данных.

Пока кажется что команда "Получить/Из текста" для списка значений или массива значений должна была решить твою задачу. Она открывает инструмент "Загрузка табличных данных", который в частности из стандартных представлений документов умеет делать ссылки. Из твоего описания я так понял, что ты даже не пытался этого делать. Вот и хочется понять, как так получилось? А если все таки получилось, то вообще не понятно в чем проблема то, т.е. чем этот способ не удобен?

Цитата
сделать подбор объектов по представлению в копии базы. Но не нашел такой опции, представление невозможно выбрать отбором

Это в каком инструменте и в каком поле? Хотелось бы больше картинок. Пока я вижу 0 картинок.
 
tormozitДата: Пятница, 23.09.2022, 07:38 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6168
Репутация: 156
Статус: Оффлайн
Цитата
галочку "уникальные", но с ней возникла какая-то заминка, она почему-то не отрабатывала как нужно

Это я тоже не понял. Нужен пример, демонстрирующий проблему.
 
GetNightДата: Пятница, 23.09.2022, 07:56 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 93
Репутация: 60
Статус: Оффлайн
Прикрепления: 7267599.jpg (181.0 Kb)
 
GetNightДата: Пятница, 23.09.2022, 08:09 | Сообщение # 8
Майор
Группа: Проверенные
Сообщений: 93
Репутация: 60
Статус: Оффлайн
Прикрепления: 6358115.jpg (179.1 Kb) · 7277033.jpg (166.0 Kb)


Сообщение отредактировал GetNight - Пятница, 23.09.2022, 08:15
 
tormozitДата: Пятница, 23.09.2022, 08:33 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6168
Репутация: 156
Статус: Оффлайн
Вот теперь я понял о чем речь. Отбор по представлению объекта платформа не предоставляет. Но ты можешь добавить элемент отбора по полю "Ссылка" и в список загрузить ссылки из представлений как я уже 2 раза описал выше.
 
GetNightДата: Пятница, 23.09.2022, 08:42 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 93
Репутация: 60
Статус: Оффлайн
Ок, но загрузка из буфера - работает или нет?.. у меня не получилось
 
tormozitДата: Пятница, 23.09.2022, 08:54 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 6168
Репутация: 156
Статус: Оффлайн
Да. В подсистеме все работает =)
Внутренний буфер обмена - означает, что он не выходит за пределы этого экземпляра клиентского приложения.
Использовать его для работы с текстом не подразумевалось, т.к. есть обычный буфер обмена и команда "Получить/Из текста".
 
Форум » Основной » Проблемные ситуации » Вставка из буфера обмена ничего не делает (а точнее: вставка из буфера обмена возвращает Неопределено)
  • Страница 1 из 1
  • 1
Поиск: