|
v7: ТиС. Как в запросе обратится к периодическому реквизиту ? | ☑ | ||
---|---|---|---|---|
0
raykom
05.09.14
✎
20:00
|
Обращаюсь зпросом к ТЧ документа.
Надо из номенклатуры получить цену (не из документа, а именно из номенклатуры) Черканите просто строку. Спасибо. |
|||
1
raykom
05.09.14
✎
20:03
|
Шо ? Топоры точите ?
|
|||
2
ДенисЧ
05.09.14
✎
20:08
|
Конечный период на нужную дату и лезь в справочник цен.
Кстати. ты найдёшь и ещё одну полезную вещь.... |
|||
3
КонецЦикла
05.09.14
✎
20:09
|
Период с ДатаНач по <вот на эту дату будет брать>
|
|||
4
raykom
05.09.14
✎
20:38
|
(2)>Конечный период
ДА, я в инете видел где то тему на айтике помоему, там чел решал такой же вопрос и Епрст ванговал ему скорое увольнение )) Но вот тут то и дилемма, мне нужна цена на дату конкретного документа в периоде запроса, а не на конечную дату запроса. ТАк что маленько не айс. (3)О ... Кому верить ? В (2) все наоборот. Но в целом оба ответа не решают проблемы, что цена нужна на дату конкретного документа в периодею )) |
|||
5
raykom
05.09.14
✎
20:49
|
ЕСть глобальная функция, которая цену возвращает, но в нее кучу параметров надо передать, таких как "Номенклатура", "ТипЦены", ДАта, и проч.
Все это тоже надо из запроса извлекать налету. ХЗ, как. |
|||
6
DGorgoN
05.09.14
✎
20:52
|
Сделай подзапрос - не парь мозг
|
|||
7
raykom
05.09.14
✎
20:53
|
(6)Ды я бы ... Но это ... Каг ?
|
|||
8
DGorgoN
05.09.14
✎
20:56
|
(7) Я в общем неделю работаю с конструктором и уже разобрался. Работай с конструктором запросов. Все там очень просто. Создай 1 запрос - создание виртуальной таблицы цен.
2 запрос - выбирает тч и берет данные из 1-й таблицы и выводит куда тебе нужно. |
|||
9
raykom
05.09.14
✎
20:59
|
(8)Понял. Через неделю вернусь )))
|
|||
10
raykom
05.09.14
✎
20:59
|
Короче, никак. ПОнятно.
|
|||
11
DGorgoN
05.09.14
✎
21:01
|
(10) Ну на самом деле за вечер решается просто.
|
|||
12
raykom
05.09.14
✎
21:10
|
(8)>2 запрос - выбирает тч и берет данные из 1-й таблицы и выводит куда тебе нужно.
Я не понимаю, в чем смысл такой конструкции ? Все равно выбирать вторым запросом. Тогда вопрос, зачем виртуальная таблица, можно же просто из справочника и второй вопрос - как в семерке запросом к ТЗ обращаться без сторонней компоненты ? |
|||
13
floody
05.09.14
✎
21:28
|
в запросе можно вызывать глобальные функции же? цена = глвернутьцену(). ЕМНИП
|
|||
14
Zhuravlik
05.09.14
✎
21:33
|
Если имеется в виду черный запрос, то можно использовать функцию, насколько я помню.
Блин, я почему-то не могу архив своих тем открыть, помню сам возился года два назад, находил решение. |
|||
15
DGorgoN
05.09.14
✎
21:38
|
(12) ну типа того.
|
|||
16
raykom
05.09.14
✎
21:39
|
(13)Ну, если так, то вообще все красиво. Но ... Так ли это - я вот не представляю, например. Погуглю, конечно.
(14)Да. Черный. Ну как в текст запроса вставить синюю строку - понятно. Или штатно как то можно ? Тооже не представляю. |
|||
17
raykom
05.09.14
✎
21:40
|
+(16)И в нее еще кучу параметров из того же запроса надо передать. Уже писал.
|
|||
18
Zhuravlik
05.09.14
✎
21:46
|
(16) Что значит "в текст запроса вставить синюю строку"? Я насколько помню, там непосредственно из запроса идет вызов внешней функции, и все. Также можно еще таблицу значений в запросе использовать (ток как - не помню уже, но тема была у меня, глючит форум что-то). Как вариант, если известен список номенклатуры заранее с датами, замесить тз с ценами, и получать из нее значение цены в запросе. Или обрабатывать выборку, насколько я понимаю по скорости - практически то-же самое будет. Даже нет, с выборкой будет быстрее, поскольку использование внешних функций черные запросы тормозят.
|
|||
19
raykom
05.09.14
✎
21:49
|
(18)>Я насколько помню, там непосредственно из запроса идет вызов внешней функции
Я вот ни на сколько не помню. Ну предположим, вызов внешней функции из запроса есть. А как параметры брать для передачи в функцию ? Переменные запроса то могут использоваться ? |
|||
20
raykom
05.09.14
✎
21:53
|
Чето не гуглится ничего по поводу использования внешних функций в черных запросах ...
|
|||
21
borozavr
05.09.14
✎
21:54
|
Вот образец, отчет недавно делал аж под ТИС 8.6
Функция Закупка(Товар) СпрЦены.ИспользоватьВладельца(Товар); Если СпрЦены.НайтиПоРеквизиту("КатегорияЦены",Закупочная,0)=1 Тогда Возврат СпрЦены.Цена; Иначе Возврат 0; КонецЕсли; КонецФункции Функция Продажа(Товар) СпрЦены.ИспользоватьВладельца(Товар); Если СпрЦены.НайтиПоРеквизиту("КатегорияЦены",Розничная,0)=1 Тогда Возврат СпрЦены.Цена; Иначе Возврат 0; КонецЕсли; КонецФункции //САМ ЗАПРОС |ПЕРИОД С ДатаНачала По ДатаКонца; |Товар=Регистр.ПартииТоваров.Товар; |ОстатокТовара=Регистр.ПартииТоваров.ОстатокТовара; |Функция ЗакСтоимость=Сумма(Закупка(Товар)*ОстатокТовара); |Функция РозСтоимость=Сумма(Продажа(Товар)*ОстатокТовара); |
|||
22
Zhuravlik
05.09.14
✎
21:56
|
(19)
Переменные запроса то могут использоваться ? Да. (21) Опередил, стер свои ваяния =) |
|||
23
Zhuravlik
05.09.14
✎
21:58
|
Только все-равно, лучше обрабатывать выборку имхо. Особенно если речь о ценах идет (о периодике).
|
|||
24
Zhuravlik
05.09.14
✎
21:58
|
А база файловая?
|
|||
25
Zhuravlik
05.09.14
✎
22:00
|
А то это, вот: https://snegopat.ru/1sqlite/index - крутая штукенция...
|
|||
26
raykom
05.09.14
✎
22:03
|
(21)Вооо ... То, что доктор прописал. Не буквально, конечно - но все понятно, как мне пристроить этот пример.
(22)Да, уже увидел из (21) (23)Скорость не критична. Главно шоб попроще. Еще группировать все это надо по хитрому и таблицу выводить. Так что пусть. (24)Да (25)Уже лишнее. Ну, усе, братцы. Вопрос снят. Спасибо. |
|||
27
raykom
05.09.14
✎
22:23
|
Да ... Рано радовался.
Вот такая строка в запросе |Цена = глВернутьЦену(Номенклатура, ТипЦены, ДатаЦены); Возвращает вот такую ошибку. Цена = <<?>> глВернутьЦену(Номенклатура, ТипЦены, ДатаЦены); Запрос[14] : Неверно заданный путь 'глВернутьЦену' Функция глобальная. Шо делать ? |
|||
28
Zhuravlik
05.09.14
✎
22:33
|
(27) Переписать ее в текущий модуль, без слова "ЭКСПОРТ" =)
|
|||
29
raykom
05.09.14
✎
22:39
|
(28)Дак вот уже, но что то пока не айс. Щас отпишусь
|
|||
30
LazyStranger
05.09.14
✎
22:40
|
(27) переменную запроса так нельзя объявить, только функцию:
|Функция Цена = глВернутьЦену(Номенклатура, ТипЦены, ДатаЦены); |
|||
31
raykom
05.09.14
✎
22:41
|
(30)Уже сообразил, но вот всеравно
Функция СуммаКонОст = КонОст( <<?>> ВернутьЦену(Номенклатура, ТипЦены, ДатаЦены = 0, ЦенаЦены = 0, ЕдЦены = 0, ВалЦены = 0, НаценкаЦены = 0, НайденнаяЦена = 0)); Запрос[21] : Переменная 'ВернутьЦену' не опеределена |
|||
32
raykom
05.09.14
✎
22:42
|
Функция ВернутьЦену()
Тут же в модуле |
|||
33
borozavr
05.09.14
✎
22:54
|
КонОст работает только для ресурса остатка, надо использовать Сумма
|
|||
34
raykom
05.09.14
✎
23:00
|
(33)Медленно медленно я начал подзревать про это )))
Спасибо |
|||
35
raykom
05.09.14
✎
23:01
|
+(34)
Я уже для убеждения твой запрос подпилил под ТиС 9.4 - все работает ) Вот и заподозрил ... |
|||
36
borozavr
05.09.14
✎
23:09
|
Пожалуйста, был рад помочь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |