Как в отчет ОстатокТовараНаСкладе внести ЦенуРеализации

1. SergeyR 19.12.07 08:45 Сейчас в теме
Когда поступает товар на склад первый раз, то при формировании отчета ОстатокТовараНаСкладе цена реализации товара записывается в таблицу. Стоит сделать еще одно поступление товара с тойже ценой реализации (или другой ценой), то в таблице цена реализации суммируется.
Как сделать, чтобы запись шла по максимальной цене?


//*******************************************
Процедура Сформировать()
// Если ПустоеЗначение(ДатаКон)=0 Тогда
// Предупреждение("Не указан период!");
// Возврат;
//КонецЕсли;

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "
//|Период С НачДата По КонДата;
|Товар = Регистр.ОстаткиТоваров.Товар;
|Склад = Регистр.ОстаткиТоваров.Склад;
|Количество = Регистр.ОстаткиТоваров.Количество;
|ЦенаР = Регистр.ОстаткиТоваров.ЦенаР;
//|ЦенаП = Регистр.ОстаткиТоваров.ЦенаП;
|Функция КоличествоКонОст = КонОст(Количество);
|Функция ЦенаРПоГруппе = Сумма(ЦенаР);
// |Функция ЦенаППоГруппе = Сумма(ЦенаП);
|Группировка Товар;
|Группировка Склад;
|Условие (Товар в ВыбрТоварГруппа);
|Условие (Склад в ВыбрСклад);
|";


Если ПустоеЗначение(ДатаКон)=1 Тогда
пЗаголовок1="на "+ТекущаяДата()+" г.включительно";
КонецЕсли;
Если ПустоеЗначение(ДатаКон)=0 Тогда
пЗаголовок1="на "+ДатаКон+" г. включительно";
КонецЕсли;


Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Таб = СоздатьОбъект("Таблица");

Если Фл_НеВыводитьСклады = 1 Тогда
Таб.ВывестиСекцию("Шапка2");
Таб.ВывестиСекцию("Заголовок2");
Пока Запрос.Группировка(1) = 1 Цикл

Если Запрос.Товар.ЭтоГруппа()=1 Тогда
Таб.ВывестиСекцию("Группа2");
Иначе
Таб.ВывестиСекцию("Товар2");
КонецЕсли;
КонецЦикла;
Таб.Опции(0);
Таб.Показать("ОстаткиТоваров", "");
КонецЕсли;
//********************
Если Фл_НеВыводитьСклады = 0 Тогда
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Заголовок");
Итог=0;
Пока Запрос.Группировка(1) = 1 Цикл
Сумма=Запрос.КоличествоКонОст*Запрос.ЦенаРПоГруппе;
Если Запрос.Товар.ЭтоГруппа()=1 Тогда
Таб.ВывестиСекцию("Группа");
Иначе
Итог=Итог+Сумма;
Таб.ВывестиСекцию("Товар");
КонецЕсли;
КонецЦикла;
//Таб.Опции(0);

КонецЕсли;

Таб.ВывестиСекцию("Итог");
Таб.Показать("ОстаткиТоваров", "");
КонецПроцедуры


Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maloi_a 19.12.07 08:59 Сейчас в теме
Вместо Сумма(ЦенаР) попробуйте Максимум(ЦенаР) в тексте запроса.
3. SergeyR 19.12.07 09:21 Сейчас в теме
Без изменений. Ставил и Максимум, и Минимум, и Среднее
4. SergeyR 19.12.07 09:33 Сейчас в теме
Уже запутался с регистрами. ЦенаР должна записываться при поступлении товара.

Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Регистр.ОстаткиТоваров.Товар = Товар;
Регистр.ОстаткиТоваров.Склад = Склад;
Регистр.ОстаткиТоваров.Сумма=Сумма;
Регистр.ОстаткиТоваров.ЦенаР=ЦенаР;
Регистр.ОстаткиТоваров.Количество = КоличествоОтпущено;
Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить();

Записывается ЦенаР в регистр ОстаткиТоваров.. А в других регистрах убрать ЦенаР?
5. Wladimir_spb 19.12.07 09:40 Сейчас в теме
...
Вынесите цену из ресурсов в измерения, это хотя бы методологически более правильно...
6. maloi_a 19.12.07 11:01 Сейчас в теме
Сначала все операции на копии.
Если цену переставлять в измерения, то
боюсь, что придётся перепроводить документы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот