|
Извлечь запросом срок хранения номенклатуры в днях из РН.ТоварыНаСкладах УПП 1.3 | ☑ | ||
---|---|---|---|---|
0
slnes
10.03.18
✎
09:48
|
Извлечь запросом срок хранения номенклатуры в днях из РН.ТоварыНаСкладах УПП 1.3.
Результат в виде Склад|Номенклатура|Приход|СрокХраненияВДнях| Расходуется в зависимости от склада по ФИФО. Отчет необходимо сделать именно запросами, без дальнейшей обработки. |
|||
1
Mikhail Volkov
10.03.18
✎
10:27
|
Если цель отчета определить остатки годного товара, то РН.ТоварыНаСкладах мало будет. В РН.ПартииТоваровНаСкладах есть ДокументОприходования - из него можно дату поступления товара определить...
|
|||
2
Mikhail Volkov
10.03.18
✎
11:19
|
+ Хотя дату поступления можно из регистратора взять... но не гарантирует, что товар изначально свежий.
|
|||
3
slnes
11.03.18
✎
08:34
|
Нет, сроки годности не надо, просто необходимо узнать какой товар сколько пролежал на складе, на конкретную дату, списывается по ФИФО
Например: 01.03.18 склад№1 поступил товар1 100 шт 06.03.18 склад№1 поступил товар1 150 шт 08.03.18 склад№1 списан товар1 200 шт необходимо узнать срок хранения на дату, 10.03.2018 склад№1, товар1, поступление от 06.03.18, остаток 50 штук, хранится 5 дней. Напомню, можно использовать только запрос. |
|||
4
Sapiens_bru
11.03.18
✎
09:53
|
(3) Это учебное задание на понимание смысла запросов? На практике запрос скрещивающий таблицу оборотов саму с собой, положит большую базу, потому и используют регистры партий.
|
|||
5
один я дАртаньян
11.03.18
✎
10:38
|
(1) А если былонесколько поступлений?
ДОпустим 100шт. 01.03 100шт. 05.03 Это должны быть две строчки в отчетах? Или одна? Если одна то какая дата? |
|||
6
slnes
11.03.18
✎
11:12
|
Две строчки, списывается сначала то что раньше пришло на склад, что бы пример был нагляднее сделаем так
01.03.18 склад№1 поступил товар1 100 шт 06.03.18 склад№1 поступил товар1 150 шт 08.03.18 склад№1 списан товар1 50 шт необходимо узнать срок хранения на дату, 10.03.2018 склад№1, товар1, поступление от 01.03.18, остаток 50 штук, хранится 10 дней. склад№1, товар1, поступление от 06.03.18, остаток 150 штук, хранится 5 дней. Напомню, можно использовать только запрос. |
|||
7
Джинн
11.03.18
✎
11:36
|
(6) Используйте, разрешаю.
|
|||
8
один я дАртаньян
11.03.18
✎
12:44
|
Как то так:
ВЫБРАТЬ взОстатки.Номенклатура, взОстатки.Склад, взОстатки.КоличествоОстаток ПОМЕСТИТЬ втДанные ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.Склад КАК Склад, СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, ) КАК ТоварыНаСкладахОстатки СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Склад) КАК взОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ взОстатки.Номенклатура, взОстатки.Склад, взОстатки.Регистратор, взОстатки.Количество, взОстатки.Регистратор.МоментВремени ПОМЕСТИТЬ втОборот ИЗ (ВЫБРАТЬ ТоварыНаСкладах.Номенклатура КАК Номенклатура, ТоварыНаСкладах.Склад КАК Склад, ТоварыНаСкладах.Регистратор КАК Регистратор, СУММА(ТоварыНаСкладах.Количество) КАК Количество ИЗ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах ГДЕ ТоварыНаСкладах.Активность И ТоварыНаСкладах.Количество > 0 И ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) И (ТоварыНаСкладах.Номенклатура, ТоварыНаСкладах.Склад) В (ВЫБРАТЬ втДанные.Номенклатура, втДанные.Склад ИЗ втДанные) СГРУППИРОВАТЬ ПО ТоварыНаСкладах.Номенклатура, ТоварыНаСкладах.Склад, ТоварыНаСкладах.Регистратор) КАК взОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Склад, ВложенныйЗапрос.Регистратор, РАЗНОСТЬДАТ(ВложенныйЗапрос.Регистратор.Дата, &НаДату, ДЕНЬ) КАК Дней, ВложенныйЗапрос.Количество - ВЫБОР КОГДА втДанные.КоличествоОстаток < ВложенныйЗапрос.КоличествоНакопленное ТОГДА ВложенныйЗапрос.КоличествоНакопленное - ВложенныйЗапрос.КоличествоНакопленное ИНАЧЕ 0 КОНЕЦ КАК Количество ИЗ втДанные КАК втДанные ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ втОборот.Номенклатура КАК Номенклатура, втОборот.Склад КАК Склад, втОборот.Регистратор КАК Регистратор, втОборот.Количество КАК Количество, ВложенныйЗапрос.КоличествоНакопленное КАК КоличествоНакопленное, ВложенныйЗапрос.НПП КАК НПП ИЗ втОборот КАК втОборот ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ втОборот.Номенклатура КАК Номенклатура, втОборот.Склад КАК Склад, втОборот.Регистратор КАК Регистратор, СУММА(втОборот1.Количество) КАК КоличествоНакопленное, СУММА(1) КАК НПП ИЗ втОборот КАК втОборот ВНУТРЕННЕЕ СОЕДИНЕНИЕ втОборот КАК втОборот1 ПО втОборот.Номенклатура = втОборот1.Номенклатура И втОборот.Склад = втОборот1.Склад И втОборот.РегистраторМоментВремени <= втОборот1.РегистраторМоментВремени СГРУППИРОВАТЬ ПО втОборот.Номенклатура, втОборот.Склад, втОборот.Регистратор) КАК ВложенныйЗапрос ПО втОборот.Номенклатура = ВложенныйЗапрос.Номенклатура И втОборот.Регистратор = ВложенныйЗапрос.Регистратор И втОборот.Склад = ВложенныйЗапрос.Склад) КАК ВложенныйЗапрос ПО втДанные.Номенклатура = ВложенныйЗапрос.Номенклатура И втДанные.Склад = ВложенныйЗапрос.Склад И втДанные.КоличествоОстаток >= ВложенныйЗапрос.КоличествоНакопленное |
|||
9
один я дАртаньян
11.03.18
✎
12:49
|
+Там один вложенный запрос надо убрать.
|
|||
10
slnes
11.03.18
✎
19:08
|
01.03.18 склад№1 поступил товар1 100 шт
06.03.18 склад№1 поступил товар1 150 шт 08.03.18 склад№1 списан товар1 50 шт *склад№1, товар1, поступление от 01.03.18, остаток 50 штук, хранится 10 дней. склад№1, товар1, поступление от 06.03.18, остаток 150 штук, хранится 5 дней. не выводит строку помеченную *, вложенный запрос убирал, ковырял ковырял ничего не получается |
|||
11
один я дАртаньян
11.03.18
✎
19:29
|
(10) ХЗ у меня все работает.
Вложенный запрос можно убрать но там количество нужно добавить и на НПП поделить. Из минусов разве, что только перемещения как поступления отображаются. |
|||
12
slnes
16.03.18
✎
15:50
|
Вопрос ещё актуален!
Результат дает, но не верный например Введем поступление и реализацию 06.03.18 склад№1 поступил товар1 100 шт 08.03.18 склад№1 списан товар1 50 шт в отчете не будет товара1. В (10) еще пример с с неверным результатом. Т.е. если товар был списан частично, он не попадает в отчет. |
|||
13
Buster007
16.03.18
✎
16:42
|
Есть 3 стадии развития программиста:
1) все кодом 2) все в запросах 3) код + запросы скоро дорастешь, осталось чуть-чуть ) |
|||
14
ILM
гуру
16.03.18
✎
20:28
|
(13) 2 и 3 местами поменяйте )))
Самый писк, все запросом в СКД. |
|||
15
один я дАртаньян
17.03.18
✎
18:09
|
(12)> Вопрос ещё актуален!
Мой запрос должен работать. Если не работает разберись с ним. |
|||
16
Vakhrin
17.03.18
✎
20:44
|
Чего-то не понимаю я задачи... А типовой функционал списания по партиям в УПП по ФИФО не от "срока хранения" пляшет? Т.е. от даты документа образовавшего партию.
Или именно на конкретном складе надо учитывать срок хранения, включая перемещенные с других складов? ) |
|||
17
slnes
17.03.18
✎
21:30
|
(15) разобрался, запрос работает после небольших испавлений
(16) прочитайте (6) |
|||
18
slnes
18.03.18
✎
08:28
|
Спасибо, (8) навело на решение.
Наверное специально с ошибками и увеличенный, запрос можно сократить втрое. |
|||
19
один я дАртаньян
18.03.18
✎
08:47
|
(17) > разобрался, запрос работает после небольших испавлений
В чем ошибка то? > и увеличенный, запрос можно сократить втрое. Ты думаешь краткость запроса это плюс? Напрасно. Иногда лучше добавить уровней вложенности, потому как не известно, что понадобится добавить. |
|||
20
slnes
18.03.18
✎
12:06
|
В последнем запросе
В начале ВложенныйЗапрос.Количество - ВЫБОР КОГДА втДанные.КоличествоОстаток < ВложенныйЗапрос.КоличествоНакопленное ТОГДА ВложенныйЗапрос.КоличествоНакопленное - втДанные.КоличествоОстаток ИНАЧЕ 0 КОНЕЦ КАК Количество И середине ПО втДанные.Номенклатура = ВложенныйЗапрос.Номенклатура И втДанные.Склад = ВложенныйЗапрос.Склад И ВложенныйЗапрос.Количество - ВЫБОР КОГДА втДанные.КоличествоОстаток < ВложенныйЗапрос.КоличествоНакопленное ТОГДА ВложенныйЗапрос.КоличествоНакопленное - втДанные.КоличествоОстаток ИНАЧЕ 0 КОНЕЦ > 0 Тебе видней, я запрос самостоятельно составить не смог. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |