|
Получение данных запросом | ☑ | ||
---|---|---|---|---|
0
treor
25.08.19
✎
20:02
|
Здравствуйте.
У меня есть 1)таб. часть документа, в которую вносится номенклатура и выработка по дням (колонки Номенклатура, Количество1, Количество2,... Количество31); 2)регистр накопления "Цены номенклатуры" (Период,Номенклатура, Цена). Нужно получить цены номенклатуры. Вопросы: 1) как лучше ( и можно ли вообще) в запросе по реквизиту КоличествоN получать номер дня? 2) получать цены по дням с учетом того, что за месяц они могут меняться несколько раз (т.е. СрезПоследних() в чистом виде не подойдет)? |
|||
1
Dotoshin
25.08.19
✎
21:24
|
(0) Лучше сделать по нормальному - удалить 30 полей с количеством, оставить только одно и добавить дату выработки. Если визуально нужно вытянуть в одну строку все даты, то это нужно делать программно в форме, а не заводить 30 лишних полей с количеством. Далее все перечисленые проблемы решаются автоматики, точней они просто исчезают. Поэтому нужно не полениться и все переделать.
|
|||
2
Консультант Баранов
25.08.19
✎
21:54
|
(0) Бери данные не из документа.
Сделай обработку проведения документа и запиши эти данные в регистр как сказано в (1) А затем работай в запросе с регистрами. |
|||
3
Консультант Баранов
25.08.19
✎
22:06
|
по второму вопросу как-то так
ВЫБРАТЬ РеализацияТоваровИУслугТовары.НоменклатураКАК Номенклатура, РеализацияТоваровИУслугТовары.Ссылка.Дата КАК Дата ПОМЕСТИТЬ втСписокДатИНоменклатуры ИЗ Документ.РеализацияТоваровИУслуг.Товары КАК РеализацияТоваровИУслугТовары СГРУППИРОВАТЬ ПО РеализацияТоваровИУслугТовары.Номенклатура, РеализацияТоваровИУслугТовары.Ссылка.Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЦеныНоменклатуры.Период КАК Период, ЦеныНоменклатуры.Номенклатура КАК Номенклатура, МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена ПОМЕСТИТЬ втЦеныНоменклатуры ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.Период, ЦеныНоменклатуры.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ взМаксПериодЦенНоменклатуры.Номенклатура КАК Номенклатура, взМаксПериодЦенНоменклатуры.Дата КАК Дата, ЕСТЬNULL(втЦеныНоменклатуры.Цена, 0) КАК Цена ИЗ (ВЫБРАТЬ втСписокДатИНоменклатуры.Номенклатура КАК Номенклатура, втСписокДатИНоменклатуры.Дата КАК Дата, МАКСИМУМ(ЕСТЬNULL(втЦеныНоменклатуры.Период, ДАТАВРЕМЯ(1, 1, 1))) КАК МаксПериод ИЗ втСписокДатИНоменклатуры КАК втСписокДатИНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ втЦеныНоменклатуры КАК втЦеныНоменклатуры ПО втСписокДатИНоменклатуры.Номенклатура = втЦеныНоменклатуры.Номенклатура И втСписокДатИНоменклатуры.Дата >= втЦеныНоменклатуры.Период СГРУППИРОВАТЬ ПО втСписокДатИНоменклатуры.Номенклатура, втСписокДатИНоменклатуры.Дата) КАК взМаксПериодЦенНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ втЦеныНоменклатуры КАК втЦеныНоменклатуры ПО взМаксПериодЦенНоменклатуры.Номенклатура = втЦеныНоменклатуры.Номенклатура И взМаксПериодЦенНоменклатуры.МаксПериод = втЦеныНоменклатуры.Цена |
|||
4
RetardedToBoot
25.08.19
✎
23:39
|
(0) в данном виде представления данных вроде только через объединения:
выбрать Номенклатура, &дд1 как ДатаВыработки, Количество1 как Количество из ... объединить все выбрать Номенклатура, &дд2, Количество2 из ... и т.д. Запрос формировать программно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |