![]() |
![]() |
![]() |
|
Подсчет суммы справочника | ☑ | ||
---|---|---|---|---|
0
АлексейИзТопок
09.09.09
✎
05:56
|
Такая проблема. Есть справочник.
Договор Сумма №1 500 №3 300 №2 200 Допустим, пользователь сделал отбор по справчонику, и у него в результате отбора выведены следующие строки №3 300 №2 200 Как можно посчитать программно сумму отобранных договоров? Сейчас они выгружают список в Ексель и там счиатеют сумму. А как в 1С это реализовать? Я могу подсчитать сумму всех договоров через запрос, но как посчитать сумму отобранных интерактивно договоров??? |
|||
1
Shurjk
09.09.09
✎
05:57
|
(0) Пересчитывать учитывая установленные отборы
|
|||
2
Vbif
09.09.09
✎
06:22
|
(0) тебе нужно сделать это в форме спрвочника?
|
|||
3
АлексейИзТопок
09.09.09
✎
06:39
|
Мне нужно, чтобы пользователь от меня отстал :-)
А пользователь отстанет, если он узнает сумму всех договоров, отобранных им в справочнике методом "Установить отбор...". |
|||
4
АлексейИзТопок
09.09.09
✎
06:45
|
Хотелось бы:
- или 1. для каждого текстрока из списка справочника цикл общсумма = общсумма + текстрока.сумма; конеццикла; - или 2. Запрос выбрать ссылка как договор из справчоника договоров где отбор = отбор запрос.параметр.отбор = элементыформы.список справочника.отбор - или 3. итог(элементыформы.список справочника.сумма); |
|||
5
АлексейИзТопок
09.09.09
✎
06:52
|
О чем тока не пишут, о стиральных машинах, футболе.... А у меня горе.
|
|||
6
АлексейИзТопок
09.09.09
✎
06:52
|
помогите, людим добрые
|
|||
7
Rie
09.09.09
✎
06:59
|
(0) А как они выгружают в Excel?
|
|||
8
Vbif
09.09.09
✎
06:59
|
(6) учти что европа еще спит :)
|
|||
9
АлексейИзТопок
09.09.09
✎
07:07
|
(7) В эксель выгружают просто. Через функцию "Вывести список" в табличный документ, сохранить копию... в экселевский файл
|
|||
10
Rie
09.09.09
✎
07:21
|
Отбор у тебя есть - возьми тот, который установлен пользователем в форме списка справочника.
Скажи Справочники.Договоры.Выбрать с этим отбором - и просуммируй. |
|||
11
Vbif
09.09.09
✎
07:32
|
(10) что то мне кажется что не взлетит
у Спарвочник.Имя.Выбрать отбор это структура, которая может содержать только один элемент, а отбор в форме не есть такая структура |
|||
12
АлексейИзТопок
09.09.09
✎
07:52
|
(10) (11) Во-во! Разные типы данных. Теоретически можно переделать, но это геморно, и это на случай, если ничего не поможет
|
|||
13
АлексейИзТопок
09.09.09
✎
08:34
|
Может Европа уже подтянулась??? Ребята помогите, Восток не помог!
|
|||
14
Лирик
09.09.09
✎
08:43
|
Возми построитель запроса (отчета) запихай в него тект запроса считающег сумму и отбор псе это помести в отдельную процедуру (функцию) и вызывай эту процедуру функцию "при получении данных" таб. полем списка справочника
|
|||
15
Лирик
09.09.09
✎
08:46
|
(14) псе - все
Ну и естественно должно быть в процедуре получение запроса из построителя, его выполнение и обработка результата (показ в подвале формы например) |
|||
16
АлексейИзТопок
09.09.09
✎
09:38
|
(15) Попробуем-с
|
|||
17
Mitriy
09.09.09
✎
09:45
|
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.СправочникСписок.Значение);
Результат = ПостроительЗапроса.Результат; ТЗ = Результат.Выгрузить(); Выборка = Результат.Выбрать(); |
|||
18
АлексейИзТопок
09.09.09
✎
12:55
|
Сделал. В итоге получилось так. Отборы = новый ПостроительОтчета();
Отборы.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.СправочникСписок.Значение); Результат = Отборы.Результат.Выбрать(); нужныедоговоры = новый списокзначений(); пока результат.Следующий() цикл нужныедоговоры.Добавить(результат.ссылка); конеццикла; ПостроительОтчетаОтчет = новый Запрос(); ПостроительОтчетаОтчет.Текст = "ВЫБРАТЬ | Договоры.Ссылка, | Договоры.Представление, | СрокИсполненияИСуммаДоговоровСрезПоследних.СуммаВРублях КАК СуммаДоговора |ИЗ | Справочник.Договоры КАК Договоры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СрокИсполненияИСуммаДоговоров.СрезПоследних КАК СрокИсполненияИСуммаДоговоровСрезПоследних | ПО (СрокИсполненияИСуммаДоговоровСрезПоследних.Договор.Ссылка = Договоры.Ссылка) |ГДЕ | Договоры.Ссылка В (&Отборы)"; ПостроительОтчетаОтчет.УстановитьПараметр("Отборы",нужныедоговоры); сообщить(ПостроительОтчетаОтчет.Выполнить().Выгрузить().Итог("СуммаДоговора")); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |