Создать документ програмно с указанием формы

1. syslog 07.08.24 05:14 Сейчас в теме
Добрый день, гуру разработки! прошу вашей помощи.

БП3.0 работаем с документом ОплатаПлатежнойКартой, где есть:
- ФормаДокумента и ФормаДокументаОднострочная
- рек. ВидОперации - Перечисление, где значение по умолчанию "ОплатаПокупателя"

Создаю документ (на сервере, молча, без открытия форм, просто сообщаю, что он создан). Где нужно указать ему, что нужно создавать его в ФормаДокументаОднострочная которая в свою очередь зависит от рек. ВидОперации.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
13. syslog 11.08.24 07:18 Сейчас в теме
Всем привет! в общем я сам всех запутал с этой формой и сам сидел тупил. Нужно было просто заполнить все реквизиты правильно (Открыл документ созданный в ручную и в отладке при проведении глянул на Объект и все что там необходимо) Есть ТЧ РасшифровкаПлатежа и в ней тоже есть СуммаДокумента и СтавкаНДС, если это заполнить, то сумма встает как нужно и документ можно открыть и провести.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 47 07.08.24 06:26 Сейчас в теме
Переопределения форм происходят обычно в модуле менеджера, в процедуре ОбработкаПолученияФормы()
Так и тут, у этого документа, это происходит:

    Если ВидФормы <> "ФормаДокумента"
		И ВидФормы <> "ФормаОбъекта" Тогда
		Возврат;
	КонецЕсли;
	
	СтандартнаяОбработка = Ложь;
	
	Если Константы.ИспользоватьТабличныеФормыБанковскихДокументов.Получить() Тогда
		ВыбраннаяФорма = "ФормаДокумента";
	Иначе
		ВыбраннаяФорма = "ФормаДокументаОднострочная";
	КонецЕсли;
Показать


Собственно, зависит от константы.
3. syslog 07.08.24 10:15 Сейчас в теме
(2) Узнать что лежит в константе при открытом докумете с ФормаОднострочная и принудительно при создании документа это в нее и положить?
4. user2033930 07.08.24 10:23 Сейчас в теме
5. soft_wind 07.08.24 10:36 Сейчас в теме
код примерно такой

ДокСсылка = СоздатьДокНаСервере(...);
ПоказатьЗначение(,ДокСсылка);

и функция из (2)

и все!!!!
6. syslog 07.08.24 21:07 Сейчас в теме
(5) Бро, ну чуток по подробнее, пол дня на работе гуглил про ПоказатьЗначение, про функцию из 2 - это код процедуры из ОбработкаПолученияФормы() ?

&НаКлиенте
ПоказатьЗначение = СоздатьДокументОплатаПлатежнойКартой(Документ) - это процедура, значит ее нужно переписать как Функция?
7. laperuz 47 08.08.24 04:50 Сейчас в теме
(6) В типовой БП 3.0 вид открываемой формы документа ОплатаПлатежнойКартой (ФормаДокументаОднострочная или ФормаДокумента) не зависит от данных самого документа, поэтому хоть как вы заполняйте или не заполняйте документ, форма будет открываться одна и та же - зависимость только от константы ИспользоватьТабличныеФормыБанковскихДокументов.

Поэтому на этапе создания объекта в БД вы этим управлять не можете.

Нужно переопределить(расширением) процедуру ОбработкаПолученияФормы(). В ней, в Параметры.Ключ будет содержаться ссылка на открываемый документ. Проверяете значение нужных реквизитов, в зависимости от значения открываете ту или иную форму.
8. soft_wind 08.08.24 10:05 Сейчас в теме
без всяких констант!
даже в основной форме, в событии ПриОткрытии(Отказ)
проверяете нужный реквизит Объекта/Документа
и если нужна другая форма то всего две команды
...
Отказ = Истина;
ОткрытьФорму(...ИмяДругойФормы...);
9. user2033930 08.08.24 10:09 Сейчас в теме
10. SlavaKron 08.08.24 10:21 Сейчас в теме
(8) 1 команда:
ОткрытьФорму(...ИмяДругойФормы...);
Когда прописывается конкретное имя формы, обработчик ОбработкаПолученияФормы переорпеделить ее не сможет.
11. soft_wind 08.08.24 10:27 Сейчас в теме
(10) это было предложено ДВА варианта
или используя обр.ОбработкаПолученияФормы
или из основной формы открыть другую

(то что автору будет понятнее, больше подойдет, хотя не факт )
12. SlavaKron 08.08.24 11:05 Сейчас в теме
(11) Да я неправильно понял ваш коммент.
13. syslog 11.08.24 07:18 Сейчас в теме
Всем привет! в общем я сам всех запутал с этой формой и сам сидел тупил. Нужно было просто заполнить все реквизиты правильно (Открыл документ созданный в ручную и в отладке при проведении глянул на Объект и все что там необходимо) Есть ТЧ РасшифровкаПлатежа и в ней тоже есть СуммаДокумента и СтавкаНДС, если это заполнить, то сумма встает как нужно и документ можно открыть и провести.
Прикрепленные файлы:
Оставьте свое сообщение

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