Работа с суммами в 1С:Предприятие — одна из самых частых задач, с которой сталкиваются бухгалтеры, кладовщики и разработчики. Казалось бы, что может быть проще, чем сложить несколько чисел? Но в 1С есть нюансы: здесь суммы могут зависеть от валют, округлений, налоговых ставок или даже от настроек учётной политики. Ошибка в расчётах грозит не только искажением отчётности, но и штрафами от налоговой.
Эта статья поможет разобраться, как правильно считать суммы в разных разделах 1С — от ручного ввода в документах до автоматизированных отчётов и программных запросов. Мы рассмотрим 5 основных способов подсчёта (включая малоизвестные приёмы), типичные ошибки и дадим готовые примеры кода для разработчиков. Особое внимание уделим скрытым настройкам, которые влияют на итоговую сумму, но часто остаются незамеченными.
1. Ручной подсчёт сумм в документах 1С
Самый простой способ — сложить числа непосредственно в форме документа. Например, в Реализация товаров и услуг или Поступление (акт, накладная) суммы по строкам табличной части автоматически складываются в поле Итого. Но что делать, если нужно посчитать сумму по определённому критерию (например, только по товарам с НДС 20%)?
Для этого:
- 📌 Выделите нужные строки в табличной части (удерживая
CtrlилиShift). - 📊 Внизу формы появится панель с суммами по выделенным строкам (включая количество, сумму без НДС и с НДС).
- 🔍 Если панели нет — включите её в настройках формы (
Ещё → Настройки → Показывать итоги по выделенным строкам).
В документах с большим количеством строк (более 100) ручной подсчёт может тормозить. В этом случае лучше использовать отчёт Анализ субконто или запрос.
Что делать, если сумма в документе не сходится с расчётами вручную?
Если итоговая сумма в документе не совпадает с вашими расчётами, проверьте:
1. Налоговые ставки — возможно, для некоторых строк применён неверный НДС.
2. Валюту документа — если валюта отличается от рубля, сумма пересчитывается по курсу на дату документа.
3. Округления — в настройках учётной политики может быть включено округление до копеек или рублей.
4. Скидки/наценки — они могут применяться как к отдельным строкам, так и ко всему документу.
2. Автоматический подсчёт через отчёты 1С
Отчёты в 1С — это самый надёжный способ посчитать суммы, так как они учитывают все настройки системы. Например, отчёт Оборотно-сальдовая ведомость покажет суммы по счётам бухгалтерского учёта, а Анализ счёта — развернутую информацию по проводкам.
Как построить отчёт для подсчёта суммы:
- Перейдите в раздел
Отчёты(в бухгалтерских конфигурациях обычно в верхнем меню). - Выберите нужный отчёт (например,
Анализ субконтодля сумм по контрагентам или номенклатуре). - Задайте период и фильтры (например,
Счёт = 62.01иКонтрагент = ООО"Ромашка"). - Нажмите
Сформировать— суммы появятся в колонкахДебет,КредитилиСальдо.
| Отчёт | Для чего подходит | Где искать сумму |
|---|---|---|
Оборотно-сальдовая ведомость |
Суммы по счётам бухгалтерского учёта | Колонки Сальдо начальное, Обороты, Сальдо конечное |
Анализ счёта |
Детализация проводок по счёту | Колонка Сумма в таблице проводок |
Анализ субконто |
Суммы по контрагентам, номенклатуре, договорам | Колонки Дебет, Кредит, Сальдо |
Карточка счёта |
Хронология изменений по счёту | Колонка Сумма с указанием дебет/кредит |
⚠️ Внимание: Если в отчёте суммы отображаются в условных единицах (например, в долларах), а вам нужны рубли — проверьте настройки валюты отчёта. Иногда система по умолчанию показывает суммы в валюте управленческого учёта, а не в рублях.
3. Использование конструктора запросов для сложных расчётов
Если нужно посчитать сумму по нестандартным критериям (например, сумму продаж по определённому региону за квартал с учётом скидок), ручные отчёты могут не подойти. В этом случае поможет конструктор запросов.
Пример запроса для подсчёта суммы реализации по номенклатуре за месяц:
ВЫБРАТЬ
Номенклатура.Наименование КАК Товар,
СУММА(РеализацияТоваровУслугТовары.Сумма) КАК ИтогоСумма
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО РеализацияТоваровУслугТовары.Номенклатура = Номенклатура.Ссылка
ГДЕ
РеализацияТоваровУслугТовары.Ссылка ДАТА МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Номенклатура.Наименование
Чтобы выполнить этот запрос:
- Откройте
Сервис → Конструктор запросов(илиВсе функции → Запросы). - Вставьте текст запроса и нажмите
Выполнить. - Укажите параметры (например,
&НачалоПериода ='01.01.2026').
⚠️ Внимание: Если в запросе используются виртуальные таблицы (например, РегистрНакопления.Продажи.Обороты), убедитесь, что у вас есть права на чтение этих регистров. В некоторых конфигурациях доступ к виртуальным таблицам ограничен.
Указан правильный период|Поля в SELECT и GROUP BY совпадают|Учтены все необходимые таблицы|Права пользователя позволяют выполнить запрос-->
4. Программный подсчёт сумм (для разработчиков)
Если вы разработчик или продвинутый пользователь, можно посчитать сумму прямо в коде на встроенном языке 1С. Это полезно для автоматизации или создания собственных обработок.
Примеры кода для разных задач:
1. Сумма по колонке в табличной части документа:
Сумма = 0;
Для Каждого Строка Из ДокументОбъект.Товары Цикл
Сумма = Сумма + Строка.Сумма;
КонецЦикла;
2. Сумма по регистру накопления (например, продажи за период):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ПродажиОбороты.СуммаОборот) КАК ИтогоПродажи
|ИЗ
| РегистрНакопления.Продажи.Обороты(&ПериодНачало, &ПериодКонец,) КАК ПродажиОбороты";
Запрос.УстановитьПараметр("ПериодНачало", НачалоМесяца(ТекущаяДата));
Запрос.УстановитьПараметр("ПериодКонец", КонецМесяца(ТекущаяДата));
Результат = Запрос.Выполнить;
ИтогоПродажи = Результат.Выбрать.СуммаОборот;
3. Сумма с учётом курса валют:
СуммаВРублях = ДокументОбъект.СуммаДокумента * КурсыВалют.ПолучитьКурс(
ДокументОбъект.Валюта,
ДокументОбъект.Дата
);
⚠️ Внимание: При программном подсчёте сумм в 1С 8.3 учитывайте, что:
- 🔢 Операции с
ЧислоиДенежноемогут давать разные результаты из-за округлений. - 💱 Если валюта документа не рубли, всегда пересчитывайте сумму через
КурсыВалют.ПолучитьКурс. - 📅 Дата документа влияет на курс валюты и налоговые ставки.
При работе с денежными суммами в коде всегда используйте тип Денежное, а не Число — это поможет избежать ошибок округления.
5. Подсчёт сумм в отчётах с помощью СКД (Система Компоновки Данных)
Система Компоновки Данных (СКД) — это мощный инструмент для создания гибких отчётов с автоматическим подсчётом сумм. Она позволяет:
- 📈 Группировать данные по любым полям (контрагенты, номенклатура, месяцы).
- 💰 Считать промежуточные и итоговые суммы.
- 🎨 Настраивать оформление (цвета, шрифты, условное оформление).
Как создать отчёт с суммами в СКД:
- Откройте конструктор отчёта (
Файл → Новый → Отчёт). - Добавьте нужные поля в
Набор данных(например,Документ.РеализацияТоваровУслуг.СуммаДокумента). - В разделе
Настройкидобавьте группировки (например, поКонтрагенту). - В колонках укажите
Сумма(СуммаДокумента)для подсчёта. - Нажмите
Сформировать.
Пример настройки группировки для подсчёта суммы продаж по месяцам:
// В настройках СКД:
Группировка = Новый ГруппировкаКомпоновкиДанных("Месяц");
Группировка.Поля.Добавить(Новый ПолеКомпоновкиДанных("Дата.Месяц"));
Группировка.Итоги.Добавить(Новый ИтогКомпоновкиДанных("СуммаПродаж", ТипИтогаКомпоновкиДанных.Сумма,"СуммаДокумента"));
⚠️ Внимание: В СКД суммы могут отличаться от ручных расчётов, если:
- 🔍 В настройках отчёта включены фильтры (например, только оплаченные документы).
- 📊 Используются вычисляемые поля с округлением.
- 📅 Период в отчёте не совпадает с периодом документов.
6. Типичные ошибки при подсчёте сумм в 1С и как их избежать
Даже опытные пользователи 1С иногда сталкиваются с расхождениями в суммах. Вот самые распространённые ошибки:
| Ошибка | Причина | Как исправить |
|---|---|---|
| Сумма в документе не совпадает с суммой в отчёте | В отчёте учитываются только проведённые документы, а в форме документа — все строки, включая несохранённые. | Проверьте статус документа (Проведён или Не проведён). |
| Сумма в рублях не сходится с суммой в валюте | Курс валюты на дату документа отличается от текущего курса. | Посмотрите курс в справочнике Валюты на дату документа. |
| Округление копеек в отчёте | В настройках учётной политики включено округление до рублей. | Проверьте настройки округления в Главное → Настройки программы → Учётная политика. |
| Сумма НДС посчитана неверно | Для некоторых строк применена неверная ставка НДС (например, 10% вместо 20%). | Проверьте ставку НДС в каждой строке табличной части документа. |
🔹 Совет: Если суммы всё равно не сходятся, воспользуйтесь отчётом Анализ проводок — он покажет все движения по счётам, связанные с документом.
Что делать, если сумма в отчёте"Анализ счёта" не совпадает с бухгалтерским балансом?
Это может происходить из-за:
1. Непроведённых документов — они не попадают в обороты.
2. Ручных операций — введённых напрямую через Операции (бухгалтерский и налоговый учёт).
3. Разных периодов — в балансе может быть указан другой интервал.
4. Ошибок в проводках — проверьте корреспонденцию счетов.
Для диагностики используйте отчёт Сверка итогов (доступен в сервисных функциях).
7. Автоматизация подсчёта сумм: обработки и расширения
Если вам часто приходится считать суммы по одним и тем же критериям, имеет смысл автоматизировать процесс. Для этого можно:
- 🤖 Создать внешнюю обработку с готовыми запросами.
- 📊 Настроить регламентное задание для ежемесячного расчёта сумм.
- 🔧 Использовать расширения конфигурации, если нужны изменения в стандартных отчётах.
Пример простой обработки для подсчёта суммы задолженности контрагентов:
Процедура ПодсчетЗадолженности(Команда)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Наименование КАК Контрагент,
| СУММА(РегистрНакопления.ВзаиморасчетыСКонтрагентами.СальдоКонечное) КАК Задолженность
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаОтчета,) КАК РегистрНакопленияВзаиморасчетыСКонтрагентами
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО РегистрНакопленияВзаиморасчетыСКонтрагентами.Контрагент = Контрагенты.Ссылка
|ГДЕ
| РегистрНакопленияВзаиморасчетыСКонтрагентами.СальдоКонечное <> 0
|УПОРЯДОЧИТЬ ПО
| АБС(Задолженность) УБЫВ";
Запрос.УстановитьПараметр("ДатаОтчета", ТекущаяДата);
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
Пока Выборка.Следующий Цикл
Сообщить(СтрШаблон("Контрагент: %1, Задолженность: %2", Выборка.Контрагент, Выборка.Задолженность));
КонецЦикла;
КонецПроцедуры
Готовые обработки для подсчёта сумм можно найти:
- 📂 В
Каталоге решений 1С(официальный сайт). - 🌐 На форумах 1С (например,
InfostartилиКлерк.Ру). - 💾 В поставке типовой конфигурации (папка
ExtForms).
Перед использованием сторонних обработок всегда проверяйте их в тестовой базе — некоторые скрипты могут конфликтовать с вашей конфигурацией.
FAQ: Частые вопросы о подсчёте сумм в 1С
🔹 Почему сумма в документе и в отчёте отличаются на несколько копеек?
Это связано с округлением. В настройках учётной политики может быть включено округление до рублей, а в документе суммы хранятся с копейками. Проверьте:
- Настройки округления в
Главное → Настройки программы → Валюты. - Параметр
Округлять суммы документовв учётной политике.
Также расхождения могут возникать из-за валютных переоценок, если документ в иностранной валюте.
🔹 Как посчитать сумму по нескольким документам одновременно?
Используйте отчёт Анализ субконто с фильтром по типу документа (например, РеализацияТоваровУслуг). Или создайте запрос:
ВЫБРАТЬ
СУММА(Документ.РеализацияТоваровУслуг.СуммаДокумента) КАК Итого
ИЗ
Документ.РеализацияТоваровУслуг
ГДЕ
Документ.РеализацияТоваровУслуг.Дата МЕЖДУ &Начало И &Конец
🔹 Можно ли в 1С посчитать сумму с учётом будущих платежей (например, авансов)?
Да, для этого используйте отчёт Взаиморасчёты с контрагентами или регистр накопления ВзаиморасчетыСКонтрагентами. В настройках отчёта включите опцию Учитывать будущие платежи (если она доступна в вашей конфигурации).
Для точного расчёта может потребоваться ручная корректировка, так как 1С не всегда автоматически учитывает неоплаченные авансы в будущих периодах.
🔹 Как экспортировать суммы из 1С в Excel для дальнейшей обработки?
Есть несколько способов:
- В любом отчёте нажмите
Ещё → Выгрузитьи выберите форматExcel. - Используйте обработку
ВыгрузкаВExcel(доступна в стандартной поставке). - Для программной выгрузки используйте код:
Таблица = Новый ТаблицаЗначений;Таблица.Выгрузить(ПутьКФайлу, ТипФайлаExcel.Excel2007);
⚠️ При выгрузке в Excel суммы могут отображаться без копеек — проверьте формат ячеек в полученном файле.
🔹 Почему в запросе сумма считается неверно, если использовать GROUP BY?
Эточная ошибка при работе с СУММА и группировками. Проблема возникает, если:
- В
SELECTуказаны поля, которых нет вGROUP BY. - Используются вычисляемые поля без правильной агрегации.
- В запросе есть
РАЗЛИЧНЫЕилиВЫБОР КОГДАбез обёртки в агрегатную функцию.
Пример неправильного запроса:
ВЫБРАТЬ
Контрагент,
Договор, // <-- это поле не в GROUP BY!
СУММА(Сумма) КАК Итого
ИЗ Документ.РеализацияТоваровУслуг
ГРУППИРОВАТЬ ПО Контрагент
Исправленный вариант:
ВЫБРАТЬ
Контрагент,
СУММА(Сумма) КАК Итого
ИЗ Документ.РеализацияТоваровУслуг
ГРУППИРОВАТЬ ПО Контрагент