Как получить общее число по дням?

1. Terabaytus 26.07.24 08:52 Сейчас в теме
Добрый день, пишу запрос к регистру накоплений нужно согласно таблице, в закрепе, получить общее число покупателей в категории "из них" за день потом сложить эти категории за день в колонку "Всего" как это сделать не СКД?
Например в категории "Узнавших из других источников" было 3 покупателя в этот день, а в категории "Пришедший по приглашению" 1 покупатель "Всего" сотовляет 4 покупателя в этот день.
Прикрепленные файлы:
Книга1.xlsx
По теме из базы знаний
Найденные решения
13. usershmuser 26.07.24 10:06 Сейчас в теме
(12) Да пожалуйста
https://infostart.ru/1c/articles/1124762/?ysclid=lz2cypomu9977015675


нужно использовать СГРУППИРОВАТЬ ПО
Terabaytus; +1 Ответить
15. Vlan 36 26.07.24 10:28 Сейчас в теме
(14)
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, , ) КАК РаботаОбороты";


| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты";
Terabaytus; +1 Ответить
16. usershmuser 26.07.24 10:40 Сейчас в теме
(14)
СтрокаОтчёта.Параметры.УзнавшийИзДругихИсточников = Данные.УзнавшийИзДругихИсточников;
СтрокаОтчёта.Параметры.ПришедшийПоПриглашению = Данные.ПришедшийПоПриглашению;

Добавляй
СтрокаОтчёта.Параметры.ОбщееКоличествоПришедших = Данные.УзнавшийИзДругихИсточников + Данные.ПришедшийПоПриглашению;


Соответственно "ОбщееКоличествоПришедших" - параметр на форме
Terabaytus; +1 Ответить
21. Vlan 36 26.07.24 12:07 Сейчас в теме
(20) Примерно так. Проверьте в консоли запросов
    "ВЫБРАТЬ
    |    СУММА(РаботаОбороты.УзнавшийИзДругихИсточниковОборот),
    |    СУММА(РаботаОбороты.ПришедшийПоПриглашениюОборот)
    |ИЗ
    |    РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, День , ) КАК РаботаОбороты
|СГРУППИРОВАТЬ ПО
|РаботаОбороты.Период
Terabaytus; +1 Ответить
23. usershmuser 26.07.24 12:50 Сейчас в теме
(17) Вот как в (21)
 "ВЫБРАТЬ
    |    СУММА(РаботаОбороты.УзнавшийИзДругихИсточниковОборот),
    |    СУММА(РаботаОбороты.ПришедшийПоПриглашениюОборот),
    |    РаботаОбороты.Период
    |ИЗ
    |    РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, День , ) КАК РаботаОбороты
|СГРУППИРОВАТЬ ПО
|РаботаОбороты.Период
Показать


Только с запросом периода
Terabaytus; +1 Ответить
32. Vlan 36 26.07.24 15:25 Сейчас в теме
(31) Чудес не бывает. Либо не суммируете оборот, либо в группировке еще что-то, кроме даты, где есть различные значения.
usershmuser; +1 Ответить
33. usershmuser 26.07.24 15:38 Сейчас в теме
(31) в (32) правильно говорит про различные значения - необходимо проверить.
А именно проверяй записи в регистре РегистрНакопления.Работа на наличие дублей за 08.07.
Так же этот запрос запускай в консоли запросов и смотри разность строк.
Ну и текст запроса в студию.
Terabaytus; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Vlan 36 26.07.24 09:21 Сейчас в теме
(1) Не понимаю, что мешает просто суммировать в дополнительном поле значения из двух (или более) колонок?
5. Terabaytus 26.07.24 09:26 Сейчас в теме
(4) так как их по дням то разбить?
6. Vlan 36 26.07.24 09:27 Сейчас в теме
(4) Кажется, я понял. Проблема в том, чтобы записи регистра распределить по колонкам? Делайте через ВЫБОР КОГДА. Если группа у клиента такая - заполняем поле Такое, если другая, заполняем поле Другое. Потом суммируем.
9. Terabaytus 26.07.24 09:50 Сейчас в теме
(6) Я их распределяю по колонкам. Проблема как их по дням раскидать и в один день может придти несколько категорий их надо сложить и общий результат по категориям получить.
10. Vlan 36 26.07.24 09:53 Сейчас в теме
(9) Можете свой запрос показать?
14. Terabaytus 26.07.24 10:23 Сейчас в теме
(10)

Процедура КнопкаСформироватьНажатие(Кнопка)  
		
 	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	РаботаОбороты.УзнавшийИзДругихИсточниковОборот,
	|	РаботаОбороты.ПришедшийПоПриглашениюОборот
	|ИЗ
	|	РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, , ) КАК РаботаОбороты";
	
	Если НЕ Прод.Пустая() Тогда
		Запрос.Текст = Запрос.Текст + "
		|ГДЕ
		|	РаботаОбороты.Прод = &Прод";
		
		Запрос.УстановитьПараметр("Прод", Прод);
	КонецЕсли;
	
	Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата1));
	Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
	ВыборкаЗапроса = Запрос.Выполнить().Выбрать();
	
	ТабДок = Новый ТабличныйДокумент;
	Макет = Отчеты.УчётаРаботы.ПолучитьМакет("МакетОтчёт");
	МакетОтчёт = ЭтотОбъект.ПолучитьМакет(МакетОтчёт);
	МакетОтчёт.Параметры.Дата1 = Формат(Дата1, "ДЛФ=D");
	МакетОтчёт.Параметры.Дата2 = Формат(Дата2, "ДЛФ=D");
	
	Шапка = Макет.ПолучитьОбласть("Шапка");
	СтрокаОтчёта = Макет.ПолучитьОбласть("Строка");  
	Подвал = Макет.ПолучитьОбласть("Подвал"); 	

	Шапка.Параметры.Дата1 = Дата1;	
	Шапка.Параметры.Дата2 = Дата2;
	Шапка.Параметры.Продавец = Строка(Прод) + " " + Прод.Отдел;	
    ТабДок.Вывести(Шапка);

	Данные = Новый Структура;
	
	Пока ВыборкаЗапроса.Следующий() Цикл
		 
			
			Данные.Вставить("УзнавшийИзДругихИсточников", ВыборкаЗапроса.УзнавшийИзДругихИсточниковОборот);
			Данные.Вставить("ПришедшийПоПриглашению", ВыборкаЗапроса.ПришедшийПоПриглашениюОборот);
			
						
		Для Каждого ТекущаяСтрока Из Данные Цикл
			
			СтрокаОтчёта.Параметры.УзнавшийИзДругихИсточников = Данные.УзнавшийИзДругихИсточников;
			СтрокаОтчёта.Параметры.ПришедшийПоПриглашению = Данные.ПришедшийПоПриглашению;
									   
		
		КонецЦикла;
		
		ТабДок.Вывести(СтрокаОтчёта);
		
	КонецЦикла;	
					
	ТабДок.ОтображатьСетку = Ложь;	
	ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R11:R14");	
	ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ТабДок.АвтоМасштаб = Истина;	
	ТабДок.Защита = Ложь;	
	ТабДок.ТолькоПросмотр = Истина;
	ТабДок.ОтображатьЗаголовки = Ложь;	
	ТабДок.Показать("Ведомость за период с " + Формат(Дата1, "ДФ=dd.MM.yyyy") + " по " + Формат(Дата2, "ДФ=dd.MM.yyyy"));
	
КонецПроцедуры

Показать
15. Vlan 36 26.07.24 10:28 Сейчас в теме
(14)
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, , ) КАК РаботаОбороты";


| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты";
Terabaytus; +1 Ответить
18. Terabaytus 26.07.24 11:48 Сейчас в теме
(15) Ни чего не изменилось разными строками всё выводиться нужно пришедших в один день категории вывести в одну строку?
19. Vlan 36 26.07.24 12:03 Сейчас в теме
(18) Сгруппируйте по периоду, а обороты суммируйте.
20. Terabaytus 26.07.24 12:04 Сейчас в теме
(19) я так не могу понять можно пример в коде?
21. Vlan 36 26.07.24 12:07 Сейчас в теме
(20) Примерно так. Проверьте в консоли запросов
    "ВЫБРАТЬ
    |    СУММА(РаботаОбороты.УзнавшийИзДругихИсточниковОборот),
    |    СУММА(РаботаОбороты.ПришедшийПоПриглашениюОборот)
    |ИЗ
    |    РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, День , ) КАК РаботаОбороты
|СГРУППИРОВАТЬ ПО
|РаботаОбороты.Период
Terabaytus; +1 Ответить
24. Terabaytus 26.07.24 14:00 Сейчас в теме
(21) Почему то пишет синтаксическая ошибка ГДЕ
26. Vlan 36 26.07.24 14:02 Сейчас в теме
(24) ГДЕ вставляйте после ИЗ, группируйте в конце
27. Terabaytus 26.07.24 14:03 Сейчас в теме
(26) Так оно по условию я в него продавца вставляю и по нему отбор делаю
28. Terabaytus 26.07.24 14:04 Сейчас в теме
(26) да пробовал и после ГДЕ тоже самое
29. Vlan 36 26.07.24 14:05 Сейчас в теме
(28) В отладчике откройте полный текст запроса (после всех добавлений) и сюда скопируйте.
30. usershmuser 26.07.24 14:06 Сейчас в теме
(28) Запрос с ошибкой сюда напиши. Возможно отбор по дате стоит перенести в ГДЕ
31. Terabaytus 26.07.24 15:21 Сейчас в теме
(29)
(30) Всё разобрался СГРУППИРОВАТЬ ПО надо было ставить после ГДЕ плюс поля добовлять. Но только у меня всё так же как на фото 2 категории пришли 8 числа как их в одну строку вывести?
Прикрепленные файлы:
32. Vlan 36 26.07.24 15:25 Сейчас в теме
(31) Чудес не бывает. Либо не суммируете оборот, либо в группировке еще что-то, кроме даты, где есть различные значения.
usershmuser; +1 Ответить
35. Terabaytus 26.07.24 16:03 Сейчас в теме
(32) А как его может не суммировать я прописал СУММА ?
33. usershmuser 26.07.24 15:38 Сейчас в теме
(31) в (32) правильно говорит про различные значения - необходимо проверить.
А именно проверяй записи в регистре РегистрНакопления.Работа на наличие дублей за 08.07.
Так же этот запрос запускай в консоли запросов и смотри разность строк.
Ну и текст запроса в студию.
Terabaytus; +1 Ответить
34. Terabaytus 26.07.24 15:56 Сейчас в теме
(33)
Процедура КнопкаСформироватьНажатие(Кнопка)  
        
     Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    СУММА(РаботаОбороты.УзнавшийИзДругихИсточниковОборот),
    |    СУММА(РаботаОбороты.ПришедшийПоПриглашениюОборот)
    |ИЗ
    |    РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, , ) КАК РаботаОбороты";
    
    Если НЕ Прод.Пустая() Тогда
        Запрос.Текст = Запрос.Текст + "
        |ГДЕ
        |    РаботаОбороты.Прод = &Прод
        |СГРУППИРОВАТЬ ПО
        | РаботаОбороты.УзнавшийИзДругихИсточниковОборот,
        |    РаботаОбороты.ПришедшийПоПриглашениюОборот";
        Запрос.УстановитьПараметр("Прод", Прод);
    КонецЕсли;
    
    Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата1));
    Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
    ВыборкаЗапроса = Запрос.Выполнить().Выбрать();
    
    ТабДок = Новый ТабличныйДокумент;
    Макет = Отчеты.УчётаРаботы.ПолучитьМакет("МакетОтчёт");
    МакетОтчёт = ЭтотОбъект.ПолучитьМакет(МакетОтчёт);
    МакетОтчёт.Параметры.Дата1 = Формат(Дата1, "ДЛФ=D");
    МакетОтчёт.Параметры.Дата2 = Формат(Дата2, "ДЛФ=D");
    
    Шапка = Макет.ПолучитьОбласть("Шапка");
    СтрокаОтчёта = Макет.ПолучитьОбласть("Строка");  
    Подвал = Макет.ПолучитьОбласть("Подвал");     

    Шапка.Параметры.Дата1 = Дата1;    
    Шапка.Параметры.Дата2 = Дата2;
    Шапка.Параметры.Продавец = Строка(Прод) + " " + Прод.Отдел;    
    ТабДок.Вывести(Шапка);

    Данные = Новый Структура;
    
    Пока ВыборкаЗапроса.Следующий() Цикл
         
            
            Данные.Вставить("УзнавшийИзДругихИсточников", ВыборкаЗапроса.УзнавшийИзДругихИсточниковОборот);
            Данные.Вставить("ПришедшийПоПриглашению", ВыборкаЗапроса.ПришедшийПоПриглашениюОборот);
            
                        
        Для Каждого ТекущаяСтрока Из Данные Цикл
            
            СтрокаОтчёта.Параметры.УзнавшийИзДругихИсточников = Данные.УзнавшийИзДругихИсточников;
            СтрокаОтчёта.Параметры.ПришедшийПоПриглашению = Данные.ПришедшийПоПриглашению;
                                       
        
        КонецЦикла;
        
        ТабДок.Вывести(СтрокаОтчёта);
        
    КонецЦикла;    
                    
    ТабДок.ОтображатьСетку = Ложь;    
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R11:R14");    
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб = Истина;    
    ТабДок.Защита = Ложь;    
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.ОтображатьЗаголовки = Ложь;    
    ТабДок.Показать("Ведомость за период с " + Формат(Дата1, "ДФ=dd.MM.yyyy") + " по " + Формат(Дата2, "ДФ=dd.MM.yyyy"));
    
КонецПроцедуры

Показать
16. usershmuser 26.07.24 10:40 Сейчас в теме
(14)
СтрокаОтчёта.Параметры.УзнавшийИзДругихИсточников = Данные.УзнавшийИзДругихИсточников;
СтрокаОтчёта.Параметры.ПришедшийПоПриглашению = Данные.ПришедшийПоПриглашению;

Добавляй
СтрокаОтчёта.Параметры.ОбщееКоличествоПришедших = Данные.УзнавшийИзДругихИсточников + Данные.ПришедшийПоПриглашению;


Соответственно "ОбщееКоличествоПришедших" - параметр на форме
Terabaytus; +1 Ответить
17. Terabaytus 26.07.24 11:44 Сейчас в теме
(16) Да уже ближе вторая часть вопроса если у меня в один день допустим 20.07 пришли 2 категории одновременно и их надо вывести в один день как это сделать? Сейчас у меня выводится всё в разные строки, но те кто пришл в один день по приглашению и узнавший из других источников надо в одну строку вывести.
22. usershmuser 26.07.24 12:38 Сейчас в теме
(17) Добавь в запрос дату и группируй по этому полю.
У тебя получается, что пытается сгруппировать по реквизиту, которого нет.
Как выше писали, проверяй запросы в консоли запросов
23. usershmuser 26.07.24 12:50 Сейчас в теме
(17) Вот как в (21)
 "ВЫБРАТЬ
    |    СУММА(РаботаОбороты.УзнавшийИзДругихИсточниковОборот),
    |    СУММА(РаботаОбороты.ПришедшийПоПриглашениюОборот),
    |    РаботаОбороты.Период
    |ИЗ
    |    РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, День , ) КАК РаботаОбороты
|СГРУППИРОВАТЬ ПО
|РаботаОбороты.Период
Показать


Только с запросом периода
Terabaytus; +1 Ответить
25. Terabaytus 26.07.24 14:02 Сейчас в теме
(23) Почему то пишет синтаксическая ошибка ГДЕ
11. usershmuser 26.07.24 09:59 Сейчас в теме
(9)
как их по дням раскидать

группировка по дате в запросе
12. Terabaytus 26.07.24 10:00 Сейчас в теме
13. usershmuser 26.07.24 10:06 Сейчас в теме
(12) Да пожалуйста
https://infostart.ru/1c/articles/1124762/?ysclid=lz2cypomu9977015675


нужно использовать СГРУППИРОВАТЬ ПО
Terabaytus; +1 Ответить
8. usershmuser 26.07.24 09:48 Сейчас в теме
(1)
согласно таблице, в закрепе

Можно было бы и формулы написать в таблице для полного понимания)))
2. usershmuser 26.07.24 08:59 Сейчас в теме
Если отчет на скд, то в ресурсах создавай поле и пиши выражение, прим: Сумма(ДругойИсточник, Приглашение), потом это поле добавляешь в настройках
3. Terabaytus 26.07.24 09:00 Сейчас в теме
7. usershmuser 26.07.24 09:45 Сейчас в теме
(3) тогда обрабатывай результат запроса в цикле перед заполнением формы
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот