Имя: Пароль:
1C
1C 7.7
v7: Помогите отредактировать запрос 7.7 по остаткам/оборотам товара на складе ☑
0 evgpinsk_
 
23.04.23
✎
08:37
Прошу сильно не пинать, но с запросами никогда не дружил.
Есть запрос который обращается к регистру остатков - получает еженедельно приход и расход товара на складе.

Но расходом может быть как реализация товара на сторону, так и перемещение на другой склад (документ (Межскладская_расход_приход").
Соответственно такие перемещения в отчёт не должны попадать.

Как допилить запрос который ниже для этого? /в нём комментариями мои попытка, которые не помогла/

    __вид="Межскладская_расход_приход";
    Запрос2 = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Склад     = Регистр.Остатки.Склад;
    |Товар     = Регистр.Остатки.ТМЦ;
    |Остаток = Регистр.Остатки.Остаток;
    |_Док       = Регистр.Остатки.ТекущийДокумент;
    |Условие (Склад в ВыбСклад);";
//    |Условие ((_Док.Вид()<>__вид));";
    |Функция ОстатокПриход = Приход(Остаток);
    |Функция ОстатокРасход = Расход(Остаток);
    |Группировка Товар Без групп;
//    |Группировка _Док;
    |Группировка Неделя Все;";
1 Волшебник
 
23.04.23
✎
09:59
|Условие (_Док.Вид()<>""Межскладская_расход_приход"");";
2 evgpinsk_
 
23.04.23
✎
12:20
Увидел ошибку в ТЗ.
Приходы по межскладской попадать в отчёт должны, о вот расход со склада по межскладской - не должен.

Вот это условие не могу прописать
3 Builder
 
23.04.23
✎
13:03
(2) Можно добавить условие по реквизиту в доке, что-то типа
|Условие (_Док.ВидРасхода = "Расход") КОГДА (Док.Вид()="Межскладская_расход_приход");
Но надо проверить.
А в идеале в регистре должен быть реквизит, заполненный как надо, что-то типа "ВидДвижения". И по нему делать фильтры.
4 evgpinsk_
 
23.04.23
✎
13:18
(3) > "А в идеале в регистре должен быть реквизит, заполненный как надо, что-то типа "ВидДвижения". И по нему делать фильтры."

Суть в чём - в этом отчёте я хочу видеть именно продажи товара. Которые идут по документу "Расходная накладная".
Списание товара со склада на другой склад по межскладской - не является продажей, и в отчёте мне не нужно.

> "|Условие (_Док.ВидРасхода = "Расход") КОГДА (Док.Вид()="Межскладская_расход_приход");"
Править структуру документа ради отчёта - не очень правильно.

Vне нужно чтото такое:
|Условие (ОстатокПриход>0) КОГДА (Док.Вид()="Межскладская_расход_приход");
5 Builder
 
23.04.23
✎
13:25
(4)
>Править структуру документа ради отчёта - не очень правильно.
Правильно было спроектировать регистр так, что бы получать такие отчеты без написания таких условий.

>|Условие (ОстатокПриход>0) КОГДА (Док.Вид()="Межскладская_расход_приход");
Тогда только приходы этого документа и будут. Продаж не будет. Меняй условие.
6 evgpinsk_
 
23.04.23
✎
13:31
(5) > "Тогда только приходы этого документа и будут. Продаж не будет. Меняй условие."
Так вот и не могу понять как определить условие

Как определить в условии, что конкретная получаемая запись является расходом по межскладской и эту запись ОТфильтровывать?
7 АгентБезопасной Нацио
 
23.04.23
✎
15:41
(6) выгрузи уже в ТЗ, и фильтруй при обходе
8 Builder
 
23.04.23
✎
17:29
(6) Действительно очень сложная задача....
|Условие (ОстатокПриход>0) КОГДА (Док.Вид()<>"Межскладская_расход_приход");
9 Злопчинский
 
23.04.23
✎
20:25
(4) правильно - это регистр проектировать правильно, а не обращаться в запросе а виду Доку нота
10 Злопчинский
 
23.04.23
✎
20:27
Функция ОстатокПриход... Когда док.Вид() в СЗсписоквидов
11 Гена
 
гуру
23.04.23
✎
21:02
(4) [Суть в чём - в этом отчёте я хочу видеть именно продажи товара. Которые идут по документу "Расходная накладная"]

А нельзя взять обороты именно по регистратору "Расходная накладная"?
12 Злопчинский
 
24.04.23
✎
00:21
(11) в (10) запихать в СЗ нужные виды
13 Злопчинский
 
24.04.23
✎
00:22
(0) обрабатывать не помеченные на удаление - выкинуть, ибо это оксюморон. Запрос к регистру. Регистр - по проведённым документам сам по себе
14 АгентБезопасной Нацио
 
24.04.23
✎
09:27
(13) а ты вспомни, как у него конфига сделана - все через попы
тки-исключения. А при этом вполне могут быть разные артефакты - движения у непроведенных, или отсутствие движений у проведенных...
15 evgpinsk_
 
24.04.23
✎
10:16
(11) В отчёте также нужно и приходы и возвраты, поэтому правильней - вычеркнуть только один вид документа (перемещения между складами)
16 evgpinsk_
 
24.04.23
✎
10:20
(9) Что именно не правильно спроектировано в класичесском регистре остатков?
Если вдруг появился какойто хитрый отчёт, базу даннух под него нужно перепроектировать?
17 evgpinsk_
 
24.04.23
✎
10:24
(8) Это не смог попробовать, выдаёт ошибку, чтото с синтаксисом. "ОстатокПриход" - это функция, которая возвращает сумму сгрупированных остатков.
В условии можно обращаться к функции? И это условие анализирует результат который сама возвращает или конкретную запись запроса (т.е. значение прихода)?
18 Builder
 
24.04.23
✎
10:29
(17) Блин, ну совсем думать не хочешь, как то так же
|Функция ОстатокПриход= Приход(Остаток) КОГДА (Док.Вид()<>"Межскладская_расход_приход");
19 evgpinsk_
 
24.04.23
✎
10:58
(18) Здесь уже совсем другое решение, условие в функции, я не знал что можно было и так (гугл толком не давал помощи)
20 СвинТуз
 
24.04.23
✎
11:04
Такое смутное ощущение, что пытаетесь остатки в регистре по реквизитам документов-регистраторов расфасовать?
v7 плохо помню.

Может не взлететь. Хранится ли?
21 СвинТуз
 
24.04.23
✎
11:05
Это по сути обороты. В остатках не отфильтруете.
22 Builder
 
24.04.23
✎
11:07
(21) Ему обороты и нужны, останков вроде нет в исходном запросе.
23 СвинТуз
 
24.04.23
✎
11:08
Да не разглядел ...

плохо помню 7-ю.

Не то чем кажется?

|Остаток = Регистр.Остатки.Остаток;
24 СвинТуз
 
24.04.23
✎
11:09
Таблица остатков задействована для расчета остатков.
Досвидос ...
25 СвинТуз
 
24.04.23
✎
11:10
Это типа 8-й виртуальной "Остатки и обороты" наверное.
26 СвинТуз
 
24.04.23
✎
11:12
В таких случаях кажется вот оно рядом решение, вот скоро ...
потом платформа дулю показывает.

Плавали, знаем.
Тоже молодыми были.
27 СвинТуз
 
24.04.23
✎
11:15
Найдете в клюшках оборотный регистр,
дайте знать.
Лицезреть хочу. )
28 СвинТуз
 
24.04.23
✎
11:24
Нужно писать запрос не по регистру, а по документам.
29 Builder
 
24.04.23
✎
11:27
(27) Открой конфигуратор и посмотри, их есть там. Неожиданно?
30 СвинТуз
 
24.04.23
✎
11:30
(29)
Я старый уже. Все забыл.
Дороги посыпаю.
31 СвинТуз
 
24.04.23
✎
11:31
Но все равно. В этом случае по документам.
32 СвинТуз
 
24.04.23
✎
11:31
Я ничего не помню.
Разбираюсь быстро.
33 АгентБезопасной Нацио
 
24.04.23
✎
12:35
(32) "Хорошая болезнь склероз. Ничего не болит, и каждый день всё вокруг новое"©
34 uno-group
 
24.04.23
✎
12:54
Продажи закупки нужно по регистру партий строить там и реквизиты для этого специальные есть.
35 uno-group
 
24.04.23
✎
12:57
Там кроме межскладских перемещений могут быть возвраты нам от нас. их уже по док вид не отфильтруешь. Или черный запрос по документам или по регистру партий.
36 АгентБезопасной Нацио
 
24.04.23
✎
13:42
(35) или прямой запрос
37 uno-group
 
24.04.23
✎
13:47
(36) если у человека обычный вызывает проблемы, то про прямой страшно даже подумать.
38 АгентБезопасной Нацио
 
24.04.23
✎
13:53
(37) прямые проще. ибо они нормальные и логичные, а чОрные - локальное семерочное извращение.
Ну а у этого человека проблемы в обычном месте...
39 evgpinsk_
 
24.04.23
✎
16:31
(35) Я немного поменял логику работы отчёта. Межкскладские вообще не берутся в расчёт в запросе.
И тогда приходом будет изначальная покупка товара (а не перемещение).
40 АгентБезопасной Нацио
 
24.04.23
✎
17:23
(39) открытие.
41 Злопчинский
 
24.04.23
✎
17:29
(16) Открой ТиС - регистр остаток. классическей некуда. Посмотри на реквизит "Внутреннее".
.
Спроектировать регитср надо вперед.
и да, правильнее- переделать регистр под появившуюся задачу. часто "хи трые" отчеты на "неправильно" спроектированном регистре свидетельствуют о том, что пришли к очередному витку развития. а нахераченный ранее регистр для получения исключительно остатокв внезапно стал еще с делением по типам движений
42 Злопчинский
 
24.04.23
✎
17:31
(15) Функция ОстатокПриход... Когда СЗсписоквидов.НайтиЗначение(Док.Вид()=0
43 Злопчинский
 
24.04.23
✎
17:32
(19) открой для себя в интернете электронную версию желтых книжек.
ну и в СП тоже есть
44 Злопчинский
 
24.04.23
✎
17:33
(17) еще учесть что когда ты уберешь приход/расход по каким-то видам документов то КонОст (если нужен) тебе придется для отчета высчитывать ВРУЧНУЮ, а не функцией штатной.
45 АгентБезопасной Нацио
 
24.04.23
✎
20:48
(44) а он в сказку верит...
46 Злопчинский
 
24.04.23
✎
21:28
(45) ...а потом еще возьмут за гузку когда коност по 30.04, не совпадет с начост на 01.05...
47 АгентБезопасной Нацио
 
25.04.23
✎
06:19
(46) да он сам себе "гузкохват". "директор-программист".
48 evgpinsk_
 
25.04.23
✎
08:17
(47) Агент, не боишься что скоро лопнешь от желчи? Я тебе дорогу где переехал? На работу не взял? Уже переживаю за тебя
49 АгентБезопасной Нацио
 
25.04.23
✎
08:54
(48) не от желчи, а от смеха.  редко такие забавные встречаются... на работу - дык по "закону соответствия"™ мы с тобой не сможем встретиться на работе никогда.
50 evgpinsk_
 
25.04.23
✎
09:12
(49) Ну так и смейся себе в сторонке, а не 5 копеек свои вставляешь никому не нужные через предложение.
51 СвинТуз
 
25.04.23
✎
09:15
(50)
Обороты считаешь?
Возьми наконец проведенные документы требуемых типов за месяц и посчитай.
Не напрягай людей с регистром.
52 СвинТуз
 
25.04.23
✎
09:16
Давно бы сделал уже.
53 evgpinsk_
 
25.04.23
✎
09:21
(51) Уже и сделано (39)
54 СвинТуз
 
25.04.23
✎
09:22
Так сразу сказал, если нужно делить по реквизитам движений обороты за месяц
использовать регистр остатков не рентабельно.

Не ... моск )
55 Злопчинский
 
25.04.23
✎
16:32
(51) это хреново. Пецсатели отчётов на основе данных документов херачат ещё хуже чем по регистрам.
.
Возможность того что док не в рублях а в валюте - не обрабатывается, вкл/выкл НДС в сумме не обрабатыаается, то что в документе не обязательно базовые штуки не обрабатывается, цена продажи берётся из колонки цены без учёта скидок в документе.
56 Злопчинский
 
25.04.23
✎
16:34
. . А уж о том, что сумма по табличной части может не совпадать с суммой взаиморасчетов - жто подавно. Правда надо сказать что такой изврат за кучу лет встречал один раз...
Ошибка? Это не ошибка, это системная функция.