Учет и Финансы · 8 мин
Как посчитать сумму документа в 1С
Как посчитать сумму документа в 1С: автоматический расчёт, итоги по табличной части, формулы, запросы и проверка расхождений с НДС и скидками.
Сумма документа в 1С — это итоговое значение, которое складывается из строк табличной части: количество, цена, скидка и ставка НДС каждой позиции. В типовых конфигурациях («Управление торговлей», «Бухгалтерия предприятия», «ERP») сумма рассчитывается автоматически при заполнении строк, но понимать логику расчёта нужно, чтобы проверять итоги, находить расхождения и корректно дорабатывать документы.
Задача «посчитать сумму документа» встречается в трёх разных ситуациях: пользователю нужно увидеть итог в форме, бухгалтеру — сверить сумму с первичкой или выпиской, а разработчику — получить сумму программно в запросе или коде. Каждый сценарий решается своим инструментом, и ниже разобраны все три.
Важно различать «сумму без НДС», «сумму НДС» и «сумму с НДС (всего)». В печатных формах и проводках используются разные величины, и путаница между ними — самая частая причина «неправильной» суммы документа.
Как устроен расчёт суммы в типовом документе
В большинстве документов 1С (реализация, поступление, счёт на оплату, заказ) есть табличная часть «Товары» или «Услуги» с колонками: количество, цена, сумма, ставка НДС, сумма НДС, всего. При изменении количества или цены строка пересчитывается по формуле: сумма = количество × цена, затем от этой суммы считается НДС по выбранной ставке.
Если в документе включена скидка, порядок меняется: сначала применяется скидка к строке, и НДС рассчитывается уже от суммы со скидкой. Флаг «Цена включает НДС» в шапке документа определяет, входит ли налог в цену или начисляется сверху — это напрямую влияет на итог «Всего».
Итоговая сумма документа обычно хранится в реквизите шапки «СуммаДокумента» и заполняется автоматически при записи. В форме документа итог виден под табличной частью или в поле «Всего» рядом с валютой.
Как увидеть итог в форме документа
Откройте документ и посмотрите под табличную часть: там выводятся итоги по колонкам «Сумма», «НДС» и «Всего». Если итоги не отображаются, проверьте настройку формы: в некоторых конфигурациях строку итогов можно включить через меню «Ещё» → «Изменить форму» или через настройку списка табличной части.
Для быстрой проверки части позиций выделите несколько строк табличной части (с зажатой Ctrl или Shift) — во многих формах в строке состояния или по правой кнопке мыши доступна сумма по выделенным строкам. Это удобно, когда нужно сверить отдельную группу товаров с накладной поставщика.
- 1Откройте документ и убедитесь, что все строки заполнены: количество, цена, ставка НДС.
- 2Проверьте флаг «Цена включает НДС» в шапке — он меняет итог «Всего».
- 3Сравните итог «Всего» под табличной частью с суммой в первичном документе.
- 4При расхождении пересчитайте строки: измените цену в любой строке и верните обратно, чтобы запустить пересчёт.
Как посчитать сумму программно в коде 1С
В модуле объекта или в произвольном коде сумму по табличной части получают методом Итог(). Например, для документа с табличной частью «Товары»: СуммаДокумента = Товары.Итог("Сумма");. Аналогично получают итог НДС: Товары.Итог("СуммаНДС").
Если нужна сумма с учётом особой логики — например, только по строкам с определённым складом или видом номенклатуры — используйте цикл с накоплением или метод Выгрузить() с последующей свёрткой таблицы значений. Метод Итог() не поддерживает отбор, поэтому для условных сумм цикл обязателен.
СуммаБезНДС = Объект.Товары.Итог("Сумма");
СуммаНДС = Объект.Товары.Итог("СуммаНДС");
СуммаИтого = СуммаБезНДС + СуммаНДС;
// Условная сумма по отбору
СуммаПоСкладу = 0;
Для Каждого Строка Из Объект.Товары Цикл
Если Строка.Склад = ОсновнойСклад Тогда
СуммаПоСкладу = СуммаПоСкладу + Строка.Сумма;
КонецЕсли;
КонецЦикла;При доработке документа размещайте пересчёт итога в обработчике «ПередЗаписью» или «ОбработкаЗаполнения», а в форме — в обработчиках «ПриИзменении» полей количества и цены. Это гарантирует, что сумма актуальна и на экране, и в базе после записи.
Как получить сумму запросом по нескольким документам
Для отчётов и обработок суммы считают запросом к табличной части с агрегатной функцией СУММА. Запрос к табличной части «РеализацияТоваровУслуг.Товары» с группировкой по ссылке вернёт итог каждого документа, а группировка по контрагенту — обороты по клиентам за период.
Запрос к табличной части работает быстрее, чем обход документов в цикле с вызовом Итог(), особенно на больших объёмах. Дополнительно добавьте отбор по проведённости (Ссылка.Проведен), чтобы в суммы не попали черновики и помеченные на удаление документы.
ВЫБРАТЬ
Товары.Ссылка КАК Документ,
СУММА(Товары.Сумма) КАК СуммаБезНДС,
СУММА(Товары.СуммаНДС) КАК СуммаНДС
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
ГДЕ
Товары.Ссылка.Проведен
СГРУППИРОВАТЬ ПО
Товары.СсылкаПочему сумма документа не сходится с первичкой
Расхождение в копейки чаще всего возникает из-за округления НДС: налог в строке округляется до копеек, а поставщик мог посчитать НДС от общей суммы накладной. Сумма таких округлений по десяткам строк даёт заметную разницу. Проверьте, как считает налог контрагент, и при необходимости скорректируйте сумму НДС в строке вручную — в типовых формах это допустимо.
Вторая причина — разный порядок применения скидки и НДС. Если в бумажной накладной скидка дана на итог, а в 1С скидка распределена по строкам, итоги могут разойтись. Третья причина — курс валюты: в валютных документах сумма в рублях зависит от курса на дату документа, и устаревший курс даёт неверный итог.
Проверка результата и сверка с учётом
После расчёта сверьте итог документа с проводками: сумма по дебету и кредиту в движениях документа должна совпадать с итогом табличной части с учётом НДС. Кнопка «Дт/Кт» или отчёт «Проводки документа» показывает, какие суммы реально попали в учёт.
Для массовой проверки используйте отчёт «Анализ субконто» или универсальный отчёт по регистрам: сгруппируйте обороты по документам и сравните с итогами в формах. Расхождение между документом и проводками — признак ручной правки сумм или сбоя при перепроведении.
Как проверить результат
Совпадает с суммой по первичному документу с точностью до копеек
Расхождение больше нескольких копеек — ищите строку с ошибкой или неверный флаг НДС
Равна итогу табличной части с учётом НДС
Проводки меньше или больше итога — документ правили вручную после проведения
Равен сумме НДС по строкам и совпадает с книгой покупок/продаж
НДС в документе не попадает в книгу — проверьте ставки и дату документа
Частые вопросы
Как быстро посчитать сумму нескольких документов в списке?
Выделите нужные документы в журнале и используйте итог по колонке «Сумма», если она выведена в список, либо сформируйте отчёт по документам за период. В некоторых конфигурациях сумма по выделенным строкам списка доступна через настройку итогов списка.
Почему итог «Всего» не равен сумме колонки «Сумма»?
Потому что «Всего» включает НДС, если флаг «Цена включает НДС» снят. Разница между «Всего» и «Сумма» должна точно равняться итогу колонки «НДС» — это быстрый способ проверить корректность расчёта.
Можно ли вручную изменить сумму строки?
В типовых документах сумму строки можно изменить, и тогда цена пересчитается обратно от суммы. Но после ручной правки обязательно проверьте сумму НДС в строке — она не всегда пересчитывается автоматически, и налог в проводках может исказиться.
Как посчитать сумму документа в валюте и в рублях одновременно?
Валютная сумма хранится в реквизите документа, а рублёвый эквивалент рассчитывается по курсу на дату документа и отражается в проводках. Программно рублёвую сумму получают умножением валютного итога на курс из реквизитов документа или из регистра курсов валют.
Сумма в печатной форме отличается от суммы на экране — что делать?
Проверьте, какие поля выводит макет печатной формы: часто в печать идёт сумма без НДС, а на экране виден итог «Всего». Также убедитесь, что документ после изменений был перезаписан — печатная форма строится по сохранённым данным.
Что важно запомнить
Сумма документа в 1С — это итог табличной части с учётом скидок и НДС. В форме смотрите поле «Всего», в коде используйте Товары.Итог("Сумма"), в отчётах — запрос с функцией СУММА и отбором по проведённым документам. Перед сверкой всегда уточняйте, какая сумма сравнивается: без НДС, НДС или всего, и проверяйте флаг «Цена включает НДС».