Drag & Drop строк документа

09.12.09

Разработка - Работа с интерфейсом

Простой способ включить возможность переноса мышкой строк из одного документа в другой

Для включения простого переноса строк из документа в документ нужно внести изменения в модуль формы документов для которых планируется включить такую возможность.

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

	 Процедура ОбщееПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
   
    СтандартнаяОбработка = Ложь;
    ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
    Если Тип(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда
        //
        Для каждого ПеретаскиваемаяСтрока из ПараметрыПеретаскивания.Значение Цикл
            ДобавляемаяСтрока = ЭтотОбъект[Элемент.Имя].Добавить();
            ЗаполнитьЗначенияСвойств(ДобавляемаяСтрока, ПеретаскиваемаяСтрока);
        КонецЦикла;
    Иначе
        ДобавляемаяСтрока = ЭтотОбъект[Элемент.Имя].Добавить();
        ЗаполнитьЗначенияСвойств(ДобавляемаяСтрока, ПараметрыПеретаскивания.Значение);
    КонецЕсли;
   
КонецПроцедуры

Процедура ОбщаяПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
   
    СтандартнаяОбработка = Ложь;
    ПараметрыПеретаскивания.Действие        = ДействиеПеретаскивания.Копирование;
    ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Копирование;
   
КонецПроцедуры

В процедуру ПриОткрытии модуля формы документа добавить вызов процедуры

 
ПодключитьВозможностьПеретаскивания(ЭтаФорма);

из общего модуля

 
Процедура ПодключитьВозможностьПеретаскивания(НужнаяФорма) Экспорт   
   
    // переопределим процедуры и установим разрешения
    Для каждого ЭлементФормы из НужнаяФорма.ЭлементыФормы Цикл
        Если ТипЗнч(ЭлементФормы) = Тип("ТабличноеПоле") Тогда
            ЭлементФормы.РазрешитьНачалоПеретаскивания     = Истина;   
            ЭлементФормы.РазрешитьПеретаскивание         = Истина;
            ЭлементФормы.РежимВыделения                    = РежимВыделенияТабличногоПоля.Множественный;
            ЭлементФормы.УстановитьДействие("Перетаскивание", Новый Действие("ОбщееПеретаскивание"));
            ЭлементФормы.УстановитьДействие("ПроверкаПеретаскивания", Новый Действие("ОбщаяПроверкаПеретаскивания"));
        КонецЕсли;
    КонецЦикла;
   
КонецПроцедуры

Все.

Минусы метода:

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

Плюсы:

  • простота реализации
  • универсальность
  • удобства от использования

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62985    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18855    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10224    7    7    

10

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14730    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3580    56    progmaster    8    

4

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    5749    kalyaka    6    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sytkosa 119 09.12.09 12:17 Сейчас в теме
Через подписку можно тоже организовать... тогда доки править не нужно
4. artbear 1563 09.12.09 17:20 Сейчас в теме
(1) Неверно.
1С никак не хочет дать нам нормальную подписку на события форм :(
2. 8c1.ru 154 09.12.09 12:28 Сейчас в теме
:!: о, это мысль
спасибо, попробую сделать так
3. 8c1.ru 154 09.12.09 12:33 Сейчас в теме
Подписка на события не подойдет :(
1) Обработчик события перетаскивания должен быть размещен в модуле формы
2) подписка на события организована всего лишь нескольких событий над документом объектом.
5. citana 14 16.03.12 03:06 Сейчас в теме
если перетаскивать в одном документе- копирует строки)))
6. fzt 31.01.14 15:56 Сейчас в теме
(5) ну как-бы да) это указано вот в этих строчках
ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование;
ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.Копирование;

Если хочется перемещения внутри документа, при проверке перетаскивания поменяй на нужное действие.
7. Letos 267 19.06.15 12:58 Сейчас в теме
Пытаюсь организовать перетаскивание из одного дерева в другое расположенных на одной форме в УФ. Пока не выходит. Как быть?
8. Letos 267 30.06.15 10:41 Сейчас в теме
У меня в УФ заработал вот так:
там откуда перетаскиваю

Процедура ИсточникПриАктивизацииСтроки(Элемент) //СОБЫТИЕ дерева Источника
//Источник - имя ДереваЗначений
	НаименованиеЭлемента = Элемент.ТекущиеДанные.Наименование; // НАИМЕНОВАНИЕ - колонка в перетаскиваемой строке
	ЗаполмнитьСвойства(НаименованиеЭлемента);
КонецПроцедуры

В дереве приемнике

&НаКлиенте
Процедура ОбъектПриемникПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)//Событие Дерева приёмника
//ПРИЕМНИК - наименование ДереваЗначений
	Элементы.Приемник.ДобавитьСтроку();	
	Элементы.Приемник.ТекущиеДанные.Наименование = ПараметрыПеретаскивания.Значение[0].Наименование; //НАИМЕНОВАНИЕ- колонка в дереве "приемнике"
КонецПроцедуры
Оставьте свое сообщение