ТиС для Украины. Как получить список цен?

Новая тема
Показывать по 10 20 40 сообщений
Как в таблицу значений с 2х колонок -(цена и дата цены)выгрузить цены определенного товара, определенной категории цены за определенный период?
1. глВернутьЦены(СписокТоваров,КатегорияЦен,ДатаЦен=0)
2. вызываем несколько раз - для разных дат, потом сворачиваем для всех таблиц
А что даты прийдется все перебирать?
смотри обработку СписокПериодическихРеквизитов
Да чета там сильно много понаписано )))
> Да чета там сильно много понаписано )))
не уже ли так трудно подумать?


подсказка - смотри объект периодический
"Да просто никогда не сталкивался
Вот что написал

Процедура глVBAЦеныПериод(кодтовара) Экспорт
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
Цены=СоздатьОбъект("Справочник.Цены");
Пер=СоздатьОбъект("Периодический");
СпрТЦ= СоздатьОбъект("Справочник.КатегорииЦен");
СпрНом.НайтиПоКоду(кодтовара);
Цены.ИспользоватьВладельца(СпрНом);
ТипЦены="Розничная";

теперь не знаю что с этим дальше делать))

"
"Ну чуток подумать и все же получится ;)

ТаблицаСведений=СоздатьОбъект("ТаблицаЗначений");
ТаблицаСведений.НоваяКолонка("ДатаЦены","Дата");
ТаблицаСведений.НоваяКолонка("Цена","Число",15,2);
Номенклатура=СоздатьОбъект("Справочник.Номенклатура");
Цены=СоздатьОбъект("Справочник.Цены");
История=СоздатьОбъект("Периодический");
Если Номенклатура.НайтиПоКоду(КодТовара)=1 Тогда
  Цены.ИспользоватьВладельца(Номенклатура.ТекущийЭлемент());
  Цены.ВыбратьЭлементыПоРеквизиту("ТипЦен",Константа.РозничныйТипЦен,1,0);
  Пока Цены.ПолучитьЭлемент()=1 Цикл
     История.ИспользоватьОбъект("Цена",Цены.ТекущийЭлемент());
     История.ВыбратьЗначения(НачДата,КонДата);
     Пока История.ПолучитьЗначение()=1 Цикл
        ТаблицаСведений.НоваяСтрока();
        ТаблицаСведений.ДатаЦены=История.ДатаЗнач;
        ТаблицаСведений.Цена=История.Значение;
     КонецЦикла;
  КонецЦикла;
КонецЕсли;

В результате в ТаблицаСведений будет история цен за какой то период с НачДата по КонДата"
"> Ну чуток подумать и все же получится ;)
>
> ТаблицаСведений=СоздатьОбъект("ТаблицаЗначений");
> ТаблицаСведений.НоваяКолонка("ДатаЦены","Дата");
> ТаблицаСведений.НоваяКолонка("Цена","Число",15,2);
> Номенклатура=СоздатьОбъект("Справочник.Номенклатура");
> Цены=СоздатьОбъект("Справочник.Цены");
> История=СоздатьОбъект("Периодический");
> Если Номенклатура.НайтиПоКоду(КодТовара)=1 Тогда
>    Цены.ИспользоватьВладельца(Номенклатура.ТекущийЭлемент());
>    Цены.ВыбратьЭлементыПоРеквизиту("ТипЦен",Константа.РозничныйТипЦен,1,0);
>    Пока Цены.ПолучитьЭлемент()=1 Цикл
>       История.ИспользоватьОбъект("Цена",Цены.ТекущийЭлемент());
>       История.ВыбратьЗначения(НачДата,КонДата);
>       Пока История.ПолучитьЗначение()=1 Цикл
>          ТаблицаСведений.НоваяСтрока();
>          ТаблицаСведений.ДатаЦены=История.ДатаЗнач;
>          ТаблицаСведений.Цена=История.Значение;
>       КонецЦикла;
>    КонецЦикла;
> КонецЕсли;
>
> В результате в ТаблицаСведений будет история цен за какой то период с НачДата по КонДата

поправка - там этот периодичский реквизит пожет изменяться и доками => надо и это учесть"
А для значения установленного доком ДатаЗнач тоже не пустое же, оно соответствует дате, которая там была аргументом в методе модуля проведения УстановитьРеквизитСправочника(,,,,,,)
так что алгоритм емкий и все значения охватит
Читают тему
(гостей: 1)

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