Имя: Пароль:
1C
1С v8
УТ 11. Заполнение табличной части
,
0 Просто Царь
 
14.03.14
14:11
Вопрос совершенно тупой. Реквизиты переносятся, в том числе и табличная часть, но вот сумма документа остается равной нулю. И что-то никак не могу понять как обновить сумму документа исходя из новых данных. Документ - Заказ клиента.
1 fmrlex
 
14.03.14
14:13
Чем хоть заполняешь?
2 Просто Царь
 
14.03.14
14:17
Данные из внешнего сервиса. Собственно в ТЧ переносится номенклатура, количество, цена, сумма, ставкаНДС из соглашения
3 Просто Царь
 
14.03.14
14:18
все данные на момент заполнения уже находятся в форме внешней обработки
4 antoneus
 
14.03.14
14:21
Сумма документа - это не реквизит ли шапки? Его заполняешь?
5 Просто Царь
 
14.03.14
14:28
в том то и дело что да, а все равно сумма ноль. Вариант того что на момент заполнения передается ноль отпадает, потому как для проверки присваивал просто число
6 VikingKosmo
 
14.03.14
14:30
(4) Сумма документа это не только реквизит шапки, но и реквизит формы вообще то.
7 Просто Царь
 
14.03.14
14:33
(6) ну а он то тут причем? заполнение ведется то программно, и реквизит формы должен заполниться в дальнейшем при открытии
8 antoneus
 
14.03.14
14:41
(5) Покажи строчку, в которой он заполняется. Чудес не бывает.
9 Просто Царь
 
14.03.14
14:43
вот кусок заполняющий табличную часть

&НаСервере
Процедура ЗаписатьТЧВЗаказ()
    ДокЗаказ = Объект.ДокОбъект.ПолучитьОбъект();
    ДокЗаказ.Товары.Очистить();
    СуммаДокумента = 0;
    Для Каждого Строка Из Объект.Товары Цикл
        НоваяСтрока = ДокЗаказ.Товары.Добавить();
        НоваяСтрока.Номенклатура = Строка.Номенклатура;
        НоваяСтрока.Содержание = Строка.Номенклатура.Наименование;
        НоваяСтрока.КоличествоУпаковок = Строка.Количество;
        НоваяСтрока.Количество = Строка.Количество;
        
        НоваяСтрока.Цена = Строка.Цена;
        НоваяСтрока.СтавкаНДС = Объект.Соглашение.НалогообложениеНДС;
        НоваяСтрока.Сумма = Строка.Сумма;
        НоваяСтрока.ДатаОтгрузки = ТекущаяДата();
        СуммаДокумента = СуммаДокумента + Строка.Сумма;

    КонецЦикла;
    ДокЗаказ.СуммаДокумента = СуммаДокумента;
    
    ДокЗаказ.Записать();
КонецПроцедуры
10 antoneus
 
14.03.14
14:47
Ну а если в лоб:

ДокЗаказ.СуммаДокумента = ДокЗаказ.Товары.Итог("Сумма")?
11 Просто Царь
 
14.03.14
14:54
(10) не, ноль
12 Просто Царь
 
14.03.14
15:14
не уж то ни у кого нет идей?
13 Просто Царь
 
14.03.14
15:29
Ну вот и решение. В расчете суммы документа используется СуммаСНДС.  Вот и его надо было заполнить
14 Просто Царь
 
14.03.14
16:05
Ну и еще один вопрос. Если имеем ссылку на заказ клиента, возможно ли обратиться к штатному механизму ввода на основании
15 чеширский кот
 
14.03.14
16:09
(14) Да. В документе, который будешь создавать, вызови процедуру ввода на основании
16 Просто Царь
 
14.03.14
16:15
(15)а подробнее?
17 Просто Царь
 
14.03.14
16:51
Сделал так

&НаКлиенте
    Процедура ВвестиПКО(Команда)
    Пар = Новый Структура;
    Пар.Вставить("Основание",Объект.ДокОбъект);
    ОткрытьФорму("Документ.ПриходныйКассовыйОрдер.Форма.ФормаДокумента",Пар,,Ложь,);
    
КонецПроцедуры

Но пишет что сумма задолженности равна нулю и поэтому не проставляет сумму
18 maxis_tm
 
14.03.14
17:02
(13) А поподробнее СуммаСНДС как ее заполнили?? у меня вопрос такой же тока в документе "Возврат"
19 Просто Царь
 
14.03.14
17:20
(18) Да собственно

НоваяСтрока.СуммаСНДС = Строка.Сумма;
20 Просто Царь
 
14.03.14
17:23
Сейчас бьюсь над проблемой выше. После создания все позиции в документе числятся как отгруженные. Может сталкивался кто?
21 maxis_tm
 
14.03.14
17:24
(19) Сбасибо!!  тупил долго ))
22 Просто Царь
 
14.03.14
17:41
Идей по поводу пересчета заказа после создания нет? Почему товар сразу отгружен?
23 maxis_tm
 
14.03.14
18:04
у меня не "заказклиента" у меня документ "возврата".

а в заказе это не помогает:


ДокЗаказ.Статус = Перечисления.СтатусыЗаказовКлиентов.КОтгрузке;
24 Просто Царь
 
15.03.14
09:12
Да не в том дело. После заполнения вся табличная часть числится как отгруженная
25 Просто Царь
 
17.03.14
17:57
все пытаюсь разобраться с заказом. Теперь застрял на следующем. Если заказ частично отгружен, то при добавлении в него строк заказ пересчитывается и нормально перепроводится, но сделать все тоже программно не получается. Отладчиком нашел момент что пересчет происходит в процедуре форма передзаписью, но вызов соответствующих обработчиков общего модуля во внешней обработке ничего не пересчитывает. Подскажет кто-нибудь чего нибудь?
26 Просто Царь
 
17.03.14
18:01
Вот сейчас пришла мысль, что может это происходит потому что строку не добавляю в ТЧ, а очищаю и перезаполняю заново
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший