1С: доработка документа “Приходная накладная” - ставка НДС и итог по документу | Урок 6
В этом видео дорабатываю документ **“Приходная накладная”** в 1С. Показываю, как добавить в табличную часть поле **“Ставка НДС”**, создать реквизит документа **“Итого по документу”**, вывести новые поля на форму и настроить автоматический пересчёт суммы строки и общего итога. Что реализовано в видео: — добавлен реквизит табличной части **СтавкаНДС**; — добавлен реквизит документа **ИтогоПоДокументу**; — создана форма документа; — сумма строки рассчитывается с учётом НДС; — итог по документу пересчитывается по всем строкам табличной части; — обработчики **ПриИзменении** подключены к полям количества, цены и ставки НДС. Формула расчёта суммы строки: Количество * Цена * (1 + СтавкаНДС / 100) Например, если количество = 1, цена = 35, ставка НДС = 2%, то сумма строки будет: 1 * 35 * 1,02 = 35,70 Код из видео: &НаКлиенте Процедура ПересчитатьТекущуюСтроку() // Получаем текущую строку табличной части "Материалы". // Это та строка, которую пользователь сейчас редактирует. СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные; // Если текущая строка не определена, // то дальше выполнять код не нужно. Если СтрокаТабличнойЧасти = Неопределено Тогда Возврат; КонецЕсли; // Рассчитываем сумму строки с учетом НДС. // Формула: Количество * Цена * (1 + СтавкаНДС / 100) СтрокаТабличнойЧасти.Сумма = Окр( СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена * (1 + СтрокаТабличнойЧасти.СтавкаНДС / 100), 2 ); // После пересчета строки обновляем итог по документу. ПересчитатьИтогПоДокументу(); КонецПроцедуры &НаКлиенте Процедура ПересчитатьИтогПоДокументу() // Сначала обнуляем итог. // Это нужно, чтобы при повторном пересчете сумма не накапливалась ошибочно. Объект.ИтогоПоДокументу = 0; // Проходим циклом по всем строкам табличной части "Материалы". Для Каждого СтрокаМатериалы Из Объект.Материалы Цикл // Прибавляем сумму каждой строки к общему итогу документа. Объект.ИтогоПоДокументу = Объект.ИтогоПоДокументу + СтрокаМатериалы.Сумма; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура МатериалыКоличествоПриИзменении(Элемент) // При изменении количества пересчитываем текущую строку. ПересчитатьТекущуюСтроку(); КонецПроцедуры &НаКлиенте Процедура МатериалыЦенаПриИзменении(Элемент) // При изменении цены пересчитываем текущую строку. ПересчитатьТекущуюСтроку(); КонецПроцедуры &НаКлиенте Процедура МатериалыСтавкаНДСПриИзменении(Элемент) // При изменении ставки НДС пересчитываем текущую строку. ПересчитатьТекущуюСтроку(); КонецПроцедуры ``` Теги: 1С, 1С программирование, 1С Предприятие, 1С разработка, Приходная накладная, табличная часть 1С, обработчики событий 1С, ПриИзменении 1С, НДС 1С, итог по документу 1С, обучение 1С, конфигуратор 1С
В этом видео дорабатываю документ **“Приходная накладная”** в 1С. Показываю, как добавить в табличную часть поле **“Ставка НДС”**, создать реквизит документа **“Итого по документу”**, вывести новые поля на форму и настроить автоматический пересчёт суммы строки и общего итога. Что реализовано в видео: — добавлен реквизит табличной части **СтавкаНДС**; — добавлен реквизит документа **ИтогоПоДокументу**; — создана форма документа; — сумма строки рассчитывается с учётом НДС; — итог по документу пересчитывается по всем строкам табличной части; — обработчики **ПриИзменении** подключены к полям количества, цены и ставки НДС. Формула расчёта суммы строки: Количество * Цена * (1 + СтавкаНДС / 100) Например, если количество = 1, цена = 35, ставка НДС = 2%, то сумма строки будет: 1 * 35 * 1,02 = 35,70 Код из видео: &НаКлиенте Процедура ПересчитатьТекущуюСтроку() // Получаем текущую строку табличной части "Материалы". // Это та строка, которую пользователь сейчас редактирует. СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные; // Если текущая строка не определена, // то дальше выполнять код не нужно. Если СтрокаТабличнойЧасти = Неопределено Тогда Возврат; КонецЕсли; // Рассчитываем сумму строки с учетом НДС. // Формула: Количество * Цена * (1 + СтавкаНДС / 100) СтрокаТабличнойЧасти.Сумма = Окр( СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена * (1 + СтрокаТабличнойЧасти.СтавкаНДС / 100), 2 ); // После пересчета строки обновляем итог по документу. ПересчитатьИтогПоДокументу(); КонецПроцедуры &НаКлиенте Процедура ПересчитатьИтогПоДокументу() // Сначала обнуляем итог. // Это нужно, чтобы при повторном пересчете сумма не накапливалась ошибочно. Объект.ИтогоПоДокументу = 0; // Проходим циклом по всем строкам табличной части "Материалы". Для Каждого СтрокаМатериалы Из Объект.Материалы Цикл // Прибавляем сумму каждой строки к общему итогу документа. Объект.ИтогоПоДокументу = Объект.ИтогоПоДокументу + СтрокаМатериалы.Сумма; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура МатериалыКоличествоПриИзменении(Элемент) // При изменении количества пересчитываем текущую строку. ПересчитатьТекущуюСтроку(); КонецПроцедуры &НаКлиенте Процедура МатериалыЦенаПриИзменении(Элемент) // При изменении цены пересчитываем текущую строку. ПересчитатьТекущуюСтроку(); КонецПроцедуры &НаКлиенте Процедура МатериалыСтавкаНДСПриИзменении(Элемент) // При изменении ставки НДС пересчитываем текущую строку. ПересчитатьТекущуюСтроку(); КонецПроцедуры ``` Теги: 1С, 1С программирование, 1С Предприятие, 1С разработка, Приходная накладная, табличная часть 1С, обработчики событий 1С, ПриИзменении 1С, НДС 1С, итог по документу 1С, обучение 1С, конфигуратор 1С



