Программное создание документа, его заполнение и открытие его формы без записи (Как сделать?)
8.2 Упр. (Вернее даже 8.3, вдруг что-то изменилось в этом плане).
Как программно создать документ и заполнить его понятно.
Как отрыть форму чистого документа тоже понятно.
НО как программно создать документ, заполнить его и потом открыть форму этого документа, тут непонятно. Т.к. документ создается &НаСервере, а форма открывается &НаКлиенте.
Как программно создать документ и заполнить его понятно.
Как отрыть форму чистого документа тоже понятно.
НО как программно создать документ, заполнить его и потом открыть форму этого документа, тут непонятно. Т.к. документ создается &НаСервере, а форма открывается &НаКлиенте.
По теме из базы знаний
- Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов
- Конфигурация Flowcon
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Интеграция с маркетплейсами МегаМаркет, Wildberries, OZON, ЯндексМаркет, VK, Avito, Леруа Мерлен, Aliexpress, Dostavista
- Управление проектом Руководителем проекта со стороны Заказчика
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(5) bestuzhev, На правах предположения
Открываем форму. У формы есть рекыизит "Объект" нужного типа. На сервере создаем новый объект, заполняем его (если ввод на основании то НашОбъект.Заполнить(...)). Затем в нашей форме в процедуре на сревере делаем
ЗначениеВРеквизитФормы(<наш заполненый объект>,"Объект")
Открываем форму. У формы есть рекыизит "Объект" нужного типа. На сервере создаем новый объект, заполняем его (если ввод на основании то НашОбъект.Заполнить(...)). Затем в нашей форме в процедуре на сревере делаем
ЗначениеВРеквизитФормы(<наш заполненый объект>,"Объект")
(14) bestuzhev, примерно так у нас есть команда контоая открывает форму и вызывает в ней экспортную процедуру (ЗаполнитьНаКлиенте)
В модуле нашей формы код
У меня работает
Тупо добавляею строку в список
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Форма = получитьФорму("Документ.ПриходнаяНакладная.Форма.ФормаДокумента");
Форма.ЗаполнитьНаКлиенте();
Форма.Открыть();
КонецПроцедуры
В модуле нашей формы код
&НаКлиенте
Процедура ЗаполнитьНаКлиенте() экспорт
Заполнить_Сервер()
КонецПроцедуры // ()
&НаСервере
Процедура Заполнить_Сервер()
Док = Документы.ПриходнаяНакладная.СоздатьДокумент();
Док.СписокНоменклатуры.Добавить();
ЗначениеВРеквизитФормы(док,"ОБъект");
КонецПроцедуры
ПоказатьУ меня работает
Тупо добавляею строку в список
(15) Это работает только если изначально выполнение пляшет от формы. Если же какая-то серверная процедура выполняется, создаёт документ и не записывая его должна открыть его форму на клиенте, тут всё намного сложнее. Ответ в (21). Собственно, это и надо было топикстартеру в (3).
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокумента",
Новый Структура("Основание, ВидОперацииЗаполнения",ПараметрКоманды, "Продукция"));
КонецПроцедуры
Не?
&НаКлиенте
Процедура ВыполнитьДействия(Команда)
МойДок = СоздатьНаСервере();
МойДок.ПолучитьФорму().Открыть();
КонецПроцедуры
&НаСервере
Функция СоздатьНаСервере()
МойДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
МойДок.Склад = //и т.д. заполняем как нам надо
Возврат МойДок;
КонецФункции
Процедура ВыполнитьДействия(Команда)
МойДок = СоздатьНаСервере();
МойДок.ПолучитьФорму().Открыть();
КонецПроцедуры
&НаСервере
Функция СоздатьНаСервере()
МойДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
МойДок.Склад = //и т.д. заполняем как нам надо
Возврат МойДок;
КонецФункции
Нашел здесь же - работает!) Открытие формы еще незаписанного документа 1С 8.2 Управляемое приложение
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)