Если кто еще дорабатывает 7.7 хочу поделиться интересным методом передачи данных между не модальными окнами.
Это легко делается открывем другую форму для подбора и обработке выбора в родительской форме:
СпПараматровОбработки=СоздатьОбъект("СписокЗначений");
СпПараматровОбработки.ДобавитьЗначение(ТзОтчета ,"ТаблицаЗначений");
СпПараматровОбработки.ДобавитьЗначение("ОбработатьТЗ" ,"AnalizTZ_Kommanda");
ОткрытьПодбор("Обработка.АнализТЗ","Заказы поставщику",СпПараматровОбработки,1);
Обработка "АнализТЗ" приложена к статье. В обработке из параметров берется обрабатываемая таблица, пользователь галочками отмечает нужные строки и обработка по кнопке "Перенести" выполнят выбор таблицы только с отмеченными строками.
Форма.ВыполнитьВыбор(Тз);
Форма.Закрыть();
В родительской обработке надо обработать выполненный подбор:
Процедура ОбработкаПодбора(Значение) // Предопределенная процедура
ТипЗначенияИзПобора=ТипЗначенияСтр(Значение);
Если ТипЗначенияИзПобора="ТаблицаЗначений" Тогда
...
КонецЕсли;
КонецПроцедуры
Также можно добавлять строки в еще не записанный документ:
Процедура ВвестиОтменуЗаявок(ТЗ) //+Илья 160806
Перем КОнтПобора;
КОнтекстНовогоДокумента="";
ОткрытьФорму("Документ.ОтменаЗаявок#",КОнтекстНовогоДокумента,);
КОнтекстНовогоДокумента.ОткрытьПодбор("Обработка.ПустаяФорма",, КонтПобора,1);
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
КонтПобора.Форма.ВыполнитьВыбор(Тз.Заявка);
КонецЦикла;
КонтПобора.Форма.Закрыть();
КонецПроцедуры
Почти во всех типовых документах есть обработка побора ввиде таблицы -удобно заполнять накладные -пересчеты служебных данных выполняют штатные функции.
примечание: Обработка Пустаяформа все-таки мелькает, чтобы код работал на ней должен быть хотябы один элемент, например кнопка "ОК", модуль формы может быть пустым.
Более оригинальный метод передачи данных между формами: //infostart.ru/public/17048/ и сподвигла поднять эту старую тему.
-------------------------------------
Для 8.2 все гораздо проще, но есть не очевидная вещь как передать в обработку сообщение что документ который она сформировала был проведен (и надо обновить данные формы) без изменений в коде документа:
надо подписаться на событие запись ДокументОбъект:
ДобавитьОбработчик Объект.ПередЗаписью, ЭтаОбработка.ПередЗаписьюДокумента;
пример: //infostart.ru/public/98910/
-------------------------------------
Пример обработки подбора на 8.2:
//infostart.ru/public/102847/