Перехват стандартного ввода на основании

1. yurstein 42 19.06.18 16:40 Сейчас в теме
Вопрос такой. Есть самостоятельная конфигурация. Есть документ "Реализация". На основании его создаются документы "Отбор". В результате выполнения стандартной обработки заполнения в документе "Реализация" может быть создано ни одного, один или несколько отборов. Необходимо открывать созданные, но еще не записанные, документы "Отбор". В обычных формах эта ситуация обыгрывалась. Переводим конфигурацию на управляемые формы. Вот тут и встал вопрос. Каким образом открыть формы новых документов, если их несколько? Где можно вклинится в стандартный процесс создания на основании, что открыть эти документы(допустим записав и сохранив их предварительно в регистр сведений )
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user633533_encantado 11 19.06.18 16:45 Сейчас в теме
Не используй стандартный механизм ввода на основании, создай свою команду ввода и делай в ней что хочешь: Создавай несколько документов, открывай формы созданных документов в любом количестве и т.п.
3. artgen 19.06.18 16:51 Сейчас в теме
В стандартный механизм ввода на основании можно вклиниться в процедуре модуля объекта ОбработкаЗаполнения(Основание).
Но тебе это наверное не подойдет, так как тебе нужно открывать формы всех создаваемых документов. Можно сделать собственную команду и создавать или открывать в ней что угодно.
4. V_K 19.06.18 17:23 Сейчас в теме
Можно по открывать формы еще не записных объектов. Я так понимаю вы программно определяете насколько ордеров поделить. А потом используйте типа такого кода

&
НаКлиенте
Процедура Команда(Команда)

Форма = ПолучитьФорму("Документ.НашДокумент.ФормаОбъекта");
ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную
ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее
Форма.Открыть();

КонецПроцедуры
Показать


// Можно использовать безконтекстный вызов, оптимизируем передачу данных

&НаСервереБезКонтекста

Функция ЗаполнитьДокументНаСервере(ДанныеФормы);

Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.НашДокумент")); // Получаем объект из данных формы ИЛИ

Док = Документы.НашДокумент.СоздатьДокумент();

// Заполняем реквизиты объекта или другие действия ********

ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ

КонецФункции
Показать
5. yurstein 42 20.06.18 08:10 Сейчас в теме
Все выше перечисленные предложения я знаю. Они рабочие. Но проблема в том, что интересует возможность встроится именно в стандартный процесс. Есть куски кода, когда документы создаются через стандартный процесс создания на основании. Переделывать эти куски на альтернативные методы - большие трудозатраты.
6. yurstein 42 20.06.18 08:12 Сейчас в теме
На всякий случай уточняю: интересует вариант решения только через стандартную процедуру создания на основании
7. p.ugrumov 171 28.04.20 11:07 Сейчас в теме
Создаем реквизит "НеСоздаватьДокумент", В обработкаЗаполнения присваиваем НеСоздаватьДокумент = истина, в форме ПриСозданииНаСервере: Отказ = НеСоздаватьДокумент
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот