Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Есть регистр РН:
Описание как туда попадают записи: Приход делают документы когда отгрудается товар, т.е. накапливаются суммы долга, а приход документы которые гасят этот долг. Измерение "Документ" - содержит ссылку на докумет который сделал отгрузку
Хочется сделать такой отчет
Т.е мне нужно выбрать обороты по документы который совершил отгрузку поместить с оборотами в группировку, когда группировка открывается в ней должны отображаться все документы которые сделали оплату отгрузки. В конце таблицы ИТОГО = ОБОРОТЫ по документу отгрузки(Приход) + обороты которые сделали документы оплаты(Расход)
Подскажите с запросом, и как в группировке вывести обороты ?
Группа: Основатель
Сообщений: 13957
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4
kosalex, я уже много раз перемещаю ваши темы с отчетами в раздел СКД. Разве не заметно и непонятно, что вопросы по СКД следует публиковать в соответствующем разделе? Переезжаем последний раз.
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 15.04.15, 10:58)
Я не ошибся - в теме написано СКД?
Да, отчет делаю на СКД
Цитата(Vofka @ 15.04.15, 11:13)
kosalex, я уже много раз перемещаю ваши темы с отчетами в раздел СКД. Разве не заметно и непонятно, что вопросы по СКД следует публиковать в соответствующем разделе? Переезжаем последний раз.
Одна из прелестей СКД в том, что она рассчитывает агрегаты ресурсов без лишнего вмешательства. По запросу: берем реальную таблицу регистра, выбираем нужные поля Настройка: Сумма в Ресурсы, группировки Контрагент,Документ,Регистратор
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 15.04.15, 11:30)
Одна из прелестей СКД в том, что она рассчитывает агрегаты ресурсов без лишнего вмешательства. По запросу: берем реальную таблицу регистра, выбираем нужные поля Настройка: Сумма в Ресурсы, группировки Контрагент,Документ,Регистратор
Вот что получилось,
А как еще вывести обороты которые сделали документы которые оплачивают отгрузку? Выбрать из виртуальной таблицы ОСТАТКИиОБОРОТЫ и связать с тем что получилось?
Насколько я понял описание - вторая группировка по Документу, а не регистратору; и я бы разделил ве-таки отгрузку и оплату в разные поля (Отгрузка/Оплата) и сунул их в ресурсы - на уровне группировок будут суммы отгруза и оплаты
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 15.04.15, 12:00)
Насколько я понял описание - вторая группировка по Документу, а не регистратору; и я бы разделил ве-таки отгрузку и оплату в разные поля (Отгрузка/Оплата) и сунул их в ресурсы - на уровне группировок будут суммы отгруза и оплаты
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Документ, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаВзаиморасчетовОборот, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаУпрОборот, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаПереоценкиУпрОборот, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Регистратор, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Контрагент, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаПереоценкиУпрНачальныйОстаток ПОМЕСТИТЬ ВТ_ОплатаОтгрузки ИЗ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам.ОстаткиИОбороты(, , Регистратор, , ) КАК *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты ГДЕ НЕ *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ДокументыОтгрузки.Регистратор, ВТ_ОплатаОтгрузки.Контрагент, ВЫБОР КОГДА ВТ_ОплатаОтгрузки.СуммаВзаиморасчетовОборот = 0 ТОГДА ВТ_ОплатаОтгрузки.СуммаВзаиморасчетовНачальныйОстаток ИНАЧЕ ВТ_ОплатаОтгрузки.СуммаВзаиморасчетовОборот КОНЕЦ КАК СуммаВзаиморасчеты, ВЫБОР КОГДА ВТ_ОплатаОтгрузки.СуммаУпрОборот = 0 ТОГДА ВТ_ОплатаОтгрузки.СуммаПереоценкиУпрНачальныйОстаток ИНАЧЕ ВТ_ОплатаОтгрузки.СуммаУпрОборот КОНЕЦ КАК СуммаУпр, ВЫБОР КОГДА ВТ_ОплатаОтгрузки.СуммаПереоценкиУпрОборот = 0 ТОГДА ВТ_ОплатаОтгрузки.СуммаПереоценкиУпрНачальныйОстаток ИНАЧЕ ВТ_ОплатаОтгрузки.СуммаПереоценкиУпрОборот КОНЕЦ КАК СуммаПереоценки, ВЫБОР КОГДА ВТ_ДокументыОтгрузки.Регистратор <> ВТ_ОплатаОтгрузки.Регистратор ТОГДА ВТ_ОплатаОтгрузки.Регистратор КОНЕЦ КАК ОплатаОтгрузки ИЗ ВТ_ДокументыОтгрузки КАК ВТ_ДокументыОтгрузки ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОплатаОтгрузки КАК ВТ_ОплатаОтгрузки ПО ВТ_ДокументыОтгрузки.Регистратор = ВТ_ОплатаОтгрузки.Документ ГДЕ ВЫБОР КОГДА ВТ_ДокументыОтгрузки.Регистратор <> ВТ_ОплатаОтгрузки.Регистратор ТОГДА ВТ_ОплатаОтгрузки.СуммаВзаиморасчетовОборот КОНЕЦ <> НЕОПРЕДЕЛЕНО
Настройки СКД:
Полученный отчет:
Не получается засунуть оборот который делает документ по отгрузки товара, приход.
Цитата(Petre @ 15.04.15, 12:17)
Вам же пояснили: поменять местами группировки "Документ" и "Регистратор". У вас - в обратном порядке.
Выбрать // поля региста Выбор ВидДвижения Когда *Приход Тогда Рег.Сумма Иначе 0 Конец как Отгрузка Когда *Расход //тут Ваши Выбор-Конец по оплате Конец
из Регистр..... Рег
и скормить СКД - поимеем 4 ресурса (Отгрузка + 3 поля из Вашего запроса)
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 15.04.15, 12:34)
Схема запроса:
Выбрать // поля региста Выбор ВидДвижения Когда *Приход Тогда Рег.Сумма Иначе 0 Конец как Отгрузка Когда *Расход //тут Ваши Выбор-Конец по оплате Конец
из Регистр..... Рег
и скормить СКД - поимеем 4 ресурса (Отгрузка + 3 поля из Вашего запроса)
и не надо там кучи временных таблиц
Можно для тех у кого мозг поплавился разжевать, потому что не получается
ВЫБРАТЬ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор, *_ДанныеДляПереоценкиПоФьючерсам.Документ, *_ДанныеДляПереоценкиПоФьючерсам.Контрагент, *_ДанныеДляПереоценкиПоФьючерсам.Сделка, *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов, *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр, *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр ИЗ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам КАК *_ДанныеДляПереоценкиПоФьючерсам ГДЕ НЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств И *_ДанныеДляПереоценкиПоФьючерсам.Период >= &НачалоПериода И *_ДанныеДляПереоценкиПоФьючерсам.Период <= &КонецПериода
sava1, Можете в этом запросе показать?
ВЫБРАТЬ РАЗЛИЧНЫЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор, *_ДанныеДляПереоценкиПоФьючерсам.Документ, *_ДанныеДляПереоценкиПоФьючерсам.Контрагент, *_ДанныеДляПереоценкиПоФьючерсам.Сделка, *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов, *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр, *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр, ВЫБОР КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов ИНАЧЕ 0 КОНЕЦ КАК Отгрузка
????????????????? ТУТ ВАШИ ВЫБОР КОНЕЦ ПО ОПЛАТЕ, ЭТО ТУТ ПИСАТЬ? И как выбрать оплату ?????????????????
ИЗ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам КАК *_ДанныеДляПереоценкиПоФьючерсам ГДЕ НЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств И *_ДанныеДляПереоценкиПоФьючерсам.Период >= &НачалоПериода И *_ДанныеДляПереоценкиПоФьючерсам.Период <= &КонецПериода
ВЫбор Когда *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = &Приход Тогда *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов Иначе 0 Конец КАК Отгрузка, ВЫбор Когда *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = &Расход Тогда *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов Иначе 0 Конец КАК Оплата
// *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов КАК Отгрузка, // *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр, // *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр ИЗ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам КАК *_ДанныеДляПереоценкиПоФьючерсам ГДЕ НЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств И *_ДанныеДляПереоценкиПоФьючерсам.Период >= &НачалоПериода И *_ДанныеДляПереоценкиПоФьючерсам.Период <= &КонецПериода
Приход/Расход можно вписать через Значение Для полного кайфа сразу можно и сгруппировать
ВЫбор Когда *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = &Приход Тогда *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов Иначе 0 Конец КАК Отгрузка, ВЫбор Когда *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = &Расход Тогда *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов Иначе 0 Конец КАК Оплата
// *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов КАК Отгрузка, // *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр, // *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр ИЗ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам КАК *_ДанныеДляПереоценкиПоФьючерсам ГДЕ НЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств И *_ДанныеДляПереоценкиПоФьючерсам.Период >= &НачалоПериода И *_ДанныеДляПереоценкиПоФьючерсам.Период <= &КонецПериода
Приход/Расход можно вписать через Значение Для полного кайфа сразу можно и сгруппировать
Период в условии через МЕЖДУ
Клацаю на поле "СуммаВзаиморасчетов", там пишу
ВЫбор Когда *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) Тогда *_ДанныеДляПереоценкиПоФьючерсам_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов Иначе 0 Конец КАК Отгрузка,
ВЫбор Когда *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) Тогда *_ДанныеДляПереоценкиПоФьючерсам_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов Иначе 0
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(Vofka @ 15.04.15, 14:05)
*_ДанныеДляПереоценкиПоФьючерсам - это имя вы от фонаря написали? Или что это такое?
Так называется РН, только вместо "*", там другое - не суть. не хочет работать
Вот делаю такой запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор, *_ДанныеДляПереоценкиПоФьючерсам.Документ, *_ДанныеДляПереоценкиПоФьючерсам.Контрагент, ВЫБОР КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов ИНАЧЕ *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов * -1 КОНЕЦ КАК СуммаВзаиморасчетов, ВЫБОР КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр ИНАЧЕ *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр * -1 КОНЕЦ КАК СуммаУпр, ВЫБОР КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр ИНАЧЕ *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр * -1 КОНЕЦ КАК СуммаПереоценкиУпр ИЗ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам КАК *_ДанныеДляПереоценкиПоФьючерсам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты ПО *_ДанныеДляПереоценкиПоФьючерсам.Документ = *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Документ ГДЕ НЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств И *_ДанныеДляПереоценкиПоФьючерсам.Период МЕЖДУ &НачалоПериода И &КонецПериода
Если отчет делается за период в который не входит документ отгрузки, то нужно взять начальный остаток, как?
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 15.04.15, 14:19)
Из ОстаткиОбороты Но дополнение Период (или Регистратор ?)
Запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.Регистратор, Ниракс_ДанныеДляПереоценкиПоФьючерсам.Документ, Ниракс_ДанныеДляПереоценкиПоФьючерсам.Контрагент, ВЫБОР КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов * -1 КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов = 0 ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КОНЕЦ КАК СуммаВзаиморасчетов, ВЫБОР КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр * -1 КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов = 0 ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаУпрНачальныйОстаток КОНЕЦ КАК СуммаУпр, ВЫБОР КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр * -1 КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов = 0 ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаПереоценкиУпрНачальныйОстаток КОНЕЦ КАК СуммаПереоценкиУпр ИЗ РегистрНакопления.Ниракс_ДанныеДляПереоценкиПоФьючерсам КАК Ниракс_ДанныеДляПереоценкиПоФьючерсам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Ниракс_ДанныеДляПереоценкиПоФьючерсам.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты ПО Ниракс_ДанныеДляПереоценкиПоФьючерсам.Документ = Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Документ ГДЕ НЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств И Ниракс_ДанныеДляПереоценкиПоФьючерсам.Период МЕЖДУ &НачалоПериода И &КонецПериода
Посмотрите пожалуйста, правильно? Так у меня не получаться начальные остатки?
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!