Документ «Приходный кассовый ордер (ПКО)»

ПКО регистрирует поступление наличных в кассу организации: оплату от покупателя, возврат подотчётных сумм, получение наличных в банке, прочий приход. От выбранного вида операции зависят видимые поля, табличные части и то, какой учёт сформируется при проведении. Главный приходный документ кассы в Бухгалтерии для Казахстана 3.0.

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

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

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

ПКО — документ-«оркестратор»: одной кнопкой «Провести» он запускает сразу несколько механизмов учёта (касса, взаиморасчёты, расчёты с подотчётниками, налоговый учёт, статусы оплаченных счетов). Какие именно — зависит от вида операции.

Кто работает: кассиры и бухгалтеры, ежедневно. Документ создаётся как с нуля, так и «на основании» реализации, счёта на оплату, возврата товаров поставщику, расходного кассового ордера и других документов.

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

Раздел «Банк и касса» → группа «Касса» → пункт «Приходные кассовые ордера». Откроется журнал кассовых документов; новый ПКО создаём кнопкой «Создать» (либо «Создать на основании» из документа-источника).

📷 СКРИН 01
СКРИН 01 — раздел «Банк и касса», открытый список «Приходные кассовые ордера». (AccountingKZ30 во Fresh; маршрут: Банк и касса → Касса → Приходные кассовые ордера)
⚠️ Маршрут уточняется. Для Документ.ПриходныйКассовыйОрдер нет записи в navigation-map.json — точный заголовок пункта в левом меню Fresh определён по разделу «Банк и касса» из разбора объекта и может отличаться (например, «Кассовые документы» как общий журнал). См. issue [KZ30-0088].

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

Проходим по шагам: от выбора вида операции до проведённого ордера и проверки результата.

💡 Сначала — вид операции, потом всё остальное. Поле Вид операции — главный переключатель документа. От него зависят видимые поля, какая табличная часть появится (Расшифровка платежа или Выдача в подотчёт) и какой учёт сформируется. Меняйте его первым: после смены форма перестроится.

ПКО поддерживает 8 видов операций (точные наименования из конфигурации, релиз 3.0.72.1):

Вид операции (как в списке) Когда применяется
Оплата от покупателя Покупатель платит наличными за товары/услуги
Возврат денежных средств подотчетником Сотрудник возвращает неиспользованный аванс (подотчёт)
Возврат денежных средств поставщиком Поставщик возвращает деньги (например, за возвращённый товар)
Возврат денежных средств сотрудником Возврат сотрудником излишне выплаченной заработной платы
Получение наличных денежных средств в банке Снятие наличных со своего расчётного счёта в кассу
Расчеты по кредитам и займам с контрагентами Поступление по договору займа/кредита
Оплата от структурного подразделения Поступление наличных от собственного подразделения
Прочий приход денежных средств Нетиповое поступление с ручным указанием счёта

Урок 1. Оплата от покупателя наличными

Когда: покупатель вносит наличные в кассу за реализованные товары или услуги.

Шаг 1. Создаём документ и выбираем вид операции

«Создать» → в поле Вид операции выбираем «Оплата от покупателя». Форма перестроится: появится табличная часть Расшифровка платежа.

📷 СКРИН 02
СКРИН 02 — новый ПКО, выбор вида операции «Оплата от покупателя».

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

📷 СКРИН 03
СКРИН 03 — заполненная шапка ПКО (организация, касса, контрагент, сумма).

Шаг 3. Заполняем расшифровку платежа

В табличной части Расшифровка платежа указываем, за что платёж: - Договор — договор с покупателем (подтянется после выбора контрагента, если учёт по договорам включён). - Сделка — документ-основание (реализация, счёт на оплату), задолженность по которому закрывается. - Сумма платежа — сумма по строке (сумма строк должна сойтись с Суммой документа). - Ставка НДС / Сумма НДС — если нужно выделить налог. - Счёт на оплату — если оплачивается конкретный выставленный счёт (тогда обновится его статус оплаты).

📷 СКРИН 04
СКРИН 04 — табличная часть «Расшифровка платежа» с заполненной строкой.

Шаг 4. Проводим и проверяем

«Провести» или «Записать и закрыть». Чтобы проверить учёт — открываем Дт/Кт (движения документа).

📷 СКРИН 05
СКРИН 05 — окно «Движения документа: Дт/Кт» для ПКО.
💡 Подсказка. Чтобы строка «Сделка»/«Счёт на оплату» подставлялась сама — создавайте ПКО «на основании» счёта на оплату или реализации: контрагент, договор и сумма скопируются.
⚠️ Важно. Сумма строк расшифровки и Сумма документа должны совпадать. Валюта документа обязана совпадать с валютой кассы.

Урок 2. Возврат денег подотчётным лицом

Когда: сотрудник возвращает в кассу неизрасходованный аванс.

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

📷 СКРИН 06
СКРИН 06 — ПКО с видом операции «Возврат подотчётником», табличная часть «Выдача в подотчёт».

Урок 3. Получение наличных в банке

Когда: снимаем деньги с расчётного счёта и приходуем в кассу.

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

Урок 4. Прочий приход денежных средств

Когда: нетиповое поступление (возврат займа, продажа за наличные, пр.), которое не описывается остальными видами операций.

  1. Вид операции — «Прочий приход денежных средств».
  2. Заполняем Организация, Касса, Сумма документа.
  3. Счёт учёта расчётов и субконто заполняем вручную — для прочего прихода автоматического подбора нет. Заполняем кредитовый счёт (Счёт учёта расчётов с контрагентом БУ) и субконто (СубконтоКтБУ1…3).
  4. В поле Основание (текст) описываем суть операции — это пригодится и для печати, и для понимания проводки.
⚠️ Для «Прочего прихода» ответственность за корректность счёта и субконто — на пользователе: система их не подберёт.

Урок 5. Создание на основании

Чтобы не вводить данные повторно, ПКО можно создать «на основании» документа-источника — реквизиты и строки расшифровки заполнятся автоматически. ПКО вводится на основании, в частности:

📷 СКРИН 07
СКРИН 07 — меню «Создать на основании» / создание ПКО из счёта на оплату.
💡 При вводе на основании сразу проверяйте подставленный вид операции и заполнение расшифровки платежа — это критичные поля.

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

Источник истины: реальный код релиза 3.0.72.1 — Documents/ПриходныйКассовыйОрдер/Ext/ObjectModule.bsl (модуль небольшой, ниже разобран целиком по ключевым обработчикам), перечисление Enums/ВидыОперацийПКО.xml, плюс разбор objects/ и business-logic/.

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

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

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

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

💡 Тип Контрагент — составной: Справочник.Контрагенты, Справочник.ФизическиеЛица, Справочник.Склады. Для подотчётных операций сюда подставляется физлицо.

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

Обработчик Что делает (по реальному коду 3.0.72.1)
ЗаполнитьНаборыЗначенийДоступа Формирует наборы доступа по Организация + СтруктурноеПодразделениеПолучатель; для возвратов подотчётником/работником добавляет набор по списку физлиц (РасчетЗарплатыСервер)
ОбработкаЗаполнения Заполнение на основании (ЗаполнитьПоДокументуОснованию) или из структуры; в обоих случаях вызывает УправлениеДенежнымиСредствамиСервер.ЗаполнитьРеквизитыРасчетногоДокумента
ОбработкаПроверкиЗаполнения Самый большой обработчик: динамически собирает массив непроверяемых реквизитов в зависимости от вида операции, проверяет совпадение сумм, валюту возврата ЗП, возможность проведения взаиморасчётов, делегирует проверку счетов в СчетаУчетаВДокументах
ПередЗаписью Нормализует РасшифровкаПлатежа (заполняет договор, гарантирует ≥1 строку), чистит ВыдачаВПодотчет/ВидУчетаНУ вне их видов операции, синхронизирует подразделения; при отмене проведения оплаты покупателя сбрасывает статусы оплаченных счетов
ПриКопировании Обнуляет НомерЧекаККМ, перезаполняет реквизиты расчётного документа
ОбработкаПроведения Готовит наборы записей и параметры, затем делегирует формирование всех движений профильным общим модулям (см. ниже). При РучнаяКорректировка = Истина — выходит сразу

Формирует ли ПКО проводки? Да — но НЕ напрямую в документе

Главное для понимания: в ObjectModule.bsl нет ни одной «плоской» проводки Дт/Кт. ОбработкаПроведения собирает таблицы из подготовленных параметров и делегирует формирование движений профильным общим модулям. Поэтому конкретные счета (Дт кассы / Кт расчётов) и состав регистров определяются этими модулями и учётной политикой, а не телом документа.

Реальный код, ObjectModule.bsl, процедура ОбработкаПроведения (стр. 270–335) целиком:

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

    // ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА

    ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
    Если РучнаяКорректировка Тогда
        Возврат;                                   // ручное управление движениями — авто-проведение пропускается
    КонецЕсли;

    ПараметрыПроведения = Документы.ПриходныйКассовыйОрдер.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
    Если Отказ Тогда
        Возврат;
    КонецЕсли;

    // ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ИНФОРМАЦИОННОЙ БАЗЫ
    ТаблицаВзаиморасчеты = УправлениеВзаиморасчетамиСервер.ПодготовитьТаблицуВзаиморасчетовПогашениеЗадолженности(
        ПараметрыПроведения.РасшифровкаПлатежа, ПараметрыПроведения.Реквизиты, Отказ);

    // Изменение статуса счетов на оплату
    ГрупповоеПерепроведение = Неопределено;
    Если ЭтотОбъект.ДополнительныеСвойства.Свойство("ГрупповоеПерепроведение") Тогда
        ГрупповоеПерепроведение = ЭтотОбъект.ДополнительныеСвойства.ГрупповоеПерепроведение;
    Иначе
        ГрупповоеПерепроведение = Ложь;
    КонецЕсли;

    Если Не ГрупповоеПерепроведение Тогда
        ТаблицаСтатусовСчетов = СтатусыДокументов.ПодготовитьТаблицуСтатусовОплатыСчетов(
            ПараметрыПроведения.ОплатаСчетов, ПараметрыПроведения.Реквизиты);
    КонецЕсли;

    // ФОРМИРОВАНИЕ ДВИЖЕНИЙ
    УправлениеВзаиморасчетамиСервер.СформироватьДвиженияПогашениеЗадолженности(ТаблицаВзаиморасчеты,
        ПараметрыПроведения.Реквизиты, Движения, Отказ);

    УправлениеДенежнымиСредствамиСервер.СформироватьДвиженияПрочееПоступление(ПараметрыПроведения.РеквизитыПрочее,
        Движения, Отказ);

    УправлениеДенежнымиСредствамиСервер.СформироватьДвиженияПеречислениеВПодотчет(ПараметрыПроведения.ТаблицаВозвратПодотчетником,
        ПараметрыПроведения.РеквизитыВозвратПодотчетником, Движения, Отказ);

    // Переоценка валютных остатков — после формирования проводок всеми другими механизмами
    ТаблицаПереоценка = УчетДоходовРасходов.ПодготовитьТаблицуПереоценкаВалютныхОстатковПоПроводкамДокумента(
        ПараметрыПроведения.Реквизиты, Движения, Отказ);

    УчетДоходовРасходов.СформироватьДвиженияПереоценкаВалютныхОстатков(ТаблицаПереоценка,
        ПараметрыПроведения.Реквизиты, Движения, Отказ);

    // Возврат ЗП
    РасчетЗарплатыСервер.СформироватьДвиженияВозвратЗП(ПараметрыПроведения.Реквизиты, ПараметрыПроведения.ТаблицаВозвратЗП, Движения, Истина, Отказ, Ложь);

    ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ(ПараметрыПроведения.Реквизиты, Движения, Отказ);

    // Изменение статуса счетов на оплату
    СтатусыДокументов.СформироватьДвиженияОплатаСчетов(
        ПараметрыПроведения.ОплатаСчетов, ПараметрыПроведения.Реквизиты, Движения, Отказ);

    Если Не ГрупповоеПерепроведение Тогда
        СтатусыДокументов.СформироватьДвиженияСтатусовДокументов(
            ТаблицаСтатусовСчетов, ПараметрыПроведения.Реквизиты);
    КонецЕсли;

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

Кто что формирует (вызов → смысл; счёт-«источник истины» — внутри модуля, не в документе):

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

Важные детали из кода: - РучнаяКорректировка = Истина → авто-проведение полностью пропускается (Возврат сразу после ПодготовитьНаборыЗаписейКПроведению) — движения заполняет пользователь. - Порядок строгий: взаиморасчёты → прочее поступление → подотчёт → переоценка валюты (намеренно после всех прочих проводок) → возврат ЗП → постоянные разницы НУ → статусы счетов. - Признак ГрупповоеПерепроведение (из ДополнительныеСвойства) выключает работу со статусами счетов — чтобы при массовом перепроведении не пересчитывать их лишний раз.

⚠️ Несостыковка [KZ30-0086]. Разбор objects/ приводит «плоские» проводки (Дт 50.01 Кт 62.01 / 71.01 / 51.01 …) и заявляет прямую запись в AccountingRegister.Типовой/Налоговый из ОбработкаПроведения. Реальный код таких движений в документе не содержит — их формируют общие модули УправлениеВзаиморасчетамиСервер, УправлениеДенежнымиСредствамиСервер и др. по учётной политике. Точные Дт/Кт сверяем по отчёту «Дт/Кт» на проведённом документе. См. [журнал ошибок](../../../../issues/AccountingKZ30/issues.md).

📌 Про номера счетов. В разборе objects/ фигурируют российские номера (50.01, 51, 62.01, 71.01). В Бухгалтерии для Казахстана план счетов другой (касса — 1010, расчёты с покупателями — 1210, с подотчётными — 1250-е и т.п.). Конкретные счета зависят от настроек СчетаУчетаВДокументах и учётной политики — это и есть источник истины. См. issue [KZ30-0087].

💼 Партнёру / внедренцу. «Проводки не те» при поступлении наличных → причина почти всегда в счетах учёта в документах (СчетаУчетаВДокументах) и настройке кассы, а не в самом ПКО. Документ — оркестратор: вся логика счетов и взаиморасчётов живёт в УправлениеВзаиморасчетамиСервер, УправлениеДенежнымиСредствамиСервер, СтатусыДокументов, УчетнаяПолитикаСервер. Туда и смотреть при разборе у клиента. Отдельно проверяйте: совпадение валют кассы/документа, заполнение СчетаУчетаВДокументах по умолчанию, для подотчёта — равенство суммы таблицы и суммы документа.

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

Логика проверки построена «от обратного»: сначала собирается массив непроверяемых реквизитов (МассивНепроверяемыхРеквизитов) в зависимости от вида операции, и только оставшиеся проверяются на обязательность. Ключевое:

Особенности ПередЗаписью

Движения по регистрам

Состав движений зависит от вида операции и формируется общими модулями. Сводно (источник истины — отчёт «Дт/Кт» и код вызываемых модулей):

Регистр Что пишет Когда
AccountingRegister.Типовой (БУ) Приход в кассу: Дт счёта кассы / Кт счёта расчётов (или банк. счёта, подотчёта…) Все виды (через вызываемые модули)
AccountingRegister.Налоговый (НУ) Аналог в НУ + постоянные разницы Когда применимо (КПН)
Регистры взаиморасчётов с контрагентами Погашение/аванс задолженности Оплата покупателя, возврат поставщиком, кредиты/займы
AccumulationRegister.ВзаиморасчетыСРаботникамиОрганизаций Уменьшение задолженности сотрудника Возврат подотчётником
AccumulationRegister.ВыплаченныеДоходыРаботникамОрганизацийНУ Налоговый учёт по сотрудникам Операции с физлицами/возврат ЗП
AccumulationRegister.ОплатаСчетов (+ регистр статусов) Связь платежа со счётом на оплату, статус оплаты Оплата покупателя со СчетНаОплату
⚠️ Точные имена и измерения регистров взаиморасчётов в разборе objects/ детализированы не полностью — состав сверяйте по результату проведения. См. issue [KZ30-0089].

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

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

🧩 Заметки для разработчика.
  1. ВидОперации — первичен. Любой анализ начинай с него: он определяет видимые ТЧ, набор обязательных реквизитов и набор вызываемых модулей в ОбработкаПроведения. Хелпер Документы.ПриходныйКассовыйОрдер.ЕстьРасшифровкаПлатежа(ВидОперации) — единая точка, отвечающая, нужна ли расшифровка.
  2. Проверка «от обратного». ОбработкаПроверкиЗаполнения не перечисляет обязательные поля, а вычитает необязательные из ПроверяемыеРеквизиты. При добавлении нового вида операции правь именно этот список и финальный СчетаУчетаВДокументах.ПроверитьЗаполнение.
  3. РучнаяКорректировка = Истина → проведение пропускается (Возврат в начале ОбработкаПроведения) — движения заполняет пользователь.
  4. Переоценка валюты — строго последней среди проводок (намеренно, см. комментарий в коде), иначе курсовые разницы посчитаются по неполному набору движений.
  5. Статусы счетов трогаются и в ОбработкаПроведения, и в ПередЗаписью (при отмене проведения), и зависят от флага ГрупповоеПерепроведение — при доработках перепроведения это легко упустить.

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

🆕 Что нового

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