Книга знаний

1С:Предприятие / v8

v8: Ввод документов на основании с помощью Drag & Drop

Ввод документов на основании с помощью Drag & DropАвтор статьи: PR
Последняя редакция №1 от 05.05.07
URL: http://kb.mista.ru/article.php?id=529

Ключевые слова: Перетаскивание, ввод, Drag & Drop


Представляете, цепляете мышкой приходную накладную в списке и тянете ее в список расходных накладных.
Опля, отпускаете, документ на экране.

А делается все так.

Пусть есть два документа, для краткости "ПН" и "РН".
"РН" вводится на основании "ПН".
В обоих документах есть только два реквизита, "Контрагент" и "Сумма".

Создаем формы списков для "ПН" и "РН".

В форме списка "ПН" ставим галочку "Разрешить начало перетаскивания", в форме списка "РН" ставим галочку "Разрешить перетаскивание".

В форме списка "РН" добавляем два обработчика поля списка.
Процедура ДокументСписокПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    
    Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("ДокументСсылка.ПН") Тогда
        СтандартнаяОбработка = Ложь;
    КонецЕсли;
    
КонецПроцедуры

Процедура ДокументСписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
    
    Если ПараметрыПеретаскивания.Действие <> ДействиеПеретаскивания.Отмена Тогда
        Док = Документы.РН.СоздатьДокумент();
        Док.Заполнить(ПараметрыПеретаскивания.Значение);
        ДокФорма = Док.ПолучитьФорму();
        ДокФорма.Открыть();
    КонецЕсли;
    
КонецПроцедуры


Ну и наконец, в модуль объекта "РН" добавляем процедуру "Обработка заполнения".
Процедура ОбработкаЗаполнения(Основание)
    
    Контрагент = Основание.Контрагент;
    Сумма = Основание.Сумма;
    
КонецПроцедуры


Собственно, все. Теперь можно тягать "ПН" в "РН".

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика