Имя: Пароль:
1C
 
ТиС 7.7. Запрос по перемещениям по складам
0 es3000
 
29.06.15
19:35
Помогите плиз разобраться с запросом.
Нужно вывести с группировкой по складам следующие данные:
- перемещено на склад
- продано
- перемещено со склада

Ломаю голову, можно ли получить эти данные в одном запросе?
Пока у меня не получается.

Сейчас запрос такой:
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаНачала по ДатаКонца;
    |Фирма            = Регистр.ПартииНаличие.Фирма;
    |ЮрЛицо         = Регистр.ПартииНаличие.Фирма.ЮрЛицо;
    |Номенклатура    = Регистр.ПартииНаличие.Номенклатура;
    |Склад          = Регистр.ПартииНаличие.ТекущийДокумент.ПоступлениеТМЦ.Склад,
    |    Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.Склад,
    |    Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.СкладПолучатель,
    |    Регистр.ПартииНаличие.ТекущийДокумент.РеализацияРозница.Склад,
    |    Регистр.ПартииНаличие.ТекущийДокумент.ПоступлениеТМЦРозница.Склад;
    |    //Регистр.ПартииНаличие.ТекущийДокумент.Сторно.СторнируемыйДокумент.Склад;
    |
    |КодОперации    = Регистр.ПартииНаличие.КодОперации;
    |Док            = Регистр.ПартииНаличие.ТекущийДокумент;
    |Количество = Регистр.ПартииНаличие.Количество;
    |
    |Функция ПриходК = Приход(Количество)Когда(НЕ(КодОперации в КодыПеремещений));
    |Функция РасходК = Расход(Количество)Когда(НЕ(КодОперации в КодыПеремещений));
    |Функция ВозвратК = Приход(Количество)Когда(КодОперации в КодыВозвратов);
    |Функция ПеремещеноНаСклад = Приход(Количество)Когда(КодОперации в КодыПеремещений);
    |Функция ПеремещеноСоСклада = Расход(Количество)Когда(КодОперации в КодыПеремещений);
    |
    |Группирока Склад;";


Но что-то не то он мне выдает.
Как правильно написать?
1 LazyStranger
 
29.06.15
20:27
не проще по регистру ОстаткиТМЦ вытащить? там со складом извращаься не надо
2 GreyK
 
29.06.15
21:19
"|Склад          = Регистр.ПартииНаличие.ТекущийДокумент.ПоступлениеТМЦ.Склад," - партии и перемещения несовместимы.
3 es3000
 
29.06.15
22:07
(1) нужны еще продажи, поэтому приходится по регистру партий делать
4 es3000
 
29.06.15
22:07
(2) не понял почему несовместимы?
5 GreyK
 
29.06.15
22:11
(4) Партии формируются поступлениями и оприходованиями, а вот перемещения не создают партии.
6 Злопчинский
 
29.06.15
22:27
Автор - дятел.

Товар продает не склад, а фирма.

Поэтому продажи по складам - в общем случае - нецензурный вопрос.

Поэтому в типовой ТиС штатно без извратов такую инфу не вытащишь.

Вариантов решения - два навскидку простызх, которые не потребуют никаких доработок
1. в складах задать МОЛ, отчет по продажам - строить по регистру партий. Мне это решение не нравится. Ибо гемор - будет пухнуть база от наличия МОЛ. И Регистр партий - вещь "Нетривиальная" для упоротых, и вобщем случае надо отличать например приходы от оборота по приходу.
2. Заводим СОБСТВЕННОЕ юрлицо - "Рога и Копыта" - 1 шт
заводим фирму "Рога и Копыта, типа склад-1", "Рога и Копыта, типа склад-2", собственно САМИ СКЛАДЫ - можно не множить, иметь "Основной склад", а можно каждой фирме поставить свой склад, а можно и несколько складов на одну фирму (если нужны продажи с "большогосклада", который состоит из кучи "маленьких").. Реализации делаем с соответсвующей фирмы-склада. Перемещения делаем между складами-фирмами - ничем не отличается от обычных перемещений. Продажи по фирмам (то есть "складам") смотрим штатным отчетом "Анализ продаж". Все. этот вариант мне нравится гораздо больше.
7 Злопчинский
 
29.06.15
22:28
(5) создают. в услвоиях разных мол на разных складах или при перемещении с оптового на розничный
8 es3000
 
29.06.15
22:30
(6) >> Товар продает не склад, а фирма.
Но фирма ведь продает товар со склада
9 GreyK
 
29.06.15
22:31
(7) В ТИСе?
10 Злопчинский
 
29.06.15
22:32
(8) нет. Продажа - это взаимоотношения Продавца и Покупателя.
а не офиса продавца и склада продавца. Поэтому Товар продает ФИРМА - откуда - совершенно ПОКУПАТЕЛЮ пофиг с точки зреняи ведения взаиморасчетов между Продавцом и Покупателем
11 Злопчинский
 
29.06.15
22:32
(9) А то ж!
12 GreyK
 
29.06.15
22:33
(8) В ТИСе фирма и склад между сабой не связаны.
13 Злопчинский
 
29.06.15
22:34
(12) обобряю!
14 GreyK
 
29.06.15
22:35
(11) Код в студию. Я давно не смотрел ТИС, но не думаю что справочник партий должен изменятся при перемещениях товара с оптового склада в розничный. Жду.
15 GreyK
 
29.06.15
22:42
(8) Я не знаю твоей эадачи, но можно привязаться к складу документа, сделавшего движение по регистру партий.
16 es3000
 
29.06.15
22:50
(15) Дык я так и сделал в (0), все равно ерунда получается,
вернее в одном запросе не получается правильно данные сгруппировать.

Наверно надо сделать запрос с группировкой по документу, потом результат выгрузить в таблицу, и потом обрабатывать эту таблицу. И отчет рисовать по таблице
17 Злопчинский
 
29.06.15
22:50
ТС: заведи в базе ОДИН склад "Основной склад".
Заведи ОДНО юрлицо свое.
Заведи столько ФИРМ сколько у тебя ОТДЕЛЬНЫХ объектовучета(складов).
Пипл оперирует ФИРМАМИ.
18 Злопчинский
 
29.06.15
22:52
(14) в рознице в регистре партий фигурирует ПРОДАЖНАЯ ЦЕНА. Поэтому при перемещении с опта в розницу будет два движения по партиям - списание партии с нулевой продажной цена с оптового склада и приход партии с продажной ценой (ИЗМЕРЕНИЕ!) в розницу
19 es3000
 
29.06.15
22:54
(10) это понятно,
но все равно розничный склад - то есть магазин - он торгует товарами разных фирм,
у руководства есть желание видеть какой магазин сколько продает товаров
20 Злопчинский
 
29.06.15
22:55
(16) дятел он дятел и есть.
тогда смотри вариант1 в моем пояснении - каждому складу ПОСТАВЬ В СООТВЕТСВИЕ УНИКАЛЬНОГО МОЛ.
дальше отчет ПРОГРАММИТЬ - выцеплять оборот ПО РАСХОДУ (условие на кодоперации) с нужного МОЛ.
.
даже штатно можно посмотреть нужное - достатоно включить в штатном отчете по партиям галку "детализация по операциям"
21 GreyK
 
29.06.15
22:55
(16) Что это: "Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.Склад,
    |    Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.СкладПолучатель,"
Какой будет переменная Склад?
22 Злопчинский
 
29.06.15
22:56
(19) ваще бред.
магазин торгует товарами СОБСТВЕННОЙ ФИРМЫ. Которые находятся в собственности фирмы. А не "товарами разных фирм".
23 es3000
 
29.06.15
22:57
(17) так не могу, потому что уже:
- есть несколько своих юрлиц,
- есть около десятка складов,
- на каждое свое юрлицо есть фирма,
- учет ведется несколько лет в таком формате,

Нужно сделать отчет как я писал.
Неужели его нельзя сделать?
24 Злопчинский
 
29.06.15
22:57
(19) ТИС заточена на ОПТ
если у вас РАЗНЫЕ МАГАЗИНЫ РОЗНИЧНЫЕ - то сам бог велел сделать по варианту-2.
25 Злопчинский
 
29.06.15
22:58
(23) дятел*3
можно
можно сделать все.
в твоем случае можно сделать даже НЕ ПРОГРАММЯ, вообще. ни чтрочки - используй вариант 2 или 1
26 Злопчинский
 
29.06.15
22:59
у тя ваще тараканы в бошке.
Магазины - как правило - ведут самостоятельную хоздеятельность (можно так считать даже если магазин не является обособкой). Поэтому каждый магазин - логично выделить в отдельную фирму.
27 es3000
 
29.06.15
23:00
(21) это я разнес:

Склад =  Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.Склад;
СкладПолучатель =  Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.СкладПолучатель;
28 GreyK
 
29.06.15
23:00
(23) Для непонятливых. Что это:"
   |Склад          = Регистр.ПартииНаличие.ТекущийДокумент.ПоступлениеТМЦ.Склад,
    |    Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.Склад,
    |    Регистр.ПартииНаличие.ТекущийДокумент.ПеремещениеТМЦ.СкладПолучатель,"
Ты для документа перемещения не можешь создать вторую переменную со значением склада?
29 Злопчинский
 
29.06.15
23:04
(27) нафейхоа это????
если влом делать правильно по вариантам описанным выше:
запрос к регистру партий, с выборкой оборотов, отфильтровать по коду операции = Продажа (если надо то и продажа розница)
к складу адресоваться

СкладПродажи = РегистрПартииНаличие.ТекущийДокумент.Реализация.Склад,РегистрПартииНаличие.ТекущийДокумент.РеализацияРозница.Склад,
.
Все.
.
нафейхоа вам перемещения, пля, если речь о ПРОДАЖАХ?
30 Злопчинский
 
29.06.15
23:06
штатный отчет по партиям, то что тебе надо - выделено зеленым
http://content.screencast.com/users/Che66/folders/Jing/media/0f77c133-4712-4871-a1fe-3f4692187de9/2015-06-29_2305.png
31 es3000
 
29.06.15
23:08
(22) Почему это бред? Может и бред, но тем не менее уже почти 10 лет учет ведется в таком порядке.

Вот такой учет у нас, в целом по компании:
1) ФирмаГлавная получает товар на ОсновнойСклад
2) От Фирмы1 товар передается в Магазин1
3) От Фирмы2 товар передается в Магазин2
4) Товар продается из Магазина1 или Магазина2 по соответсвующей фирме

Вопросов с продажами не возникает - запрос срабатывает, возвращает правильные данные.

Возникает вопрос с перемещениями, так как в перемещении указаны два склада. И не понятно как в запросе сгруппировать одно движение по складу1, а второе движение по складу2.
В этом вопрос, а не в методике учета
32 Злопчинский
 
29.06.15
23:08
(23) ну и дятлы.
прежде чем рисовать структуру упр.учета - надо смотреть на сущности, а не названия сущностей
33 Злопчинский
 
29.06.15
23:09
(31) там у вас стадло непуганых дятлов
.
товар с ФирмаГлавная никаким образом в этой схеме не попадает на Фирму1 и Фирму2
34 es3000
 
29.06.15
23:10
(29) да блин, это ты что-то не понял,
я же написал что надо: по каждому складу надо три числа:
- перемещено на склад
- продано со склада
- перемещено со склада на другой склад

Продажи работают, с перемещениями проблема
35 es3000
 
29.06.15
23:12
(30) в том то и дело, что в ведомости по партиям нету группировки по складам
36 Злопчинский
 
29.06.15
23:15
(35) мозг включи.
читай выше
повесь на каждый склад МОЛ - МОЛЫ назови точно так же как склады.
проведи регламентную операцию - раздачу партий без молов на молы.
все.
будет группировка по МОЛАМ-складам
37 GreyK
 
29.06.15
23:15
(34) Одним запросом не получится. Можно разделить на два первый формирует таблицу значений, второй формирует итоговую таблицу.
38 Злопчинский
 
29.06.15
23:16
но есть засады - склады с МОЛАМИ надо сделать другими чем старые склады. Иначе умрете в работе задним числом - там где молов не было
39 es3000
 
29.06.15
23:16
(33) Да, товар из ГлавнойФирмы не попадает в Фирму1, поэтому учет ведут "в целом по компании".
На мои предложения делать как положено реализацю из ГлавнойФирмы Фирме1 - не приняли.

Но не в этом суть....
Как написать запрос по партиям, чтобы перемещения по складам отражались?
Чтобы запрос выдал:

Склад       ПеремещеноНаСклад    ПеремещеноСоСклада    Продано
"Магазин1"    10                      20               5
"Магазин2"     5                       3               2
40 Злопчинский
 
29.06.15
23:18
(34) ой блин
не надо работать с документами

вы там вообще разулись в сущность вещей смотреть?
открой любон перемещение - посмотри КАКОЙ КОД ОПЕРАЦИИ СТОИТ в перемещениях между складами.

ВКЛЮЧИ МОЗГ

перемещение-расход со склада и перемещение приход на склад - идут по одному коду операции.

все что надо
завести в конфиге два кода операций ПеремещениеРасход и ПеремещениеПриход

Подправить глДвижениеПоПартиям - в регистр писать соответствующий код операции для прихода и для расхода.

модифицировать глДвижениеПоПартиям пв части:
там где по партиям НЕ ФОРМИРУЕТСЯ ДВИЖЕНИЙ - прописать формирование с отражение ПО РАСХОДУ и ПО ПРИХОДУ.
все.
после этого штатный отчет по партиям будет показывать - СМ ВЫШЕ - на мой рисунок - то что столбцы "ПРОЧЕЕ" движение ПРОЧЕЕ РАСХОД И ПРОЧЕЕ ПРИХОД - это и будут движения по складам
41 es3000
 
29.06.15
23:18
(36) МОЛы тоже не будем делать - не хотят менеджеры,
сейчас же рынок, всем менеджеры рулят.
Разве может какой-то программист из-за одного отчета убедить менеджеров изменить весь порядок учета?
42 Злопчинский
 
29.06.15
23:19
(39) вы там вообще йопнулись?
в твоей схеме "От Фирмы1 товар передается в Магазин1 "

Магазин1 - это склад?
43 es3000
 
29.06.15
23:19
(40) и все перепроводить за 10 лет??
44 es3000
 
29.06.15
23:22
(42) да, Магазин1 и Магазин2 - это склады.

Правильнее будет так:
1) ФирмаГлавная получает товар на ОсновнойСклад
2) От Фирмы1 товар передается с ОсновногоСклада в Магазин1
3) От Фирмы2 товар передается с ОсновногоСклада в Магазин2
45 Злопчинский
 
29.06.15
23:22
внятный человек фразу "От Фирмы1 товар передается в Магазин1 " - трактует однозначно что Магазин1 - ЭТО ФИРМА. Потому что ОТ ФИРМЫ ПЕРЕДАЕТСЯ !!НА!! ФИРМУ.

я например сильно подозреваю что у вас Магазин1 - это СКЛАД.

Поэтому то что ты написал по передачу от Фирмы1 на Магазин1 - скорее всего бред несусветный
46 es3000
 
29.06.15
23:22
(37) можно примерчик?
47 Злопчинский
 
29.06.15
23:23
(44) молодец, поправился ;-)
.
Излагай ясно, тогда будет ясность в том что надо делать ;-)
48 Злопчинский
 
29.06.15
23:23
Не надо перепроводить 10 лет
С новыми кодами операций просто движения В НОВЫХ документах будут
49 es3000
 
29.06.15
23:25
(45) разве фирмы передают между собой товар?
они его продают друг другу,
а перемещать можно только между складами в пределах фирмы
50 es3000
 
29.06.15
23:26
(48) но отчет хотят смотреть по крайней мере с нового года
51 Злопчинский
 
29.06.15
23:26
(49) неверно. Если фирмы на ОДНОМ СОБСТВЕННОМ юрлице - то перемещение запросто. Вы изначально построили кривую УЧЕТНУЮ СХЕМУ - а теперь маетесь
52 es3000
 
29.06.15
23:27
(48) не менять конфигурацию не буду,
пока попробую все-таки запросом данные выцепить
53 Злопчинский
 
29.06.15
23:28
(50) если делать быстро, то ваще в полпинка делается.
Регистром партий собираешь ДВИЖЕНИЯ (с точностью до документа движения) - тупо кладешь в ТЗ. далее бежишь по ТЗ - смотришь какой док, если реализация - пихаешь в столбец продаж
если документ перемещение - раздваиваешь строку - на расход по складу и приход по складу получателю.

Плоскую таблицу подсовываешь в универсальный отчет по тЗ - возьми у меня на ИС
все.
54 es3000
 
29.06.15
23:30
(51) согласен насчет перемещений,
а насчет учетной схемы - не знаю, не могу судить - не обладаю таким опытом
55 Злопчинский
 
29.06.15
23:30
(52) не выцепишь.
потому что в общем случае перемещения по регистру партий не порождают движений. а тебе нужны суммы - умаешься "писать запрос"
56 Злопчинский
 
29.06.15
23:31
в том запросе который ты хочешь написать - регистром партий не обойдешься...
57 GreyK
 
29.06.15
23:31
(46) Сейчас я примеры искать не буду, но в запросах 7.7 функции Сумма() позволено ссылаться на внешнюю функцию и передавать ей параметры, во внешней функции ищешь нужную строку ТЗ и возращаешь значение ячейки ТЗ.
Надеюсь понятно объяснил.
58 es3000
 
29.06.15
23:34
(53) я про это и спрашивал,
"до документа движения" - получается надо только одну группировку - документ?
59 es3000
 
29.06.15
23:35
(53) Как ты на ИС-е называешься? Так же?
60 Злопчинский
 
29.06.15
23:35
Не взлетит.
так как ведется учет "ПО КОМПАНИИ" - контроль остатков отсутсвует.
а это значит что в движениях отфирма1-основнойСклад(опт) на Магазин(розница) у тебя будут совершенно левые цифры, или вообще не будет
61 es3000
 
29.06.15
23:36
(53) а вижу в профиле
62 Злопчинский
 
29.06.15
23:36
63 Злопчинский
 
29.06.15
23:36
(60) речь идет про суммы
64 Злопчинский
 
29.06.15
23:37
.. так как у тебя отсутсвует передача сумм от ГлавнаяФирма на Фирма1.
Максимум что ты сможешь собрать запросом - количества
65 es3000
 
29.06.15
23:38
(60) а я не буду делать группировку по фирме,
отчет тоже будет в целом по компании, но в разрезе по складам
66 Злопчинский
 
29.06.15
23:38
при этом в общем случае даже цирфы по количествам будут неверные. Потому что система а) контролирует и запрещает проведение по ОстаткамТМЦ - при этом может получится так что из-за некоректных данных (не распределилось по партиям) - в партиях движения будут отсутсвовать
67 es3000
 
29.06.15
23:40
(62) спасибо
68 Злопчинский
 
29.06.15
23:40
(65) ты дятел*4
ДВИЖЕНИЕ - идет с точностью до фирмы. Поэтому независимо от того будеь ты делать группировк упо фирме или нет - тебе придется спускаться до документов движения - а по ним В РЕГИСТРЕ - будут кривые данные
69 es3000
 
29.06.15
23:40
(64) пока нужны только количества
70 es3000
 
29.06.15
23:42
(68) да сам ты дятел,
я же потом эти данные сгруппирую без учета фирмы,
там сложатся минусы и плюсы, получится реальный итог, который они видят в других отчетах
71 Злопчинский
 
29.06.15
23:42
я могу тебе дать безболезненный рецепт как все сделать просто и правильно. без изменения схемы работы персонала. с минимальными изменениями конфиги. без массового перепроведения доков (максимум ка кты сказал - с нового года) Но ты же не захочешь так делать...
72 Злопчинский
 
29.06.15
23:43
(70) по количеству - да
73 Злопчинский
 
29.06.15
23:43
..при этом пользоваться можно будет штатным отчетом
74 Злопчинский
 
29.06.15
23:45
если нужны только количества - тогда наплюй на регистрпартий и работй по регистру остатков. нужную инфу (перемещение, реализаци, поступление - тяни из вида документа) - в регистре остатков есть все движения по количеству - даже те, которых нет в партиях
75 es3000
 
29.06.15
23:46
(71) ты уже говорил как доработать конфу,
но менять не хочется,

сначала попробую сделать отчет
76 Злопчинский
 
29.06.15
23:46
нужный отчет накидаю ваще с места враз - будет работать только не сильно быстро
77 Злопчинский
 
29.06.15
23:47
запрос кстати тривиальный
заплатишь 2500 за час работы - налабаем сейчас и выведем в отчет.
78 es3000
 
29.06.15
23:48
(74) да, наверно через регистр остатков проще,

а я сразу заморочился на регистр партий, так как нужны были продажи,
ну я и подумал что лучше сделать как в отчете по продажам - по партиям
79 Злопчинский
 
29.06.15
23:50
(78) читай конфу на сон грядущий. Продажи надо тянуть из оборотного регитсра "Продажи". но не в товем этом случае
80 Злопчинский
 
29.06.15
23:53
..поправка к тому что писал выше малость - столбец не "порчее" в рисунке по ссылке, в "внутренние перемещени" - вот этот код операции надо разделить на два вида операции при проведении регистра остатков. Расход со склада по перемещению писать с КО = ВнутренееРасход, приход = ВнутреннееПриход
81 Злопчинский
 
29.06.15
23:54
ну я короче на связи всю ночь, ваяю нетленную конфу по услугам ОХ. так что стучись если что. Но после полнуочи тариф вырастет.. ;-)
82 Злопчинский
 
29.06.15
23:55
если надо ПРЕДМЕТНО побазарить - стучись в скайп Zlopun
83 es3000
 
29.06.15
23:55
(77) не, максимум что я получу за этот отчет - это 5 тыс.,
а я сам сегодня почти весь день на него потратил, если еще и 2500 тебе - это получается за бесплатно отчет будет,

буду сам доделывать
84 es3000
 
29.06.15
23:56
(81),(82) ОК, спасибо за помощь
85 Злопчинский
 
29.06.15
23:57
(83) ну дык... это следствие неправильной учетной схемы в ТИСе и нежелании сделать правильно. Тогда запрос строился в полпинка. а так по сути у тебя все сведется к перебору документов
86 Злопчинский
 
29.06.15
23:58
Успехов!
87 LazyStranger
 
30.06.15
02:06
можно тупо по документам запрос сделать, без регистров
88 Злопчинский
 
30.06.15
03:26
(87) ну про то и речь, что по сути в это и выльется
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший