Найти в Дзене

Автоподсчет суммы в табличной части. Платформа 1С:Предприятие 8.3

Документы с использованием табличных частей должны быть автоматизированы на предмет подсчета суммы в строке и суммы в документе в общем. В рамках своей поставленной задачи определите в каких документах необходимо реализовать автосумму. Приведем пример подсчета автосуммы. Для ведения учета прибытия товары в компании используется документ «ПриходнаяНакладная». Одним документов в организацию поступают несколько товаров, для этого необходимо создать табличную часть «Товары» со следующими реквизитами - Номенклатура. Тип:СправочникСсылка.Номенклатура; - Количесво. Тип:Число длина 15, точность 3, неотрицательное; - Цена. Тип:Число длина 15, точность 2, неотрицательное; - Сумма. Тип:Число длина 15, точность 2, неотрицательное; Для учета общей суммы документа создадим реквизит «СуммаДокумента», тип:Число длина 15, точность 2, неотрицательное. Все реквизиты должны иметь проверку заполнения. Откроем форму элемента документа. Выберем событие «ПриИзменении» элемента «ТоварыКоличество» и создадим об

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

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

Приведем пример подсчета автосуммы.

Для ведения учета прибытия товары в компании используется документ «ПриходнаяНакладная». Одним документов в организацию поступают несколько товаров, для этого необходимо создать табличную часть «Товары» со следующими реквизитами

- Номенклатура. Тип:СправочникСсылка.Номенклатура;

- Количесво. Тип:Число длина 15, точность 3, неотрицательное;

- Цена. Тип:Число длина 15, точность 2, неотрицательное;

- Сумма. Тип:Число длина 15, точность 2, неотрицательное;

Для учета общей суммы документа создадим реквизит «СуммаДокумента», тип:Число длина 15, точность 2, неотрицательное.

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

Конфигурирование документа "Приходная накладная"
Конфигурирование документа "Приходная накладная"

Откроем форму элемента документа.

Форма элемента документа "Приходная накладная"
Форма элемента документа "Приходная накладная"

Выберем событие «ПриИзменении» элемента «ТоварыКоличество» и создадим обработчик события «НаКлиенте».

В модуле формы сгенерируется следующий код:

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

В дереве конфигурации в ветке «Общие» создадим общий модуль «ОбработкаДокумента». Установим свойства «Сервер» в значение «Истина»,«Клиент» в значение «Истина» и «Вызов сервера» в значение «Истина».

Передем в модуль формы документа «ПриходнаяНакладная» и продолжим работу с процедурой ТоварыКоличествоПриИзмиенении

Определим переменную «ТекущаяСтрока»

Просмотр данных текущей строки при отладке
Просмотр данных текущей строки при отладке

По контексту этой переменной мы модем получить и манипулировать данными строки табличной части, с которой работает пользователь.

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

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

Теперь при изменении количества поле «Сумма» будет рассчитываться автоматически. Реализуем аналогичное поведение для поля «Цена»

Процедура ТоварыЦенаПриИзменении
Процедура ТоварыЦенаПриИзменении

Исключим дублирование кода и вынесем его часть в общий модуль, так как сумма может подсчитываться не в одном документа, а в нескольких. Для этого в общем модуле «ОбработкаДокумента» реализуем экспортную процедуру «РасчитатьСумму» где параметром передаем текущую строку.

Процедура РасчитатьСумму
Процедура РасчитатьСумму

Из формы элемента документа вызовем общую процедуру

Вызов общей процедуры
Вызов общей процедуры

Перейдем на форму элемента документа и сделаем для пользователя элемент «ТоварыСумма» недоступным для изменения, установив свойство «ТолькоПросмотр» в значение «Истина».

Обновите конфигурацию и проверте работоспособность кода.

Расчитаем общую сумму документа. Перейдем в модуль объекта документа.

Вызовем окно процедур и функций нажав на пиктограмму

Пиктограмма стандартных процедур
Пиктограмма стандартных процедур

Выбирем процедуру «ПередЗаписью». В модуле объекта нам доступен контекст объекта. Подсчитаем сумму всех товаров по таблице.

Стандартная процедура ПередЗаписью
Стандартная процедура ПередЗаписью

Перейдем на форму элемента документа и сделаем для пользователя элемент «СуммаДокумента» недоступным для изменения, установив свойство «ТолькоПросмотр» в значение «Истина», Свойство «Вид» в значение «Поле надписи».

Обновляем базу и проверяем результат.

#программирование 1с #1с предприятие #1c разработчик #worldskills russia #r71