Имя: Пароль:
1C
1С v8
не заполняется реквизит
,
0 Эльчин
 
18.12.19
15:54
добрый день. создаю документ в модуле формы другого документа. и реквизит этого документа заполняю ссылкой созданного документа. но реквизит не заполняется. не понимаю почему. буду очень рад если поможете. извините из за ошибок в тексте

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

ДокПостОтПодот = Документы.ПоступлениеВКассу.СоздатьДокумент();
ДокПостОтПодот.Организация = Объект.Организация;
ДокПостОтПодот.ВалютаДенежныхСредств = Объект.Валюта;
ДокПостОтПодот.Автор ...
....
...аНДС = Справочники.СтавкиНДС.НайтиПоНаименованию("ƏDV-siz");
Попытка
        ДокПостОтПодот.Записать(РежимЗаписиДокумента.Проведение);
        Объект.СозданныйДокПост = ДокПостОтПодот.Ссылка;
Исключение
    ДокПостОтПодот.Записать(РежимЗаписиДокумента.Запись);
    Сообщить("Не смог записать документ: " + ДокПостОтПодот);
КонецПопытки;


нажимаю на кнопку провести. документ поступление в кассу создается. но в форме документа реквизит СозданныйДокПост не заполняется. что не так делаю?
1 Эльчин
 
18.12.19
15:55
2 dka80
 
18.12.19
15:58
Разные типы. Реквизит СозданныйДокПост не поддерживает тип ДокПостОтПодот
3 Эльчин
 
18.12.19
16:02
(2) нет не разные
4 Эльчин
 
18.12.19
16:04
5 singlych
 
18.12.19
16:06
"что не так делаю?" - ответ "создаю документ в модуле формы другого документа"

Но если уж совсем прям надо, но для начала надо это делать Перед записью, а не при, и писать в ТекущийОбъект, а не в Объект.
Потом уже все остальное.
6 hhhh
 
18.12.19
16:06
(3) в ПриЗаписи уже документ записан, он уже не поменяется, поэтому надо ПередЗаписью
7 dka80
 
18.12.19
16:15
(6) поменяется. Транзакция еще не завершена
8 dka80
 
18.12.19
16:17
Только нужно не Объект.СозданныйДокПост, а ТекущийОбъект.СозданныйДокПост =...
9 Эльчин
 
18.12.19
16:20
(5) спасибо. получилось с ТекущийОбъект.
но потом для каждой строки  текущего документа создаю новых документов Расход из кассы. и реквизит для них в табличной часте тоже не заполняется. а что делать с ними?

Для Каждого стрдок Из Объект.Расходы Цикл
    Докрасх = Документы.РасходИзКассы.СоздатьДокумент();
    Докрасх.Автор = ПолноеИмяПользователя();
    Докрасх.Орг...
        ...
        ...мента = стрдок.Сумма;
    
    стр = Докрасх.РасшифровкаПлатежа.Добавить();
    стр.СуммаРасчетов = Объект.СуммаДокумента;
    стр.СуммаПлатежа = Объект.СуммаДокумента;
    стр.Кратность = 1;
    стр.Курс = 1;
    стр.СуммаНДС = 0;
    Попытка
        Докрасх.Записать(РежимЗаписиДокумента.Проведение);
        стрдок.СозданныйДокРасх = Докрасх;
    Исключение
        Докрасх.Записать(РежимЗаписиДокумента.Запись);
        Сообщить("Не смог записать документ: " + Докрасх);
    КонецПопытки;
КонецЦикла;
10 dka80
 
18.12.19
16:21
стрдок.СозданныйДокРасх = Докрасх.ссылка
11 Эльчин
 
18.12.19
16:22
12 Эльчин
 
18.12.19
16:22
(10) ранше так сделал. для проверки удалили "Ссылка". не в том проблема
13 singlych
 
18.12.19
16:48
Ну та же фигня. ТекущийОбъект а не Объект.

Объект это реквизит формы, а ТекущийОбъект - это объект документа, который находится в транзакции записи. В базу пишется ТекущийОбъект.
После окончания записи Объект перечитывается из базы, поэтому то, что ты там что-то поменял в Объекте, грубо говоря, никого не интересует.
Основная теорема систематики: Новые системы плодят новые проблемы.