пересчет реквизитов ТЧ при проведении

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. ivanov_alex 90 28.02.13 14:53 Сейчас в теме
существует необходимость изменять программным методом реквизит табличной части при проведении документа
	Рег = СоздатьОбъект("Регистр.ПартииНаличие"); 
	СпрПартии = СоздатьОбъект("Справочник.Партии"); 
	
	Док=ТекущийДокумент();
	Док.Выбратьстроки();
	пока док.получитьстроку()=1 цикл 
		текстр=док.номенклатура;
		СпрПартии.ИспользоватьВладельца(Текстр); 
		спрпартии.ВыбратьЭлементы();
		пока спрпартии.получитьЭлемент()=1 цикл
			ДокСеб=спрпартии.ЗакупочнаяЦена;
			ОРЦен=ДокСеб+(ДокСеб*5/105);
		конеццикла; 
		Док.орцена=орцен;
	конеццикла;
	

Показать

Так вот, отладчиком ловлю, все рассчитывает правильно но изменения в табличную часть не встают
пробовал добавлять в конец
Док.приЗаписиПерепроводить(0)
Док.Записать()

везде ругается на то, что документ не выбран

Как сделать все таки расчет орцены при провдении, это важно, ввиду того что после проведения дока сразу печатается пакет документов на принтер, а в пакет должно вставать поле ОрЦена с уже измененной ценой
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. falcon 28.02.13 15:33 Сейчас в теме
(7)
в модуле проведения так надо:
 
 СпрПартии = СоздатьОбъект("Справочник.Партии"); 
Выбратьстроки();
    пока получитьстроку()=1 цикл 
        СпрПартии.ИспользоватьВладельца(номенклатура.ТекущийЭлемент()); 
        спрпартии.ВыбратьЭлементы();
        пока спрпартии.получитьЭлемент()=1 цикл
            ДокСеб=спрпартии.ЗакупочнаяЦена;
            ОРЦен=ДокСеб+(ДокСеб*5/105);
        конеццикла; 
        орцена=орцен;
    конеццикла;
Показать


цикл сам поправь как тебе надо ))
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. falcon 28.02.13 15:16 Сейчас в теме
(1) Док=ТекущийДокумент(); - этого не надо...

просто ВыбратьСтроки()
пока получитьСТроку()
лялялял
орцена=орцен;
конеццикла
2. Lehha 7 28.02.13 15:00 Сейчас в теме
Делай не в ПриПроведении() а в ПередЗаписью() и будет тебе счастье
3. ivanov_alex 90 28.02.13 15:05 Сейчас в теме
(2) Lehha, не будет счастья, партия должна выдать себестоимость после проведения дока, непрвоеденный документ не создает партию следовательно нет цены
4. falcon 28.02.13 15:15 Сейчас в теме
(2) это новый метод 7.7?! ))
ivanov_alex; +1 Ответить
6. falcon 28.02.13 15:21 Сейчас в теме
так-то цикл у тебя прикольный...
зачем ты перебираешь ВСЕ партии, если данные только из последней используешь?
и что за интересный коэффициент 5/105? ))
7. ivanov_alex 90 28.02.13 15:24 Сейчас в теме
(6) falcon, цикл изменил, тупанул просто
коэффициент жестко установлен
8. falcon 28.02.13 15:33 Сейчас в теме
(7)
в модуле проведения так надо:
 
 СпрПартии = СоздатьОбъект("Справочник.Партии"); 
Выбратьстроки();
    пока получитьстроку()=1 цикл 
        СпрПартии.ИспользоватьВладельца(номенклатура.ТекущийЭлемент()); 
        спрпартии.ВыбратьЭлементы();
        пока спрпартии.получитьЭлемент()=1 цикл
            ДокСеб=спрпартии.ЗакупочнаяЦена;
            ОРЦен=ДокСеб+(ДокСеб*5/105);
        конеццикла; 
        орцена=орцен;
    конеццикла;
Показать


цикл сам поправь как тебе надо ))
9. ivanov_alex 90 28.02.13 18:25 Сейчас в теме
спасибо, закрыто, награду отдал
Оставьте свое сообщение

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