Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

регистр

↓ [Волшебник, 28.01.19 - 13:06]
регистр
Я
   bebibo
 
28.01.19 - 12:19
Так Я и не пойму, почему сумма не пишется в регистр..Может вы поймете?
Весь код расходной накладной:

Движения.Продажи.Записывать = Истина;
    Движения.ОстаткиНоменклатуры.Записывать = Истина;
        
    Движения.ОстаткиНоменклатуры.Записать();
    
    
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Партия", "Партия");
    Блокировка.Заблокировать();

    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
        |    РасходнаяНакладнаяСписокНоменклатуры.Партия КАК Партия,
        |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
        |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
        |ПОМЕСТИТЬ ДокТЧ
        |ИЗ
        |    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
        |ГДЕ
        |    РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |    РасходнаяНакладнаяСписокНоменклатуры.Партия,
        |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура,
        |    Партия
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ДокТЧ.Номенклатура КАК Номенклатура,
        |    ДокТЧ.Партия,
        |    ДокТЧ.Количество КАК Количество,
        |    ДокТЧ.Сумма КАК Сумма,
        |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
        |    ДокТЧ.Номенклатура.Представление,
        |    ДокТЧ.Партия.Представление,
        |    ДокТЧ.Номенклатура.Услуга
        |ИЗ
        |    ДокТЧ КАК ДокТЧ
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
        |                &МоментВремени,
        |                (Номенклатура, Партия) В
        |                    (ВЫБРАТЬ
        |                        ДокТЧ.Номенклатура,
        |                        ДокТЧ.Партия
        |                    ИЗ
        |                        ДокТЧ КАК ДокТЧ)) КАК ОстаткиНоменклатурыОстатки
        |        ПО ДокТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
        |            И ДокТЧ.Партия = ОстаткиНоменклатурыОстатки.Партия
        |ИТОГИ
        |    СУММА(Количество),
        |    СУММА(Сумма)
        |ПО
        |    Номенклатура";
    
    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаНоменклатура.Следующий() Цикл
    
        ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();
        
        ОбщаяСтоимость = 0;
        
        Если  НЕ ВыборкаНоменклатура.Номенклатура.услуга Тогда
        
            Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                
                Если ВыборкаДетальныеЗаписи.Количество > ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
                    Отказ = Истина;
                    Сообщение = Новый СообщениеПользователю;
                    Сообщение.Текст = "Недостаточно товара " + ВыборкаДетальныеЗаписи.НоменклатураПредставление +
                        " из партии " + ВыборкаДетальныеЗаписи.ПартияПредставление + " есть только " + ВыборкаДетальныеЗаписи.КоличествоОстаток;
                    Сообщение.Сообщить();
                КонецЕсли;
                
                Если Отказ Тогда
                    Продолжить;
                КонецЕсли;
                
                // регистр ОстаткиНоменклатуры Расход
                Движение = Движения.ОстаткиНоменклатуры.Добавить();
                Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                Движение.Период = Дата;
                Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
                Движение.Партия = ВыборкаДетальныеЗаписи.Партия;
                Движение.Количество = ВыборкаДетальныеЗаписи.Количество;
                Движение.Сумма = Движение.Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток * ВыборкаДетальныеЗаписи.СуммаОстаток;
                
                ОбщаяСтоимость = ОбщаяСтоимость + Движение.Сумма;
                
            КонецЦикла;    
        
        КонецЕсли;
        
        
        Если Отказ Тогда
            Продолжить;
        КонецЕсли;
            
        // регистр Продажи
        Движение = Движения.Продажи.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ВыборкаНоменклатура.Номенклатура;
        Движение.Количество = ВыборкаНоменклатура.Количество;
        Движение.Себестоимость = ОбщаяСтоимость;
        Движение.Сумма = ВыборкаНоменклатура.Сумма;
        
    КонецЦикла;
 
 
   Ёпрст
 
1 - 28.01.19 - 12:30
Движение.Сумма = Движение.Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток * ВыборкаДетальныеЗаписи.СуммаОстаток

норм че..
   bebibo
 
2 - 28.01.19 - 12:36
(1) Я знаю что нужно писать так:
СуммаСписания = ?(КоличествоСписания = КоличествоОстаток, СуммаОстаток, СуммаОстаток/КоличествоОстаток * КоличествоСписания)
   DrWatson
 
3 - 28.01.19 - 13:06
(0) МоментВремени пустой.
   Волшебник
 
4 - 28.01.19 - 13:06
Тема не отражает суть сообщения.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует