Доброе время суток всем! Обычные формы.
Есть следующий запрос:
Суть в том, что берутся за период по определенному контрагенту по условию документы и получается общая сумма:
1) Проведенные связки заказов и реализации ( Берётся большая сумма
2) Проведенные реализации без заказов(Сумма реализации).
3) Проведенные заказы без связок с реализацией(Сумма заказов).
4) Связки заказов[проведенные] и реализации[не проведенные] ( Сумма заказов ).
Возможно ли переделать этот же запрос на регистр "Заказы покупателей" с четырями условиями? И достаточно ли этого регистра ?
Есть следующий запрос:
ВЫБРАТЬ
СУММА(ВЫБОР
КОГДА ЗаказПокупателя.СуммаДокумента <= ЕСТЬNULL(РеализацияТоваровУслуг.СуммаДокумента, 0)
ТОГДА ЕСТЬNULL(РеализацияТоваровУслуг.СуммаДокумента, 0)
ИНАЧЕ ЗаказПокупателя.СуммаДокумента
КОНЕЦ) КАК СуммаДокумента
ПОМЕСТИТЬ ВТ_Сумма
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО (РеализацияТоваровУслуг.Сделка = ЗаказПокупателя.Ссылка)
И (РеализацияТоваровУслуг.Проведен)
ГДЕ
ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗаказПокупателя.Контрагент = &Контрагент
И ЗаказПокупателя.Проведен
И НЕ ЗаказПокупателя.Ссылка = &Ссылка
И РеализацияТоваровУслуг.Проведен
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СУММА(РеализацияТоваровУслуг.СуммаДокумента)
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И РеализацияТоваровУслуг.Контрагент = &Контрагент
И РеализацияТоваровУслуг.Проведен
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СУММА(ЗаказПокупателя.СуммаДокумента)
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
ЗаказПокупателя.Контрагент = &Контрагент
И ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗаказПокупателя.Проведен
И НЕ ЗаказПокупателя.Ссылка = &Ссылка
И НЕ ЗаказПокупателя.Ссылка В
(ВЫБРАТЬ
реа.Сделка
ИЗ
документ.РеализацияТоваровУслуг КАК реа)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЗаказПокупателя.СуммаДокумента
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО (РеализацияТоваровУслуг.Сделка = ЗаказПокупателя.Ссылка)
ГДЕ
ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗаказПокупателя.Контрагент = &Контрагент
И ЗаказПокупателя.Проведен
И НЕ ЗаказПокупателя.Ссылка = &Ссылка
И НЕ РеализацияТоваровУслуг.Проведен
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ЕСТЬNULL(ВТ_Сумма.СуммаДокумента, 0)) КАК СуммаЗаПериод
ИЗ
ВТ_Сумма КАК ВТ_Сумма
ПоказатьСуть в том, что берутся за период по определенному контрагенту по условию документы и получается общая сумма:
1) Проведенные связки заказов и реализации ( Берётся большая сумма
2) Проведенные реализации без заказов(Сумма реализации).
3) Проведенные заказы без связок с реализацией(Сумма заказов).
4) Связки заказов[проведенные] и реализации[не проведенные] ( Сумма заказов ).
Возможно ли переделать этот же запрос на регистр "Заказы покупателей" с четырями условиями? И достаточно ли этого регистра ?
По теме из базы знаний
- Описание механизмов программных реализаций на платформе 1С:Предприятие 8.1 : «Использование временных таблиц в запросах»
- Сравнение остатков по регистрам накопления
- Особенности организации выборок из оборотного регистра накопления
- Обучение работе с СКД и регистрами накопления в 1С (Junior)
- Универсальная корректировка и чтение остатков регистра накопления
Найденные решения
(22)
Извиняюсь за формат кода, криво копирует с удаленки. На рабочем компе нету 10.3 для форматирования в консоли.
В общем получилось что из шапки моей темы пункт 3 и 4 скрестились.
Сумма получилась итоговая такая же как и в запросе из шапки, но думаю ньюансы есть, пока что не вижу их.
ВЫБРАТЬ
РТУ.Регистратор,
СУММА(РТУ.Стоимость) КАК СуммаРТУ,
РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
РегистрНакопления.Продажи КАК РТУ
ГДЕ
РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И РТУ.Контрагент = &Контрагент
И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
СГРУППИРОВАТЬ ПО
РТУ.Регистратор,
РТУ.Регистратор.Сделка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА Заказы.СуммаЗаказов <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ИНАЧЕ Заказы.СуммаЗаказов
КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
ВТ_РТУ КАК Реализации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Реализации.СуммаРТУ
ИЗ
ВТ_РТУ КАК Реализации
ГДЕ
Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Заказы.СуммаЗаказов
ИЗ
ВТ_Заказы КАК Заказы
ГДЕ
НЕ Заказы.ЗаказПокупателя.Ссылка В
(ВЫБРАТЬ
реализации.Сделка
ИЗ
реализации)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
ИЗ
ВТ_ИТОГ КАК ВТ_ИТОГ
ПоказатьИзвиняюсь за формат кода, криво копирует с удаленки. На рабочем компе нету 10.3 для форматирования в консоли.
В общем получилось что из шапки моей темы пункт 3 и 4 скрестились.
Сумма получилась итоговая такая же как и в запросе из шапки, но думаю ньюансы есть, пока что не вижу их.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
смею предположить, что раз обычные формы, заказ и реализация, то это нечто типа УТ 10.3
если так или похоже, то одним регистром заказов не обойтись, да и нужно ли?
продажи надо будет брать с регистра продаж
примерно так (при переводе на регистры), схема по условиям
1. реализация с продаж с условием что основание (сделка) есть и это заказ, связка с заказом по основанию, заказ с заказов (под вопросом)
2. реализация с продаж с условием что основание (сделка) пусто (или это не заказ, ту смотреть по требованиям)
3. заказы из документов, без связанного документа реализации (тут не помню точно как в регистре заказов отображаются записи по заказам с отгрузкой, если можно вычленить с регистра, то брать с регистра)
4. вариация пункта 3, только со связанным документом реализации
если так или похоже, то одним регистром заказов не обойтись, да и нужно ли?
продажи надо будет брать с регистра продаж
примерно так (при переводе на регистры), схема по условиям
1. реализация с продаж с условием что основание (сделка) есть и это заказ, связка с заказом по основанию, заказ с заказов (под вопросом)
2. реализация с продаж с условием что основание (сделка) пусто (или это не заказ, ту смотреть по требованиям)
3. заказы из документов, без связанного документа реализации (тут не помню точно как в регистре заказов отображаются записи по заказам с отгрузкой, если можно вычленить с регистра, то брать с регистра)
4. вариация пункта 3, только со связанным документом реализации
(17) в принципе можно переделать на регистры в ключевых данных по продажам, по заказам честно не помню как там ведется учет, а 10.3 под рукой нет
точно при проведении заказа в регистр пишется приход под заказ, а вот пишется расход или запись аннлуируется при проведении реализации по заказу или при отмене заказа, вот это не скажу точно, надо смотреть
(17)
точно при проведении заказа в регистр пишется приход под заказ, а вот пишется расход или запись аннлуируется при проведении реализации по заказу или при отмене заказа, вот это не скажу точно, надо смотреть
(17)
как учитывать по регистрам ВидПрихода
зависит от того, что вы понимаете под ВидПрихода
(18) Ну я вот начал делать.
1) Взял из регистра продажи только все реализации за период по контрагенту. Указав что основание заказ.
2) Взял из регистра заказы покупателей только все заказы за период по контрагенту. Указав что регистра Заказ покупателя.
3) Уже объединением играюсь с первыми двумя пунктами и получаю все 4 моих условия
Этого же достаточно по идее?
1) Взял из регистра продажи только все реализации за период по контрагенту. Указав что основание заказ.
2) Взял из регистра заказы покупателей только все заказы за период по контрагенту. Указав что регистра Заказ покупателя.
3) Уже объединением играюсь с первыми двумя пунктами и получаю все 4 моих условия
Этого же достаточно по идее?
(22)
Извиняюсь за формат кода, криво копирует с удаленки. На рабочем компе нету 10.3 для форматирования в консоли.
В общем получилось что из шапки моей темы пункт 3 и 4 скрестились.
Сумма получилась итоговая такая же как и в запросе из шапки, но думаю ньюансы есть, пока что не вижу их.
ВЫБРАТЬ
РТУ.Регистратор,
СУММА(РТУ.Стоимость) КАК СуммаРТУ,
РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
РегистрНакопления.Продажи КАК РТУ
ГДЕ
РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И РТУ.Контрагент = &Контрагент
И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
СГРУППИРОВАТЬ ПО
РТУ.Регистратор,
РТУ.Регистратор.Сделка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА Заказы.СуммаЗаказов <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ИНАЧЕ Заказы.СуммаЗаказов
КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
ВТ_РТУ КАК Реализации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Реализации.СуммаРТУ
ИЗ
ВТ_РТУ КАК Реализации
ГДЕ
Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Заказы.СуммаЗаказов
ИЗ
ВТ_Заказы КАК Заказы
ГДЕ
НЕ Заказы.ЗаказПокупателя.Ссылка В
(ВЫБРАТЬ
реализации.Сделка
ИЗ
реализации)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
ИЗ
ВТ_ИТОГ КАК ВТ_ИТОГ
ПоказатьИзвиняюсь за формат кода, криво копирует с удаленки. На рабочем компе нету 10.3 для форматирования в консоли.
В общем получилось что из шапки моей темы пункт 3 и 4 скрестились.
Сумма получилась итоговая такая же как и в запросе из шапки, но думаю ньюансы есть, пока что не вижу их.
(30) вообще в первом запросе группировать нужно если только отгрузка была по нескольким заказам, но у вас скорее всего не так
группировать по ссылке особого смысла не имеет, т.к. ссылка уже есть уникальная вещь, но в принципе и не возбраняется
ну а по условию поиграться надо, может там не ноль а null, поэтому и не срабатывает
я бы попробовал заменить СУММА(РТУ.Стоимость) КАК СуммаРТУ на просто РТУ.Стоимость КАК СуммаРТУ
и СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов на просто Заказы.СуммаВзаиморасчетов КАК СуммаЗаказов
это данные с регистра, это уже сумма расчетов по документу, а суммируете вы итоги позже
группировать по ссылке особого смысла не имеет, т.к. ссылка уже есть уникальная вещь, но в принципе и не возбраняется
ну а по условию поиграться надо, может там не ноль а null, поэтому и не срабатывает
я бы попробовал заменить СУММА(РТУ.Стоимость) КАК СуммаРТУ на просто РТУ.Стоимость КАК СуммаРТУ
и СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов на просто Заказы.СуммаВзаиморасчетов КАК СуммаЗаказов
это данные с регистра, это уже сумма расчетов по документу, а суммируете вы итоги позже
(33) Хм, но у меня отрабатывает. Так как в запросе я не смог избавиться от null всё-таки.
И сделал в коде так после выборки:
и всё отрабатывает корректно, если в выборке Null, то СуммеЗаПериод присваивается 0,как мне и надо.
И если я убираю группировки по ссылке и сумме в запросе к регистру Продажи, получая Реализации, то выводится две суммы.Так как в заказе и реализации две позиции номенклатуры.. Так что без группировки некорректно получается.
И как в итоге то быть ? я уже как только не пытался изменить запрос..
Как можно обойти Null правильно после выборки тогда ?!
И сделал в коде так после выборки:
Если Пустая строка(суммаЗаПериод) тогда
СуммаЗаПериод =0
конецесли
и всё отрабатывает корректно, если в выборке Null, то СуммеЗаПериод присваивается 0,как мне и надо.
И если я убираю группировки по ссылке и сумме в запросе к регистру Продажи, получая Реализации, то выводится две суммы.Так как в заказе и реализации две позиции номенклатуры.. Так что без группировки некорректно получается.
И как в итоге то быть ? я уже как только не пытался изменить запрос..
Как можно обойти Null правильно после выборки тогда ?!
(36) есть только демка, все нормально, никаких нулевых строк
ВЫБРАТЬ
РТУ.Регистратор,
СУММА(РТУ.Стоимость) КАК СуммаРТУ,
РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
РегистрНакопления.Продажи КАК РТУ
ГДЕ
РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И РТУ.Контрагент = &Контрагент
И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
СГРУППИРОВАТЬ ПО
РТУ.Регистратор,
РТУ.Регистратор.Сделка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА втЗаказы.СуммаЗаказов <= ЕСТЬNULL(втРеализации.СуммаРТУ, 0)
ТОГДА ЕСТЬNULL(втРеализации.СуммаРТУ, 0)
ИНАЧЕ втЗаказы.СуммаЗаказов
КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
ВТ_РТУ КАК втРеализации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК втЗаказы
ПО втРеализации.Регистратор.Сделка = втЗаказы.ЗаказПокупателя.Ссылка
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
втРеализации.СуммаРТУ
ИЗ
ВТ_РТУ КАК втРеализации
ГДЕ
втРеализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
втЗаказы.СуммаЗаказов
ИЗ
ВТ_Заказы КАК втЗаказы
ГДЕ
НЕ втЗаказы.ЗаказПокупателя.Ссылка В
(ВЫБРАТЬ
втРеализации.Сделка
ИЗ
ВТ_РТУ КАК втРеализации)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
ИЗ
ВТ_ИТОГ КАК ВТ_ИТОГ
Показать
(38) демка 10.3
данные есть
выводит одну строку по выбранным параметрам, собственно как и должен по запросу
нужно на данных ковырять, загнать запрос в обработку и выполняя отдельные пакеты смотреть что в результате
так сложно сказать в какой момент и откуда возникает null
вот проверил на демке, все ок, другой 10.3 нет
данные есть
выводит одну строку по выбранным параметрам, собственно как и должен по запросу
нужно на данных ковырять, загнать запрос в обработку и выполняя отдельные пакеты смотреть что в результате
так сложно сказать в какой момент и откуда возникает null
вот проверил на демке, все ок, другой 10.3 нет
(39) Странные дела. Я по порядку и проверял. Говорю же после объединения как только делаю СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
то сразу вылазит null.. а если добавить поле группировки,всё ок.
Но я не знаю как в объединениях добавить поля(ссылки) для группировки, там разные ссылки...
то сразу вылазит null.. а если добавить поле группировки,всё ок.
Но я не знаю как в объединениях добавить поля(ссылки) для группировки, там разные ссылки...
(39) Не по теме вопрос, но возможно Вы как более опытный человек подскажете.
Когда я делаю в объединениях первый запрос( Связка Заказ и Реализации) то выбираю сумму по условию, как оказалось оно не корректно,так как участвует ещё документ закрытие заказа покупателя и непонятно какую сумму брать из-за этого...
Что можете посоветовать ? Спасибо заранее.
Когда я делаю в объединениях первый запрос( Связка Заказ и Реализации) то выбираю сумму по условию, как оказалось оно не корректно,так как участвует ещё документ закрытие заказа покупателя и непонятно какую сумму брать из-за этого...
Что можете посоветовать ? Спасибо заранее.
(41) эхх... давно я 10.3 не ковырял )
по идее закрытие заказов обнуляет количество и сумму по резерву. а значит обнуляет эти ресурсы в регистре ЗаказыПокупателя
при этом подразумевается, что закрыть заказ с проведенной отгрузкой по идее нельзя, и если такое есть, то это ошибка в данных
т.о. получается, что с регистра ЗаказыПокупателя надо брать не все данные, а только те, что не равны ноль по количеству, например, отсекая тем самым как раз закрытые заказы
по идее закрытие заказов обнуляет количество и сумму по резерву. а значит обнуляет эти ресурсы в регистре ЗаказыПокупателя
при этом подразумевается, что закрыть заказ с проведенной отгрузкой по идее нельзя, и если такое есть, то это ошибка в данных
т.о. получается, что с регистра ЗаказыПокупателя надо брать не все данные, а только те, что не равны ноль по количеству, например, отсекая тем самым как раз закрытые заказы
(43) навскидку если
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
И Заказы.Количество <> 0
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
Показать
(44) Не правильно поняли меня думаю.
Приложил файл, где сделан отбор по одному заказу покупателя в регистре заказ покупателя.
Заказ сделан на сумму 5242(приход), Реализация на 4717,82(расход). Закрытие на 1048,40(расход)
В итоге по моему условию взялась сумма 5242,а должна быть 4717,82.
К примеру если суммы будут одинаковые 5242 и 5242, то и будет 5242, хотя по факту 0.
Может так, что и реализация на сумму больше, чем заказ и снова непонятно как быть...
Подскажите, если бонусом отправлю вам $ здесь.
Приложил файл, где сделан отбор по одному заказу покупателя в регистре заказ покупателя.
Заказ сделан на сумму 5242(приход), Реализация на 4717,82(расход). Закрытие на 1048,40(расход)
В итоге по моему условию взялась сумма 5242,а должна быть 4717,82.
К примеру если суммы будут одинаковые 5242 и 5242, то и будет 5242, хотя по факту 0.
Может так, что и реализация на сумму больше, чем заказ и снова непонятно как быть...
Подскажите, если бонусом отправлю вам $ здесь.
Прикрепленные файлы:
1.mxl
2.txt
(45) или вы сами запутались или я
я в таких случаях беру карандаш и начинаю рисовать
начальные условия - что могу получить их условий - что должен получить в результате
и так для всех вариантов начальных условий
опишите задачу подробно
судя по всему из суммы заказа нужно вычесть закрытие (связь по заказу) и получить результирующую сумму заказа, которую потом сравнить с суммой реализации (связь по заказу)
я в таких случаях беру карандаш и начинаю рисовать
начальные условия - что могу получить их условий - что должен получить в результате
и так для всех вариантов начальных условий
опишите задачу подробно
судя по всему из суммы заказа нужно вычесть закрытие (связь по заказу) и получить результирующую сумму заказа, которую потом сравнить с суммой реализации (связь по заказу)
(46) Задача следующая:
1) Есть документ "Согласованная сумма" В которой указывается дата начала и дата конца. Так же контрагент и сумма.
2) В итоге при проведении заказа, если СуммаЗаПериод(Которая и берёт мой запрос) + СуммаТекущегоПроводимого заказа > Согласованной суммы, то не проводим.
Собственно и всё.
Всё учитывается нормально, но вот эти связки с Заказом и реализацией не совсем правильно учитываются по моему условию, не знаю что даже и делать...
По поводу этого:
1) Это же получается только одно условие я могу обойти таким способом, но есть же и другие случаи, или я ошибаюсь?
2) Как получить в моём же запросе сумму закрытия ? хм
1) Есть документ "Согласованная сумма" В которой указывается дата начала и дата конца. Так же контрагент и сумма.
2) В итоге при проведении заказа, если СуммаЗаПериод(Которая и берёт мой запрос) + СуммаТекущегоПроводимого заказа > Согласованной суммы, то не проводим.
Собственно и всё.
Всё учитывается нормально, но вот эти связки с Заказом и реализацией не совсем правильно учитываются по моему условию, не знаю что даже и делать...
судя по всему из суммы заказа нужно вычесть закрытие (связь по заказу) и получить результирующую сумму заказа, которую потом сравнить с суммой реализации (связь по заказу)
По поводу этого:
1) Это же получается только одно условие я могу обойти таким способом, но есть же и другие случаи, или я ошибаюсь?
2) Как получить в моём же запросе сумму закрытия ? хм
(46)Вы правильно описали, но помогите как в моём запросе вычитать сумму закрытия из заказа и после сравнивать по моему условию...
Разве эта сумма по заказу(заказ - закрытие) уже не должна сразу вылазить ?
То есть закрытие появляется только когда номенклатурная сетка разница, но как это исключить в запросе...
Разве эта сумма по заказу(заказ - закрытие) уже не должна сразу вылазить ?
То есть закрытие появляется только когда номенклатурная сетка разница, но как это исключить в запросе...
(49)Вот скриншот. Взят регистр Заказы покупателей,без условия:
Только отбор по дате и контрагенту. Заказ покупателя один и тот же у каждой строки.
В итоге вот результат.
Как вы и сказали,надо из суммызаказа вычесть закрытие, после сравнить эту сумму с реализацией по условию как раз которое меня уже есть в запросе при связке заказа и реализации
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
Только отбор по дате и контрагенту. Заказ покупателя один и тот же у каждой строки.
В итоге вот результат.
Как вы и сказали,надо из суммызаказа вычесть закрытие, после сравнить эту сумму с реализацией по условию как раз которое меня уже есть в запросе при связке заказа и реализации
Прикрепленные файлы:
(51) чисто теоретически
втЗаказы - запрос к Заказы по регистратору Заказ, в результате ЗаказСумма, ЗаказСсылка
втЗаказыЗакрытые - запрос к Заказы по регистратору ЗакрытиеЗаказа, в результате ()минус) - ЗаказЗакрытиеСумма, ЗаказСсылка
втЗаказы и втЗаказыЗакрытые соединяем по ЗаказСсылка и суммируем по сумме, за счет знака минус в втЗаказыЗакрытые сумма заказа уменьшится
остальное у вас уже реализовано
втЗаказы - запрос к Заказы по регистратору Заказ, в результате ЗаказСумма, ЗаказСсылка
втЗаказыЗакрытые - запрос к Заказы по регистратору ЗакрытиеЗаказа, в результате ()минус) - ЗаказЗакрытиеСумма, ЗаказСсылка
втЗаказы и втЗаказыЗакрытые соединяем по ЗаказСсылка и суммируем по сумме, за счет знака минус в втЗаказыЗакрытые сумма заказа уменьшится
остальное у вас уже реализовано
(49) В общем, смастерил так:
Правильно ли это будет по Вашему мнению ?
Правильно ли это будет по Вашему мнению ?
ВЫБРАТЬ
РТУ.Регистратор,
СУММА(РТУ.Стоимость) КАК СуммаРТУ,
РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
РегистрНакопления.Продажи КАК РТУ
ГДЕ
РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И РТУ.Контрагент = &Контрагент
И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
СГРУППИРОВАТЬ ПО
РТУ.Регистратор,
РТУ.Регистратор.Сделка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказыПокупателей.СуммаВзаиморасчетов,
ЗаказыПокупателей.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Закрытие
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
ГДЕ
ЗаказыПокупателей.ЗаказПокупателя.Контрагент = &Контрагент
И ЗаказыПокупателей.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗаказыПокупателей.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА Заказы.СуммаЗаказов - ЕСТЬNULL(ВТ_Закрытие.СуммаВзаиморасчетов, 0) <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ИНАЧЕ Заказы.СуммаЗаказов - ЕСТЬNULL(ВТ_Закрытие.СуммаВзаиморасчетов, 0)
КОНЕЦ КАК Поле1
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
ВТ_РТУ КАК Реализации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закрытие КАК ВТ_Закрытие
ПО Заказы.ЗаказПокупателя = ВТ_Закрытие.ЗаказПокупателя
ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот