Посчитать суммы выделенных ячеек табличного документа
Есть отчет, хочу реализовать функциональность Excel — при выделении ячеек на нижней панели выводится сумма.
Для табличного документа на форме задал обработчик события ПриАктивизацииОбласти. По задумке «ВыделенныеОбласти» — это коллекция, обходя которую можно получить все выделенные ячейки, но почему-то коллекция содержит только один элемент.
В чем может быть затык?
//ЭлементыФормы.Результат.ВыделенныеОбласти
Сумма = 0;
Для Каждого ЭлементКоллекции Из ЭлементыФормы.Результат.ВыделенныеОбласти Цикл
//Элемент.ВыделенныеОбласти
Попытка
Сумма = Сумма + Число(СтрЗаменить(ЭлементКоллекции.Текст, Символ(160), «»));
Исключение
КонецПопытки;
КонецЦикла; // Обход строк таблицы значений
НадписьСумма = «Сумма: » + Сумма
//ЭлементыФормы.Результат.ВыделенныеОбласти
КонецПроцедуры
Если нету то вот код из типовой:
Процедура РезультатПриАктивизацииОбласти(Элемент)
СтандартныеОтчеты.РезультатПриАктивизацииОбласти(ЭтаФорма, Элемент);
КонецПроцедуры
Процедура РезультатПриАктивизацииОбласти(ФормаОтчета, Элемент) Экспорт
Функция ВычислитьСуммуВыделенныхЯчеекТабличногоДокумента(ПолеТабличногоДокумента) Экспорт
Сумма = 0;
Для Каждого Область Из ПолеТабличногоДокумента.ВыделенныеОбласти Цикл
Если ТипЗнч(Область) = Тип(«ОбластьЯчеекТабличногоДокумента») Тогда
Для ИндексСтрока = Область.Верх По Область.Низ Цикл
Для ИндексКолонка = Область.Лево По Область.Право Цикл
Попытка
Сумма = Сумма + Число(СтрЗаменить(ПолеТабличногоДокумента.Область(«R» + Формат(ИндексСтрока, «ЧГ=0») + «C» + Формат(ИндексКолонка, «ЧГ=0″)) .Текст, » «, «»));
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Как пользоваться калькулятором, встроенным в программы 1С?
Вы думаете, что всё знаете о встроенном калькуляторе в программе 1С? Мы с легкостью докажем обратное! Тем более, что многие пользователи подтверждают, что не умеют с ним обращаться. Рассмотрим некоторые моменты использования данного инструмента в этой публикации.
Открыть калькулятор можно несколькими способами:
Первый вариант – нажать стрелочку-меню в верхнем правом углу программы и выбрать команду «Калькулятор.
Второй вариант – нажать комбинацию клавиш «Ctrl+F2».
Настройки калькулятора 1С и его основные функции
Нажав на стрелочку слева, пользователь может изменить вид калькулятора, выбрав вариант:
При включении «формульного калькулятора» появляются дополнительные кнопки для вычисления с возможностью использования скобок.
Например, посчитаем, зарплату сотрудника за фактически отработанные дни, сложив при этом оклад и его надбавку, взяв действия в скобки. Затем разделим на количество рабочих дней месяца и умножим на отработанные дни.
Выполняя расчет формульным калькулятором, придерживаются математических правил выполнения последовательности действий.
При включении вида «микрокалькулятор» вычисления производятся в строке, путем ввода с клавиатуры и нажатием Enter, для получения результата вычисления.
Нажав на кнопку-стрелочку строки расчета, пользователь может просмотреть историю произведенных вычислений.
Калькулятор в 1С имеет 10 ячеек-регистров для хранения значений. Чтобы их увидеть нажмите на маленькие стрелочки возле кнопок MS, M+, M-.
Обозначения кнопок М калькулятора 1С –– «Memory», от слова память.
«MS» – сохранить число в память калькулятора;
«MR» – отобразить число, сохраненное в памяти;
«М+» — прибавить число, сохраненное в ячейке памяти;
«М-» — отнять число, сохраненное в ячейке памяти;
«MC» – удалить все значения из памяти калькулятора.
Выполнив вычисление и нажав «MS», результат попадает в ячейку памяти и в дальнейшем его можно использовать при вычислении. Значение первого регистра всегда отображается в поле вычисления.
Например, в память сохранен результат вычисления 150*4=600.
Наберем в поле ввода число 1450 и прибавим значение из памяти (M+).
Полученный результат отобразиться в поле «М=» — значение 2050.
Аналогично используется и кнопка «М-».
При нажатии кнопки «M+» или «M-», вычисление производится с последним сохраненным числом-результатом.
Нажав на маленькую стрелочку возле кнопки, пользователь может выбрать из ячейки с каким числом из памяти калькулятора выполнить действие.
Кнопки работы с калькулятором можно вынести на строку заголовка программы.
Для этого нажмите кнопку-стрелку главного меню и отметьте команду «Показать М, М+, М-».
Использование калькулятора при работе с отчетами 1С
Функции калькулятора используются и при работе с отчетами.
Рассмотрим пример: сложим и внесем в память калькулятора несколько чисел из ОСВ.
С помощью кнопки «Ctrl» выделите несколько чисел и нажмите кнопку «М» или «М+». Сумма выделенных чисел перенесется в калькулятор. При этом обратите внимание, что в поле «Сигма» отчета отражена сумма выделенных ячеек.
Выделив диапазон ячеек с помощью кнопки «Shift» или протянув по ним мышкой, нажмите кнопку «М» или «М+» — результат диапазона также попадет в калькулятор 1С.
Так, используя кнопки памяти, можно запоминать, прибавлять и вычитать любые числа отчета на калькуляторе.
Но это еще не все! Калькулятор 1С можно использовать и при работе с журналами документов.
Использование калькулятора 1С при работе с журналами документов
Выделите документы в журнале, сумму которых необходимо посчитать.
Для выделения также используйте кнопки:
• «Shift» — выделение диапазона документов;
• «Ctrl» — выборочное выделение документов.
• «Ctrl+A» — выделение от указанного места до конца списка.
Нажмите одну из кнопок:
• «М» — копировать в буфер обмена как число;
• «М+» — прибавить к буферу обмена.
Аналогично примеру с отчетом, результат перенесется в калькулятор.
Так, пользователь может, установив фильтр по контрагенту, в журнале документов быстро посчитать сумму реализации за период. Или установив период отгрузки товаров, посчитать всю сумму отгрузки в отобранном диапазоне.
Использование калькулятора в документах
Калькулятор используется и при вводе чисел в табличную часть документа.
Например, в поле цена, рассчитаем с помощью кнопки «Калькулятор» цену, с учетом скидки 5%.
Нажмите на кнопку калькулятора и ведите «-» минус «5» и знак «%» — процент.
Нажав «=» и «Ок» значение переместится в числовое поле таблицы.
При вычислении на калькуляторе программы (не из документа), рассчитанные данные можно перенести в числовое поле документа.
• сохраните значение в память калькулятора, нажав «М+»;
• перейдите в документ, в нужное поле и нажмите комбинацию клавиш «Ctrl+V» — вставить.
Сохранное значение из памяти калькулятора вставится в документ.
Используя функционал калькулятора 1С, пользователь оптимизирует и упрощает свою работу с программой.
Как посчитать в 1с сумму выделенных ячеек
Этой статьей я продолжаю серию заметок об эффективных приемах работы в 1С:Бухгалтерия 8.3. Рассказываю о хитростях, которые мало кто знает и ещё меньше людей используют в своей работе.
Приемы, о которых пойдет речь, способны существенно сэкономить время и повысить вашу квалификацию как специалиста. Предыдущие части доступны здесь (ч.1), здесь (ч.2) и здесь (ч.3).
Прием №11: складываем любые поля в журналах и табличных частях
Расскажу про очень любопытный приём.
Однажды ко мне пришёл бухгалтер и спросил меня: можно ли как-то быстро посчитать сумму всех документов в журнале реализаций за 1 квартал 2013 года?
Я немного подумал и сделал вот так:
1. Зашёл в журнал «Реализация (акты, накладные)» и установил нужный период:
2. Далее я вначале щёлкнул левой кнопкой мыши в поле «Сумма» любой строки (это важно) и нажал на клавиатуре комбинацию Ctrl + А, чтобы выделить все строчки:
Важно! При этом обратите внимание, что одна из цифр выделена более темным цветом, так как я перед выделением строк щёлкнул по ней левой кнопкой мыши. Это важный момент, так как далее 1С будет суммировать выделенные строки именно по столбцу с выделенным значением.
3. Наконец, я нажал букву M в заголовке окна 1С:Предприятия:
4. Далее я нажал там же на значок калькулятора:
5. И сообщил удивлённому бухгалтеру результат:
Сумма всех выделенных документов в этом периоде составила 8 746 995.
И точно также можно делать в любых журналах с любыми числовыми колонками (сумма, количество и т.д.).
Кроме того, вы можете выделять не все документы а только нужные при помощи следующего приёма:
- зажмите на клавиатуре клавишу Ctrl.
- левой кнопкой мыши выделяйте (или развыделяйте) нужные строки, но помните: щёлкать по строкам нужно только в пределах колонки, которую вы собираетесь суммировать.
Этот же приём можно применять для любых табличных частей.
Вот такая коротенькая хитрость, которая позволит вам в некоторых случаях творить чудеса
Кстати, подписывайтесь на новые уроки.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Как посчитать сумму в 1с
Как рассчитать сумму табличной части документа 1с 8.3
Данная небольшая статья будет полезна тем кто только начал изучать 1С программирование. В ней я хочу рассказать о том как можно рассчитать сумму в табличной части документа по всем строкам и вывести её в отдельный реквизит на форме который будет называться «Сумма документа». На самом деле способов подсчета суммы ТЧ очень много. Можно даже вывести итог по колонке цена без написания кода.
Рекомендую прочитать следующие статьи, они будут очень полезны как начинающим так и опытным программистам и администраторам 1С.
Как рассчитать сумму всех строкам табличной части
Допустим что у нас есть документ с табличной частью «Товары». И нам нужно знать итоговую сумму всех позиций. Для этого мы создали реквизит «Сумма документа» и хотим видеть там итог.
Для этого нужно создать процедуру и написать вот такой код.
Немного поясню код.
Объект.СуммаДокумента = 0; — Обнуляем значение.
СтрокаДокумента — Объявляем переменную.
Объект.Товары — Табличная часть нашего документа.
Объект.СуммаДокумента = Объект.СуммаДокумента + (СтрокаДокумента.Количество * СтрокаДокумента.Цена); — высчитываем итоговую сумму по каждой строке ТЧ и складываем.
Процедуру создаем в модуле формы.
После этого открываем документ и после нажатия «Записать» сумма документа посчитается автоматически.
Если добавить позиции в табличную часть или удалить то после сохранения сумма также пересчитается.
На мой взгляд это самый простой и самый оптимальный способ решения поставленной задачи с вычислением суммы табличной части документа.
Если вы считаете по другому обязательно напишите!
Сумма ТЧ 1С : 13 комментариев
А как рассчитать сумма табличной части в печатной форме, т.е в макете есть поле ИТОГО и в него должна подставляться сумма табличной части.
Если в самом документе нет суммы то вычислять в запросе СУММА(Документ.ТабличнаяЧасть.Цена) Как Сумма
Здравствуйте! Есть несколько документов с ТЧ в которых есть цена, количество и сумма, как написать один общий модуль для расчета суммы?
Вот тут можете посмотреть как создать общий модуль для этих целей
Здравствуйте, как посчитать итоги суммы в табличной части если она заполнена ссылками на документы. Допустим счет на оплату, где сумма документа собирается из документов актов выполненных работ внесенных в табличную часть счета.
я добавил расчет общей Суммы в обработчики ПриИзменении цены и количества и тогда общая сумма считается сразу без нажатия Записать или провести
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
Товары = Элементы.Товары.ТекущиеДанные;
Товары.Сумма = Товары.Цена*Товары.Количество;
Объект.СуммаДокумента = Объект.Товары.Итог(«Сумма»); // сюда добавил расчет Общей суммы
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
Товары = Элементы.Товары.ТекущиеДанные;
Товары.Сумма = Товары.Цена*Товары.Количество;
Объект.СуммаДокумента = Объект.Товары.Итог(«Сумма»);
КонецПроцедуры
Ну да все верно меняется цена или количество и выполняется процедура.
Немного усовершенствовал процедуру расчета для документа:
на форме в свойствах элементов формы в табличной части для Количество, Цена и Сумма выставил одно и то же Событие для избежания дублирования кода,
А чтобы не было соблазна руками изменить общую сумму сделал отдельную процедуру:
&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
Объект.СуммаДокумента = Объект.Товары.Итог(«Сумма»);
КонецПроцедуры
я добавил расчет общей Суммы в обработчики ПриИзменении цены и количества и тогда общая сумма считается сразу без нажатия Записать или провести
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
Товары = Элементы.Товары.ТекущиеДанные;
Товары.Сумма = Товары.Цена*Товары.Количество;
Объект.СуммаДокумента = Объект.Товары.Итог(«Сумма»); // сюда добавил расчет Общей суммы
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
Товары = Элементы.Товары.ТекущиеДанные;
Товары.Сумма = Товары.Цена*Товары.Количество;
Объект.СуммаДокумента = Объект.Товары.Итог(«Сумма»);
КонецПроцедуры
Все проверенно и должно работать смотрите ошибку у себя или скиньте код
Подскажите, пожалуйста, как рассчитать сумму по документу, если поле Цена это элемент таблицы значений формы документа, а поле количество это реквизит формы? Перемножить поле количество на цену в данном случае нельзя. Как тогда быть?
Как посчитать сумму в «1С»?
В короткой статье мы расскажем, как в «1С» посчитать сумму чисел быстрее, чем на калькуляторе. Эти знания пригодятся вам при взаимодействии с интерфейсом «1С» и позволят экономить время.
В короткой статье мы расскажем, как в «1С» посчитать сумму чисел быстрее, чем на калькуляторе. Эти знания пригодятся вам при взаимодействии с интерфейсом «1С» и позволят экономить время.
Этот лайфхак «1С» поможет посчитать сумму чисел быстрее, чем на калькуляторе. В нашем примере мы зашли в оборотно-сальдовую ведомость раздела «Отчеты – Оборотно-сальдовая ведомость». Выделим ячейки, которые хотим суммировать. Программа сложила нужные значения, итоговая сумма отображается в правом верхнем углу в окне ∑ (рис.1).
Рис.1. Сложение чисел без калькулятора в «1С»
Этот прием вы можете использовать в любых отчетах и документах с любыми числовыми колонками и табличными частями (сумма, количество и т.д.).
Помимо этого, вы можете выделить не все документы, а только нужные при помощи следующего способа:
- зажмите на клавиатуре клавишу Ctrl;
- левой кнопкой мыши выделите (или отмените выделение) нужных строк. Отметим, что выделять строки в этом случае следует только в пределах одной колонки, которую вам требуется суммировать.
Подведем итоги
В короткой статье мы рассказали о хитрости в «1С», о которой мало кто знает и использует в работе. Эти знания пригодятся вам при взаимодействии с интерфейсом «1С» и позволят экономить время.
Как рассчитать сумму в 1С?
Многим разработчикам 1С полезно уметь автоматизировать определенные процессы, подстраивая их под требования заказчика. Например, можно настроить программу таким образом, чтобы сумма в таблицах вычислялась автоматически при редактировании данных в других блоках (количество, цена за единицу и т.д.).
Чтобы сделать что-то похожее, необходимо произвести несколько простых действий. В частности, открыть конфигуратор, открыть форму нужного документа.
Далее нужно создать обработчик события «ПриИзменении» для колонок «Цена» и «Количество». Это можно сделать двумя способами.
- Правой кнопкой мыши вызвать меню колонки и выбрать обработчик <ПриИзменении> во вкладке «События»:
- Создать обработчик в свойствах (нажать на лупу возле обработчика «ПриИзменении»)
После этого нужно выбрать подходящую директиву выполнения обработки. В данном случае «На клиенте»:
Откроется модуль формы с созданным обработчиком:
Далее требуется вписать следующий программный код:
То же самое нужно сделать и для колонки «Цена».
В переменную «СтрокаТабличнойЧасти» помещается текущая выделенная строка в табличной части (в которой меняется количество или цена товара). Для подсчета суммы необходимо обратиться к нужным реквизитам объекта («Количество» и «Цена») и перемножить их значения. Результат поместить в реквизит «Сумма».
Если данный процесс автоматического расчета нужен сразу для нескольких документов, можно внести вышеуказанный код в общий модуль. Например, процедуру «РассчитатьСумму» поместить в модуль «РаботаСДокументами». Если в модуле будут только функции, выполняемые на клиенте (обработки событий, связанные только с элементами формы), то в свойствах общего модуля нужно отметить «Клиент», чтобы к модулю можно было обратиться из функций с директивой «&НаКлиенте».
После имени процедуры «РассчитатьСумму» необходимо добавить «Экспорт», чтобы процедуру можно было вызвать из формы документа.
Данный код выглядит так:
Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт
Затем в модуле формы нужного документа следует создать обработчик события под названием «ПриИзменении» для колонок «Количество» и «Цена», и вызвать процедуру «РассчитатьСумму» из общего модуля.
Как рассчитать сумму в строке табличной части 1С
Продолжаем изучать 1С сегодня напишем пару процедур, с помощью которых автоматически будет рассчитываться сумма в строке табличной части. И так это буде продолжение предыдущей статьи, в которой мы свами создавали новый документ. Если кто не читал советую для начал ознакомиться с ней.
Мы создали документ Приход товара. В котором есть дата прихода и Поставщик. В табличной части добавили четыре поля это Наименование, Количество, Цена и Сумма. Все вроде бы нормально но вот по логике нужно сделать так чтобы поле Сумма подсчитывалось автоматически. Этим вопросом сейчас и займемся.
Рассчитываем сумму в строке
И так открываем конфигуратор заходим в созданный ранее документ и переходим на вкладку Формы. В ней нужно открыть и отредактировать Форма Документа кликаем на ней два раза или выбираем Карандашик.
Теперь необходимо перейти в Модуль.
В окне модуля пишем небольшой код
&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
Строка = Элементы.Материалы.ТекущиеДанные;
Строка.Сумма=Строка.Количество*Строка.Цена;
КонецПроцедуры
&НаКлиенте
Процедура МатериалыЦенаПриИзменении(Элемент)
Строка = Элементы.Материалы.ТекущиеДанные;
Строка.Сумма=Строка.Количество*Строка.Цена;
КонецПроцедуры
Теперь немного поясню код который нужно написать.
&НаКлиенте — Это значить что вычисление будет происходить на компьютере пользователя, а не на сервере.
Процедура — Это собственно процедура)
МатериалыКоличествоПриИзменении — Это название нашей процедуры.
Строка — Это переменная
Элементы.Материалы.ТекущиеДанные — Этой строкой мы получаем данные строки.
Строка.Сумма=Строка.Количество*Строка.Цена — Это формула (Строка.Сумма, Строка.Количество, Строка.Цена этими строчками мы обращаемся к значениям которые находятся в таблице)
КонецПроцедуры — Это как вы уже догадались конец процедуры.
После чего запускаем отладку и проверяем. Для этого в документе вводим значения в поля Количество и Цена после чего сумма должна подставиться автоматически.
Вот вы и узнали, как рассчитать сумму в строке табличной части.
Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.