|
v7: Запись документа из другого документа |
☑ |
0
Pacan4ik
20.08.12
✎
13:32
|
Имеется Документ ОсновнойДокумент, у него реквизит шапки ВспДокумент имеет тип значения Документ.Служебный. При проведении документа не могу получить ВспДокумент.Реквизит5, записанные в ВспДокумент ранее, в процедуре ПриЗаписи(). Попробую кратко описать
В процедуре ПриЗаписи() основного документа записано
Процедура ПриЗаписи()
ДокСлужеб = СоздатьОбъект("Документ.Служебный");
ДокСлужеб.НайтиДокумент(ВспДокумент);
ДокСлужеб.ВыбратьСтроки();
Пока ДокСлужеб.ПолучитьСтроку() = 1 Цикл
ДокСлужеб.Реквизит5 = "5";
конецЦикла;
докСлужеб.Записать();
конецПроцедуры
Далее в процедуре обработка проведения основного документа
Процедура ОбработкаПроведения()
ВспДокумент.ВыбратьСтроки();
Пока ВспДокумент.ПолучитьСтроку() = 1 Цикл
Сообщить(ВспДокумент.Реквизит5);
конецЦикла;
конецПроцедуры
|
|
1
miki
20.08.12
✎
13:38
|
вот почему ты в ПриЗаписи создаешь объект вспомогательного документа, а при проведении нет?
|
|
2
Pacan4ik
20.08.12
✎
13:42
|
Уже сам нашел, спасибо за ответ
|
|
3
NS
20.08.12
✎
13:44
|
(1) Потому как известный глюк. Объект создает потому что записать можно только объект созданный при помощи "СоздатьОбъект", а глюк в том, что данные в ВспДокумент при этом не обновляются. Чтоб обновились достаточно в призаписи() добавить строку в конец
ДокСлужеб = СоздатьОбъект("Документ.Служебный");
ДокСлужеб.НайтиДокумент(ВспДокумент);
ДокСлужеб.ВыбратьСтроки();
Пока ДокСлужеб.ПолучитьСтроку() = 1 Цикл
ДокСлужеб.Реквизит5 = "5";
конецЦикла;
докСлужеб.Записать();
ВспДокумент=докслужеб.текущийдокумент();
|
|
4
miki
20.08.12
✎
13:51
|
(3)То, что писАть надо в объект, а не в реквизит это понятно (в коде записи нет, но есть в сабже).
Что агрегатный реквизит при изменении программно не обновляется (визуально) - знал, но что он и в при проведении остается "старый" не знал (не сталкивался). Буду знать.
|
|
5
aka AMIGO
20.08.12
✎
14:00
|
интересный факт.. Просится в Базу знаний, добавил-бы , да Асмоди что-то хитрое мне подстроил: могу только извлекать из БД, но не впихивать туда..
зы. Тоже полезная функция..
|
|