Рейтинг товаров в ТиС7.7

Новая тема
Показывать по 10 20 40 сообщений
Однако,                легко получить информацию об объеме закупок, совершенных данным                покупателем за какой-либо период времени, из регистра «Взаиморасчеты»                нельзя. Можно проанализировать все движения, имеющие отношение к                данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо                получать эти сведения оперативно (например, по условиям договора                при достижении определенного объема закупок покупателю должна предоставляться                скидка), такой способ, конечно же, не подходит.
В                этом случае решением проблемы может быть использование регистра                оборотов.
Все же до конца не читаете и думать не хотите и не читаете что Вам пишут здесь на форуме.
А у Вас вообще есть какое-то профильное образование? А то как-то стремно будет разбираться с конфигурированием в 1С не имея знаний о том, что такое вообще базы данных и алгоритмы выполнения программ.
"Получится.
Грубое решение:
В ПриОткрытии():


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



Потом в табличную часть текстовое поле с формулой вставить и написать что то примерно такое:

Функция ПолучитьКоличество()
    ТекТовар=ТекущийЭлемент();
         Если ПустоеЗначение(ТекТовар)=0 Тогда
              Если ТекТовар.ЭтоГруппа()=0 Тогда
                   Запрос.ВНачалоВыборки();
                   Если Запрос.Получить(ТекТовар)=1 Тогда
                        Возврат(Запрос.КоличествоПроданного);
                   КонецЕсли;
              КонецЕсли;
         КонецЕсли;
    Возврат("""");
КонецФункции

Чтобы работало быстрее, надо оптимизировать: организовать кэширование + фильтры при запросе. Например, справочник открывается с включенной иерархией, надо проверить какой срез иерархии просматривается и запрос выполнить только для товаров внутри активного родителя. А если меняется родитель, то на лету запрашивать недостающие данные. Вот тут бы многозадачность помогла, которой нет. В отдельный поток бы выделить запросы, в отдельный поток визуализацию. Пока результата запроса нет, в колонке "количество проданных" было бы нарисовано что то типа "идет получения данных". И никаких тормозов бы не было."
Это будет не в справочнике номенклатура
будет в обработке в ТЗ, и при позиционировании на товар на форме должно писаться это самое количество проданного, поэтому если на обработку запроса будет уходить более чем 0.5 сек. то работать будет уже не комфортно.
> Как можно сделать чтобы в справочнике номенклатура отображалось количество товара проданного например за пол года?


> Это будет не в справочнике номенклатура
Вы там сначала определитесь, что и где выводить!
образования нет, но кое что знаю
они мне как бы и не нужны, так как я это делаю для себя, и решение проблем всегда находилось и в этот раз я думаю тоже все получиться, может просто не сразу...
там как бы тоже нужно, но не в списке а на форме, сори что сразу не дописал
Запрос Володя уже написал, осталось его поместить в нужный метод таблицы на форме.
Читают тему
(гостей: 1)

Быстрый переход