Имя: Пароль:
1C
 
Отображать итоги в подвале для колонки РС - можно?
0 Живой Ископаемый
 
15.03.10
16:41
Например для числовых реквизитов Табличной части в форме документов можно укзатаь выводить итоги в подвале, и тогда для них будет выполняться что-то типа
ВсегоПоКолонкеСумма = Документ.Товары.Итог("Сумма");  И вот именно эта ВсегоПоКолонкеСумма  и будет показана в подвале колонки...

У меня есть РС, который является связанным по измерению с документом, и форму списка которого мы просматриваем с отбором по одному определенному документу... Хочу в этой форме видеть итог по числовой колонке... Такого свойства для колонки формы списка РС - нету.. можно как-то реализовать?

Например сам подвал я могу вывести - просто поставив галку для всего табличного поля... Но вот как сделать чтобы там выводился итог?
1 luns
 
15.03.10
16:44
Видимо посчитать запросом, учитывая отборы и период и вывести в подвал.
Делать это ПриПолученииДанных
2 Живой Ископаемый
 
15.03.10
16:45
2(1) Можно пример? Именно вывода.. Предположим уже посчитал, и это значение равно 12.5
3 Dmitrii
 
гуру
15.03.10
16:46
У каждой колонки табличного поля формы есть свойство "ТекстПодвала". Его и указывай.
4 Dmitrii
 
гуру
15.03.10
16:46
(3) +
КолонкаТабличногоПоля (TableBoxColumn)
ТекстПодвала (FooterText)
Использование:
Чтение и запись.
Описание:
Тип: Строка. Содержит текст подвала колонки.
Недоступно на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
5 luns
 
15.03.10
16:58
(3) Ну да.
6 luns
 
15.03.10
17:01
типа так:

Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
   
   //тут запрос получающий сумму
   
       ИтогСтрокой = 12.5;
   
   ///////*
   
   
   ЭлементыФормы.РегистрСведенийСписок.Колонки.ИмяМоейКолонки.ТекстПодвала = ИтогСтрокой;
   
КонецПроцедуры
7 Живой Ископаемый
 
15.03.10
17:05
Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
   Если ЗначениеЗаполнено(Элемент.Значение.Отбор.Договор.Значение) Тогда
       Запрос = Новый Запрос("ВЫБРАТЬ
       |    ГрафикПлатежей.Договор КАК Договор,
       |    ГрафикПлатежей.Процент КАК Процент,
       |    ГрафикПлатежей.ЗаОборудование КАК ЗаОборудование
       |ИЗ
       |    РегистрСведений.ГрафикПлатежей КАК ГрафикПлатежей
       |ГДЕ
       |    ГрафикПлатежей.Договор = &ДокументОтбора
       |ИТОГИ
       |    СУММА(Процент),
       |    СУММА(ЗаОборудование)
       |ПО
       |    Договор");
       Запрос.УстановитьПараметр("ДокументОтбора",Элемент.Значение.Отбор.Договор.Значение);
       Результат = Запрос.Выполнить();
       Если НЕ Результат.Пустой() Тогда
           Выборка = Результат.Выбрать();
           Выборка.Следующий();
           Элемент.Колонки.ЗаОборудование.ТекстПодвала = Выборка.ЗаОборудование;
           Элемент.Колонки.Процент.ТекстПодвала = Выборка.Процент;
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры


Спасибо, получилось
8 73
 
15.03.10
17:21
(7) Другие отборы(пользовательские) не критичны?
9 Живой Ископаемый
 
15.03.10
17:21
2(8) Запрещены к счастью.
10 73
 
15.03.10
17:23
(9) А то решение подкину: Построителем.
11 Живой Ископаемый
 
15.03.10
17:23
2(10) Подкинь, если не трудно
12 73
 
15.03.10
17:24
(11)
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(РегистрСведенийСписок);
Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
13 Живой Ископаемый
 
15.03.10
17:26
2(12) это вешать на кнопку или на событие?
14 Живой Ископаемый
 
15.03.10
17:28
а, понял... спасибо
15 asady
 
15.03.10
17:28
(0) решение для небольших регистров сведений -
для серьезного объема данных вечные тормоза и проклятия пользоватлей.


совет - повесь включение/отключение итогов хотябы на кнопку(галочку) чтобы пользователю можно было хоть как-то поработать.
16 73
 
15.03.10
17:28
(13) Куда хочешь.
Только ПриПолученииДанных и при скроллинге вызываться будет.
Еще можно ПодключитьОбработчикИзмененияДанных
17 Живой Ископаемый
 
15.03.10
17:30
2(15) Если ты читаешь код, то видишь что отбор идет по документу.. При чем это будет происходить только однажды при открытии. За одним документом может быть записей РС... ну например 120, но в общем не более 240.
Так что нет, позволь мне самому решать за что мне быть проклинаемым пользователями.
18 Stepa86
 
15.03.10
17:34
Вместо формы списка отчет не предлагать? там попроще с итогами
19 luns
 
15.03.10
17:37
Вообще то (18) прав.
1с не советует так делать. Она говорит что для этого есть отчеты.
20 Живой Ископаемый
 
15.03.10
17:37
2(18) предлагай
21 Stepa86
 
15.03.10
17:38
(20) делай отчет на СКД - дел на 5 минут, а крутить потом данные по любому можно будет =)
22 Живой Ископаемый
 
15.03.10
17:40
2(21) э... Ну тут еще такое - например для этого вида документа есть пункт в системном меня - Связанные регистры Сведений.. и мне нужно добавлять этот пункт в меню.. а вот для вызова СКД - придется...
23 Stepa86
 
15.03.10
17:42
(22) ну вызов отчета навесь на перед открытием формы списка с отказом
24 Живой Ископаемый
 
15.03.10
17:45
2(23) ммм... подумаю над этим, спасибо...
пока код такой:

Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
   Если ЗначениеЗаполнено(Элемент.Значение.Отбор.Договор.Значение) Тогда
       Построитель = Новый ПостроительЗапроса;
       Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(РегистрСведенийСписок);
       Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
       тзБуф = Результат.Выгрузить();
       Если НЕ Результат.Пустой() Тогда
           Элемент.Колонки.ЗаОборудование.ТекстПодвала = тзБуф.Итог("ЗаОборудование");
           Элемент.Колонки.Процент.ТекстПодвала = тзБуф.Итог("Процент");
           Элемент.Колонки.Платеж.ТекстПодвала = тзБуф.Итог("Платеж");
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры
25 luns
 
15.03.10
21:05
(24) Думается что так будет дольше чем запрос к регистру делать.
26 Живой Ископаемый
 
15.03.10
21:29
2(25) дядька - у документа может быть максимум 240 записей из 40 тысяч вообще присутствующих в РС. Я попробовал оба варианта на файловой версии - форма отрисовывается мгновенно. Не то чтобы секунды - просто мгновенно. Тэкчта...