31.10.2019 Анна Белокопытова 17289
Перетаскивание данных между элементами форм -...

Содержание:

1. Интерфейс Drag-n-Drop

2. События, возникающие у элементов форм управляемых форм 1С при перетаскивании данных

3. Реализация обработки перетаскивания данных  

    

1.    Интерфейс Drag-n-Drop


Во многих современных системах применяется технология перетаскивания элементов интерфейса Drag-n-Drop. Она позволяет увеличить скорость и удобство работы пользователя.


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


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


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

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


·         РазрешитьНачалоПеретаскивания. Если флаг у этого свойства установлен, то у пользователя будет возможность перетащить данные из этого элемента формы.

·         РазрешитьПеретаскивание. Если флаг установлен, то пользователь сможет перетащить данные в этот элемент управления



Рисунок 1 – Свойства «РазрешитьНачалоПеретаскивания» и «РазрешитьПеретаскивание»  


2.    События, возникающие у элементов форм управляемых форм 1С при перетаскивании данных:


В тот момент, когда пользователь нажимает мышкой на элементе управления, выступающим в качестве источника, возникает событие «Начало перетаскивания».


Параметры, передаваемые в обработчик:


·         Параметры перетаскивания - тип «ПараметрыПеретаскивания». Этот параметр передается во все обработчики событий 1С перетаскивания и имеет свойства:


-   «Действие» - тип «ДействиеПеретаскивания», может принимать значения «Выбор», «Копирование», «Перемещение»,«Отмена»,

-  «Допустимые действия» - тип «ДопустимыеДействияПеретаскивания». Определяет, какие действия будут выполняться над перетаскиваемыми данными: Hе обрабатывать, Перемещение,Копирование, Копирование и перемещение (файлов).

-  «Значение» - тип определяется типом элемента управления, являющегося источником данных. Содержит перетаскиваемые данные. Кроме того, значение этого свойство можно менять.


·         Выполнение – тип «Булево», устанавливая значение этого параметра в Ложь или Истина можно определять будет ли выполняться стандартная обработка. Т.е если значение этого параметра в теле обработчика изменить на«Ложь», то событие перетаскивание не начнется.


Затем, когда курсор мыши наводится на элемент управления, являющийся приёмником данных, у него возникает событие «Проверка перетаскивания». В параметрах обработчика, кроме параметров «Параметры перетаскивания» и «Стандартная обработка», могут так же содержаться и другие параметры, в зависимости от вида элемента управления. Например, для 1С 8 Табличного документа в параметрах будет содержаться еще и Область, для Поля календаря – ВыбраннаяДата, для Таблицы - Строка и Поле. 


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


После, когда пользователь опускает клавишу мыши на выбранном им элементе управления возникает событие «Перетаскивание».


В процедуре обработки информации события можно описать какие действия нужно выполнить, например, изменить количество в строке или добавить новую строку в табличное поле. Параметры в процедуре обработке этого события такие же, как и у обработчика события «Проверка перетаскивания».


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


3.    Реализация обработки перетаскивания данных


Рассмотрим пример реализации перетаскивания данных, источники данных и приемники данных.

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


На форму обработки добавим две таблицы СписокТоваров и СписокПокупок с колонками

1С Номенклатура и Количество:



Рисунок 2 – Таблица-источник и Таблица-приемник на форме обработки


Для таблицы СписокТоваров установим, которая будет являться источником данных установим в истину свойство РазрешитьНачалоПеретаскивания



Рисунок 3 – Свойство «Разрешить начало перетаскивания» элемента-источника данных

 

Для таблицы СписокПокупок установим, которая будет являться приемником данных установим в истину свойство РазрешитьПеретаскивание



Рисунок 4 – Свойство «Разрешить перетаскивание» элемента-приемника данных

 

В обработчике события «Перетаскивание» у таблицы «СписокПокупок», являющейся приемником, свойство Значение параметра «ПараметрыПеретаскивания» имеет тип Массив и содержит перетаскиваемые данные. В нашем случае – это строки таблицы значений 1С 8.3. Если пользователь выделит несколько строк и будет их перетаскивать, то в массиве будут содержаться все выделенные строки. Поэтому обработку необходимых действий с данными реализуем в цикле.




Проверяем, есть ли в таблице товар, который перетаскивает пользователь. Если есть, то увеличиваем количество на единицу. Если нет, то добавляем новую строку в таблицу с количеством, равным 1.


В обработчике события «ОкончаниеПеретаскивания» у таблицы «СписокПокупок», являющейся приемником, так же в цикле для всех перетаскиваемых строк уменьшаем количество на единицу:




Теперь попробуем проверить обработку в пользовательском режиме 1С.

В таблице-источнике добавлены три строки с товарами и количеством 10:



Рисунок 5 – Таблицы до перетаскивания


Выделим две строки и попробуем перетащить их в таблицу-приемник:



Рисунок 6 – Таблицы после перетаскивания

 

После перетаскивания в таблице приемнике появилось две строки с товарами и количеством, равным 1. А в таблице источнике количество для этих товаров уменьшилось на единицу. Этот результат и требовалось получить по условиям задачи.


Специалист компании ООО «Кодерлайн»
Анна Белокопытова

Наши проекты

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование продаж;
Склад и логистика:
-Управление складскими ...

Внедрение 1С:Управление торговлей
ООО «Амперсенд»

Отрасль:
Оптовая торговля

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам;
- Управление отношениями с поставщиками;
- Взаиморасчеты с поставщиками ...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
«1С: Управление торговлей»

- Создание прототипа SRM-системы на базе «1С: Управление торговлей»
- Автоматизация бизнес-процессов компании, связанных с поиском постав...

Внедрение системы финансового учета БИТ:Финанс
ООО «Алькор и Ко» (Л’Этуаль)

Отрасль:
Торговля

Внедренное типовое решение:
БИТ.Финанс

- Финансовый учет;
- Поддержка проекта внедрения МСФО;
- Регламентные работы по обслуживанию сервера MS SQL;
- Оптимизация производ...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый учет ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Регламентированная отчетность Учет рабочего времени ...

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Разработка специализированных форм внутрикорпоративной отчетност...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

Отрасль:
Производство

Внедренное типовое решение:
1С:Комплексная автоматизация

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных разниц по лизинговому имуществу...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка функционала подсистемы...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделения:
• распределение ролей стало более четким и структурированны...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение