Имя: Пароль:
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) Это не ошибка. Это код такой. Тип проверяется по значению типа из последней строки табличной части.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.