Имя: Пароль:
1C
1C 7.7
v7: 1c 7.7 компл 4.5 СуммаВзаиморасчетов
0 userMR3
 
19.10.11
00:11
Пересоздам тему, потому что название той не отображает содержимое.
Пытаюсь из внешней обработкой изменить реквизит документа "реализация" СуммаВзаиморасчетов:

Процедура Сформировать()
   ДокРеализация = СоздатьОбъект("Документ.Реализация");
   ДокРеализация.УстановитьФильтр(1,0);
   ДокРеализация.ВыбратьДокументы(НачДата, КонДата);
   
   Пока ДокРеализация.ПолучитьДокумент() = 1 Цикл
       ТекДокумент = ДокРеализация.ТекущийДокумент();
       СуммаВзаиморасчетовДок    = ТекДокумент.Итог("Сумма")
                           +?(ТекДокумент.СуммаВклНП =1,0,ТекДокумент.Итог("СуммаНП" ))
                           +?(ТекДокумент.СуммаВклНДС=1,0,ТекДокумент.Итог("СуммаНДС"));    
           
       ТекДокумент.СуммаВзаиморасчетов        = глПересчет(СуммаВзаиморасчетовДок,ТекДокумент.Валюта,ТекДокумент.Курс,
                           ТекДокумент.Договор.ВалютаВзаиморасчетов,ТекДокумент.ДатаДок,ТекДокумент.Кратность);

       ДокРеализация.Провести();

   КонецЦикла;
КонецПроцедуры

Но в результате изменений нету...
1 Ёпрст
 
19.10.11
01:14
ёпта, а Записывать документ кто будет ? Вася ?
2 Ёпрст
 
19.10.11
01:16
+ вот этот бред не нужен :
ТекДокумент = ДокРеализация.ТекущийДокумент();

выкини это и замени везде ТекДокумент  на ДокРеализация
3 userMR3
 
19.10.11
08:21
Блин, заработало. Спасибо!

ТекДокумент = ДокРеализация.ТекущийДокумент(); - в книге описания синтаксиса это во всех примерах пихают. Почему тут нельзя?

Провести() вроде работает интерактивно, т.е. записывает при этом. Менял комментарий и он менялся, а СВ нет.
4 userMR3
 
20.10.11
16:53
И все таки.
5 userMR3
 
20.10.11
19:28
Ёпрст
6 zak555
 
20.10.11
19:43
зачем меняешь этот реквизит ?
7 userMR3
 
20.10.11
20:02
делал выгрузку через оле, обнаружил, что взаиморасчетов не было.
8 Ёпрст
 
20.10.11
20:03
(5) че ?
ТекущийДокумент() - это "ссылка" полученная на чтение
Если не сделал Записать() - значения реквизитов не поменяются.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший