|
Помогите с отчётом | ☑ | ||
---|---|---|---|---|
0
Gomodrila
25.03.13
✎
15:39
|
Отчёт "Неликвиды", в нём должный отображаться товары, которые 30 дней (относительно даты заданной пользователем) ни разу не продавались. Для каждого такого товара выведите остаток на дату формирования отчёта.
Подсказка (Данные о продажах берите из соответствующего регистра накопления) |
|||
1
НафНаф
25.03.13
✎
15:42
|
это кому подсказка?
|
|||
2
yra77
25.03.13
✎
15:43
|
стаж 10 дней!! Ждем вопрос про УПП.
|
|||
3
wowik
25.03.13
✎
15:44
|
(0) берем из соответствующего регистра, чтобы оборотов за выбранные 30 дней не было.
|
|||
4
del123
25.03.13
✎
15:46
|
Ник хорош...)
В чем именно сложность в построении данного отчета? |
|||
5
Волесвет
25.03.13
✎
15:49
|
на заданную дату - остатки по товарам, по этим товарам смотрим была ли продажа в течении 30 дней
|
|||
6
Gomodrila
25.03.13
✎
15:49
|
Стаж 5 дней)
Простейшим запросом иогу найти все даты проведенных товаров, но как из всего этого списка выделить только последнюю дату, чтоб потом сравнить её с заданной пользователем? |
|||
7
del123
25.03.13
✎
15:53
|
ну как вариант группировку по номенклатуре, в функцию максимум даты продажи
|
|||
8
Crush
25.03.13
✎
16:05
|
В (3) предложено отличное решение. Что еще придумывать?
Ссылка из номенклатура где ссылка не в (выбрать номенклатура из продажиобороты(ДобавитьКдате(&текДата,день,-30),&текДата)) |
|||
9
Джинн
25.03.13
✎
16:08
|
(6) Зачем? Стройте отчет за период от ТекДата-30 дней до ТекДата. Если в этом периоде нет оборотов по "внешнему" расходу, то товар не продавался.
|
|||
10
Gomodrila
25.03.13
✎
16:10
|
ВЫБРАТЬ
Продажи.Номенклатура КАК Номенклатура, МАКСИМУМ(Продажи.Регистратор.Дата) КАК РегистраторДата ПОМЕСТИТЬ ВТликвид ИЗ РегистрНакопления.Продажи КАК Продажи СГРУППИРОВАТЬ ПО Продажи.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА ДОБАВИТЬКДАТЕ(ВТликвид.РегистраторДата, День,30) < &ДатаАнализа ТОГДА "Распродажа" ИНАЧЕ "ПовышайЦЕНУ" КОНЕЦ КАК Стратегия, ВТликвид.Номенклатура, ВТликвид.РегистраторДата ИЗ ВТликвид КАК ВТликвид |
|||
11
Gomodrila
25.03.13
✎
16:11
|
Как-то так получается?
|
|||
12
Джинн
25.03.13
✎
16:13
|
(10) А обязательно так сложно выдирать гланды?
|
|||
13
Gomodrila
25.03.13
✎
16:14
|
А чтоб вывести остатки, то всё это опять выгружать в ВТ и делать объединённый запрос с Регистор Остатков? с условием что Стратегия = "распродажа"?
|
|||
14
Gomodrila
25.03.13
✎
16:14
|
(12) Не знаю ((
|
|||
15
Gomodrila
25.03.13
✎
17:30
|
ВЫБРАТЬ
ПродажиОбороты.Номенклатура ПОМЕСТИТЬ ВТликвид ИЗ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, -30), &Дата, , ) КАК ПродажиОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиТоваровОстатки.КолвоОстаток, ОстаткиТоваровОстатки.Номенклатура ИЗ РегистрНакопления.ОстаткиТоваров.Остатки(&Текущая, ) КАК ОстаткиТоваровОстатки ГДЕ НЕ ОстаткиТоваровОстатки.Номенклатура.Ссылка В (ВЫБРАТЬ ВТликвид.Номенклатура ИЗ ВТликвид КАК ВТликвид) Джинн, спасибо за помощь, и всем остальным тоже) Крохотный вопрос. Как в параметр периода ВТ ОстаткиТоваров.Остатки передать текущую дату? ну или дату формирования отчёта (что мне кажется аналогично)?? |
|||
16
Web00001
25.03.13
✎
18:07
|
Я так понимаю, это какое то тестовое задание. Фишка задания в том, что человек должен понять, что система не хранит в регистре накоплений, тех позиций ресурс у которых 0. То есть товаров с остатком 0 запросом к регистру не поймать.
то есть что надо сделать: сделать запрос к справочнику номенклатура и к нему левым соединением запрос к регистру с остатками. Потом условием надо отобрать те записи оборот у которых NULL(записи которые запрос не смог найти в регистре). Как то так: ВЫБРАТЬ Товары.Ссылка ИЗ Справочник.Номенклатура КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(ДОБАВИТЬКДАТЕ(&Дата1, ДЕНЬ, -30), &Дата1, , ) КАК ТоварыНаСкладахОбороты ПО Товары.Ссылка = ТоварыНаСкладахОбороты.Номенклатура ГДЕ ТоварыНаСкладахОбороты.КоличествоОборот ЕСТЬ NULL |
|||
17
Web00001
25.03.13
✎
18:26
|
(15)Запрос.УстановитьПараметр("Дата",ТекущаяДата());
|
|||
18
Gomodrila
25.03.13
✎
18:41
|
Ну мой код тоже работает. В параметрах отчёта, в "Выражение" параметра &Текущая просто прописал Функцию ТекущаяДата().
ДатаАнализа выбирается пользователем. Это задание из мастер-группы "Быстрый старт в профессию Программист-1С" оно для того, чтоб я разобрался с темой отчёты и запросы. |
|||
19
Web00001
25.03.13
✎
18:58
|
Ради интереса, посмотри в отчете, будет ли номенклатура которая никогда не продавалась? То есть в этом регистре не фигурировала.
>> В параметрах отчёта, в "Выражение" параметра &Текущая просто прописал Функцию ТекущаяДата(). Что, зачем, почему, потом, все потом :) |
|||
20
Web00001
25.03.13
✎
18:59
|
оно для того, чтоб ты понял (16)
|
|||
21
Gomodrila
26.03.13
✎
15:41
|
(20) Видимо нет((
Создал новый товар. Запустил отчёт - товар в отчёт не попал |
|||
22
Gomodrila
26.03.13
✎
15:45
|
(21) Но после проведения документа "Поступление товаров", остаток выдаёт.
|
|||
23
Web00001
26.03.13
✎
15:48
|
(21)Ты (16) читал? Его там быть не может. Внимательно посмотри на запрос в (15) Ты выбрал обороты за нужный интервал времени. Потом взял остатки на какую то дату. И проанализировал, внмание! есть ли продажи по товарам который есть на остатках на дату &текущая.
|
|||
24
Web00001
26.03.13
✎
15:51
|
+(23)Запрос, то конечно работает... но это смотря с какой стороны посмотреть, он даже какие то данные показывает.
|
|||
25
Gomodrila
26.03.13
✎
16:12
|
Web00001 опыта у меня маловато.
http://clip2net.com/s/4OeQJu вот поступление товара, я его никому не продавал. http://clip2net.com/s/4OePLh вот такой отчёт выходит. Остатки на текущую дату. Дата анализа задаётся пользователем. Единственный как мне кажется недочёт, товар поступил 20 числа, ДатаАнализа 19 число, и он всё равно выводит остаток кресел. Ты это имел ввиду? Если (16) сделать так на проверку значения NULL такого недочёта не будет? |
|||
26
Gomodrila
26.03.13
✎
16:15
|
я их и продать бы никак не успел до 19, т.к. у меня их не было в наличии. Это согласен недочёт.
|
|||
27
Web00001
26.03.13
✎
17:07
|
Ты не стал читать, что я пишу?
Я говорю, ты данные берешь там, где их нет. |
|||
28
Web00001
26.03.13
✎
17:13
|
стоп они же точно есть, если надо получить данные о товаре который не разу не продавался, значит он на остатках точно есть. Тогда да, чота я затупил, прости бро, прочитал как товар по которому 30 дней не было движений. А у тебя который есть! на складе и 30 дней не продавался. Тогда да все верно единственное, что временная таблица, здесь все равно не к чему и я бы использовал левое соединение.
|
|||
29
FormatC
26.03.13
✎
17:17
|
|ВЫБРАТЬ Номенклатура.Артикул КАК Артикул, Номенклатура, Сумма(КоличествоОстаток) КАК Количество, Сумма(СтоимостьОстаток) КАК Сумма
|ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, Номенклатура не в | (ВЫБРАТЬ Различные ПартииТоваровНаСкладах.Номенклатура | ИЗ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах | ГДЕ | КодОперации в (&КодОперациии) и Период Между &ДатаНач и &ДатаКон | и Номенклатура в | (ВЫБРАТЬ Различные Номенклатура | ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон,)))) |Сгруппировать по Номенклатура //|упорядочить по номенклатура.Наименование |Итоги по Общие, номенклатура Автоупорядочивание"; в коды операций передаем те операции, которые учитываются при анализе неликвида |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |