Анализ движений регистров накопления

Отчеты - Управленческие

СКД движения регистр накопления УТ 11

4
Отчет показывает  движения (выбранное измерение + ресурсы) по выбранным  регистрам,  с отбором по  значению измерения.

Сделан  на СКД.  

Тестировался на демо-базе   УТ 11 (платформа 8.3.11.2899).

P/S В текущей версии расшифровка не работает.

4

Скачать файлы

Наименование Файл Версия Размер
Анализ движений регистров накопления:
.erf 16,51Kb
10.04.18
5
.erf 16,51Kb 5 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. akim2040 3 11.04.18 05:13 Сейчас в теме
Чем отличается от типового "Универсального отчёта"?
2. pm74 127 11.04.18 07:15 Сейчас в теме
(1) универсальный, если память не изменяет, строится по одной таблице
3. akim2040 3 11.04.18 07:23 Сейчас в теме
(2) в универсальном отчетё можно всё что угодно сделать, в толстом клиенте залез в скд, и втори что хочешь
4. pm74 127 11.04.18 07:25 Сейчас в теме
(3) не спорю , отчет сделал больше для себя , для единственной прикладной задачи - посмотреть как изменяются движения документов в зависимости от разных настроек
5. leosoft 125 28.05.18 10:26 Сейчас в теме
Интересный отчетик!
Однако заметил такую неприятную особенность:

Формирую отчет с фильтрацией по измерению Физлицо.
Если галочка по измерению стоит в настройках регистра
все формирует нормально. Но если ее убрать - тогда
фильтр снимается и формируются записи по всем физлицами!

Однако если отбираем по одному физлицу - зачем его нам
в таблицы выводить?
6. pm74 127 28.05.18 10:43 Сейчас в теме
(5)
гипотетически в регистре могут быть >1 измерений с нужным типом
поэтому запрос для каждого набора данных собирается как
ВыборСтрок = ИзмеренияРегистровНакопления.НайтиСтроки(Новый Структура ("КлючОтбора,Использовать",КлючОтбора,Истина));

	Для Каждого ВыбраннаяСтрока Из ВыборСтрок Цикл
7. leosoft 125 28.05.18 11:10 Сейчас в теме
(6) Даже если их несколько и мы выбрали отбор по одному -

1) зачем нам выводить одно и то же значение в колонки отбора?
2) Почему не срабатывает отбор?

Нельзя ли это как-то подправить? Иначе надо по всем регистрам
дополнительно ставить галочки на измерения и выводится лишняя
информация.
8. pm74 127 28.05.18 11:25 Сейчас в теме
(7)
сама схема динамически собирается из нескольких несвязанных наборов данных , соответственно
элементов отбора столько же
галочки нужны для того, чтобы собрать текст запроса для набора данных
Нельзя ли это как-то подправить?
ок я вечером посмотрю
9. pm74 127 28.05.18 21:59 Сейчас в теме
(7) посмотрел , предлагаю такое решение - галочки проставляются автоматически ТОЛЬКО для первого измерения регистра с типом ТОЧНО соответствующим выбранному , составные измерения ( различные КлючиАналитики) не помечаются

в модуле формы отчета нужно заменить 2 процедуры :

&НаСервере
Процедура  ЗаполнитьТаблицыМетаданных()
	
	Отчет.ИзмеренияРегистровНакопления.Очистить();
	Отчет.РегистрыНакопления.Очистить();
	ТаблицаИзмеренийПоТипу=Отчет.ИзмеренияРегистровНакопления.Выгрузить();
	ТаблицаВсехИзмерений = ТаблицаИзмеренийПоТипу.Скопировать();
	Для Каждого РегистрНакопления Из Метаданные.РегистрыНакопления Цикл
		КлючОтбора=Новый УникальныйИдентификатор;
		РегистрСодержитНужныйТип = Ложь;
		ТаблицаВсехИзмерений.Очистить();
		уровень=0;
		Для Каждого Измерение Из РегистрНакопления.Измерения Цикл
			ВложенныйРеквизит = Неопределено;
			Если ИзмерениеСодержитНужныйТип(Измерение,ВложенныйРеквизит,уровень) Тогда
				СтрокаТаблицыИзмерений = ТаблицаИзмеренийПоТипу.Добавить();
				СтрокаТаблицыИзмерений.ИмяРегистра =  РегистрНакопления.Имя;
				СтрокаТаблицыИзмерений.ИмяИзмерения = Измерение.Имя;
				СтрокаТаблицыИзмерений.ВложенныйРеквизит = ?(ВложенныйРеквизит = Неопределено,"",ВложенныйРеквизит);
				СтрокаТаблицыИзмерений.КлючОтбора = КлючОтбора;
				СтрокаТаблицыИзмерений.Раскрашивать = Истина;
				РегистрСодержитНужныйТип = Истина;
				СтрокаТаблицыИзмерений.Использовать = ?(уровень=1,Истина,Ложь);
			Иначе 
				СтрокаТаблицыИзмерений = ТаблицаВсехИзмерений.Добавить();
				СтрокаТаблицыИзмерений.ИмяРегистра =  РегистрНакопления.Имя;
				СтрокаТаблицыИзмерений.ИмяИзмерения = Измерение.Имя;
				СтрокаТаблицыИзмерений.КлючОтбора = КлючОтбора;
			КонецЕсли;
		КонецЦикла;
		Если РегистрСодержитНужныйТип Тогда 
			СтрокаТаблицыМетаданныеРегистров = Отчет.РегистрыНакопления.Добавить();
			СтрокаТаблицыМетаданныеРегистров.ИмяРегистра =  РегистрНакопления.Имя;
			СтрокаТаблицыМетаданныеРегистров.КлючОтбора =  КлючОтбора;
			
			Для Каждого СтрокаВсехИзмерений Из ТаблицаВсехИзмерений Цикл
				НоваяСтрокаИзмерений = ТаблицаИзмеренийПоТипу.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрокаИзмерений,СтрокаВсехИзмерений);
			КонецЦикла; 	 
			
		КонецЕсли;
		
	КонецЦикла;
	
	ТаблицаИзмеренийПоТипу.Сортировать("ИмяИзмерения");
	Отчет.ИзмеренияРегистровНакопления.Загрузить(ТаблицаИзмеренийПоТипу);
	МассивИзмерений = ТаблицаИзмеренийПоТипу.ВыгрузитьКолонку("ИмяИзмерения");
	
	
КонецПроцедуры // ЗаполнитьТаблицыМетаданных()

&НаСервере
Функция ИзмерениеСодержитНужныйТип(Измерение,ВложенныйРеквизит,уровень)
	
	Если ТипИзмерения = Измерение.Тип Тогда 
		уровень=уровень+ 1 ; 
		Возврат Истина;
	ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(Измерение.Тип.Типы()[0]) Тогда 
		Для Каждого РеквизитСправочника Из  Метаданные.НайтиПоТипу(Измерение.Тип.Типы()[0]).Реквизиты Цикл 
			Если ТипИзмерения = РеквизитСправочника.Тип Тогда
				ВложенныйРеквизит =РеквизитСправочника.Имя;
				уровень=?(уровень=1,2,уровень);
				Возврат Истина;
			КонецЕсли;
		КонецЦикла;
		Возврат Ложь;
	Иначе
		Возврат Ложь;
	КонецЕсли;
КонецФункции

Показать
10. leosoft 125 28.05.18 22:36 Сейчас в теме
(9) Спасибо, попробую и отпишусь.
11. leosoft 125 28.05.18 22:55 Сейчас в теме
(9) Все заработало, уже легче - не надо галочки проставлять.
А видимость этих колонок где можно настроить?
12. pm74 127 28.05.18 22:58 Сейчас в теме
(11)
А видимость этих колонок где можно настроить

потом что нибудь придумаю
все , пошел спать
Оставьте свое сообщение