Cложности перевода с построителя отчетов на скд.

1. Shecurok 19.02.21 17:21 Сейчас в теме
Добрый вечер всем.
Беда случилась - есть готовый отчет (взял обработку здесь), немного его поддредактировал под свои нужды (пара столбцов новых). Все работает, все считает как надо.
Нооо я бы не писал здесь если было бы вообще все гладко. По номенклатуре которая используется в отчете надо делать отбор - и его можно сделать в пользовательском интерфейсе через форму настроек, но еще одно но - при таком положении дел у меня неверно считается процент от общих продаж.

Попробую объяснить.

Есть контрагент. Рядом с ним столбец с суммой продаж по этому контрагенту. Контрагентов сами понимаете хватает. И вот в конце есть поле итогов этих сумм (это важно). Следующий идет столбец с "процент от общих продаж). Считается он следующим образом: Сумма (продаж по этому контру) / СуммаИтого.

И вот если я делаю отбор в пользовательском интерфейсе, то номенклатура отбирается. Но суммы продаж контрагентов вне отбора все равно попадают в СуммаИтого. А мне этого не надо - необходимо чтобы столбец "процент от общих продаж" давал в сумме 100%, а не как сейчас 14 процентов за годовой отрезок времени.

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

И вот вопрос - как заставить уже существующий запрос работать в скд? Сейчас проверяю его в консоли запросов - не выводит ничего. Параметры тоже указывал которые есть в запросе. В чем может быть беда?

ПостроительОтчетаОтчет.Текст =
	"ВЫБРАТЬ
	|	Sales.Номенклатура КАК Номенклатура,
	|	Sales.Контрагент КАК Покупатель,
	|	Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
	|	СУММА(Sales.Количество) КАК Количество,
	|	СУММА(Sales.Сумма) КАК Net_Sales_YTD,
	|	СРЕДНЕЕ(Sales.Цена) КАК Цена,
	|	Sales.Регистратор КАК Регистратор,
	|	ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК GP1_RUB,
	|	ВЫБОР
	|		КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
	|			ТОГДА 0
	|		ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
	|	КОНЕЦ КАК GP1_Percent,
	|	PrimeCost.ЦенаСебест КАК ЦенаСебест,
	|	ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК COGS,
	|	СУММА(ВЫБОР
	|			КОГДА AllSales.Сумма = 0
	|				ТОГДА 0
	|			ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма / AllSales.Сумма * 100 КАК ЧИСЛО(15, 2))
	|		КОНЕЦ) КАК Bayers_Share_In_Total_Net_Sales
	|ИЗ
	|	(ВЫБРАТЬ
	|		ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
	|		ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
	|		ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
	|		ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
	|		ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
	|		ВЫБОР
	|			КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
	|				ТОГДА 0
	|			ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
	|		КОНЕЦ КАК Цена,
	|		ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
	|	ИЗ
	|		РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
	|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
	|			ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
	|			ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
	|			ВЫБОР
	|				КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
	|					ТОГДА 0
	|				ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
	|			КОНЕЦ КАК ЦенаСебест
	|		ИЗ
	|			РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
	|					&НачПер,
	|					&КонПер,
	|					Период,
	|					СчетДт = &Сч9002
	|						ИЛИ СчетДт = &Сч9102,
	|					,
	|					СчетКт = &Сч43
	|						ИЛИ СчетКт = &Сч4101
	|						ИЛИ СчетКт = &Сч4104
	|						ИЛИ СчетКт = &Сч10,
	|					,
	|					Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
	|		ПО Sales.Номенклатура = PrimeCost.Номенклатура
	|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			СУММА(ХозрасчетныйОборотыДтКт.СуммаОборот) КАК Сумма
	|		ИЗ
	|			РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК AllSales
	|		ПО (ИСТИНА)
	|
	|СГРУППИРОВАТЬ ПО
	|	Sales.Номенклатура,
	|	Sales.Контрагент,
	|	Sales.ДоговорКонтрагента,
	|	Sales.Регистратор,
	|	PrimeCost.ЦенаСебест,
	|	ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
	|	ВЫБОР
	|		КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
	|			ТОГДА 0
	|		ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
	|	КОНЕЦ,
	|	ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2))
	|ИТОГИ
	|	СУММА(Количество),
	|	СУММА(Net_Sales_YTD),
	|	СРЕДНЕЕ(Цена),
	|	СУММА(GP1_RUB),
	|	СРЕДНЕЕ(GP1_Percent),
	|	СРЕДНЕЕ(ЦенаСебест),
	|	СУММА(COGS),
	|	СУММА(Bayers_Share_In_Total_Net_Sales) 
	|ПО
	|	ОБЩИЕ,
	|	Покупатель";
Показать


Бух 2.0.
Вознаграждение за ответ
Показать полностью
Найденные решения
12. user633533_encantado 11 19.02.21 18:18 Сейчас в теме +2 $m
Вот, решение.
Прикрепленные файлы:
Sales.erf
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Shecurok 19.02.21 17:27 Сейчас в теме
Дополнение: выводит в консоли запросов одну строчку где все пусто кроме суммы. Период в параметрах заполнено, организация тоже.
3. user633533_encantado 11 19.02.21 17:57 Сейчас в теме
нормально все в скд работает и отбирает.
Прикрепленные файлы:
4. пользователь 19.02.21 18:04
Сообщение было скрыто модератором.
...
5. пользователь 19.02.21 18:04
Сообщение было скрыто модератором.
...
6. Shecurok 19.02.21 18:08 Сейчас в теме
(3) ну на скрине видно, что многие столбцы пустые
Без использования СКД выглядит примерно так:
Прикрепленные файлы:
7. Shecurok 19.02.21 18:09 Сейчас в теме
(6) извиняюсь, не увидел второй скрин
8. user633533_encantado 11 19.02.21 18:11 Сейчас в теме
(6) Ну потому что это сделано на демо базе ERP, в вашем случае счета учета и проводки с их аналитикой могут отличаться от демки.
10. Shecurok 19.02.21 18:13 Сейчас в теме
(8) да, по второму скрину видно. что у Вас нормально там всё.
9. Shecurok 19.02.21 18:12 Сейчас в теме
(3) просто вопрос, запрос изменяли как-то? или все получилось без этого и надо было настроить только парметры и дет.записи?
11. user633533_encantado 11 19.02.21 18:15 Сейчас в теме
(9) заменял его так, чтобы его можно было впихнуть в схему, но не сильно.

Если вы реально пытались его переделать под скд, то при попытке его туда вставить 1с выдала бы наводящие замечания.

То что он у вас в консоле не отрабатывает, так это вы параметры неверные выставили, скорее всего.
12. user633533_encantado 11 19.02.21 18:18 Сейчас в теме +2 $m
Вот, решение.
Прикрепленные файлы:
Sales.erf
13. Shecurok 19.02.21 18:22 Сейчас в теме
(11) самое интересное - ругалось только на итоги и поле по (сааамый самыый конец). Я это просто удалял.
(12) увидел Ваше сообщение после того как начал писать) если Вы не обидетесь, то я завтра все проверю и уже завтра sm отдам. До 12 утра напишу) без обид только.
14. user633533_encantado 11 19.02.21 18:25 Сейчас в теме
15. Shecurok 20.02.21 11:20 Сейчас в теме
(14) спасибо большое за помощь, со всем разобрался кроме отбора по группе (как сделать в самом скд. чтоб через пользовательские настройки не лазить). Но это думаю сделаю еще. Еще раз спасибо
16. user633533_encantado 11 20.02.21 11:27 Сейчас в теме
(15) Ставите отбор не в списке, а в группе из списка и все.
17. Shecurok 20.02.21 11:37 Сейчас в теме
(16) я может не так объяснил. Т.е. настраивать (пытаться) буду так, чтобы когда заходишь в отчет, нажимаешь сформировать и отбор уже был. с насттройками из первого скрина идет бесконечный вывод отчета. Оно и понятно. На втором скрине указано где находится та подгруппа по которой надо делать отбор (т.е все элементы что находятся в папке net sales film и подпаках дальше). В самом СКД это вообще получится сделать? Или надо лезть в модуль обработки и прописывать там? Если да. то это жопа, ибо не умею))
Прикрепленные файлы:
18. user633533_encantado 11 20.02.21 12:48 Сейчас в теме
(17) В настройках скд нельзя установить отбор на неопределенный элемент (на самом деле можно, но не нужно). Это именно настройки.
Что вам мешает вывести в шапку отчета отбор по группе и пользователь эту группу укажет ?
Оставьте свое сообщение

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