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

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С:Бухгалтерия автономного учреждения Россия Платные (руб)

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

6000 руб.

27.02.2017    803321    5009    9591    

2883

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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    338144    2005    3086    

1042

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 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    124067    1067    592    

886

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

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

18000 руб.

21.03.2023    11962    77    16    

67

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

Типовая обработка "Клиент-банк" из конфигурации 1С "Бухгалтерия для Беларуси, редакция 2.1" корректно работает с выписками только банка "Дабрабыт", до 28.01.2019 "Москва-Минск". А бухгалтеру нужно работать и с другими банками и с другими конфигурациями. Для этого было разработано расширение, которое позволит решить данную проблему!

10.10.2017    38344    84    Xershi    41    

72

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

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

6000 руб.

09.08.2017    152617    910    372    

554

Кассовые операции Файловый обмен (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    69806    346    80    

229

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

Расширение для 1С:Управление торговлей 11.5, которое позволяет пробивать чеки ККМ и списывать товар с разных складов. Склад списание товара можно указывать в табличной части рабочего места кассира (РМК).

5880 руб.

12.04.2023    9911    51    3    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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. Поручик 4660 07.10.09 15:14 Сейчас в теме
Вот именно что, почему в событии ОбновлениеОтображения(), а не в ПриПолученииДанных?
4. WKBAPKA 215 07.10.09 15:35 Сейчас в теме
10. Tokiy 131 12.10.09 00:09 Сейчас в теме
(3) Потому что предопределенной процедуры ПриПолученииДанных() нет в форме списка документа. А я повторяюсь что это код для получения итоговой суммы в динамических списках (список документов, список справочников).
15. artbear 1565 12.10.09 10:10 Сейчас в теме
Кстати, автор прав, а (3) нет :)
16. Поручик 4660 12.10.09 10:28 Сейчас в теме
(15), (10) Извините-с, х..ню-с сморозил. :(
5. artbear 1565 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 4799 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 1565 12.10.09 10:07 Сейчас в теме
(13) Уже намного лучше.
1. Для оптимизации (все-таки код будет очень часто вызываться) лучше весь блок до ПостроительЗапроса.Выполнить() вынести в отдельный метод, вызываемый в ПриОткрытии.
2. Совсем нелогично использование запроса и выгрузки в ТЗ и подсчет суммы :(
считай итоговую сумму сразу в запрос :) - будет совсем шустро.
19. artbear 1565 16.10.09 16:41 Сейчас в теме
На (14) обрати внимание
20. Tokiy 131 16.10.09 18:31 Сейчас в теме
(19) Да, согласен, что часть кода можно вынести в процедуру ПриОткрытии(), только до строки "ОписаниеИсточникаДанных= Новый ОписаниеИсточникаДанных(ДокументСписок);" иначе не будет обновляться итоговая сумма. И итог можно в запросе рассчитать. :)
17. artbear 1565 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, для управляемых форм этот код не пойдет.
ДокументСписок - это тип "ДокументСписок[ИмяДокумента]".
Оставьте свое сообщение