Периодический реквизит справочника

  • Автор темы AlexeyMir
  • Дата начала
A

AlexeyMir

#1
Подскажите пожалуйста, есть спровочник ТМЦ, у каждого ТМЦ есть розничная цена(периодический реквизит), сегодня ее изменили, как мне узнать все ТМЦ у которых сегодня поменялась розничная цена?
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#2
Получить цену на сегодняшнюю дату и на вчерашнюю и сравнить.
 
P
#3
если номенклатура большая, imho будет долго работать...
а если за день поменяли несколько раз?
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#4
Для: Pro
Если за день меняли несколько раз (т.е. документами, насколько я понимаю) или номенклатура большая, то для ускорения можно использовать прямой запрос к базе.
В любом случае, для получения для всей номенклатуры цен кроме прямого перебора придумать что-то более быстрое сложно.
 
A

AlexeyMir

#5
Номенклатуры действительно много(~12тыс). Подскажите как примерно вытянуть данные из справочника ТМЦ по цене за определенную дату? у меня SQL-база.
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#6
12 тыс - это не много.
Как вытянуть?
1. Прямой перебор.
2. Сформировать запрос по справочнику, с использованием языка запросов 1С.
3. Сформировать запрос к базе данных с использованием прямого доступа к данным (например, через 1С++ или же через ADO).
Выбирайте, что вам ближе и доступней.
Если это разовая необходимость, ИМХО прямым перебором.
 
P
#7
Для: vitfil
в свое время использовал перебор через Периодичее реквизиты работало быстрее, но это на файловой 1С, на SQL конечно будет быстрее прямой доступ
 
A

AlexeyMir

#8
Подскажите, я так понял мне нужно в одном запросе сравнить по каждой номенклатуре периодический реквизит (розничная цена)за две даты вчерашнюю и сегодняшнюю, чтобы выяснить ТМЦ с сегодня измененной ценой
Я попробовал след запрос:

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Номенклатура = Справочник.ТМЦ.ТекущийЭлемент;
|Цена_Розн = Справочник.ТМЦ.Цена_Розн;
|Группировка Номенклатура все;
|"//}}ЗАПРОС


Как мне реализовать примено такое:
|Цена_Розн = Справочник.ТМЦ.Цена_Розн.Получить(ТекщаяДата())
|Цена_Розн_Стар = Справочник.ТМЦ.Цена_Розн.Получить(ТекщаяДата()-1)