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