|
Срез последних | ☑ | ||
---|---|---|---|---|
0
BarakuzA
03.11.11
✎
22:44
|
имеется данный запрос на определение цены номенклатуры в регистре сведений (ут 10.3)
ВЫБРАТЬ Перемещение.Ссылка, Перемещение.Номенклатура, Перемещение.Количество КАК Количество, Перемещение.Цена, ЕСТЬNULL(ЦеныНоменклатурыСрез.Цена,0) Как ЦенаЗакупка ИЗ Документ.ПеремещениеТоваров.Товары КАК Перемещение ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&ДатаСреза)КАК ЦеныНоменклатурыСрез ПО Перемещение.Номенклатура = ЦеныНоменклатурыСрез.Номенклатура ГДЕ Ссылка=&ТекущийДокумент но в результат выполнения в некоторых случах: если в документе одна позиция, запрос выдает две позиции, которые отличаются ценой из регистра. в чем может быть дело??? |
|||
1
GROOVY
03.11.11
✎
23:07
|
Зачем в запросе документ?
|
|||
2
rs_trade
03.11.11
✎
23:08
|
Зачем в параметрах нет номенклатуры?
|
|||
3
GROOVY
03.11.11
✎
23:09
|
Какая периодичность у регистра?
Чему равно значение параметра "ДатаСреза"? |
|||
4
ilya_i
04.11.11
✎
00:21
|
все просто - условий в соединении недостаточно, в регистре наверняка есть еще характеристика, единица измерения, контрагент и тип цены
|
|||
5
BarakuzA
05.11.11
✎
21:42
|
(1), так как запрос в документе перемещение и указываю на этот документ,
(3), периодичность в пределах дня, Значение параметра ДатаСреза - равно дате документа,кот указан в запросе |
|||
6
BarakuzA
05.11.11
✎
21:43
|
можно поставить какое-нибудь условие,чтобы выбиралось только одно значение при левом соединении?
|
|||
7
Renat11111
05.11.11
✎
21:53
|
нет условия на тит цен в параметрах ВТ
|
|||
8
Renat11111
05.11.11
✎
21:53
|
сам пишешь ЕСТЬNULL(ЦеныНоменклатурыСрез.Цена,0) Как ЦенаЗакупка тоесть нужна закупочная цена, а получаешь все цены.
|
|||
9
Renat11111
05.11.11
✎
21:54
|
+ добавь соединение на характеристики после этого
ПО Перемещение.Номенклатура = ЦеныНоменклатурыСрез.Номенклатура |
|||
10
BarakuzA
05.11.11
✎
21:55
|
(9) у меня нет характеристик
|
|||
11
Renat11111
05.11.11
✎
21:57
|
(10) искренне поздравляю тебя, а как на счет (8) и (9)?
|
|||
12
BarakuzA
05.11.11
✎
22:00
|
(11) можно другими словами...
|
|||
13
echo77
05.11.11
✎
22:00
|
(0) отбор сделай по типу цен. Renat11111 об этом уже писал - в параметрах ВТ добавь отбор или тебе любую первую попавшуюся цену(любого типа цен) надо?
Если не понимаешь почему так - выведи все поля из ВТ ЦеныНоменклатурыСрез |
|||
14
Renat11111
05.11.11
✎
22:04
|
(13) ему не любую попавшуюся цену даст, а все цены.
(12) других слов у меня нет |
|||
15
BarakuzA
05.11.11
✎
22:04
|
мне нужна последняя для данной номенклатуры, а в параметры отбор мне не надо (не откуда брать значение)
|
|||
16
Renat11111
05.11.11
✎
22:07
|
(15) ну да. тебе нужна последняя закупочная цена. следовательно нужен отбор по типу цен. скопируй запрос в консоль, там все поймешь
|
|||
17
BarakuzA
05.11.11
✎
22:09
|
(16), я уже написал что не могу добавить отбор по типу цен. запрос писашу через консоль, понимаю что у меня так пролучается из того что два вида цен
|
|||
18
echo77
05.11.11
✎
22:16
|
(17) Ты с типами цен сначала разберись, какая из двух цен тебе нужна. Если определиться не можешь - то при такой структуре регистра сврез последних будет выдавать все последние записи по разным ресурсам(типам цен, номенклатуре). Тогда тебе нужно писать вложенный запрос и самому фигачить срез но только по одному измерению
|
|||
19
BarakuzA
05.11.11
✎
22:20
|
(18)-мне нужна цена,которая позже установлена по дате, независимо от типа цен.
|
|||
20
BarakuzA
05.11.11
✎
22:21
|
(18) смысл уловил)))
|
|||
21
echo77
05.11.11
✎
22:21
|
(19) Понял тебя. Вот можно почитать: v8: Обрабатываем срез последних
|
|||
22
BarakuzA
05.11.11
✎
23:39
|
вот такое нашел, но всеравно выдает два значения.. что еще подскажите???
|
|||
23
BarakuzA
05.11.11
✎
23:51
|
ВЫБРАТЬ
ЦеныНоменклатурыЗакупочные2.Цена, ЦеныНоменклатурыЗакупочные2.Номенклатура, ЦеныНоменклатурыЗакупочные2.Период ИЗ (ВЫБРАТЬ ЦеныНоменклатурыЗакупочные.Цена КАК Цена, ЦеныНоменклатурыЗакупочные.Номенклатура КАК Номенклатура, МАКСИМУМ(ЦеныНоменклатурыЗакупочные.Период) КАК Период ИЗ РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыЗакупочные ГДЕ ЦеныНоменклатурыЗакупочные.Период <= &ДатаКон СГРУППИРОВАТЬ ПО ЦеныНоменклатурыЗакупочные.Номенклатура, ЦеныНоменклатурыЗакупочные.Цена) КАК ПоследниеПоПериоду ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыЗакупочные2 ПО ПоследниеПоПериоду.Период = ЦеныНоменклатурыЗакупочные2.Период И ПоследниеПоПериоду.Номенклатура = ЦеныНоменклатурыЗакупочные2.Номенклатура И ПоследниеПоПериоду.Цена = ЦеныНоменклатурыЗакупочные2.Цена УПОРЯДОЧИТЬ ПО ЦеныНоменклатурыЗакупочные2.Номенклатура.Наименование ВОЗР |
|||
24
cViper
06.11.11
✎
00:02
|
(23)Выкинь это.
|
|||
25
BarakuzA
06.11.11
✎
00:09
|
(24) - а как ?
|
|||
26
acsent
06.11.11
✎
00:14
|
типы цен
|
|||
27
BarakuzA
06.11.11
✎
00:15
|
писал выше, что тип цен в отбор нет возможности указать
|
|||
28
acsent
06.11.11
✎
00:20
|
(27) Ну уж изыщите возможность
|
|||
29
BarakuzA
06.11.11
✎
00:22
|
(28) да вот и хочу подсказку спросить...
|
|||
30
BarakuzA
06.11.11
✎
00:44
|
нашел вот такой вариант, но как тут указать нужную мне номенклатуру:
ВЫБРАТЬ ПЕРВЫЕ 1 ЦеныНоменклатуры.Регистратор ПОМЕСТИТЬ ТаблицаРегистратора ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры УПОРЯДОЧИТЬ ПО ЦеныНоменклатуры.Период УБЫВ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыСрезПоследних.ТипЦен ИЗ ТаблицаРегистратора КАК ТаблицаРегистратора ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТаблицаРегистратора.Регистратор = ЦеныНоменклатурыСрезПоследних.Регистратор; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ТаблицаРегистратора |
|||
31
BarakuzA
06.11.11
✎
00:47
|
ВЫБРАТЬ ПЕРВЫЕ 1
ЦеныНоменклатуры.Регистратор ПОМЕСТИТЬ ТаблицаРегистратора ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры УПОРЯДОЧИТЬ ПО ЦеныНоменклатуры.Период УБЫВ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыСрезПоследних.ТипЦен ИЗ ТаблицаРегистратора КАК ТаблицаРегистратора ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТаблицаРегистратора.Регистратор = ЦеныНоменклатурыСрезПоследних.Регистратор ГДЕ ЦеныНоменклатурыСрезПоследних.Номенклатура=&Номенклатура ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ТаблицаРегистратора такой враиант вообще ничего не выводит... |
|||
32
МишельЛагранж
06.11.11
✎
00:50
|
я понимаю, когда задача по срезу последних получить две даты....
но одну... |
|||
33
cViper
06.11.11
✎
10:35
|
(27) Наверно имеешь ввиду что тип цен нельзя указать в параметрах виртуальной таблицы? Попробуй указать в ГДЕ. И Джойни по типу цен тоже. Покажи структуру таблицы.
|
|||
34
BarakuzA
06.11.11
✎
14:59
|
(33),да. какой именно таблицы?
|
|||
35
МишельЛагранж
06.11.11
✎
15:19
|
а вы, собственно, в демо пробовали свой запрос?
у вас что-то с настройкой регистра и недопонимание специфики ваших данных, вследствие - попадание одинаковых строк... |
|||
36
BarakuzA
06.11.11
✎
15:38
|
(35),да. я все понимаю прекрасно,нопроблоема в том что не могу указать тип цен, поэтому и выдает два значения, которые так же отличаются датой установки. мне надо получить только одно значение цены, позднее установленное
|
|||
37
cViper
06.11.11
✎
19:48
|
(34) Структуру таблицы в которой цены.
|
|||
38
Мимохожий Однако
06.11.11
✎
21:20
|
Посмотри в общем модуле типовой конфигурации. Там наверняка есть функция ПолучитьЦену()
|
|||
39
BarakuzA
07.11.11
✎
08:59
|
(38), да, есть такая функция - но ее результат аналогичен - две записи.
|
|||
40
BarakuzA
07.11.11
✎
09:01
|
(37) - цены хранятся в регистре сведений ЦеныНоменклатурыКонтрагентов (типовая конфигурация УТ 10.3).
измерения - ТипЦен, Номенклатура, ХарактеристикаНоменклатуры, ресурсы - ЕдиницаИзмерения, Валюта, Цена |
|||
41
hhhh
07.11.11
✎
09:22
|
(40) ну используйте один тип цен. Зачем вам второй тип цен, если он никому не нужен?
|
|||
42
BarakuzA
07.11.11
✎
09:35
|
(41)-СОГЛАСЕН, но изменить уже не могу,много документов введено...
|
|||
43
cViper
07.11.11
✎
09:52
|
(42) В запросе из (0) выбери еще тип цены. Посмотри на результат запроса. Сделай выводы.PROFIT!!!
|
|||
44
braynt
07.11.11
✎
10:04
|
ВЫБРАТЬ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура, ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, ЦеныНоменклатурыКонтрагентовСрезПоследних.Период ПОМЕСТИТЬ Цены ИЗ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Период, Цены.Цена ИЗ (ВЫБРАТЬ Цены.Номенклатура КАК Номенклатура, МАКСИМУМ(Цены.Период) КАК Период ИЗ Цены КАК Цены СГРУППИРОВАТЬ ПО Цены.Номенклатура) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цены КАК Цены ПО ВложенныйЗапрос.Номенклатура = Цены.Номенклатура И ВложенныйЗапрос.Период = Цены.Период |
|||
45
cViper
07.11.11
✎
10:24
|
ВЫБРАТЬ
Перемещение.Ссылка, Перемещение.Номенклатура, Перемещение.Количество КАК Количество, Перемещение.Цена, ЦеныНоменклатурыСрез.ТипЦен, ЕСТЬNULL(ЦеныНоменклатурыСрез.Цена, 0) КАК ЦенаЗакупка ИЗ Документ.ПеремещениеТоваров.Товары КАК Перемещение ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&НаДату, ТипЦен = &ТипЦены) КАК ЦеныНоменклатурыСрез ПО Перемещение.Номенклатура = ЦеныНоменклатурыСрез.Номенклатура И Перемещение.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрез.ХарактеристикаНоменклатуры ГДЕ Перемещение.Ссылка = &ТекущийДокумент |
|||
46
cViper
07.11.11
✎
10:28
|
(0) Какая перед тобой стоит задача? Почему тебе нужна именно последняя цена без учета типа цен? если с учетом, то (45) тебе в помощь.
|
|||
47
BarakuzA
07.11.11
✎
10:31
|
(46), задача следующая: есть дкоумент перемещение товаров между складами нтт, в кот есть позиции номенклатуры от разных поставщиков. мне нужно опредлеить сумму этих товаров как по закупочным ценам,так и по розничным. с розничными нет проблем - они указаны в ТЧ. а вот с закупочными проблема. есть одна особенность в наименовании склада отправителя либо есть слово альфа либо нет, так же и в типе цен либо есть слово альфа либо нет. я уже незнаю, может к этому моменту привязаться, или в цикле обхода по строкам ТЧ сделать отбор и добавить стоп при нахождении этой цены закупки.
|
|||
48
braynt
07.11.11
✎
10:36
|
так чем (44) запрос не страивает?
|
|||
49
BarakuzA
07.11.11
✎
10:53
|
(48), устраивает... спасибо. не было времени протестить их в консоли,
|
|||
50
dmpl
07.11.11
✎
10:56
|
(10) Ну так в регистре же есть. Или охота получить граблями по лбу когда начнут характеристики использовать?
(47) Заведите тип цен "Учетные цены" и отбирайте по нему. Так не придется бухгалтерам каждый раз объяснять, откуда вылезла эта нереальная цена. Хотя для полной точности надо партии товаров определять - и в них будет стоимость в приходных ценах. |
|||
51
BarakuzA
07.11.11
✎
12:00
|
(50) -характеристики не начнут использовать!!!
если я правильно понимаю - партия товара определяется после списания товара со склада, и тогда цену можно вытащить из регистра накопления партии товаров на складах (упр учет) ??? |
|||
52
BarakuzA
07.11.11
✎
12:01
|
чтобы учитывать цены в типе цен "Учетные цены", нужно в поступлении товаров дополнительно прописать учет по этому типу цен?
|
|||
53
BarakuzA
07.11.11
✎
12:02
|
(50) - учет по характеристикам отключен...
|
|||
54
dmpl
07.11.11
✎
15:29
|
(51) 1. Может быть и не начнут. А может и начнут - и вот тут уже будут готовы грабельки. Подозреваю, что не в одном месте... А делов-то на 5 секунд - добавить 1 условие в ПО.
2. Партия товаров определяется при списании по партиям. Т.е. либо после списания товара со склада, либо в конце месяца (при проведении по партиям) - зависит от настроек (хотя, возможно, в УТ все проще, и партии списываются сразу). Из регистра, соответственно, можно вытащить стоимость, а уж по ней определить и цену, и даже документ поступления (правда, при перепроведении он вполне может поменяться). (52) Просто заводится новый тип цен, на котором бухгалтера назначают нужную им цену. Соответственно, когда им надо сделать переоценку - они просто меняют эту цену (как обычно они назначают цены). |
|||
55
BarakuzA
07.11.11
✎
21:12
|
а как к запросу из (44) добавить чтобы товар брался из ТЧ Товары Документа ПеремещениеТоваров?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |