Vinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo Slider
Автор: Administrator Категория: Разработка
Дата публикации Просмотров: 1566
Печать

В 1С:Предприятии реализован механизм поддержки операций перетаскивания. С его помощью возможно осуществлять перенос данных между разными элементами управления. Например, можно переносить элементы списка справочника из одной группы в другую, переносить данные из табличного поля в поле табличного документа или перенести список выделенных файлов из проводника MS Windows в какой-либо элемент управления.


Операции перетаскивания поддерживают следующие элементы управления:

* табличное поле;
* поле табличного документа;
* поле календаря;
* поле картинки.

При операциях перетаскивания используются следующие понятия:

* источник данных - элемент управления из которого можно перетаскивать данные;
* <приемник данных - элемент управления в который можно перетаскивать данные.

Существует возможность разрешать или запрещать элементам управления предоставлять или принимать данные, т.е. быть источником или приемником данных. Для этого у элементов управления существуют следующие свойства: “Разрешить начало перетаскивания” – разрешает элементу управления предоставлять данные и “Разрешить перетаскивание” – разрешает элементу управления принимать данные. Эти свойства можно устанавливать из палитры свойств или из встроенного языка.

Последовательность событий при перетаскивании

При нажатии кнопки мыши на выделенной области элемента управления (это может быть строка, группа строк табличного поля, область поля табличного документа, дата календаря или картинка) у элемента управления – источника данных вызывается обработчик события НачалоПеретаскивания. В качестве параметров данного события передаются объект типа “ПараметрыПеретаскивания” и “СтандартнаяОбработка”. Параметр ПараметрыПеретаскивания имеет следующие свойства:

* Значение - содержит перетаскиваемое значение, например, для табличного поля это может быть ссылка на объект, для табличного документа – область табличного документа, для календаря – дата. Можно присвоить этому свойству свое значение (например, какую-нибудь структуру), тогда это значение будет являться перетаскиваемым объектом.
* Действие – указывает действие перетаскивания и является значением типа ДействиеПеретаскивания (Копирование, Перемещение, Выбор или Отмена).
* ДопустимыеДействия – указывает допустимые действия перетаскивания и является значением типа ДопустимыеДействияПеретаскивания ( Копирование, Перемещение, КопированиеИПеремещение, HеОбрабатывать). При помощи этого свойства можно указать какие операции возможны с данными источника данных (например, только копирование).

Параметр СтандартнаяОбработка позволяет разрешить или запретить стандартную обработку операции перетаскивания из данного элемента управления. Для события НачалоПеретаскивания стандартной обработкой является начало перетаскивания данных.

Далее, у элемента управления – приемника данных вызывается обработчик события ПроверкаПеретаскивания . Данный обработчик вызывается всякий раз, когда курсор попадает на новый объект в элементе управления – приемнике данных (например, в новую ячейку табличного поля или поля табличного документа, при попадании в новую дату в поле календаря). Набор параметров данного события зависит от элемента управления – приемника данных, но первые два параметра у всех одинаковы. Это объект типа ПараметрыПеретаскивания и СтандартнаяОбработка. Остальные параметры описывают объект под курсором. Для табличного поля это Строка и Колонка, для поля табличного документа – Область, для календаря – Дата, а для поля картинки дополнительных параметров нет. При обработке данного события можно управлять видом курсора, т.е. например указывать что перетаскивание в данный элемент управления запрещено или возможно только копирование. Для этого необходимо установить необходимое действие в свойстве Действие параметра ПараметрыПеретаскивания. Необходимо учитывать, что устанавливаемое действие перетаскивания должно быть разрешенным, т.е. не вступать в противоречие с значением свойства ДопустимыеДействия. Например, действие Копирование не вступает в противоречие со значением допустимых действий КопированиеИПеремещение, а значение Перемещение вступает в противоречие со значением допустимых действий Копирование. Параметр СтандартнаяОбработка используется для указания возможности стандартной обработки элементом управления данного события. Стандартная обработка перетаскивания зависит от типа элемента управления:

* Для табличного поля проверяется возможность вставки значения, т.е. проверяется тип значения, и если он совпадает с типом отображаемых данных, то производятся стандартные действия. Стандартные действия для иерархических динамических списков – перемещение в группу, для табличных полей, отображающих наборы записей или табличные части изменение порядка строк и копирование.
* Для поля табличного документа – проверка возможности вставить передаваемое значение.
* Для поля картинки и календаря стандартной обработки нет.

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

Затем в элементе управления – источнике данных вызывается обработчик события ОкончаниеПеретаскивания. При обработке этого события элемент управления – приемник данных может, например, удалить перемещенные данные или очистить какие – либо переменные.

В демонстрационную конфигурацию ИТС помещен пример, показывающий основные приемы при реализации перетаскивания в формах. Описание примера см. в разделе Пример реализации перетаскивания в формах.

 

(Информация с ресурса http://pro1c.org.ua)

Comments   

 
0 #2 Super User 2012-04-27 09:03
Вот пример как можно обработать перетаскивание из Excel:
Отключаем стандартную обработку у табличного поля приемника:
1Cv8
Процедура ТабличноеПоле1П роверкаПеретаск ивания(Элемент, ПараметрыПерета скивания, СтандартнаяОбра ботка, Строка, Колонка)
СтандартнаяОбра ботка = Ложь;
КонецПроцедуры

Пишем обработчик которы обрабатывает строки из Excel:
1Cv8
Процедура ТабличноеПоле1П еретаскивание(Э лемент, ПараметрыПерета скивания, СтандартнаяОбра ботка, Строка, Колонка)
стрТекст = ПараметрыПерета скивания.Значен ие;
//Перебираем строки полученные из Excel, они разделены Символы.ПС
Для чС = 1 по СтрЧислоСтрок(с трТекст) Цикл
текСтрока = СтрПолучитьСтро ку(стрТекст, чС);
//Теперь разобъем текущую строку по табуляциям
текСтрока = СтрЗаменить(тек Строка, Символы.Таб, Символы.ПС);
//добавим строку приемник
новаяСтрокаТЗ = ТабличноеПоле1. Добавить();
Для чК = 1 По СтрЧислоСтрок(т екСтрока) Цикл
//Заполним строку
новаяСтрокаТЗ[ч К-1] = СтрПолучитьСтро ку(текСтрока, чК);
КонецЦикла;
КонецЦикла;
ПараметрыПерета скивания.Действ ие = ДействиеПеретаскивания.Копирование;
КонецПроцедуры
Quote
 
 
0 #1 Super User 2012-04-27 09:03
1) Нужно установить свойство "РазрешитьНачал оПеретаскивания " у табличного поля из которого будем перетаскивать данные.
2) Нужно установить свойство "РазрешитьПерет аскивание" у табличного поля в которое будем перетаскивать данные.
----
Если структура и тип перетаскиваемых данных совпадает, то все пройдет автоматически.
Если же типы не совпадают, то читаем дальше
----
3) У табличного поля получателя обрабатываем событие "ПроверкаПеретаскивания":
1Cv8
Процедура ТабличноеПолеПо лучательПроверк аПеретаскивания (Элемент, ПараметрыПерета скивания, СтандартнаяОбра ботка, Строка, Колонка)
СтандартнаяОбра ботка = Ложь;
КонецПроцедуры

4) У табличного поля получателя обрабатываем событие "Перетаскивание":
1Cv8
Процедура ТабличноеПолеПо лучательПеретас кивание(Элемент , ПараметрыПерета скивания, СтандартнаяОбра ботка, Строка, Колонка)
//Добавим строку в табличную часть приемника
текСтрока = ТабличнаяЧастьП риемник.Добавит ь();
//Заполним поле "стрТест" из перетащеных параметров.
//В ПараметрыПерета скивания.Значен ие лежит строка из данных связанных с табличным полем источника
//Либо массив строкиз источника, при множественном выделении.
текСтрока.стрТе ст = ПараметрыПерета скивания.Значен ие.Текст;
КонецПроцедуры
Quote
 

Add comment


Security code
Refresh

Последние новости

Written on 16/05/2012, 10:29 by admin
ob-otvetstvennosti-i-bezotvetstvennosti-ili-kak-opredelit-doljnostnye-obyazannosti-rabotnikovПоговорим о должностных обязанностях. Казалось бы, что тут может быть интересного?! Обязанности – они, как говорится, и в Африке обязанности. Нет ничего...
Written on 06/05/2012, 01:19 by admin
upravlenie-znaniyami-sozdanie-bazy-znanii-a-chto-na-praktikeПродолжая тему двух предыдущих постов (первый и второй), в которых проводилось исследование на тему управления знаниями и были рассказаны основные...
Written on 05/05/2012, 22:26 by admin
kak-pobedit-vorovstvo-sobstvennyh-sotrudnikovТы скажи нам, Карамзин,Как там Тверь, Калуга, Клин?И ответил Карамзин: «Да везде воруют, БЛИН!»Как вы полагаете, кто способен нанести бизнесу больший...
Written on 05/05/2012, 22:14 by admin
kak-naiti-chujoe-myloРуководство содержит описание поиска личных и корпоративных email различными методами с использованием специальных сервисов и поисковых систем....
Written on 05/05/2012, 22:10 by admin
prognozirovanie-prodaj-i-motivaciya-truda«…Конечно, можно платить и от продаж. Но лучше платить людям за то, что они делают на самом деле».   Территориальный менеджер крупной табачной...

Последние сообщения

  • linx 12.05.2012 13:49
    а как тоже самое сделать через политики в домене?

    Read more...

     
  • Super User 27.04.2012 09:03
    Вот пример как можно обработать перетаскивание из Excel: Отключаем стандартную обработку у табличного ...

    Read more...

     
  • Super User 27.04.2012 09:03
    1) Нужно установить свойство "РазрешитьНачал оПеретаскивания " у табличного поля из которого будем ...

    Read more...

     
  • Unknown181538 06.04.2012 14:36
    Я имею ввиду текст, который пишется для обработки в режиме пользователя. По умолчанию обработка ...

    Read more...

     
  • Administrator 06.04.2012 14:29
    Уважаемый, Unknown181538. По первому пункту согласен, спасибо. Видимо оператор "выполнить" "остался" ...

    Read more...

Login Form