1. Intercititude 25.03.20 10:25 Сейчас в теме

Сумма по контрагенту за день.

Доброе утро.
Необходимо получить сумму по контрагенту за день для документов "Заказ покупателя".

Корректно ли это(дата документа заказа покупателя и контрагент оттуда)? :
	Запрос2 = Новый запрос;
	Запрос2.Текст = "ВЫБРАТЬ
	|	РасчетыСКонтрагентамиОбороты.Контрагент,
	|	РасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
	|	РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаОборот
	|ИЗ
	|	РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, День, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты";
	
	Запрос2.УстановитьПараметр("Контрагент",Контрагент);
	Запрос2.УстановитьПараметр("ДатаНач",НачалоДня(Дата));
	Запрос2.УстановитьПараметр("ДатаКон",КонецДня(Дата));
	
	ВыборкаСуммаЗаДень = Запрос2.Выполнить().Выбрать();
	
	Пока ВыборкаСуммаЗаДень.Следующий() Цикл
		СуммаЗаДень = ВыборкаСуммаЗаДень.СуммаОборот;
	КонецЦикла;
Показать


Думаю,что по этому регистру делают движения много документов и это некорректно,как сделать правильнее?
Вознаграждение за ответ
Показать полностью
Найденные решения
18. Intercititude 25.03.20 12:45 Сейчас в теме
(17) Ну вот у меня так вышло. Вроде суммы верны теперь. Но как мне получить одну сумму,так как в итоге мне необходимо с ней играться будет.

ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
	СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
		0 КАК СуммаПоРеализациям
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
	ГДЕ
		ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
3. danjer74 1 25.03.20 10:52 Сейчас в теме
(1)"ВЫБРАТЬ
| РасчетыСКонтрагентамиОбороты.Контрагент,
| РасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
| РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаОборот
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты ГДЕ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя". Примерно так по всем заказам контрагента за день.
Intercititude; +1 Ответить
4. Intercititude 25.03.20 11:00 Сейчас в теме
(3)

Появился ещё вопрос,заказ покупателя же может быть связан с документом "Реализация товаров и услуг" и по идее же сумму из РТУ тоже надо учитывать ?
5. Intercititude 25.03.20 11:37 Сейчас в теме
(4) Не наверно,а да надо. А РТУ не делает движения по регистру "РасчетыСКонтрагентами". Как быть ?!
7. danjer74 1 25.03.20 11:51 Сейчас в теме
(5)ВзаиморасчетыСКонтрагентами
6. danjer74 1 25.03.20 11:50 Сейчас в теме
(4)Конструкция "ГДЕ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя" отсекает только по документам ЗаказаПокупателя. Здесь передается тип документа, а не ссылка на конкретный. добавьте в выборку Регистратор и увидите :)
8. danjer74 1 25.03.20 11:53 Сейчас в теме
(4)Делать объединением. Во второй выборке регистратор РТИУ с условием, что у них основания - заказы за выбранный период
9. Intercititude 25.03.20 12:07 Сейчас в теме
(8)Извините,не совсем понял этого. Где сделать условие на регистратор основание?

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

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

ВЫБРАТЬ
	ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
ИЗ
	РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
Показать
10. danjer74 1 25.03.20 12:13 Сейчас в теме
(9)
ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
	СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
		0 КАК СуммаПоРеализациям
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать

Как-то так. Два поля будет. Это без учета, что у реализаций есть основания - это по всем реализациям. Ваш вариант просто сумму покажет по этим документам.
11. Intercititude 25.03.20 12:22 Сейчас в теме
(10) СуммаПоРеализациям почему то 0. И Мне же нужна одна сумма только по идее. И как сделать чтобы учитывались основания рту ?
12. danjer74 1 25.03.20 12:34 Сейчас в теме
(11)
ВЫБРАТЬ
    СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
    СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
    (ВЫБРАТЬ
        РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
        0 КАК СуммаПоРеализациям
    ИЗ
        РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
    ГДЕ
        РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
    ИЗ
        РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
    ГДЕ
        РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать


У меня этот запрос норм отрабатывает. Вы правильно указваете инетрвал? Например: ДатаНач 01.01.2020 00:00:00, ДатаКон - 01.01.2020 23:59:59 Они в консоли могут меняться местами. Проверьте, пожалуйста. А еще как вариант - по контрагенту иожет не быть движений. :)
13. Intercititude 25.03.20 12:36 Сейчас в теме
(12) у Вас регистры одинаковые. В этом дело похоже.
14. danjer74 1 25.03.20 12:38 Сейчас в теме
(11)
ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК Сумма
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
это просто по реализациям и заказам
15. Intercititude 25.03.20 12:39 Сейчас в теме
(14)у меня РТУ вообще не делает движения по "РасчетыСКонтрагентами"
17. danjer74 1 25.03.20 12:40 Сейчас в теме
(15)Надо открыть любой документ реализации и посмотреть, где делаются движения
18. Intercititude 25.03.20 12:45 Сейчас в теме
(17) Ну вот у меня так вышло. Вроде суммы верны теперь. Но как мне получить одну сумму,так как в итоге мне необходимо с ней играться будет.

ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
	СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
		0 КАК СуммаПоРеализациям
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
	ГДЕ
		ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
19. danjer74 1 25.03.20 12:49 Сейчас в теме
(18)
ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК Сумма
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
Вот таким образом. Громоздко, но методолгически правильно :) Но здесь учитываются все заказы и все реализации. Их общая сумма.
21. Intercititude 25.03.20 12:53 Сейчас в теме
(19) Не пойму почему вы не используете регистр "ВзаиморасчетыСКонтрагентами". Рту делает движения по нему,по РасчетСКонтрагентами совсем не делает реализация.
22. danjer74 1 25.03.20 13:00 Сейчас в теме
(21)Ну, поправьте. Я на УПП смотрю - у меня делает :)
Intercititude; +1 Ответить
20. danjer74 1 25.03.20 12:53 Сейчас в теме +0.3 $m
(18)Здесь у Вас нагляднее получается - отдельно заказы, отдельно реализации. Если надо будет, можно вычитать одну из другой или складывать. Но это уже в объектной модели, при обработке результата запроса.
Intercititude; +1 Ответить
16. danjer74 1 25.03.20 12:39 Сейчас в теме
(11)Надо создать временную таблицу с заказами и при получении суммы по реализациям указать в условии, что основание В временная таблица
2. alex_bob 222 25.03.20 10:49 Сейчас в теме
Недостаточно данных. Если у вас в базе одна организация, один договор с контрагентом, не ведется учет по сделкам, то в принципе может случайно быть получен верный результат. В общем случае вы получите сумму из последней строки выборки.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Product Owner (Менеджер по продукту 1С)
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день

Тим лид по разработке 1С (Team Lead 1С)
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день