Найти в Дзене

Как сделать автосумму в 1с

Создание автосуммы в 1С зависит от того, где именно вам нужно получить автоматический расчет суммы: 1. Автосумма в табличной части документа: Это самый распространенный случай, когда необходимо автоматически рассчитывать сумму строки табличной части (например, количество * цена) и общую сумму по всем строкам. Расчет суммы строки: Откройте конфигуратор и найдите нужную форму документа. Найдите табличную часть, для которой нужно реализовать автосумму. Найдите колонку, в которой должна отображаться сумма строки (например, “Сумма”). В свойстве этой колонки “Только просмотр” установите значение “Истина”. (Чтобы пользователь не мог вручную редактировать сумму строки) В событии “ПриИзменении” колонки “Количество” и колонки “Цена” (или других колонок, влияющих на сумму) добавьте следующий код: &НаКлиенте Процедура ТоварыКоличествоПриИзменении(Элемент) РассчитатьСуммуСтроки(Элемент. Родитель); КонецПроцедуры &НаКлиенте Процедура ТоварыЦенаПриИзменении(Элемент) РассчитатьСуммуСтроки(Элемент. Род

Создание автосуммы в 1С зависит от того, где именно вам нужно получить автоматический расчет суммы:

1. Автосумма в табличной части документа:

Это самый распространенный случай, когда необходимо автоматически рассчитывать сумму строки табличной части (например, количество * цена) и общую сумму по всем строкам.

Расчет суммы строки:

Откройте конфигуратор и найдите нужную форму документа.

Найдите табличную часть, для которой нужно реализовать автосумму.

Найдите колонку, в которой должна отображаться сумма строки (например, “Сумма”).

В свойстве этой колонки “Только просмотр” установите значение “Истина”. (Чтобы пользователь не мог вручную редактировать сумму строки)

В событии “ПриИзменении” колонки “Количество” и колонки “Цена” (или других колонок, влияющих на сумму) добавьте следующий код:

&НаКлиенте

Процедура ТоварыКоличествоПриИзменении(Элемент)

РассчитатьСуммуСтроки(Элемент. Родитель);

КонецПроцедуры

&НаКлиенте

Процедура ТоварыЦенаПриИзменении(Элемент)

РассчитатьСуммуСтроки(Элемент. Родитель);

КонецПроцедуры

&НаКлиенте

Процедура РассчитатьСуммуСтроки(СтрокаТЧ)

СтрокаТЧ. Сумма = СтрокаТЧ. Количество * СтрокаТЧ. Цена;

КонецПроцедуры

Замените Товары на имя вашей табличной части.

Замените Количество и Цена на имена колонок, содержащих количество и цену.

Замените Сумма на имя колонки, в которой должна отображаться сумма строки.

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

Расчет общей суммы по табличной части:

Найдите поле, в котором должна отображаться общая сумма по табличной части (например, “СуммаДокумента”).

В свойстве этого поля “Только просмотр” установите значение “Истина”.

В событии “ПослеЗаписи” (или другом подходящем событии, например, “ПриИзмененииСостава”) формы документа добавьте следующий код:

&НаСервере

Процедура ПослеЗаписи(ПараметрыЗаписи)

РассчитатьСуммуДокумента();

КонецПроцедуры

&НаКлиенте

Процедура ТоварыПриИзменении(Элемент)

РассчитатьСуммуДокумента();

КонецПроцедуры

&НаСервере

Процедура РассчитатьСуммуДокумента()

СуммаДокумента = 0;

Для Каждого СтрокаТЧ Из Объект. Товары Цикл

СуммаДокумента = СуммаДокумента + СтрокаТЧ. Сумма;

КонецЦикла;

КонецПроцедуры

Замените Товары на имя вашей табличной части.

Замените СуммаДокумента на имя поля, в котором должна отображаться общая сумма документа.

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

Для отображения общей суммы в подвале табличной части, можно использовать элемент управления “ИтогПоКолонке” в настройках табличного поля.

2. Автосумма в отчете:

В отчетах 1С автосумма настраивается с помощью системы компоновки данных (СКД).

Откройте схему компоновки данных отчета в режиме “Конструктор схемы компоновки данных”.

Перейдите на закладку “Ресурсы”.

Добавьте ресурс, который будет содержать сумму (если его еще нет).

В выражении ресурса укажите функцию “Сумма”:

Сумма(Выручка)

Замените Выручка на имя поля, которое нужно суммировать.

Перейдите на закладку “Настройки”.

В настройках группировки укажите, где должна отображаться сумма.

Сформируйте отчет.

3. Автосумма в запросе:

В запросах 1С автосумма вычисляется с помощью агрегатной функции СУММА().

ВЫБРАТЬ

СУММА(Продажи. Сумма) КАК ОбщаяСуммаПродаж

ИЗ

Документ. РеализацияТоваровУслуг. Товары КАК Продажи

В данном запросе СУММА(Продажи. Сумма) вычисляет общую сумму продаж из табличной части “Товары” документа “РеализацияТоваровУслуг”.

КАК ОбщаяСуммаПродаж задает имя поля, в котором будет содержаться результат суммирования.

4. Другие случаи:

Если вам нужно реализовать автосумму в другом месте 1С (например, в обработке), то используйте код на встроенном языке 1С для расчета суммы и отображения результата в нужном поле.

Рекомендации:

Используйте правильные типы данных: Убедитесь, что поля, которые вы суммируете, имеют числовой тип данных.

Используйте функцию Округлить() для округления результатов суммирования, если это необходимо.

Проверяйте данные на корректность: Перед суммированием проверяйте данные на корректность (например, что они не равны Null).

Следуйте стандартам кодирования 1С для обеспечения читаемости и поддерживаемости кода.

Помните, что код расчета суммы должен выполняться только при необходимости, чтобы не замедлять работу системы. Используйте события ПриИзменении, ПослеЗаписи и другие подходящие события для запуска расчета суммы.

Настройте права доступа: Ограничьте доступ пользователей к изменению полей, влияющих на автоматический расчет суммы, чтобы избежать случайных ошибок.

Следуя этим рекомендациям, вы сможете правильно реализовать автосумму в 1С и обеспечить корректный расчет сумм в вашей системе.

  📷
📷