Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 23:17

К отчету "Движения денежных средств" привязать номенклатуру

Автор ofry, 30 авг 2014, 20:59

0 Пользователей и 1 гость просматривают эту тему.

ofry

1С 8, УТ 10.2

Есть внешний отчет - клон отчета "Движение денежных средств" с единственной доработкой:

ВЫБОР
КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
ТОГДА -ДвиженияДенежныхСредств.Сумма
КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
ТОГДА ДвиженияДенежныхСредств.Сумма
ИНАЧЕ 0
КОНЕЦ КАК СуммаСоЗнаком


в дальнейшем построении отчета использующийся вместо поля Сумма (такая доработка была нужна для того, чтобы приход не суммировался с расходом).

Требуется добавить номенклатуру в отчет, если Сделка = ЗаказПокупателя.

Если я тупо прицепляю левым соединением данные из регистра накопления ЗаказыПокупателей, то поле СуммаСоЗнаком умножается на количество позиций номенклатуры, что делает отчет непригодным для использования. Как обойти данную проблему, подскажите, куда копать.

Я знаю SQL, понимаю, что в этом случае получается в результате запроса столько же записей одного заказа, сколько позиций номенклатуры в нем. Но я не понимаю, как обойти это :(

Если данная задача (прицепление номенклатуры к движению денежных средств) решена в последних версиях конфигурации УТ, либо решение ее резко упрощается, то скажите мне :)

Спасибо.

дфтын

Понимаете в чем дело... Этот отчет показывает движение денег, а в платежке или ПКО, например, не указывается какую номенклатуру оплатили... а если частичная оплата..
Как я делал в многих организациях:
1. распределяем сумму оплаты пропорционально количеству в каждой строке (или объему или массе или сумме отгрузки, это вопрос того кто заказа отчет). Соответственно получаем сумму на каждую номенклатуру которая поступила.
2. делим сумму оплаты на сумму отгрузки - вычисляем  коэффициент, коэффициент нужен если частичная оплата
3. следовательно сумму п1  умножаем на коэффициент, это и будет собственно по номенклатурно

все делается  водном запросе. но запрос сложный

ofry

Текущий текст запроса:

ТекстЗапроса = "ВЫБРАТЬ
                | ДвиженияДенежныхСредств.Активность,
                | ДвиженияДенежныхСредств.БанковскийСчетКасса,
                | ДвиженияДенежныхСредств.ВидДенежныхСредств,
                | ДвиженияДенежныхСредств.ДоговорКонтрагента,
                | ДвиженияДенежныхСредств.ДокументДвижения,
                | ДвиженияДенежныхСредств.ДокументПланированияПлатежа,
                | ДвиженияДенежныхСредств.ДокументРасчетовСКонтрагентом,
                | ДвиженияДенежныхСредств.Контрагент,
                | ДвиженияДенежныхСредств.МоментВремени,
                | ДвиженияДенежныхСредств.НомерСтроки КАК НомерСтроки,
                | ДвиженияДенежныхСредств.Организация,
                | ДвиженияДенежныхСредств.Период,
                | ДвиженияДенежныхСредств.ПриходРасход,
                | ДвиженияДенежныхСредств.Проект,
                | ДвиженияДенежныхСредств.Регистратор,
                | ДвиженияДенежныхСредств.Сделка,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств,
                | ДвиженияДенежныхСредств.Сумма КАК Сумма,
                | ДвиженияДенежныхСредств.СуммаУпр КАК СуммаУпр,
                | ВЫБОР
                | КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
                | ТОГДА -ДвиженияДенежныхСредств.Сумма
                | КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
                | ТОГДА ДвиженияДенежныхСредств.Сумма
                | ИНАЧЕ 0
                | КОНЕЦ КАК СуммаСоЗнаком
                |{ВЫБРАТЬ
                | СуммаСоЗнаком,
                | ПриходРасход.*,
                | Период}
                |ИЗ
                | РегистрНакопления.ДвиженияДенежныхСредств КАК ДвиженияДенежныхСредств
                |{ГДЕ
                | ДвиженияДенежныхСредств.ПриходРасход.*,
                | ДвиженияДенежныхСредств.БанковскийСчетКасса.*,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств.*,
                | ДвиженияДенежныхСредств.ДокументДвижения.*,
                | ДвиженияДенежныхСредств.Сделка.*,
                | ДвиженияДенежныхСредств.Контрагент.*,
                | ДвиженияДенежныхСредств.Проект.*,
                | ДвиженияДенежныхСредств.Организация.*,
                | ДвиженияДенежныхСредств.Период}
                |{УПОРЯДОЧИТЬ ПО
                | Активность,
                | БанковскийСчетКасса.*,
                | ВидДенежныхСредств.*,
                | ДоговорКонтрагента.*,
                | ДокументДвижения.*,
                | ДокументПланированияПлатежа.*,
                | ДокументРасчетовСКонтрагентом.*,
                | Контрагент.*,
                | МоментВремени,
                | НомерСтроки,
                | Организация.*,
                | Период,
                | ПриходРасход.*,
                | Проект.*,
                | Регистратор.*,
                | Сделка.*,
                | СтатьяДвиженияДенежныхСредств.*,
                | Сумма,
                | СуммаУпр,
                | СуммаСоЗнаком}
                |ИТОГИ
                | СУММА(СуммаСоЗнаком)
                |ПО
                | ОБЩИЕ
                |{ИТОГИ ПО
                | БанковскийСчетКасса.*,
                | ВидДенежныхСредств.*,
                | ДоговорКонтрагента.*,
                | ДокументДвижения.*,
                | ДокументПланированияПлатежа.*,
                | ДокументРасчетовСКонтрагентом.*,
                | Контрагент.*,
                | Организация.*,
                | ПриходРасход.*,
                | Проект.*,
                | Сделка.*,
                | СтатьяДвиженияДенежныхСредств.*}";


Меня бы в принципе устроил второй показатель "Сумма по номенклатуре", где брались бы вот эти показатели:



И по нему итогов считать не нужно, просто вывод этих значений при детализации до номенклатуры.
Но как мне это сделать, чтобы СуммаСоЗнаком по прежнему показывала правильные значения?

дфтын

Так написал же, что нужно распределять сумму на номенклатуру.

ofry

Я попытался это сделать, но пока все равно ничего не выходит :(

Вот код:

ТекстЗапроса = "ВЫБРАТЬ
                | ДвиженияДенежныхСредств.БанковскийСчетКасса,
                | ДвиженияДенежныхСредств.ВидДенежныхСредств,
                | ДвиженияДенежныхСредств.ДоговорКонтрагента,
                | ДвиженияДенежныхСредств.ДокументДвижения,
                | ДвиженияДенежныхСредств.ДокументПланированияПлатежа,
                | ДвиженияДенежныхСредств.ДокументРасчетовСКонтрагентом,
                | ДвиженияДенежныхСредств.Контрагент,
                | ДвиженияДенежныхСредств.Организация,
                | ДвиженияДенежныхСредств.Период,
                | ДвиженияДенежныхСредств.ПриходРасход,
                | ДвиженияДенежныхСредств.Проект,
                | ДвиженияДенежныхСредств.Регистратор,
                | ДвиженияДенежныхСредств.Сделка,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств,
                | ДвиженияДенежныхСредств.Сумма КАК Сумма,
                | ДвиженияДенежныхСредств.СуммаУпр КАК СуммаУпр,
                | ВЫБОР
                | КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
                | ТОГДА ВЫБОР
                | КОГДА КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура) = 0
                | ТОГДА -ДвиженияДенежныхСредств.Сумма
                | ИНАЧЕ -ДвиженияДенежныхСредств.Сумма / КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура)
                | КОНЕЦ
                | КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
                | ТОГДА ВЫБОР
                | КОГДА КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура) = 0
                | ТОГДА ДвиженияДенежныхСредств.Сумма
                | ИНАЧЕ ДвиженияДенежныхСредств.Сумма / КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура)
                | КОНЕЦ
                | ИНАЧЕ 0
                | КОНЕЦ КАК СуммаСоЗнаком,
                | ЗаказыПокупателей.Регистратор КАК ЗаказыПокупателейРегистратор,
                | ЗаказыПокупателей.ВидДвижения,
                | ЗаказыПокупателей.ДоговорКонтрагента КАК КоличествоЕдиницНоменклатуры,
                | ЗаказыПокупателей.ЗаказПокупателя КАК ЗаказПокупателя,
                | ЗаказыПокупателей.СтатусПартии,
                | ЗаказыПокупателей.Номенклатура КАК Номенклатура,
                | ЗаказыПокупателей.ХарактеристикаНоменклатуры,
                | ЗаказыПокупателей.Цена,
                | ЗаказыПокупателей.ЕдиницаИзмерения,
                | ЗаказыПокупателей.ПроцентСкидкиНаценки,
                | ЗаказыПокупателей.ПроцентАвтоматическихСкидок,
                | ЗаказыПокупателей.УсловиеАвтоматическойСкидки,
                | ЗаказыПокупателей.ЗначениеУсловияАвтоматическойСкидки,
                | ЗаказыПокупателей.СтавкаНДС,
                | ЗаказыПокупателей.Количество
                |{ВЫБРАТЬ
                | СуммаСоЗнаком,
                | ПриходРасход.*,
                | Период}
                |ИЗ
                | РегистрНакопления.ДвиженияДенежныхСредств КАК ДвиженияДенежныхСредств
                | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
                | ПО ДвиженияДенежныхСредств.Сделка.Номер = ЗаказыПокупателей.ЗаказПокупателя.Номер
                |{ГДЕ
                | ДвиженияДенежныхСредств.ПриходРасход.*,
                | ДвиженияДенежныхСредств.БанковскийСчетКасса.*,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств.*,
                | ДвиженияДенежныхСредств.ДокументДвижения.*,
                | ДвиженияДенежныхСредств.Сделка.*,
                | ДвиженияДенежныхСредств.Контрагент.*,
                | ДвиженияДенежныхСредств.Проект.*,
                | ДвиженияДенежныхСредств.Организация.*,
                | ЗаказыПокупателей.Номенклатура.*,
                | ДвиженияДенежныхСредств.Период}
                |
                |СГРУППИРОВАТЬ ПО
                | ДвиженияДенежныхСредств.Сделка,
                | ДвиженияДенежныхСредств.БанковскийСчетКасса,
                | ДвиженияДенежныхСредств.ВидДенежныхСредств,
                | ДвиженияДенежныхСредств.ДоговорКонтрагента,
                | ДвиженияДенежныхСредств.ДокументДвижения,
                | ДвиженияДенежныхСредств.ДокументПланированияПлатежа,
                | ДвиженияДенежныхСредств.ДокументРасчетовСКонтрагентом,
                | ДвиженияДенежныхСредств.Контрагент,
                | ДвиженияДенежныхСредств.Организация,
                | ДвиженияДенежныхСредств.Период,
                | ДвиженияДенежныхСредств.ПриходРасход,
                | ДвиженияДенежныхСредств.Проект,
                | ДвиженияДенежныхСредств.Регистратор,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств,
                | ДвиженияДенежныхСредств.Сумма,
                | ДвиженияДенежныхСредств.СуммаУпр,
                | ЗаказыПокупателей.Регистратор,
                | ЗаказыПокупателей.ВидДвижения,
                | ЗаказыПокупателей.ДоговорКонтрагента,
                | ЗаказыПокупателей.ЗаказПокупателя,
                | ЗаказыПокупателей.СтатусПартии,
                | ЗаказыПокупателей.ХарактеристикаНоменклатуры,
                | ЗаказыПокупателей.Цена,
                | ЗаказыПокупателей.ЕдиницаИзмерения,
                | ЗаказыПокупателей.ПроцентСкидкиНаценки,
                | ЗаказыПокупателей.ПроцентАвтоматическихСкидок,
                | ЗаказыПокупателей.УсловиеАвтоматическойСкидки,
                | ЗаказыПокупателей.ЗначениеУсловияАвтоматическойСкидки,
                | ЗаказыПокупателей.СтавкаНДС,
                | ЗаказыПокупателей.Количество,
                | ЗаказыПокупателей.Номенклатура
                |{УПОРЯДОЧИТЬ ПО
                | БанковскийСчетКасса.*,
                | ВидДенежныхСредств.*,
                | ДоговорКонтрагента.*,
                | ДокументДвижения.*,
                | ДокументПланированияПлатежа.*,
                | ДокументРасчетовСКонтрагентом.*,
                | Контрагент.*,
                | Организация.*,
                | Период,
                | ПриходРасход.*,
                | Проект.*,
                | Регистратор.*,
                | Сделка.*,
                | СтатьяДвиженияДенежныхСредств.*,
                | Номенклатура.*,
                | Сумма,
                | СуммаУпр,
                | СуммаСоЗнаком}
                |ИТОГИ
                | СУММА(СуммаСоЗнаком)
                |ПО
                | ОБЩИЕ
                |{ИТОГИ ПО
                | БанковскийСчетКасса.*,
                | ВидДенежныхСредств.*,
                | ДоговорКонтрагента.*,
                | ДокументДвижения.*,
                | ДокументПланированияПлатежа.*,
                | ДокументРасчетовСКонтрагентом.*,
                | Контрагент.*,
                | Организация.*,
                | ПриходРасход.*,
                | Проект.*,
                | Сделка.*,
                | СтатьяДвиженияДенежныхСредств.*,
                | Номенклатура.*}";


Как поправить этот код?

дфтын

Цитата: ofry от 04 окт 2014, 19:49ДвиженияДенежныхСредств.Сделка.Номер = ЗаказыПокупателей.ЗаказПокупателя.Номер

А вы точно в 1С разбираетесь?
Так не надо делать. А если у вас номера документов из года в год повторяются.. что делать тогда...
Добавлено: 04 окт 2014, 20:00


ЦитироватьВЫБОР
                    |        КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
                    |            ТОГДА ВЫБОР
                    |                    КОГДА КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура) = 0
                    |                        ТОГДА -ДвиженияДенежныхСредств.Сумма
                    |                    ИНАЧЕ -ДвиженияДенежныхСредств.Сумма / КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура)
                    |                КОНЕЦ
                    |        КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
                    |            ТОГДА ВЫБОР
                    |                    КОГДА КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура) = 0
                    |                        ТОГДА ДвиженияДенежныхСредств.Сумма
                    |                    ИНАЧЕ ДвиженияДенежныхСредств.Сумма / КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура)
                    |                КОНЕЦ
                    |        ИНАЧЕ 0
                    |    КОНЕЦ КАК СуммаСоЗнаком,

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


ofry

В 1С, к сожалению, не разбираюсь... начал разбираться только с конца августа.


Добавлено: 04 окт 2014, 20:09


Цитата: дфтын от 04 окт 2014, 19:57
Цитата: ofry от 04 окт 2014, 19:49ДвиженияДенежныхСредств.Сделка.Номер = ЗаказыПокупателей.ЗаказПокупателя.Номер

А вы точно в 1С разбираетесь?
Так не надо делать. А если у вас номера документов из года в год повторяются.. что делать тогда...
Добавлено: 04 окт 2014, 20:00


ЦитироватьВЫБОР
                    |        КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
                    |            ТОГДА ВЫБОР
                    |                    КОГДА КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура) = 0
                    |                        ТОГДА -ДвиженияДенежныхСредств.Сумма
                    |                    ИНАЧЕ -ДвиженияДенежныхСредств.Сумма / КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура)
                    |                КОНЕЦ
                    |        КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
                    |            ТОГДА ВЫБОР
                    |                    КОГДА КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура) = 0
                    |                        ТОГДА ДвиженияДенежныхСредств.Сумма
                    |                    ИНАЧЕ ДвиженияДенежныхСредств.Сумма / КОЛИЧЕСТВО(ЗаказыПокупателей.Номенклатура)
                    |                КОНЕЦ
                    |        ИНАЧЕ 0
                    |    КОНЕЦ КАК СуммаСоЗнаком,

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

Ну да... Если расход, то к сумме ставится знак минус (иначе в итогах приход суммируется с расходом).

дфтын

"ВЫБРАТЬ
              | перед.ОсновнойМенеджерПокупателя КАК ОсновнойМенеджерПокупателя,
              | перед.Контрагент КАК Контрагент,
              | перед.Регистратор КАК Регистратор,
              | перед.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
              | перед.Номенклатура КАК Номенклатура,
              | перед.РазницаДней КАК РазницаДней,
              | перед.ДнейПоДоговору КАК ДнейПоДоговору,
              | перед.ДнейПросрочки КАК ДнейПросрочки,
              | перед.ПроцентОтгрузка КАК ПроцентОтгрузка,
              | перед.ПроцентОтсрочка КАК ПроцентОтсрочка,
              | перед.ПроцентПросрочка КАК ПроцентПросрочка,
              | перед.Минимальное КАК Минимальное,
              | перед.ПоступилаОплата КАК ПоступилаОплата,
              | перед.Количество КАК Количество,
              | перед.СуммаОтгрузки КАК СуммаОтгрузки,
              | перед.ЦенаЗаЕд КАК ЦенаЗаЕд,
              | перед.ЦенаВдок КАК ЦенаВдок,
              | перед.Коэф КАК Коэф,
              | перед.всегопостроке КАК всегопостроке,
              | перед.ПредЗарплата КАК ПредЗарплата,
              | перед.Зарплата КАК Зарплата
              |{ВЫБРАТЬ
              | ОсновнойМенеджерПокупателя.*,
              | Контрагент.*,
              | Регистратор.*,
              | ДокументРасчетовСКонтрагентом.*,
              | Номенклатура.*,
              | РазницаДней,
              | ДнейПоДоговору,
              | ДнейПросрочки,
              | ПроцентОтгрузка,
              | ПроцентОтсрочка,
              | ПроцентПросрочка,
              | Минимальное,
              | ПоступилаОплата,
              | Количество,
              | СуммаОтгрузки,
              | ЦенаЗаЕд,
              | ЦенаВдок,
              | Коэф,
              | всегопостроке,
              | ПредЗарплата,
              | Зарплата}
              |ИЗ
              | (ВЫБРАТЬ
              | докн.ДокументРасчетовСКонтрагентом.Контрагент.ОсновнойМенеджерПокупателя КАК ОсновнойМенеджерПокупателя,
              | докн.ДокументРасчетовСКонтрагентом.Контрагент КАК Контрагент,
              | докн.Регистратор КАК Регистратор,
              | докн.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
              | докн.Номенклатура КАК Номенклатура,
              | РАЗНОСТЬДАТ(докн.ДокументРасчетовСКонтрагентом.Дата, докн.Регистратор.Дата, ДЕНЬ) КАК РазницаДней,
              | докн.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДнейПоДоговору,
              | РАЗНОСТЬДАТ(докн.ДокументРасчетовСКонтрагентом.Дата, докн.Регистратор.Дата, ДЕНЬ) - докн.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДнейПросрочки,
              | ПределыОтрузка.Ставка КАК ПроцентОтгрузка,
              | ПределыОтсрочка.Ставка КАК ПроцентОтсрочка,
              | ПределыПросрочка.Ставка КАК ПроцентПросрочка,
              | ВЫБОР
              | КОГДА ПределыОтрузка.Ставка <= ПределыОтсрочка.Ставка
              | И ПределыОтрузка.Ставка <= ПределыПросрочка.Ставка
              | ТОГДА ПределыОтрузка.Ставка
              | ИНАЧЕ ВЫБОР
              | КОГДА ПределыОтсрочка.Ставка <= ПределыОтрузка.Ставка
              | И ПределыОтсрочка.Ставка <= ПределыПросрочка.Ставка
              | ТОГДА ПределыОтсрочка.Ставка
              | ИНАЧЕ ВЫБОР
              | КОГДА ПределыПросрочка.Ставка <= ПределыОтрузка.Ставка
              | И ПределыПросрочка.Ставка <= ПределыОтсрочка.Ставка
              | ТОГДА ПределыПросрочка.Ставка
              | ИНАЧЕ ВЫБОР
              | КОГДА ПределыПросрочка.Ставка = ПределыОтрузка.Ставка
              | И ПределыПросрочка.Ставка = ПределыОтсрочка.Ставка
              | ТОГДА ПределыПросрочка.Ставка
              | КОНЕЦ
              | КОНЕЦ
              | КОНЕЦ
              | КОНЕЦ КАК Минимальное,
              | докн.ПоступилаОплата / докн.КоличествоОтгрузки * докн.Количество КАК ПоступилаОплата,
              | докн.КоличествоОтгрузки КАК КоличествоОтгрузки,
              | докн.Количество КАК Количество,
              | докн.СуммаОтгрузки / докн.КоличествоОтгрузки * докн.Количество КАК СуммаОтгрузки,
              | докн.ЦенаЗаЕд КАК ЦенаЗаЕд,
              | докн.Цена КАК ЦенаВдок,
              | докн.ПоступилаОплата / докн.СуммаОтгрузки КАК Коэф,
              | докн.ЦенаЗаЕд * докн.Количество КАК всегопостроке,
              | докн.ЦенаЗаЕд * докн.Количество * (докн.ПоступилаОплата / докн.СуммаОтгрузки) КАК ПредЗарплата,
              | докн.ЦенаЗаЕд * докн.Количество * (докн.ПоступилаОплата / докн.СуммаОтгрузки) / 100 * ВЫБОР
              | КОГДА ПределыОтрузка.Ставка <= ПределыОтсрочка.Ставка
              | И ПределыОтрузка.Ставка <= ПределыПросрочка.Ставка
              | ТОГДА ПределыОтрузка.Ставка
              | ИНАЧЕ ВЫБОР
              | КОГДА ПределыОтсрочка.Ставка <= ПределыОтрузка.Ставка
              | И ПределыОтсрочка.Ставка <= ПределыПросрочка.Ставка
              | ТОГДА ПределыОтсрочка.Ставка
              | ИНАЧЕ ВЫБОР
              | КОГДА ПределыПросрочка.Ставка <= ПределыОтрузка.Ставка
              | И ПределыПросрочка.Ставка <= ПределыОтсрочка.Ставка
              | ТОГДА ПределыПросрочка.Ставка
              | ИНАЧЕ ВЫБОР
              | КОГДА ПределыПросрочка.Ставка = ПределыОтрузка.Ставка
              | И ПределыПросрочка.Ставка = ПределыОтсрочка.Ставка
              | ТОГДА ПределыПросрочка.Ставка
              | КОНЕЦ
              | КОНЕЦ
              | КОНЕЦ
              | КОНЕЦ КАК Зарплата
              | ИЗ
              | (ВЫБРАТЬ
              | ДокиОтгрузки.ДокументРасчетовСКонтрагентом.Контрагент КАК Контрагент,
              | ДокиОтгрузки.ДокументРасчетовСКонтрагентом.Контрагент.ОсновнойМенеджерПокупателя КАК ОсновнойМенеджерПокупателя,
              | ДокиОтгрузки.Регистратор КАК Регистратор,
              | ДокиОтгрузки.ДоговорКонтрагента КАК ДоговорКонтрагента,
              | ДокиОтгрузки.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
              | ДокиОтгрузки.ВсегоСуммаОплата КАК ПоступилаОплата,
              | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
              | РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Коэффициент КАК Количество,
              | РеализацияТоваровУслугТовары.Цена КАК Цена,
              | РеализацияТоваровУслугТовары.Сумма КАК Сумма,
              | РеализацияТоваровУслугТовары.Сумма / (РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Коэффициент) КАК ЦенаЗаЕд,
              | СуммаДоков.СуммаОтгрузки КАК СуммаОтгрузки,
              | СуммаДоков.КоличествоОтгрузки КАК КоличествоОтгрузки
              | ИЗ
              | (ВЫБРАТЬ
              | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор КАК Регистратор,
              | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
              | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
              | СУММА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.СуммаВзаиморасчетовРасход) КАК ВсегоСуммаОплата
              | ИЗ
              | РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(&ДатаНачала, &ДатаКонца, Авто, ДокументРасчетовСКонтрагентом ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты
              |
              | СГРУППИРОВАТЬ ПО
              | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор,
              | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДокументРасчетовСКонтрагентом,
              | ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДоговорКонтрагента) КАК ДокиОтгрузки
              | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
              | ПО ДокиОтгрузки.ДокументРасчетовСКонтрагентом = РеализацияТоваровУслугТовары.Ссылка.Ссылка
              | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
              | доки.Ссылка КАК ДокОтгрузки,
              | СУММА(доки.Сумма) КАК СуммаОтгрузки,
              | СУММА(доки.Количество * доки.Коэффициент) КАК КоличествоОтгрузки
              | ИЗ
              | Документ.РеализацияТоваровУслуг.Товары КАК доки
              |
              | СГРУППИРОВАТЬ ПО
              | доки.Ссылка) КАК СуммаДоков
              | ПО (СуммаДоков.ДокОтгрузки = РеализацияТоваровУслугТовары.Ссылка.Ссылка)) КАК докн
              | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПределыОтрузка КАК ПределыОтрузка
              | ПО докн.Номенклатура = ПределыОтрузка.Номенклатура
              | И (докн.ЦенаЗаЕд МЕЖДУ ПределыОтрузка.Начало И ПределыОтрузка.Окончание),
              | РегистрСведений.ПределыОтсрочка КАК ПределыОтсрочка,
              | РегистрСведений.ПределыПросрочка КАК ПределыПросрочка
              | ГДЕ
              | докн.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности МЕЖДУ ПределыОтсрочка.Начало И ПределыОтсрочка.Окончание
              | И РАЗНОСТЬДАТ(докн.ДокументРасчетовСКонтрагентом.Дата, докн.Регистратор.Дата, ДЕНЬ) - докн.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности МЕЖДУ ПределыПросрочка.Начало И ПределыПросрочка.Окончание) КАК перед
              |{ГДЕ
              | перед.ОсновнойМенеджерПокупателя.*,
              | перед.Контрагент.*,
              | перед.Номенклатура.*}
              |
              |УПОРЯДОЧИТЬ ПО
              | ОсновнойМенеджерПокупателя,
              | Контрагент,
              | перед.Регистратор.Дата,
              | перед.ДокументРасчетовСКонтрагентом.Дата,
              | перед.Номенклатура
              |{УПОРЯДОЧИТЬ ПО
              | ОсновнойМенеджерПокупателя.*,
              | Контрагент.*,
              | перед.Регистратор.Дата,
              | перед.ДокументРасчетовСКонтрагентом.Дата,
              | Номенклатура.*}
              |ИТОГИ
              | СУММА(РазницаДней),
              | СУММА(ДнейПоДоговору),
              | СУММА(ДнейПросрочки),
              | СУММА(ПроцентОтгрузка),
              | СУММА(ПроцентОтсрочка),
              | СУММА(ПроцентПросрочка),
              | СУММА(Минимальное),
              | СУММА(ПоступилаОплата),
              | СУММА(Количество),
              | СУММА(СуммаОтгрузки),
              | СУММА(ЦенаЗаЕд),
              | СУММА(ЦенаВдок),
              | СУММА(Коэф),
              | СУММА(всегопостроке),
              | СУММА(ПредЗарплата),
              | СУММА(Зарплата)
              |ПО
              | ОБЩИЕ,
              | ОсновнойМенеджерПокупателя,
              | Контрагент,
              | Регистратор,
              | ДокументРасчетовСКонтрагентом,
              | Номенклатура
              |{ИТОГИ ПО
              | ОсновнойМенеджерПокупателя.*,
              | Контрагент.*,
              | Регистратор.*,
              | ДокументРасчетовСКонтрагентом.*,
              | Номенклатура.*}";


Вот пример запроса, для вашей адачи много лишнего, но идея таже самая. оно делит оплаты по погрузкам и вычисляет зарплату
Добавлено: 04 окт 2014, 20:12


Цитата: дфтын от 04 окт 2014, 20:09
       |        докн.ПоступилаОплата / докн.КоличествоОтгрузки * докн.Количество КАК ПоступилаОплата,
       

А вот и коэффициенты

Добавлено: 04 окт 2014, 20:14


Цитата: ofry от 04 окт 2014, 20:08
Ну да... Если расход, то к сумме ставится знак минус (иначе в итогах приход суммируется с расходом).
Ну так вы выделяйте конкретные документы, и не будет оно суммироваться. на самом деле нужно побольше знаний чтобы такие отчеты делать, к сожалению.

ofry

Теперь сделал с вложенным запросом, но я не пойму, на что надо делить о-О. Номенклатура может быть из 2 позиций, а делиться должно на 6-7 и т.п.

ТекстЗапроса = "ВЫБРАТЬ
                | ДвиженияДенежныхСредств.Период,
                | ДвиженияДенежныхСредств.БанковскийСчетКасса КАК БанковскийСчетКасса,
                | ДвиженияДенежныхСредств.ВидДенежныхСредств,
                | ДвиженияДенежныхСредств.ПриходРасход КАК ПриходРасход,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
                | ДвиженияДенежныхСредств.ДокументДвижения КАК ДокументДвижения,
                | ДвиженияДенежныхСредств.Контрагент КАК Контрагент,
                | ДвиженияДенежныхСредств.ДоговорКонтрагента,
                | ДвиженияДенежныхСредств.Сделка КАК Сделка,
                | ДвиженияДенежныхСредств.Проект КАК Проект,
                | ДвиженияДенежныхСредств.ДокументПланированияПлатежа,
                | ДвиженияДенежныхСредств.ДокументРасчетовСКонтрагентом,
                | ДвиженияДенежныхСредств.Организация,
                | ДвиженияДенежныхСредств.Сумма,
                | ДвиженияДенежныхСредств.СуммаУпр,
                | ЗаказыПокупателей.ВидДвижения,
                | ЗаказыПокупателей.ДоговорКонтрагента КАК ЗаказыПокупателейДоговорКонтрагента,
                | ЗаказыПокупателей.ЗаказПокупателя,
                | ЗаказыПокупателей.СтатусПартии,
                | ЗаказыПокупателей.Номенклатура КАК Номенклатура,
                | ЗаказыПокупателей.ХарактеристикаНоменклатуры,
                | ЗаказыПокупателей.Цена,
                | ЗаказыПокупателей.ЕдиницаИзмерения,
                | ЗаказыПокупателей.ПроцентСкидкиНаценки,
                | ЗаказыПокупателей.ПроцентАвтоматическихСкидок,
                | ЗаказыПокупателей.УсловиеАвтоматическойСкидки,
                | ЗаказыПокупателей.ЗначениеУсловияАвтоматическойСкидки,
                | ЗаказыПокупателей.СтавкаНДС,
                | ДвиженияДенежныхСредств.Регистратор,
                | ВЫБОР
                | КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
                | ТОГДА ВЫБОР
                | КОГДА КолвоНоменклатуры.МаксСтрока = NULL
                | ТОГДА -ДвиженияДенежныхСредств.Сумма
                | ИНАЧЕ -ДвиженияДенежныхСредств.Сумма / КолвоНоменклатуры.МаксСтрока
                | КОНЕЦ
                | КОГДА ДвиженияДенежныхСредств.ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
                | ТОГДА ВЫБОР
                | КОГДА КолвоНоменклатуры.МаксСтрока = NULL
                | ТОГДА ДвиженияДенежныхСредств.Сумма
                | ИНАЧЕ ДвиженияДенежныхСредств.Сумма / КолвоНоменклатуры.МаксСтрока
                | КОНЕЦ
                | ИНАЧЕ 0
                | КОНЕЦ КАК СуммаСоЗнаком
                |{ВЫБРАТЬ
                | Период,
                | СуммаСоЗнаком,
                | ПриходРасход.*}
                |ИЗ
                | РегистрНакопления.ДвиженияДенежныхСредств КАК ДвиженияДенежныхСредств
                | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
                | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                | МАКСИМУМ(ЗаказыПокупателей.НомерСтроки) КАК МаксСтрока,
                | ЗаказыПокупателей.ЗаказПокупателя КАК ЗаказПокупателя
                | ИЗ
                | РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
                |
                | СГРУППИРОВАТЬ ПО
                | ЗаказыПокупателей.ЗаказПокупателя) КАК КолвоНоменклатуры
                | ПО (КолвоНоменклатуры.ЗаказПокупателя = ЗаказыПокупателей.ЗаказПокупателя)
                | ПО ДвиженияДенежныхСредств.Сделка.Ссылка = ЗаказыПокупателей.ЗаказПокупателя
                |{ГДЕ
                | ДвиженияДенежныхСредств.ПриходРасход.*,
                | ДвиженияДенежныхСредств.БанковскийСчетКасса.*,
                | ДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредств.*,
                | ДвиженияДенежныхСредств.ДокументДвижения.*,
                | ДвиженияДенежныхСредств.Сделка.*,
                | ДвиженияДенежныхСредств.Контрагент.*,
                | ДвиженияДенежныхСредств.Проект.*,
                | ДвиженияДенежныхСредств.Организация.*,
                | ЗаказыПокупателей.Номенклатура.*,
                | ДвиженияДенежныхСредств.Период}
                |ИТОГИ
                | СУММА(СуммаСоЗнаком)
                |ПО
                | ОБЩИЕ
                |{ИТОГИ ПО
                | БанковскийСчетКасса.*,
                | ВидДенежныхСредств.*,
                | Организация.*,
                | ПриходРасход.*,
                | Проект.*,
                | Контрагент.*,
                | СтатьяДвиженияДенежныхСредств.*,
                | Номенклатура.*,
                | ДокументДвижения.*,
                | Сделка.*}";


Просто изначально я думал, что было паразитное умножение на кол-во различающихся единиц номенклатуры, а теперь... даже не знаю, на что умножается-то?

дфтын

Берем общую сумсму оплаты по сделке делим на общую сумму сделки. получаем коэффициент сколько оплатилось денег. если не частичная оплата то будет 1. далее по строчно по номенклатурно, сумму всего,  умножаем на этот коэффициент. получится сколько денег оплачено по каждой номенклатуре. Я вам там скайп писал

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск