|
Обработка реквизитов справочника
|
|||
---|---|---|---|
#18+
Добрый день! у меня просьба помочь с проведением расчетов. Есть справочник: СпрУрЖизни -- в нем реквизиты: ВРП и Регион. Тип реквизита Регион - справочник "Регионы". Нужно по выбранному региону перебрать все значения ВРП по годам от Г до ПоследГод, найди среднее значение, мин и макс. Моя попытка немного кривая : Процедура ИндУрЖизниНас() //Расчет 1 Перем РазСпис, ДобавРек; //Сначала рассчитать Долю населения с доходами ниже прожит.мин //1 Получим список регионов из СпРегион РазСпис=СпРегион.РазмерСписка(); //Будем рассчитывать индекс для выбранного региона за все года Для т=1 по РазСпис Цикл //2 Нарастим счетчик для определения кол-ва записей для первого региона СпрУрЖизни=СоздатьОбъект("Справочник.ИндексУрЖизни"); СпрРегионы=СоздатьОбъект("Справочник.Регионы"); СписРег1=СоздатьОбъект("СписокЗначений"); ПоследГод=Константа.ПослГод.Получить(РабочаяДата()); СпрРегионы.НайтиПоНаименованию(ВыбрРегИмя); СпрУрЖизни.ВыбратьЭлементыПоРеквизиту("Регион", СпрРегионы.ТекущийЭлемент(),1); Пока СпрУрЖизни.ПолучитьЭлемент()=1 Цикл //Добавим все элементы в список значений, перебирая по годам Для Г=1998 по ПоследГод Цикл СпрУрЖизни.ИспользоватьДату("31.12."+Г,1); СписРег1.ДобавитьЗначение(СпрУрЖизни.ПолучитьАтрибут("ДохНижеПрож")); КонецЦикла; КонецЦикла; //Выгружаем список и обновляем форму СписРег1.Выгрузить(СписокР); Форма.Обновить(); //Вытащим значения Доли для каждого региона //3 Сложим все полученные значения Доли по первому региону //4 Поделим на общее количество //5 Вычислим по одной из двух формул //6 Сохраним столбец значений в табличку КонецЦикла; //Затем взять среднеарифметическое всех показателей для каждого региона КонецПроцедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 13:19 |
|
Обработка реквизитов справочника
|
|||
---|---|---|---|
#18+
Пардон - вместо ВРП - поле ДохНижеПрож ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 13:20 |
|
Обработка реквизитов справочника
|
|||
---|---|---|---|
#18+
Все глаза сломал. Вы бы хоть отредактировали текст, чтобы с пробелами был... А в запросе можно использовать мин и макс. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 13:28 |
|
Обработка реквизитов справочника
|
|||
---|---|---|---|
#18+
Я бы отредактировала, да не знаю как именно. У меня не запросы - это обработка формы. А текст приведен одной процедуры. Так...может лучше видно будет. Процедура ИндУрЖизниНас() //Расчет 1 Перем РазСпис, ДобавРек; //Сначала рассчитать Долю населения с доходами ниже прожит.мин //1 Получим список регионов из СпРегион РазСпис=СпРегион.РазмерСписка(); //Будем рассчитывать индекс для выбранного региона за все года Для т=1 по РазСпис Цикл //2 Нарастим счетчик для определения кол-ва записей для первого региона СпрУрЖизни=СоздатьОбъект("Справочник.ИндексУрЖизни"); СпрРегионы=СоздатьОбъект("Справочник.Регионы"); СписРег1=СоздатьОбъект("СписокЗначений"); ПоследГод=Константа.ПослГод.Получить(РабочаяДата()); СпрРегионы.НайтиПоНаименованию(ВыбрРегИмя); СпрУрЖизни.ВыбратьЭлементыПоРеквизиту("Регион", СпрРегионы.ТекущийЭлемент(),1); Пока СпрУрЖизни.ПолучитьЭлемент()=1 Цикл //Добавим все элементы в список значений, перебирая по годам Для Г=1998 по ПоследГод Цикл СпрУрЖизни.ИспользоватьДату("31.12."+Г,1); СписРег1.ДобавитьЗначение(СпрУрЖизни.ПолучитьАтрибут("ДохНижеПрож")); КонецЦикла; КонецЦикла; //Выгружаем список и обновляем форму СписРег1.Выгрузить(СписокР); Форма.Обновить(); //Вытащим значения Доли для каждого региона //3 Сложим все полученные значения Доли по первому региону //4 Поделим на общее количество //5 Вычислим по одной из двух формул //6 Сохраним столбец значений в табличку КонецЦикла; //Затем взять среднеарифметическое всех показателей для каждого региона КонецПроцедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 14:26 |
|
Обработка реквизитов справочника
|
|||
---|---|---|---|
#18+
Программист 1сВсе глаза сломал. Вы бы хоть отредактировали текст, чтобы с пробелами был... А в запросе можно использовать мин и макс.Пробелы не там, ну ладно. Сделайте проще - все значение кидайте в таблицу значений. Когда надо найти среднее - метод Кол=Т.КоличествоСтрок(); Т.Свернуть();Среднее=Т.Итог()/Кол; Максимальное и мнимальное - первую строку в вашей таблиц значений после метода Т.Сортировать("+ или - что-то") ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 15:23 |
|
Обработка реквизитов справочника
|
|||
---|---|---|---|
#18+
скажи где нужно поставить, я сделаю. мне не сложно, просто я новичок. с таблицей щас попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2008, 15:46 |
|
|
start [/forum/topic.php?fid=28&msg=35429039&tid=1524605]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
40ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 519ms |
0 / 0 |