Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отчет по всем движениям ТМЦ по складу          
kpotik Подменю пользователя
сообщение 21.01.20, 13:58
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день.
1С:Предприятие 8.3 (8.3.15.1700)
"Управление торговым предприятием для Украины", редакция 1.2. (1.2.49.1)

Пытаюсь через консоль отчетов в клиенте вывести все движения ТМЦ по определенным складам за день.
Наваял такой запрос, но не понимаю, как мне вывести реквизиты документа (Дата, Подразделение, СкладОтправитель и СкладПолучатель) в одну строку с самим документом.
Сложность в том, что для перемещения, ПТУ, РТУ, РТО и ПТО отправитель и получатель хранятся в разных реквизитах.

Код
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор КАК Документ,
    ПартииТоваровНаСкладах.Регистратор.Дата КАК ДокументДата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение КАК ДокументПодразделение,
    ПартииТоваровНаСкладах.Регистратор.СкладОтправитель КАК ДокументСкладОтправитель,
    ПартииТоваровНаСкладах.Регистратор.СкладПолучатель КАК ДокументСкладПолучатель
ПОМЕСТИТЬ тбРез
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
    И (ПартииТоваровНаСкладах.Регистратор.СкладОтправитель.Код = "000000323"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладОтправитель.Код = "000000409"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладОтправитель.Код = "000000416"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладПолучатель.Код = "000000323"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладПолучатель.Код = "000000409"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладПолучатель.Код = "000000416")
    И ПартииТоваровНаСкладах.Регистратор.СкладОтправитель.Код <> ПартииТоваровНаСкладах.Регистратор.СкладПолучатель.Код

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Регистратор.Дата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение,
    ПартииТоваровНаСкладах.Регистратор.Контрагент,
    ПартииТоваровНаСкладах.Регистратор.СкладОрдер
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
    И (ПартииТоваровНаСкладах.Регистратор.СкладОрдер.Код = "000000323"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладОрдер.Код = "000000409"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.СкладОрдер.Код = "000000416")

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Регистратор.Дата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение,
    ПартииТоваровНаСкладах.Регистратор.Склад,
    ПартииТоваровНаСкладах.Регистратор.Контрагент
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)
    И (ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000323"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000409"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000416")

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Регистратор.Дата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение,
    ПартииТоваровНаСкладах.Регистратор.Склад,
    ПартииТоваровНаСкладах.Регистратор.ДокументПередачи.СкладПолучатель
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.РасходныйОрдерНаТовары)
    И (ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000323"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000409"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000416")

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Регистратор.Дата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение,
    ПартииТоваровНаСкладах.Регистратор.ДокументПеремещения.СкладОтправитель,
    ПартииТоваровНаСкладах.Регистратор.Склад
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.ПриходныйОрдерНаТовары)
    И (ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000323"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000409"
            ИЛИ ПартииТоваровНаСкладах.Регистратор.Склад.Код = "000000416")
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    тбРез.Документ КАК Документ,
    тбРез.ДокументДата КАК ДокументДата,
    тбРез.ДокументПодразделение КАК ДокументПодразделение,
    тбРез.ДокументСкладОтправитель КАК ДокументСкладОтправитель,
    тбРез.ДокументСкладПолучатель КАК ДокументСкладПолучатель,
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладах.Количество КАК Количество
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
        ЛЕВОЕ СОЕДИНЕНИЕ тбРез КАК тбРез
        ПО (тбРез.Документ = ПартииТоваровНаСкладах.Регистратор)
ИТОГИ
    СУММА(Количество)
ПО
    Документ,
    Номенклатура,
    ДокументДата,
    ДокументПодразделение,
    ДокументСкладОтправитель,
    ДокументСкладПолучатель


В итоге вывод получается таким:

А хотелось бы вывести так:


Подскажите, пожалуйста, возможно ли реализовать это через консоль отчетов (без использования Конфигуратора)? Как сделать поля Дата, Склад и т.д. реквизитами Документ?

Сообщение отредактировал Vofka - 21.01.20, 14:05

denis84 Подменю пользователя
сообщение 21.01.20, 14:22
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 134.5

kpotik @ Сегодня, 13:58 * ,
Группировки поменять местами. Номенклатура в самый низ

fly Подменю пользователя
сообщение 21.01.20, 14:32
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

kpotik @ Сегодня, 13:58 * ,
консоль не обїединит
даже если вы выразите как текст все
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПартииТоваровНаСкладах.Регистратор) и т.д.
все равно

ПРЕДСТАВЛЕНИЕССЫЛКИ(ПартииТоваровНаСкладах.Регистратор) + ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладах.Регистратор.Дата)

выдаст ошибку
так как контентенация не предусмотрена в запросах

denis84 Подменю пользователя
сообщение 21.01.20, 16:29
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 134.5

Вот я на бросал у себя в демо - базе. Вы хотели типа, что то такого?

kpotik Подменю пользователя
сообщение 21.01.20, 17:07
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

denis84 @ Сегодня, 16:29 * ,
Спасибо, но нет. Я хотел вывести поля Отправитель, Получатель как реквизиты Регистратора, учитывая то, что для Перемещения, например, это поля СкладОтправитель и СкладПолучатель, а для ПТУ, РТУ в них должны подставляться значения из полей Склад и Контрагент.
Идея в том, чтобы в одном отчете выводить все виды регистраторов движения товаров с универсальными реквизитами.

stark Подменю пользователя
сообщение 22.01.20, 14:45
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 58
Из: Киев
Спасибо сказали: 7 раз
Рейтинг: 0

kpotik @ Вчера, 17:07 * ,
Как вариант:

ВЫБОР
        КОГДА ПартииТоваровНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
            ТОГДА ПартииТоваровНаСкладахОбороты.Регистратор.СкладОтправитель
        КОГДА ПартииТоваровНаСкладахОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
            ТОГДА ПартииТоваровНаСкладахОбороты.Регистратор.Контрагент
...
КОНЕЦ КАК ДокументСкладОтправитель

fly Подменю пользователя
сообщение 22.01.20, 15:09
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

stark @ Сегодня, 14:45 * ,
Цитата(kpotik @ 21.01.20, 13:58) *
реквизиты документа (Дата, Подразделение, СкладОтправитель и СкладПолучатель) в одну строку с самим



тут имелось в Одно поле отчета

stark Подменю пользователя
сообщение 22.01.20, 15:26
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 58
Из: Киев
Спасибо сказали: 7 раз
Рейтинг: 0

fly @ Сегодня, 15:09 * ,
Оно как раз так и будет в одном поле разные значения , в зависимости от типа регистратора.

Макс1С Подменю пользователя
сообщение 22.01.20, 15:35
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 189
Из: Днепр
Спасибо сказали: 62 раз
Рейтинг: 58.6

kpotik @ Вчера, 13:58 * ,
убрать вот это:
ПО
    Документ,
    Номенклатура,
    ДокументДата,
    ДокументПодразделение,
    ДокументСкладОтправитель,
    ДокументСкладПолучатель

ivisor Подменю пользователя
сообщение 22.01.20, 16:21
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 38
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(kpotik @ 21.01.20, 13:58) *
Добрый день.
1С:Предприятие 8.3 (8.3.15.1700)
"Управление торговым предприятием для Украины", редакция 1.2. (1.2.49.1)

Подскажите, пожалуйста, возможно ли реализовать это через консоль отчетов (без использования Конфигуратора)? Как сделать поля Дата, Склад и т.д. реквизитами Документ?


ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор КАК Документ,
    ПартииТоваровНаСкладах.Регистратор.Дата КАК ДокументДата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение КАК Подразделение,
    ПартииТоваровНаСкладах.Регистратор.Контрагент КАК Откуда,
    ПартииТоваровНаСкладах.Регистратор.СкладОрдер КАК Куда
ПОМЕСТИТЬ тбРез

ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
    И ПартииТоваровНаСкладах.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Регистратор КАК Документ,
    ПартииТоваровНаСкладах.Регистратор.Дата КАК ДокументДата,
    ПартииТоваровНаСкладах.Регистратор.Подразделение КАК Подразделение,
    ПартииТоваровНаСкладах.Регистратор.СкладОтправитель КАК Откуда,
    ПартииТоваровНаСкладах.Регистратор.СкладПолучатель КАК Куда
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
    ТИПЗНАЧЕНИЯ(ПартииТоваровНаСкладах.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
    И ПартииТоваровНаСкладах.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    тбРез.Документ КАК Документ,
    тбРез.ДокументДата КАК ДокументДата,
    тбРез.Подразделение КАК Подразделение,
    тбРез.Откуда КАК ДокументСкладОтправитель,
    тбРез.Куда КАК ДокументСкладПолучатель,
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладах.Количество КАК Количество
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
        ЛЕВОЕ СОЕДИНЕНИЕ тбРез КАК тбРез
        ПО (тбРез.Документ = ПартииТоваровНаСкладах.Регистратор)
ИТОГИ
    СУММА(Количество)
ПО
    Документ
    //Номенклатура,
    //ДокументДата,
    //Подразделение,
    //ДокументСкладОтправитель,
    //ДокументСкладПолучатель


kpotik @ Вчера, 13:58 * ,
Да и представление результата выберите в виде ДЕРЕВА!

kpotik @ Вчера, 13:58 * ,
Не могу редактировать сообщение почему то.
В конце по пробоват так и в принципе без дерева смотрибельно вышло:
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
    тбРез.Документ КАК Документ,
    тбРез.ДокументДата КАК ДокументДата,
    тбРез.Подразделение КАК Подразделение,
    тбРез.Откуда КАК ДокументСкладОтправитель,
    тбРез.Куда КАК ДокументСкладПолучатель,
    ПартииТоваровНаСкладах.Регистратор,
    ПартииТоваровНаСкладах.Количество КАК Количество
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
        ЛЕВОЕ СОЕДИНЕНИЕ тбРез КАК тбРез
        ПО (тбРез.Документ = ПартииТоваровНаСкладах.Регистратор)
ГДЕ
    ПартииТоваровНаСкладах.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
        
ИТОГИ
    СУММА(Количество)
ПО
    Номенклатура


Не знаю что именно и в каком порядке вам нужно увидеть. поэтому поиграйтесь в конце с порядком полей после ВЫБРАТЬ РАЗЛИЧНЫЕ и с количеством и порядком полей после ПО
Учитывайте что полная информация в колонках будет только на самом нижнем! уровне группировки.
Если после ПО надо включать все поля, тогда представляйте результат в виде дерева, иначе все вышестоящие группировки будут строками с пустыми колонками

Сообщение отредактировал Vofka - 22.01.20, 16:47


Signature
... Фару мне на лоб! Чтобы и ночью косил!

kpotik Подменю пользователя
сообщение 22.01.20, 18:42
Сообщение #11

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо всем.
Подставить значения в одно поле для разных типов документов у меня получилось изначально.
Вопрос в выводе этих полей в верхнем уровне группировки.
Цитата
Учитывайте что полная информация в колонках будет только на самом нижнем! уровне группировки.

Я так понимаю, что от этого никак не избавиться.
Просто получается неудобно анализировать отчет. Его нельзя свернуть, просмотреть по верхнему уровню, где выведены документы и их реквизиты (менеджер, склад, контрагент ит.п.) и, если возникли вопросы - развернуть до номенклатуры.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 7:24
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!