Имя: Пароль:
1C
 
Помогите Пожалуйста.
🠗 (Волшебник 05.06.2021 21:59)
,
0 Meiyah
 
05.06.21
10:39
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
Поле объекта не обнаружено (Количество)
{Документ.Потребление.МодульОбъекта(53)}:        Движение.Ко

























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

КонецПроцедуры
1 acht
 
05.06.21
11:09
Псевдоним в запросе надо написать правильно.
2 brainguard
 
05.06.21
11:09
(0) Ошибка в слове "количество"
3 Бишбармак
 
05.06.21
11:16
(1,2) уже ответили, но
(0) Избавьтесь от запроса в цикле.
4 Злопчинский
 
05.06.21
16:41
(3) "Избавьтесь от запроса в цикле."
а в типовых в модуле проведения есть запросы вообще?
5 Aleksey
 
05.06.21
16:43
(3) И что теперь базовую типовую переписывать. Ведь там куча мест с запросами в цикле
6 hhhh
 
05.06.21
19:22
(4) есть. Один огромный запрос на все регистры.
7 bolder
 
05.06.21
20:30
(3) +100500.Запрос в цикле неверное решение здесь.Задача простая и решается левым соединение к остаткам.
(4) А как же.Их разбросали по 10 модулям и все.
8 acanta
 
05.06.21
20:31
(5) Да, базовая такая. Вероятно запросы в цикле в файловой, в отличие от вклиент-серверной, не просто допустимы, а даже предпочтительны.
9 Волшебник
 
модератор
05.06.21
22:00
КАК Количесвто
10 Meiyah
 
07.06.21
21:35
СПАСИБО ВСЕМ ЗА ТО, ЧТО НЕ ОСТАЛИСЬ РАВНОДУШНЫМИ! ДА, ОШИБКА ЗАКРЛЮЧАЛАСЬ В БАНАЛЬНОЙ ОРФОГРАФИИ. НАДО "КОЛИЧЕСТВО", А БЫЛО "КОЛИЧЕСВТО". КТО НИБУДЬ ЗНАЕТ КАК СДЕЛАТЬ, ЧТОБЫ ПРИ НАПИСАНИИ КОДА, КОГДА ВОЗНИКАЕТ арфографическая ОШИБКА, СЛОВО С ОШИБКОЙ ВЫДЕЛЯЛОСЬ.
11 Asmody
 
модератор
07.06.21
22:04
(10) и незачем так орать.
Внизу есть ссылка "Правила", отправляю читать до просветления.