Итоговая сумма в динамических списках (список документов, список справочников)

12.10.09

Учетные задачи - Банковские операции

Итоговая сумма в динамических списках (список документов, список справочников) с учетом текущего отбора.

Данный запрос актуальный для динамических списков!

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

Этот компактный запрос позволит рассчитать сумму проведенных документов в списке документов с учетом текущего отбора и показать его как текст подвала колонки.

Для начала нужно поставить галочку "Подвал" в свойствах списка. И в предопределенной процедуре ОбновлениеОтображения(), формы списка, написать следующее:

    ПостроительЗапроса = Новый ПостроительЗапроса;
   
    ТекстПостроителя = "ВЫБРАТЬ
    |    ЗаявкаНаКассовыйРасход.Номер Как Номер,
    |    ЗаявкаНаКассовыйРасход.ПометкаУдаления Как ПометкаУдаления,
    |    ЗаявкаНаКассовыйРасход.Проведен КАК Проведен, ";
    РеквизитыЗКР = Метаданные.Документы.ЗаявкаНаКассовыйРасход.Реквизиты;
    Для Индекс = 0 По РеквизитыЗКР.Количество()-1 Цикл
        ТекстПостроителя = ТекстПостроителя + "    ЗаявкаНаКассовыйРасход." + СокрЛП(РеквизитыЗКР[Индекс].Имя) + " КАК " + СокрЛП(РеквизитыЗКР[Индекс].Имя) + " ";
        Если РеквизитыЗКР.Количество()-1 <> Индекс Тогда
            ТекстПостроителя = ТекстПостроителя + ",";
        КонецЕсли;
    КонецЦикла;
    ТекстПостроителя = ТекстПостроителя + "
    |    ИЗ Документ.ЗаявкаНаКассовыйРасход КАК ЗаявкаНаКассовыйРасход
    |    ГДЕ Проведен = Истина";
    ПостроительЗапроса.Текст = ТекстПостроителя;
    ОписаниеИсточникаДанных= Новый ОписаниеИсточникаДанных(ДокументСписок);
    ПостроительЗапроса.ИсточникДанных = ОписаниеИсточникаДанных;
   
    ПостроительЗапроса.Выполнить();
    тз = ПостроительЗапроса.Результат.Выгрузить();
    СуммаПоТЗ = Формат(тз.Итог("СуммаДокумента"), "ЧЦ=14; ЧДЦ=2");
    ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = СокрЛП(СуммаПоТЗ);


 

ЗаявкаНаКассовыйРасход - заменить на документ в котором делаеться.

 

Если большой список документов, можно повесить этот код на кнопку "рассчитать" и при нажатии будет рассчитывать сумму.

Надеюсь пригодится этот скромный труд.

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    799341    4923    9555    

2863

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5880 руб.

25.05.2015    336229    1966    3062    

1033

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.5, КА 2.5 ,ERP 2.5 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

5000 руб.

27.08.2018    122891    1036    586    

872

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Устали вручную дозаполнять и корректировать документы по банку после загрузки банковской выписки? С помощью правил обработки банковской выписки вы сможете автоматически определять правильный вид хозяйственной операции, заполнять расшифровку, аналитику платежа и многое другое.

15000 руб.

21.03.2023    11547    75    16    

64

Кассовые операции ЭДО и ОФД Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Согласно 54-ФЗ по правилам ведения кассовых операций необходимо оформлять приходные кассовые ордера (ПКО) и расходные кассовые ордера (РКО) на основании чеков ККМ. Все данные о чеках, можно взять на сайте оператора фискальных данных (ОФД). Обработка загрузки данных из ОФД в 1С сделает за вас в 1С - ПКО и РКО, Операции по платежным картам или Отчет о розничных продажах (может создать номенклатуру в 1С, указать налоги и др. реквизиты в документах в зависимости от налогообложения ККМ в торговой точке).

5640 руб.

09.08.2017    152134    903    372    

549

ККМ Кассовые операции Розничная торговля Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест. Поддержка драйверов Атол, Штрих и VikiPrint. Поддержка 54-ФЗ и разрешительного режима, ФФД 1.05,1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ, 1С:Розница 1/2, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП. Ускоряет печать из терминального сеанса Windows. Работает с разрешительным режимом даже из старых конфигураций. Предоставляет REST API для печати через веб-сервис.

3000 руб.

02.09.2016    136822    154    194    

182

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

В публикации размещены специализированные обработки для загрузки кассовых чеков в базах 1С (для локальных баз): 1С:БП 3.0, 1С:УНФ 3.0, 1С:КА. 2.5, 1С:ERP Управление предприятием, ред. 2 и 1С:УТ 11.5. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах' и 'Поступление денежных документов'.

12960 руб.

19.08.2020    69358    341    80    

225

Обмен с интернет-банком Банковские операции Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Модуль представляет собой комплексную автоматизацию обмена данными 1С с банком для БП 3.0, ERP 2.4, ERP 2.5. Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20400 руб.

03.04.2013    125168    253    377    

164
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tokiy 131 07.10.09 14:29 Сейчас в теме
Плюсуем кому понравилось и пригодилось! ;)
2. WKBAPKA 215 07.10.09 14:58 Сейчас в теме
Сразу вопросы:
1. Зачем СОКРЛП()? У текстовых реквизитов установлена фиксированная длина?
2. При большом объеме базы список будет жутко тормозить, т.к. обновление отображения будет происходить каждый раз при изменении размеров формы или перемещения по строкам.
Мое мнение, использовать такой подход для расчета имеет смысл только для документов с выбранным интервалом, т.е. нет необходимости вешать его на обновление отображения.

Правда, что то я сумневаюсь, что если у документа есть реквизит "Сумма", что по нему в подвале нельзя получить итоговое значение.
Опять же, почему нельзя посчитать итог в запросе?

Вообщем много почему!!!
9. Tokiy 131 12.10.09 00:04 Сейчас в теме
(2) 1 - Метод СокрЛП() используеться для перестрахования, Ресурсов много он не ест, зато дает стопроцентный результат (возвращает ТЕКСТ без ПРОБЕЛОВ) что для запроса и нужно. 2 - при большом объеме базы рекомендую вешать не в предопределенную процедуру ОбновлениеОтображения(), а на кнопку, чтоб пользователь рассчитывал сам эту сумму. Или если есть вариант получше, я с радостью выслушаю.
3. Поручик 4694 07.10.09 15:14 Сейчас в теме
Вот именно что, почему в событии ОбновлениеОтображения(), а не в ПриПолученииДанных?
4. WKBAPKA 215 07.10.09 15:35 Сейчас в теме
10. Tokiy 131 12.10.09 00:09 Сейчас в теме
(3) Потому что предопределенной процедуры ПриПолученииДанных() нет в форме списка документа. А я повторяюсь что это код для получения итоговой суммы в динамических списках (список документов, список справочников).
15. artbear 1563 12.10.09 10:10 Сейчас в теме
Кстати, автор прав, а (3) нет :)
16. Поручик 4694 12.10.09 10:28 Сейчас в теме
(15), (10) Извините-с, х..ню-с сморозил. :(
5. artbear 1563 07.10.09 16:25 Сейчас в теме
Каждый раз в цикле юзать ДокументСписок.Отбор[Индекс] совсем не гуд :(
Поручик; +1 Ответить
11. Tokiy 131 12.10.09 00:10 Сейчас в теме
(5) есть другие варианты с радостью выслушаю :)
К сожалению, я других вариантов не вижу, при условию что мне нужно передать текущий отбор.
6. WKBAPKA 215 07.10.09 19:12 Сейчас в теме
похоже человек только учиться... видать бывший семерочник :)
12. Tokiy 131 12.10.09 00:13 Сейчас в теме
(6) Век живи, век учись. "Семерочником" всегда лучше быть чем двоечником :D
А если серьезно, то не вижу логики в ваших словах. Из бывших "семерочников" часто получаются настоящие "восмерочники".
7. Yashazz 4796 07.10.09 19:29 Сейчас в теме
Советую изучить ИсточникДанных и ОписаниеИсточникаДанных, при использовании которых данная задача превращается в тривиальную.
mr zafod; Tokiy; +2 Ответить
8. Kom-off 08.10.09 09:55 Сейчас в теме
13. Tokiy 131 12.10.09 00:52 Сейчас в теме
(7) Спасибо! Пригодился ИсточникДанных, с помощью которого удалось избежать лишнего цикла. +1
14. artbear 1563 12.10.09 10:07 Сейчас в теме
(13) Уже намного лучше.
1. Для оптимизации (все-таки код будет очень часто вызываться) лучше весь блок до ПостроительЗапроса.Выполнить() вынести в отдельный метод, вызываемый в ПриОткрытии.
2. Совсем нелогично использование запроса и выгрузки в ТЗ и подсчет суммы :(
считай итоговую сумму сразу в запрос :) - будет совсем шустро.
19. artbear 1563 16.10.09 16:41 Сейчас в теме
На (14) обрати внимание
20. Tokiy 131 16.10.09 18:31 Сейчас в теме
(19) Да, согласен, что часть кода можно вынести в процедуру ПриОткрытии(), только до строки "ОписаниеИсточникаДанных= Новый ОписаниеИсточникаДанных(ДокументСписок);" иначе не будет обновляться итоговая сумма. И итог можно в запросе рассчитать. :)
17. artbear 1563 15.10.09 16:26 Сейчас в теме
(0) Автор, прочти http://www.kb.mista.ru/article.php?id=471
думаю, станет более понятна схема с построителем и динамическим списком.
18. Tokiy 131 15.10.09 20:41 Сейчас в теме
(17) Нормальная статейка, подтвердил свои знания )))
21. tka4enk0 146 03.04.13 01:28 Сейчас в теме
Для динамического списка с произвольным запросом работает (управляемые формы)??? У меня почему-то не взлетело.
ОписаниеИсточникаДанных= Новый ОписаниеИсточникаДанных(ДокументСписок);
ДокументСписок - Это элемент формы???
22. Tokiy 131 01.06.13 18:46 Сейчас в теме
(21) tka4enk0, для управляемых форм этот код не пойдет.
ДокументСписок - это тип "ДокументСписок[ИмяДокумента]".
Оставьте свое сообщение