v8: Ввод документов на основании с помощью Drag & Drop Ключевые слова: Перетаскивание, ввод, Drag & Drop
Представляете, цепляете мышкой приходную накладную в списке и тянете ее в список расходных накладных.
Опля, отпускаете, документ на экране.
А делается все так.
Пусть есть два документа, для краткости "ПН" и "РН".
"РН" вводится на основании "ПН".
В обоих документах есть только два реквизита, "Контрагент" и "Сумма".
Создаем формы списков для "ПН" и "РН".
В форме списка "ПН" ставим галочку "Разрешить начало перетаскивания", в форме списка "РН" ставим галочку "Разрешить перетаскивание".
В форме списка "РН" добавляем два обработчика поля списка.
Процедура ДокументСписокПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("ДокументСсылка.ПН") Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ДокументСписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
Если ПараметрыПеретаскивания.Действие <> ДействиеПеретаскивания.Отмена Тогда
Док = Документы.РН.СоздатьДокумент();
Док.Заполнить(ПараметрыПеретаскивания.Значение);
ДокФорма = Док.ПолучитьФорму();
ДокФорма.Открыть();
КонецЕсли;
КонецПроцедуры
Ну и наконец, в модуль объекта "РН" добавляем процедуру "Обработка заполнения".
Процедура ОбработкаЗаполнения(Основание)
Контрагент = Основание.Контрагент;
Сумма = Основание.Сумма;
КонецПроцедуры
Собственно, все. Теперь можно тягать "ПН" в "РН". |