Документ «Счёт на оплату поставщика»

Документ регистрирует входящий счёт, который поставщик выставил вашей организации на оплату товаров, услуг или основных средств: фиксирует ассортимент, цены и НДС, печатает бланк счёта и отслеживает статусы оплаты/поступления. Бухгалтерских проводок не делает — это информационный документ-основание для платежа и оприходования.

Бухгалтерия для Казахстана, ред. 3.0 · v3.0.72.1 · обновлено 2026-06-04

🎯 Что это и зачем

Когда поставщик присылает счёт на оплату, его удобно зарегистрировать в программе: зафиксировать, кому, за что и сколько вы должны заплатить, на какой банковский счёт и с каким кодом назначения платежа (КНП). Документ «Счёт на оплату поставщика» решает именно эту задачу — это «зеркало» счёта покупателю, только со стороны закупок.

Что он даёт: - регистрацию обязательства перед поставщиком (номенклатура, услуги или ОС, цены, НДС); - печать бланка счёта с реквизитами организации и поставщика, банковским счётом и КНП; - отслеживание статусов — оплачен / не оплачен, поступило / не поступило (через регистр сведений, а не реквизиты документа); - основание для дальнейших документов — платёжного поручения (списания с расчётного счёта) и поступления товаров и услуг.

Кто работает: сотрудники отдела закупок и бухгалтеры. Регистрируется по мере поступления счетов от поставщиков, нередко — пачками, в том числе загрузкой из файла.

⚠️ Главное про этот документ. Счёт на оплату поставщика не формирует бухгалтерских проводок и при записи не пишет движений по регистрам учёта. По сути он не «проводится» в привычном смысле — он записывается, печатается и служит основанием. Сама оплата и оприходование отражаются другими документами (см. ниже).

🧭 Где найти в программе

Раздел «Покупка» → пункт «Счета на оплату поставщиков». Откроется журнал счётов; новый создаём кнопкой «Создать».

раздел «Покупка», открытый журнал «Счета на оплату поставщиков» со списком счётов и колонками статусов оплаты/поступления. (AccountingKZ30 во Fresh; маршрут: Покупка → Счета на оплату поставщиков)
раздел «Покупка», открытый журнал «Счета на оплату поставщиков» со списком счётов и колонками статусов оплаты/поступления. (AccountingKZ30 во Fresh; маршрут: Покупка → Счета на оплату поставщиков)
⚠️ Точность маршрута. В карте навигации Fresh (navigation-map.json) для объекта Документ.СчетНаОплатуПоставщика нет явной записи — маршрут восстановлен по разделу подсистемы «Покупка» и по аналогии с зеркальным документом Документ.СчетНаОплатуПокупателю (он лежит в разделе «Продажа» → «Счета покупателям»). Точное имя пункта левого меню в вашей сборке сверьте на экране. См. пробел [KZ30-0007] в журнале ошибок.
💡 Подсказка. В разных интерфейсах пункт может встречаться под синонимами «Счёт на оплату поставщику», «Счета поставщиков», «Входящие счета» — это один и тот же объект Документ.СчетНаОплатуПоставщика.

👤 Часть 1. Для пользователя

Проходим по шагам: от пустого документа до записанного счёта, его печати и отслеживания оплаты.

Урок 1. Счёт на товары

Когда: поставщик прислал счёт на поставку товаров или материалов — нужно зарегистрировать его в системе.

Шаг 1. Создаём документ

Раздел «Покупка» → «Счета на оплату поставщиков» → «Создать». Откроется новая форма счёта.

📷 СКРИН 02
СКРИН 02 — кнопка «Создать» в журнале и пустая форма документа.

Шаг 2. Заполняем шапку

заполненная шапка документа (организация, контрагент, договор, входящий номер/дата).
заполненная шапка документа (организация, контрагент, договор, входящий номер/дата).

Шаг 3. Настраиваем НДС

📷 СКРИН 04
СКРИН 04 — переключатели «Учитывать НДС» и «Сумма включает НДС».

Шаг 4. Добавляем товары

Переходим на вкладку «Товары» → кнопка «Подбор» → выбираем номенклатуру из справочника. Программа подставит единицу измерения, цену (из типа цен на дату документа) и ставку НДС из карточки номенклатуры. Указываем количество, при необходимости правим цену.

📷 СКРИН 05
СКРИН 05 — табличная часть «Товары» с открытым подбором номенклатуры.
💡 Подсказка. Подбор предпочтительнее ручного ввода строк: он сам заполняет единицу измерения, цену и ставку НДС. При ручном вводе все реквизиты строки придётся заполнять самостоятельно.

Шаг 5. Проверяем итоги

Внизу формы — суммы Итого и НДС (агрегируются автоматически из строк). Убеждаемся, что цифры совпадают со счётом поставщика.

📷 СКРИН 06
СКРИН 06 — блок итогов документа (сумма без НДС, НДС, итого к оплате).

Шаг 6. Записываем

«Записать» (Ctrl+S) или «Записать и закрыть». Кнопки «Провести» у этого документа нет — он не проводится. При записи сработает контроль заполнения (см. Часть 2), а Сумма документа пересчитается автоматически.

📷 СКРИН 07
СКРИН 07 — записанный документ; кнопки «Записать и закрыть»/«Печать».
⚠️ Важно. Без Организации и Контрагента документ не запишется. Также должна быть заполнена хотя бы одна из трёх табличных частей — Товары, Услуги или ОС; полностью пустой счёт не пройдёт проверку.

Урок 2. Счёт на услуги и на ОС

Отличия от товаров минимальны — меняется только вкладка:

  1. Услуги — вкладка «Услуги». Кроме номенклатуры, цены и количества доступно поле «Содержание» — текстовая расшифровка услуги («Консультационные услуги», «Транспортировка» и т. п.).
  2. Основные средства — вкладка «ОС». Выбираем элемент справочника «Основные средства» и вручную указываем Сумму (цена из типа цен здесь не подставляется) и ставку НДС.
💡 Табличные части не взаимоисключающие: в одном счёте можно совместить товары, услуги и ОС. Для записи достаточно, чтобы была заполнена хотя бы одна из них.

Урок 3. Загрузка строк из файла

Если поставщик прислал счёт в Excel/CSV, строки можно импортировать, не вводя вручную.

  1. Вкладка «Товары» (или «Услуги») → кнопка «Загрузить из файла».
  2. Выбираем файл (.xls, .xlsx, *.csv).
  3. В форме сопоставления указываем соответствие колонок файла реквизитам табличной части (Номенклатура ↔ артикул/наименование, Количество, Цена).
  4. Программа попытается сопоставить номенклатуру по артикулу или наименованию. Неоднозначные позиции (несколько элементов с одинаковым артикулом) выводятся списком для ручного выбора.
  5. «Загрузить» → строки добавятся в табличную часть. Проверяем цены и количество.
📷 СКРИН 08
СКРИН 08 — форма сопоставления колонок при загрузке из файла.
⚠️ Важно. Импорт не создаёт новую номенклатуру автоматически. Если позиции нет в справочнике, она попадёт в список неоднозначностей — её придётся завести вручную или сопоставить с существующей.

Урок 4. Статусы оплаты и поступления

Счёт удобно вести по двум статусам — оплаты и поступления товаров.

  1. В форме документа — поле статуса справа от реквизитов; выбираем новое значение из списка.
  2. Массово в журнале — выделяем один или несколько счетов → кнопка «Изменить статус» → в открывшейся форме задаём Статус оплаты и Статус поступления → «ОК».

После сохранения статусы запишутся в регистр сведений «СтатусыДокументов», а все открытые формы этих документов обновятся (через системное оповещение).

💡 Статусы — это не реквизиты документа, а отдельный регистр сведений. Поэтому менять их можно и без открытия самого счёта, прямо из журнала.
⚠️ Форма «Изменить статус» требует, чтобы были выбраны оба статуса (оплаты и поступления) — иначе сохранение не пройдёт (внутри вызывается ПроверитьЗаполнение()).

Урок 5. Печать счёта

  1. Открываем счёт (или выделяем в журнале) → кнопка «Печать» → «Счёт на оплату».
  2. Программа сформирует печатный бланк на основе макета: реквизиты организации и поставщика, банковский счёт, КНП, строки с ценами и НДС, итоги.
  3. В бланке отображается и оплаченная сумма (динамически из регистра накопления «ОплатаСчетов») с остатком к оплате — то есть, сколько по этому счёту уже перечислено.
  4. Печатаем или сохраняем в PDF.
💡 Оплаченная сумма появляется по мере того, как по счёту проводятся документы оплаты (например, платёжное поручение). Пока оплат нет — остаток равен сумме счёта.

Урок 6. Копирование счёта

Для регулярных закупок счёт удобно копировать.

  1. В журнале выделяем счёт-источник → «Скопировать» (Ctrl+Shift+C).
  2. Откроется новый документ с данными исходного (шапка и все табличные части).
  3. Дата автоматически встанет на сегодня (обработчик ПриКопировании) — при необходимости поправьте вручную до записи.
  4. Корректируем номенклатуру/цены и записываем; новый номер присвоится при первой записи.

🛠 Часть 2. Для программиста

Источник: реальный код релиза 3.0.72.1 (Documents/СчетНаОплатуПоставщика/Ext/ObjectModule.bsl) — модуль маленький, прочитан целиком, плюс разбор objects/ и business-logic/ (ManagerModule, формы).

Структура объекта

Ключевые реквизиты шапки (обязательные по метаданным «Заполнять обязательно»): Организация, Контрагент. Остальные реквизиты программно не проверяются на заполнение: - расчётно-валютные: ВалютаДокумента, КурсВзаиморасчетов, КратностьВзаиморасчетов, ТипЦен; - управляющие флаги: УчитыватьНДС, СуммаВключаетНДС; - расчётный: СуммаДокумента (вычисляется в ПередЗаписью, вручную не редактируется); - партнёрские: ДоговорКонтрагента (вид «С поставщиком»), СтруктурнаяЕдиница (банк/касса), СтруктурноеПодразделение, Склад, Ответственный, Автор; - реквизиты входящего счёта: НомерВходящегоДокумента, ДатаВходящегоДокумента, КодНазначенияПлатежа (КНП), Комментарий.

Табличные части: Товары (Номенклатура, ЕдиницаИзмерения, Коэффициент, Количество, Цена, Сумма, СтавкаНДС, СуммаНДС), Услуги (то же + Содержание, без единиц/коэффициента), ОС (ОсновноеСредство, Сумма, СтавкаНДС, СуммаНДС — без количества и автоподстановки цены).

Формы: ФормаДокумента (ключевая, три вкладки + статусы + подбор + загрузка из файла), ИзменитьСтатус (массовая смена статусов), ФормаВыбора, ФормаСписка.

Жизненный цикл (обработчики ObjectModule)

В модуле объекта реализованы только обработчики событий записи/заполнения — обработчика ОбработкаПроведения нет, документ непроводимый.

Обработчик Что делает (по реальному коду 3.0.72.1)
ОбработкаЗаполнения При заполнении из структуры удаляет служебный Автор и переносит свойства; затем вызывает ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, Константы.ВалютаРегламентированногоУчета.Получить(), "Покупка") — заполняет шапку с привязкой к направлению «Покупка»
ПередЗаписью Пересчитывает сумму через УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект) → пишет в СуммаДокумента; вызывает РаботаСДоговорамиКонтрагентов.ЗаполнитьДоговорПередЗаписью(ЭтотОбъект). При ОбменДанными.Загрузка — ранний выход (суммы и договор берутся из источника)
ОбработкаПроверкиЗаполнения Если непуста хотя бы одна из ТЧ Товары/Услуги/ОС — снимает все три из массива проверяемых реквизитов (чтобы платформа не ругалась на «пустые» ТЧ). Обязательность Организация/Контрагент задаётся метаданными, не этим кодом
ПриКопировании Сбрасывает Дата на начало текущего дня пользователя: НачалоДня(ОбщегоНазначения.ТекущаяДатаПользователя())

Как формируется запись — реальный код (3.0.72.1)

Самое важное для понимания документа: движений нет вообще. Вся «логика записи» сводится к двум вещам — пересчёту суммы для журналов и нормализации договора. Ниже — ключевые процедуры дословно.

ПередЗаписью — пересчёт суммы и договора:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    // Посчитать суммы документа и записать ее в соответствующий реквизит шапки для показа в журналах
    СуммаДокумента = УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект);

    РаботаСДоговорамиКонтрагентов.ЗаполнитьДоговорПередЗаписью(ЭтотОбъект);

КонецПроцедуры // ПередЗаписью

Разбор: - СуммаДокумента — вычисляемый, не редактируемый вручную реквизит. Считается каждый раз перед записью функцией УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС, чтобы в журналах и форме выбора отображалась корректная сумма с НДС. Логика расчёта НДС вынесена в общий модуль УчетНДСИАкциза, а не в документ. - РаботаСДоговорамиКонтрагентов.ЗаполнитьДоговорПередЗаписью — нормализует/доподставляет договор (вид «С поставщиком») перед сохранением. - При загрузке из обмена (ОбменДанными.Загрузка) оба шага пропускаются — данные берутся из источника как есть.

ОбработкаПроверкиЗаполнения — «хотя бы одна табличная часть»:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

    Если ЭтотОбъект.Товары.Количество() > 0
        ИЛИ ЭтотОбъект.Услуги.Количество() > 0
            ИЛИ ЭтотОбъект.ОС.Количество() > 0 Тогда

        ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Товары"));
        ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Услуги"));
        ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("ОС"));

    КонецЕсли;

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

Разбор: - Все три ТЧ помечены в метаданных как проверяемые. Код реализует правило «заполнена хотя бы одна»: если есть строки в любой из них, остальные снимаются с проверки, и платформа не выдаёт ошибку «не заполнена табличная часть Услуги/ОС». - Если все три пусты — ни одна не удаляется из массива, и стандартная проверка заполнения завершится ошибкой → запись не пройдёт. - Обязательность Организация/Контрагент обеспечивается свойством метаданных «Заполнять обязательно» (ShowError на уровне реквизита), а не этой процедурой.

ОбработкаЗаполнения — инициализация шапки по направлению «Покупка»:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

    ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);

    Если ТипДанныхЗаполнения = Тип("Структура") Тогда
        Если ДанныеЗаполнения.Свойство("Автор") Тогда
            ДанныеЗаполнения.Удалить("Автор");
        КонецЕсли;
        ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
    КонецЕсли;

    ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, Константы.ВалютаРегламентированногоУчета.Получить(), "Покупка");

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

Разбор: - При заполнении из Структура чистится служебный Автор (его проставит система при записи), затем копируются переданные свойства. - ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(..., "Покупка") — общий механизм заполнения шапки; третий параметр "Покупка" явно указывает направление операции, что отличает этот документ от зеркального счёта покупателю (там было бы «Продажа»).

⚠️ Несостыковка [KZ30-0005]. Разбор objects/ называет процедуру расчёта суммы УчетНДСИАкциза.РассчитатьСуммуДокумента(), тогда как реальный код вызывает УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект). Кроме того, в разборе не упомянут вызов РаботаСДоговорамиКонтрагентов.ЗаполнитьДоговорПередЗаписью и параметр направления "Покупка" в ОбработкаЗаполнения. Источник истины — ObjectModule.bsl релиза 3.0.72.1.

Движений по регистрам нет — что вместо них

Документ не проводится и при записи не формирует движений по регистрам бухгалтерии/накопления (в метаданных register_records пуст; обработчика ОбработкаПроведения нет). Вместо учётных движений документ участвует в следующих механизмах:

Механизм Тип Роль документа
СтатусыДокументов регистр сведений Хранит статусы оплаты и поступления по счёту. Пишется не самим документом, а формой ИзменитьСтатус (метод НовыеСтатусыДокумента()) и формой документа
ОплатаСчетов регистр накопления Пишется не этим документом, а документами оплаты (например, платёжным поручением) со ссылкой на счёт. Функция ОплаченнаяСуммаСчета() (ManagerModule) читает регистр для печати и показа остатка
Печатная форма СчетЗаказНаОплату макет (ManagerModule) Бланк счёта на оплату; функция ПечатьСчетаЗаказа (~305 строк) собирает реквизиты организации/поставщика, строки, итоги и оплаченную сумму
Создание на основании сценарий По метаданным based_on и inverse_based_on пусты. Функционально счёт служит основанием для платёжного поручения и поступления товаров и услуг — через подбор/ссылки, а не через типовой «ввод на основании»
⚠️ Несостыковка [KZ30-0006]. В разборе objects/ сценарий 3.1 упоминает регистр «СтатусыДокументов» «по умолчанию ‘Не оплачен’ и ‘Не поступило’», а раздел 6.3 утверждает, что движений по регистрам нет. Формально верны оба: проводок/движений при записи документа нет, но статусы и оплаченная сумма ведутся в отдельных регистрах сторонними механизмами (форма статусов и документы оплаты). Точные начальные значения статусов сверьте во Fresh.

Валидации (ОбработкаПроверкиЗаполнения + метаданные + формы)

Зависимости (общие модули)

Из ObjectModule: - УчетНДСИАкциза — расчёт суммы документа с НДС (ПолучитьСуммуДокументаСНДС); - ЗаполнениеДокументов — заполнение шапки по направлению «Покупка»; - РаботаСДоговорамиКонтрагентов — нормализация договора перед записью (ЗаполнитьДоговорПередЗаписью); - Константы.ВалютаРегламентированногоУчета, ОбщегоНазначения — валюта учёта и текущая дата пользователя.

Из форм и менеджера: - ОбработкаТабличныхЧастейКлиентСервер — расчёт сумм/НДС/цен в строках (основной помощник формы); - УправлениеЦенообразование — пересчёт цен при смене валюты/курса; - СтатусыДокументов, СтатусОплатыСчета, СтатусыПоступленияПоСчету — управление статусами; - УправлениеПечатью, макет СчетЗаказНаОплату, ОплатаСчетов — печать и расчёт оплаченной суммы.

💼 Партнёру / внедренцу. Типовые обращения по этому документу: (1) «не записывается» — почти всегда не заполнены Организация/Контрагент или все три ТЧ пусты; (2) «в журнале нулевая сумма» — СуммаДокумента считается в ПередЗаписью, документ нужно перезаписать; (3) «не печатается» — проверьте наличие макета СчетЗаказНаОплату; (4) «остаток к оплате не меняется» — оплаченная сумма берётся из регистра ОплатаСчетов, который наполняют документы оплаты со ссылкой на счёт, а не сам счёт; (5) «нет подбора цен на вкладке ОС» — это by design, по ОС сумма вводится вручную. Логика НДС живёт в УчетНДСИАкциза, договоры — в РаботаСДоговорамиКонтрагентов; туда и смотреть при настройке у клиента.
🧩 Заметки для разработчика.
  1. Документ непроводимый: кнопки «Провести» нет, ОбработкаПроведения отсутствует. Не пытайтесь искать здесь Дт/Кт — их нет.
  2. СуммаДокумента перезаписывается в ПередЗаписью — не выставляйте её программно через UI, значение затрётся.
  3. Направление операции зашито параметром "Покупка" в ОбработкаЗаполнения — критично при создании из структуры/на основании, чтобы шапка заполнялась как закупочная.
  4. Правило «хотя бы одна ТЧ» реализовано снятием реквизитов из ПроверяемыеРеквизиты; при добавлении новой табличной части не забудьте включить её в это правило.
  5. Статусы и оплаченная сумма — внешние регистры (СтатусыДокументов, ОплатаСчетов). Изменение статуса рассылает оповещение ОповеститьОбИзмененииСтатусовДокументов — открытые формы обновятся в реальном времени.
  6. При копировании дата сбрасывается на начало текущего дня (НачалоДня(ОбщегоНазначения.ТекущаяДатаПользователя())) — учитывайте в авто-сценариях.

🔗 Связанные разделы

🆕 Что нового

Версия Изменение Тип
3.0.72.1 Первичное описание (на релизе 3.0.72.1) 🆕