Вход | Регистрация


1С:Предприятие ::

Метки: 

1с Отбор по регистратору в регистре накопления остатков и оборотов

Я
   jamesgold
 
17.07.18 - 14:14
Добрый день, прошу помочь!
Имеется регистр накопления у которого несколько документов регистраторов, как получить остатки и обороты задав условия для одного из регистраторов.
Должны быть остатки и оброты по номенклатуре за исключением тех, - которые исключаться в отборе по указанному регистратору. Исключаемая номенклатура также может быть и по другим регистраторам, соответственно по другим регистраторам движения этой номенклатуры должно остаться.
 
 
   jamesgold
 
1 - 17.07.18 - 14:28
Идея была такая сначала получить только обороты за исключение тех оборотов которые не проходят отбор по указанному регистратору. Вот такой запрос:
ВЫБРАТЬ
    ТоварыНаСкладах.Период,
    ТоварыНаСкладах.Регистратор.СкладОтправитель,
    ТоварыНаСкладах.Регистратор.СкладПолучатель,
    ТоварыНаСкладах.СерияНоменклатуры
ПОМЕСТИТЬ ВТ_Лишнее
ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
    И ТоварыНаСкладах.Склад В(&Склад)
    И ТоварыНаСкладах.Регистратор.СкладОтправитель = &Склад
    И ТоварыНаСкладах.Регистратор.СкладПолучатель = &Склад
    И ТоварыНаСкладах.Период > &НП
    И ТоварыНаСкладах.Период < &КП
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Склад,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.СерияНоменклатуры,
    ТоварыНаСкладахОбороты.КоличествоПриход,
    ТоварыНаСкладахОбороты.КоличествоРасход,
    ТоварыНаСкладахОбороты.Период
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(&НП, &КП, Запись, Склад В (&Склад)) КАК ТоварыНаСкладахОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Лишнее КАК ВТ_Лишнее
        ПО ТоварыНаСкладахОбороты.Период <> ВТ_Лишнее.Период
            И ТоварыНаСкладахОбороты.СерияНоменклатуры <> ВТ_Лишнее.СерияНоменклатуры

И после этого к каждой серии пристегнуть остатки
   DrWatson
 
2 - 17.07.18 - 14:34
(0) А где вопрос, с чем помочь?
   Джинн
 
3 - 17.07.18 - 14:36
(0) Остатки по регистратору? Вы что там курите?
   jamesgold
 
4 - 17.07.18 - 14:37
Я меня  это не работает, ищу других идей
   DrWatson
 
5 - 17.07.18 - 14:38
Проще не взлетит?
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НП, &КП, Регистратор, Склад В (&Склад)) КАК ТоварыНаСкладах
ГДЕ НЕ (
    ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
    И ТоварыНаСкладах.Склад В(&Склад)
    И ТоварыНаСкладах.Регистратор.СкладОтправитель = &Склад
    И ТоварыНаСкладах.Регистратор.СкладПолучатель = &Склад
    И ТоварыНаСкладах.Период > &НП
    И ТоварыНаСкладах.Период < &КП)
   Garykom
 
6 - 17.07.18 - 14:38
(3) Да пофиг что, не понял почему не делятся?
   Малыш Джон
 
7 - 17.07.18 - 14:40
(0) остатки по регистратору - это по конкретному регистратору или по типу регистратора?
   jamesgold
 
8 - 17.07.18 - 14:43
Может будет идея как это сделать изящнее или правильнее?
   Tonik992
 
9 - 17.07.18 - 14:46
(3) Стандартная одинэсовская смесь.

А что вообще за отчет такой, который остатки покажет за вычетом каких-то регистраторов? Если исключить регистратор, то цифра в поле "Остаток" что будет значить для пользователя?
   Garykom
 
10 - 17.07.18 - 14:47
Остатки для регистров накопления хранятся в разрезе измерений.
Регистратор <> Измерение регистра.

Ответь за сколько лет работы хочешь получить "остатки"? Сколько там у вас номенклатуры и регистраторов для исключения?

Сколько времени оно потратит чтобы с начала времен пересчитать все движения "вручную" и вывести тебе требуемые остатки?
 
  Рекламное место пустует
   Михаил Козлов
 
11 - 17.07.18 - 14:49
(9) Скорее всего, пытаются получить обороты прихода/расходы без перемещений. Типа "со склада продано...".
   jamesgold
 
12 - 17.07.18 - 14:50
Отчет исключить часть оборотов и остатков если они соответствуют отбору по одному из регистраторов
   DrWatson
 
13 - 17.07.18 - 14:51
(9) по условию запроса в (1) там исключаются холостые обороты, перемещения со склада на этот же склад. Я так понял остаток при этом не меняется.
Откуда такие документы берутся - это уже другой вопрос.
   jamesgold
 
14 - 17.07.18 - 14:52
Есть регистр товары на складах один из регистраторов перемещение нужно исключить движуху между своими складами теми которые в отборе
   DrWatson
 
15 - 17.07.18 - 14:53
(14) складами?
У тебя в запросе равенство стоит
   Tonik992
 
16 - 17.07.18 - 14:54
(14) Получи первым запросом остатки.
Присоедини со вторым запросом движения по нужным ("Исключающим") регистраторам.. И вычитай.
   jamesgold
 
17 - 17.07.18 - 14:54
Если склад отправитель или склад получатель с списке заданных движуха перемещений по ним не нужна
   Tonik992
 
18 - 17.07.18 - 14:55
(13) Это кстате интересное перемещение.. Наверное обусловлено каким-то особенным бизнес-процессом.. Что-то мутят ниподецки
   Джинн
 
19 - 17.07.18 - 14:56
(17) А это ничего, что в итоге остатки по отчету не совпадут с реальными остатками на складе?
   Вафель
 
20 - 17.07.18 - 14:57
(19) может это виртуальные склады?
   jamesgold
 
21 - 17.07.18 - 15:00
(5) Должны совпасть
   jamesgold
 
22 - 17.07.18 - 15:00
(5) ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Склад,
    ТоварыНаСкладахОбороты.Номенклатура,
    ТоварыНаСкладахОбороты.СерияНоменклатуры,
    ТоварыНаСкладахОбороты.КоличествоПриход,
    ТоварыНаСкладахОбороты.КоличествоРасход,
    ТоварыНаСкладахОбороты.Период,
    ТоварыНаСкладахОбороты.Регистратор
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(&НП, &КП, Запись, Склад В (&Склад)) КАК ТоварыНаСкладахОбороты
ГДЕ
    НЕ(ТоварыНаСкладахОбороты.Склад В (&Склад)
                И ТоварыНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
                И ТоварыНаСкладахОбороты.Регистратор.СкладОтправитель В (&Склад)
                И ТоварыНаСкладахОбороты.Регистратор.СкладПолучатель В (&Склад)
                И ТоварыНаСкладахОбороты.Период > &НП
                И ТоварыНаСкладахОбороты.Период < &КП)
   Джинн
 
23 - 17.07.18 - 15:01
(20) ?! Что есть "виртуальные склады"? Как обычно черный нал и пр. прелести "налоговой оптимизации"?
   jamesgold
 
24 - 17.07.18 - 15:07
Го по делу. Есть идеи у кого еще? ПО идее те обороты что я в 22 получил к ним теперь осталось пристегнуть остатки на конец и начало периода
   Tonik992
 
25 - 17.07.18 - 15:07
Остаток не будет правильный при таком запросе (22).
Вам надо нарастающим методом вычитать остатки по регистратору.
   Малыш Джон
 
26 - 17.07.18 - 15:10
(24) выбери все остатки и обороты за период, выбери остатки и обороты по регистраторам за период
через ОБЪЕДИНИТЬ отними от первой ВТ вторую ВТ
   Малыш Джон
 
27 - 17.07.18 - 15:13
+(26) во второй ВТ, естественно остатки не из ТОваров на складах брать
если расход, то начальный остаток = оборот, конечный = 0
если приход - наоборот
   Малыш Джон
 
28 - 17.07.18 - 15:21
Хотя это я что-то погорячился...

остатки тут придется руками считать
   Garykom
 
29 - 17.07.18 - 15:29
(28) угу см (10)
   jamesgold
 
30 - 17.07.18 - 15:36
По идее простая задача а хрен сделаешь
   Джинн
 
31 - 17.07.18 - 16:06
(30) Дебильную задачу никогда просто не сделаешь.
   Garykom
 
32 - 17.07.18 - 16:15
(31) Она легко делается только подумать чуть надо же.

Копия базы, распроводим лишние документы перемещения, снимаем отчет.

Можно и в реальной базе в одной транзакции такой изврат провернуть )) с последующей отменой транзакции.
   Джинн
 
33 - 17.07.18 - 16:21
(32) :) Вы в службе техподдержки 1С не работали?

Как-то мне после выхода ТиС с его хитрым способом упр/фин учета, при котором регистры не закрывались, ответили "А Вы поменяйте аналитику, перепроведите все документы, сформируйте отчет, а затем перепроведите обратно.".
 
  Рекламное место пустует
   Garykom
 
34 - 17.07.18 - 16:23
(33) Неа но приглашали, отказался ))
   jamesgold
 
35 - 17.07.18 - 16:33
(32) Прикольно. И главное работать правильно будет
   jamesgold
 
36 - 17.07.18 - 16:34
Хотелось бы менее радикальное
   Джинн
 
37 - 17.07.18 - 16:37
(36) Для менее радикальных мер нужно проектировать изначально структуру регистров под задачу. А не пытаться достать гланды нетрадиционным способом.
   Garykom
 
38 - 17.07.18 - 16:37
(36) Менее радикальное это самому остатки считать, все движения из регистра в ТЗ и вперед.
   jamesgold
 
39 - 17.07.18 - 16:38
Может  типа получить 2 ТЗ, одну полную вторую исключающие обороты и просто перебором получить разницу?
   Garykom
 
40 - 17.07.18 - 16:38
(37) Угу типа засунуть Регистратора в Измерения РН и перепровести все документы ))
   Garykom
 
41 - 17.07.18 - 16:41
(39) Получи полную таблицу движений, приход с + расход с -.
С начала времен получи пропуская лишние документы.
(Склад, Номенклатура, Количество)

Затем просто Свернуть("Склад, Номенклатуры", "Количество").
   jamesgold
 
42 - 17.07.18 - 16:49
(41) По идее это можно в запросе сделать и засунуть во временную таблицу из которой запросы потом делать можно будет
   hhhh
 
43 - 17.07.18 - 17:33
(42) ну да. Только заранее предупреди юзеров, что отчет будет формироваться минут 40. Чтобы они предварительно сбегали.
   jamesgold
 
44 - 18.07.18 - 07:31
Ап, прошу еще идей.



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует