Имя: Пароль:
1C
1C 7.7
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
интересный факт.. Просится в Базу знаний, добавил-бы , да Асмоди что-то хитрое мне подстроил: могу только извлекать из БД, но не впихивать туда..

зы. Тоже полезная функция..
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой