|
Нет суммы документа при загрузке | ☑ | ||
---|---|---|---|---|
0
falselight
29.04.20
✎
06:42
|
Загружаю с эксель документ, но отсутствует сумма документа http://joxi.ru/Dr8De5vTzldzEr
что я не так делаю? Я прописываю её как ДокПриобретениеТУ.СуммаДокумента = ДокПриобретениеТУ.Товары.Итог("Сумма"); и по коду идет заполнение. А в типовом механизме там все сложно, что бы разобраться |
|||
1
falselight
29.04.20
✎
07:22
|
Значение появляется, если я например в ручную в документе перевведу количество.
Тогда устанавливается значение пересчета для одной строки. Но самому программно когда я заполняю, что нужно заполнить? В момент когда я делаю загрузку. Странно что вот эта строка не помогает, - ДокПриобретениеТУ.СуммаДокумента = ДокПриобретениеТУ.Товары.Итог("Сумма"); |
|||
2
falselight
29.04.20
✎
07:24
|
Конфигурация УТ 11.4
|
|||
3
ac13
29.04.20
✎
07:42
|
ДокПриобретениеТУ - это реквизит формы или реквизит объекта?
В отладчике не смотреть чему равно ДокПриобретениеТУ.Товары.Итог("Сумма")? |
|||
4
ac13
29.04.20
✎
07:43
|
(3) * В отладчике не смотрел чему равно ДокПриобретениеТУ.Товары.Итог("Сумма")?
|
|||
5
ac13
29.04.20
✎
07:48
|
У тебя на форме табличная часть вообще на что ссылается, на Объект.Товары?
|
|||
6
falselight
29.04.20
✎
07:55
|
(3) Это, -
&НаСервере Процедура СоздатьДокумент_ПоступлениеТоваровУслуг() ДокПриобретениеТУ = Документы.ПриобретениеТоваровУслуг.СоздатьДокумент(); // ШАПКА ДокПриобретениеТУ.Дата = ТекущаяДата(); ДокПриобретениеТУ.Валюта = Справочники.Валюты.НайтиПоНаименованию("руб.", 1); ... КонецЦикла; ДокПриобретениеТУ.СуммаДокумента = ДокПриобретениеТУ.Товары.Итог("Сумма"); ДокПриобретениеТУ.Комментарий = "Загружен с .xls"; ДокПриобретениеТУ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Оперативный); Сообщить("Создан документ " + ДокПриобретениеТУ.Ссылка); КонецПроцедуры // http://joxi.ru/BA08ePMCPodNXA |
|||
7
falselight
29.04.20
✎
07:57
|
(5) товары это табличная часть документа ПриобретениеТоваровУслуг в типовой конфигурации УТ 11.4.11.84 .
Так что не пойму почему сумма появляется если в одной строке документа изменить, пересчитать количество. Смотрел типовой код, там очень сложно. Хотелось бы понять во первых, почему вот это ДокПриобретениеТУ.СуммаДокумента = ДокПриобретениеТУ.Товары.Итог("Сумма"); не выводит сумму? |
|||
8
falselight
29.04.20
✎
08:14
|
Подскажите пожалуйста, что я не дозаполнил при загрузке?
|
|||
9
ac13
29.04.20
✎
08:25
|
(8) так ты отладчиком не смотрел какое значение здесь - ДокПриобретениеТУ.Товары.Итог("Сумма")?
больше похоже, что на момент записи здесь ДокПриобретениеТУ.СуммаДокумента = ДокПриобретениеТУ.Товары.Итог("Сумма") ДокПриобретениеТУ.Товары.Итог("Сумма") = 0, то есть ты передаешь нулевую сумму. Тебе сначала нужно заполнить значения колонки "Сумма" в табличной части товары |
|||
10
ac13
29.04.20
✎
08:27
|
(9) - отбой, на картинке вижу, что сумма есть
|
|||
11
ac13
29.04.20
✎
08:28
|
случайно нет какой-нибудь обработки заполнения суммы при записи в модуле самого документа?
|
|||
12
falselight
29.04.20
✎
08:29
|
(9) (10) Да я о том же ....
|
|||
13
falselight
29.04.20
✎
08:29
|
(11) Типовой механизм.
|
|||
14
falselight
29.04.20
✎
08:31
|
(11) Да, посмотрел.
После этой строки, ДокПриобретениеТУ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Оперативный); Обнуляет. |
|||
15
ac13
29.04.20
✎
08:32
|
(14) надо видеть, что в модуле при записи документа и при проведении
|
|||
16
falselight
29.04.20
✎
08:33
|
(15) Запустил, сейчас туда пойду.
Подозреваю, что что то недозаполненно в строке. Вид цены например, по этому обнуляет. |
|||
17
ac13
29.04.20
✎
08:34
|
(15) скорее всего у тебя не заполнены те поля, откуда модуль самого документа заполняет сумму
|
|||
18
ac13
29.04.20
✎
08:34
|
(16) ага
|
|||
19
falselight
29.04.20
✎
08:36
|
(18) Вот этот запрос в модуле документа ПриобретениеТоваровУслуг
Что отрабатывает при записи, обнуляет сумму Функция ПолучитьСуммуДокумента() Экспорт Запрос = Новый Запрос(" |ВЫБРАТЬ | Товары.Номенклатура КАК Номенклатура, | Товары.СуммаСНДС КАК СуммаСНДС |ПОМЕСТИТЬ | Товары |ИЗ | &Товары КАК Товары |; |ВЫБРАТЬ | ЕСТЬNULL(СУММА(Товары.СуммаСНДС),0) КАК СуммаСНДС |ИЗ | Товары КАК Товары |ГДЕ | Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара) | ИЛИ НЕ &ВернутьМногооборотнуюТару | ИЛИ &ТребуетсяЗалогЗаТару |"); Запрос.УстановитьПараметр("Товары", Товары.Выгрузить(,"Номенклатура,СуммаСНДС")); Запрос.УстановитьПараметр("ВернутьМногооборотнуюТару", ВернутьМногооборотнуюТару); Запрос.УстановитьПараметр("ТребуетсяЗалогЗаТару", ТребуетсяЗалогЗаТару); Выгрузка = Запрос.Выполнить().Выгрузить(); СуммаИтого = Выгрузка[0].СуммаСНДС; Возврат СуммаИтого; КонецФункции |
|||
20
falselight
29.04.20
✎
08:36
|
(18) Как правильно понять что исправить?
|
|||
21
falselight
29.04.20
✎
08:38
|
||||
22
ac13
29.04.20
✎
08:38
|
(21) ну да, вот сам и разобрался)
|
|||
23
falselight
29.04.20
✎
08:39
|
(22) ну почти. Как сейчас правильно заполнять сумму с ндс, ищу
|
|||
24
falselight
29.04.20
✎
08:40
|
НоваяСтрока.Сумма = Число(СокрЛП(СтрТз.Количество)) * Число(СокрЛП(СтрТз.Цена));
НоваяСтрока.СуммаСНДС = Ещё и СуммуНДС |
|||
25
ac13
29.04.20
✎
08:41
|
(23) если по документу стоит признак СуммаВключаетНДС, то СуммаСНДС = Сумма, если СуммаВключаетНДС = Ложь, то СуммаСНДС = Сумма + СуммаНДС
|
|||
26
falselight
29.04.20
✎
08:41
|
(25) Ок, а как универсально считать СуммуНДС, не подскажете?
Ищу вот пока в коде .... |
|||
27
falselight
29.04.20
✎
08:46
|
(25) Там у документа есть флаг, ЦенаВключаетНДС
это наверное то же самое что СуммаВключаетНДС ? |
|||
28
falselight
29.04.20
✎
08:48
|
(25) Наверное в у вас наоборот написано. Если флаг не включен, то есть равен ложь, то СуммаСНДС = Сумма ?
|
|||
29
ac13
29.04.20
✎
08:51
|
(28) Если стоит флаг, что "Сумма включает НДС", то Сумма_с_НДС = Сумма. Если не стоит, то к Сумме добавляешь ещё сумма НДС. Всё просто же.
В том же типовом коде разве нет формулы расчета Суммы НДС? |
|||
30
falselight
29.04.20
✎
08:54
|
(29) Тут только есть ЦенаВключаетНДС, это наверное он же ....
|
|||
31
ac13
29.04.20
✎
08:56
|
(30) ага
|
|||
32
falselight
29.04.20
✎
09:00
|
Так, поправил. Спасибо.
НоваяСтрока.Сумма = Число(СокрЛП(СтрТз.Количество)) * Число(СокрЛП(СтрТз.Цена)); Если СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда НоваяСтрока.СуммаНДС = НоваяСтрока.Сумма * 18 / 100 ; КонецЕсли; Если ДокПриобретениеТУ.ЦенаВключаетНДС = Истина Тогда НоваяСтрока.СуммаСНДС = НоваяСтрока.Сумма; Иначе НоваяСтрока.СуммаСНДС = НоваяСтрока.Сумма + НоваяСтрока.СуммаНДС; КонецЕсли; НоваяСтрока.СтавкаНДС = СтавкаНДС; |
|||
33
hhhh
29.04.20
✎
20:57
|
(32) у вас ндс 18%? это какая страна?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |