Вход | Регистрация

1С:Предприятие ::

Метки: Запросы и построители

Запрос по периодическим реквизитам

Я
   AlexMan
25.02.04 - 14:53
Вот текст запроса:
|Период с Дата1 по Дата2;
|Обрабатывать НеПомеченныеНаУдаление;
|ВесДок = Документ.Накладная.Вес//из документа

|ВесСпр= Документ.Накладная.Товар.Вес//период. рекв.

|Функция ВесДокФун= Сумма(ВесДок );
|Функция ВесСпрФун= Сумма(ВесСпр );
|Группировка Документ;
|Группировка СтрокаДокумента
В результате в запросс по Функции ВесДокФун все нормально вес берется из документа и считаются итоги группировок а по Функции ВесСпрФун вес берется на Дата2 (и соответственно некоректные итоги группировок). Как сделать чтобы вес из справочника брался не на Дата2 а скажем на дату документа (или произвольную дату)?  Заранее благодарен.
 
  Рекламное место пустует
   Рупор абсурда
 
1 - 25.02.04 - 15:07
.Получить(НужнаяДата)
   AlexMan
2 - 25.02.04 - 15:31
(1) Неверно заданный путь 'Получить'........
   Рупор абсурда
 
3 - 25.02.04 - 15:39
...
|Товар= Документ.Накладная.Товар;
...
|Функция ВесСпрФун= Сумма(Товар.Вес.Получить(НужнаяДата));
...
   SnarkHunter
 
4 - 25.02.04 - 15:55
Не взлетит...
   AlexMan
5 - 25.02.04 - 16:03
(3) Теперь в Функция ВесСпрФун попадают числа которые не понятно от куда берутся ???!!!
   AlexMan
6 - 25.02.04 - 16:26
Если например в (3) НужнаяДата=Дата2 тогда в разных строках ТаблицыЗначений (туда я выгрузил результаты запроса)  у одного и тогоже товара разные веса???!!!
   Рупор абсурда
 
7 - 25.02.04 - 16:30
Может и "Не взлетит...", лениво проверять ...
Используй тогда внешнюю функцию ...

А ващще, лучше избегать получения периодических величин в запросе ...
   AlexMan
8 - 25.02.04 - 16:33
Внешняя функция???? Это как???
   SteveD
9 - 25.02.04 - 16:39
Создаешь функцию с входящими параметрами Товар и Документ. Внутри вычисляешь значение периодического реквизита Товара на Документ. Значение умножаешь на 10*Точность периодического реквизита и возвращаешь значение.

В запросе создаешь функцию 
|Функция ВесСпр=Минимум(ПолучитьЗначениеПерРекв(Запрос.Товар,Запрос.Документ))

А потом значение Запрос.ВесСпр/10*Точность
   Рупор абсурда
 
10 - 25.02.04 - 16:40
Примерно так:

Функция ПолучитьПерРеквизит(Товар,НужнаяДата)
 Возврат Товар.Вес.Получить(НужнаяДата);
КонецФункции

...
|Функция ВесСпрФун= Сумма(ПолучитьПерРеквизит(Товар,НужнаяДата));
...
 
 
   AlexMan
11 - 25.02.04 - 16:42
(9) Не понял зачем 10*Точность и потом Запрос.ВесСпр/10*Точность ?????
   Рупор абсурда
 
12 - 25.02.04 - 16:57
(11) Иначе округлит до целых ...
   AlexMan
13 - 25.02.04 - 16:59
Спасибо всем , все получилось с использованием внешней функции. Правда я так и не понял почему не работало когда она была внутренней ну да ладно. ОГРОМНОЕ СПАСИБО ВСЕМ ЗА УЧАСТИЕ В РЕШЕНИИ МОЕЙ ПРОБЛЕМЫ.
   Destiny
14 - 25.02.04 - 21:14
А если периодическое значение - не число? Функцию нельзя использовать. А без запроса такой геммор дикий?
Я слышал, что в каком то релизе после 17, эта беда решалась, но в 21 - нет - проверял.
Подскажите как тогда?
   Candyman
 
15 - 09.12.04 - 12:37
1С v7.7.023 следующий код в запросе не работает:
Функция ТовЦена = Сумма (ЦенаНаДату(Запрос.Номенклатура, Запрос.Дата_Док));
   1С Дурочка
16 - 09.12.04 - 13:05
Функция ТовЦена = Сумма (ЦенаНаДату(Номенклатура, Дата_Док));
   Candyman
 
17 - 09.12.04 - 13:09
Пробовал - все равно не работает


Список тем форума
  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует