7.7 1С:Склад

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Cooper-Mixal, 10 сен 2008.

  1. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Добрый день!!!

    Есть отчет со средними ценами, которые вносят в середине месяца. Как выбрать цену по материалу из последней приходной накладной по этому материалу?

    Код:
    СпрМатериалы=СоздатьОбъект("Справочник.Материалы"); 
    Рег=СоздатьОбъект("Регистр.Товары");   
    РегРас=СоздатьОбъект("Регистр.Товары");  
    Таб=СоздатьОбъект("Таблица");   
    Таб.ВывестиСекцию("Шапка");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    СпрМатериалы.ВыбратьЭлементы();
    Пока СпрМатериалы.ПолучитьЭлемент()=1 Цикл
    Рег.УстановитьФильтр(СпрМатериалы);
    Рег.ВыбратьДвижения(ДатаНач,ДатаКон);
    РегРас.ВременныйРасчет(1);
    РассчитатьРегистрыНа(ДатаНач,);
    МатПриход=0;
    МатРасход=0;
    Пока Рег.ПолучитьДвижение()=1 Цикл
    Товар=Рег.Материал; 
    Ном = Рег.Материал.Код;
    Едизмер = Рег.Материал.ЕдИзм;  
    Цен = Рег.Материал.СредняяЦена; //Здесь надо выбирать цену из прихода
    ДатаДока=Рег.ТекущийДокумент().ДатаДок;
    Если Рег.Приход=1 тогда
    Количество=Рег.Количество;
    МатПриход=МатПриход+Количество;
    Иначе                                      
    Количество=Рег.Количество;
    МатРасход=МатРасход+Количество;
    КонецЕсли;
    КонецЦикла;
    Если (МатПриход=0) и (МатРасход=0) тогда
    Продолжить;
    КонецЕсли;    
    НачОстаток=РегРас.Остаток(Товар,"Количество");
    Таб.ВывестиСекцию("Товар|ТоварВерт");
    Таб.ПрисоединитьСекцию("Товар|НачОстаток");
    Таб.ПрисоединитьСекцию("Товар|Приход");
    Таб.ПрисоединитьСекцию("Товар|Расход");
    КонОстаток=Рег.Остаток(Товар,"Количество");
    Таб.ПрисоединитьСекцию("Товар|КонОстаток");
    КонецЦикла;
    
    
  2. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    Если надо получить среднюю цено, то имхо проще всего создать конструктором проостейший запрос и спокойно поделить сумму прихода на количество прихода. да и работать будет в разы быстрее.

    для получения цены из последней накладной ничего менять не надо, по приведенному коду в
    цикла:
    Код:
    Пока Рег.ПолучитьДвижение()=1 Цикл
    
    
    
    при условии что
    Код:
     рег.приход=1 
    
    дописать
    Код:
     Последняя_Цена  = рег.Сумма/рег.Количество
    
    по выходу из цикла в переменной Последняя_Цена будет последняя цена. Во избежания пустого значения перед входом в цикл стоит в переменную Последняя_Цена внести цену действующую на начало периода
    :unsure:
  3. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    :( не получается у меня
  4. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    рег.сумма всегда равна нулю, а рег.количество всё нормально!!!! Почему?

Поделиться этой страницей