Имя: Пароль:
1C
 
Бухгалтерия и учёт
🠗 (Волшебник 26.04.2025 11:46)
0 Дени с
 
25.04.25
22:40
Доброго времени суток, появляется ошибка.
При проведении движения по регистру бухгалтерии формируются по последней строке табличной части, если последняя строка с товаром, то движения как будто все строки товары с суммой из последней строки, при этом если просто поменять местами строки и поставить последней строку с услугой, то движения становятся как будто все строки услуги

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

        
    Движения.Управленческий.Записывать = Истина;
    Если Выборка.НоменклатураТип = Перечисления.ТипыНоменклатуры.Товар Тогда
    Для Каждого ТекСтрокаТоварыИУслуги Из ТоварыИУслуги Цикл
        Движение = Движения.Управленческий.Добавить();
        Движение.СчетДт = ПланыСчетов.Управленческий.Товары;
        Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыСПоставщиками;
        Движение.Период = Дата;
        Движение.Сумма = ТекСтрокаТоварыИУслуги.Сумма;
        Движение.КоличествоДт = ТекСтрокаТоварыИУслуги.Количество;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.номенклатура] = ТекСтрокаТоварыИУслуги.Номенклатура;
        Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.контрагенты] = Поставщик;    
    
КонецЦикла;
КонецЕсли;
         Если Выборка.НоменклатураТип = Перечисления.ТипыНоменклатуры.Услуга Тогда
        Для Каждого ТекСтрокаТоварыИУслуги Из ТоварыИУслуги Цикл
        Движение = Движения.Управленческий.Добавить();
        Движение.СчетДт = ПланыСчетов.Управленческий.Расходы;
        Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыСПоставщиками;
        Движение.Период = Дата;
        Движение.Сумма =  ТекСтрокаТоварыИУслуги.Сумма;
        Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.контрагенты] = Поставщик;    
    КонецЦикла;
    КонецЕсли;
    

КонецПроцедуры
1 Волшебник
 
25.04.25
22:41
Какая ошибка?
2 Волшебник
 
25.04.25
22:41
Что вы морочите нам голову порядком строк?
3 Дени с
 
25.04.25
22:41
Опечатался, не ошибка, а некорректно выводятся данные, не могу допереть почему
4 Волшебник
 
25.04.25
22:46
Ваш программный код нерелевантен. Он не связан с текстом. Вы какой-то бред написали. Вы бот что ли?
5 Волшебник
 
25.04.25
22:44
(3) Может допёрки не хватает? Вы вообще кто и где? Просто опишите свой контекст: должность, версия 1С.
Я хочу... Я могу...
6 Волшебник
 
25.04.25
22:45
(3)  Вы нарушаете основы этого форума, конкретно правило 13
7 Дмитрий
 
26.04.25
10:47
(0) Это не ошибка. Это код такой. Тип проверяется по значению типа из последней строки табличной части.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан