Имя: Пароль:
1C
 
Нет суммы документа при загрузке
,
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
Видимо нужно заполнять эту колонку

http://joxi.ru/L21NePvtgqvq4A
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%?  это какая страна?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан