Программа учета чеков и векселей показывает в одном месте, где находится каждый чек и вексель, полученный от клиента или выданный поставщику, когда наступает срок оплаты и каков его последний статус. Коротко: главная польза не в списке бумаг, а в том, чтобы фиксировать каждое движение, от портфеля до банка, от индоссамента до оплаты, и видеть поступления и выплаты ближайших недель прямо в календаре сроков.
Чем плох учет чеков в тетради или Excel?
Компании с небольшим числом бумаг хватает папки в сейфе и таблицы. С ростом числа бумаг и банков одни и те же вопросы остаются без ответа: где сейчас этот чек, кому он передан по индоссаменту, с какой описью ушел в банк, не просрочен ли он?
- Записывается только последний статус; когда, кем и куда передана бумага, теряется.
- Переданный по индоссаменту чек удаляют из списка, а когда он возвращается неоплаченным, никто не знает, откуда он.
- Бумаги, сданные в банк на инкассо, не отслеживаются по описи, и неоплаченная позиция остается незамеченной.
- Сроки выданных чеков ведутся в отдельном файле, и потребность в деньгах замечают в последний день.
- После оплаты баланс клиента правят вручную, и две записи расходятся.
Что должно быть в хорошей программе учета чеков и векселей
Основная запись это не сама бумага, а бумага вместе с историей движений. Номер, векселедатель, банк, срок и сумма вводятся один раз; каждое следующее действие (сдача в банк, индоссамент, оплата, отказ в оплате, возврат) добавляется новой строкой движения, старые строки не меняются. Так на вопрос «у кого была эта бумага в тот день» всегда есть ответ.
- Полученные и выданные бумаги в разных портфелях, но в одном календаре сроков.
- Карточка бумаги: номер, векселедатель или должник, банк и отделение, срок, сумма, валюта, фото лицевой и оборотной стороны.
- Фиксированный список статусов и таблица допустимых переходов; бумагу вне портфеля нельзя передать по индоссаменту.
- Описи сдачи в банк на инкассо или в залог: какая бумага, в какой банк и в какой день.
- Для переданных бумаг указано, кому они переданы; бумага уходит из портфеля, но не из учета.
- Ежедневный список и напоминание о бумагах с близким сроком и о просроченных неоплаченных.
- Суммы целыми числами в копейках, для валютных бумаг валюта хранится на самой бумаге.
Чек, переданный по индоссаменту, уходит из ваших рук, но риск остается: если в срок его не оплатят, он может вернуться к вам. Поэтому переданную бумагу не удаляют, а продолжают вести со статусом «передан по индоссаменту».
Переходы статусов и список сроков: небольшой пример
В примере ниже допустимые статусы бумаги берутся из фиксированной таблицы: оплаченную бумагу нельзя снова сдать в банк, а неоплаченную можно вернуть в портфель. Каждый переход сохраняется отдельным движением с указанием, кто и когда его сделал. Вторая функция выводит бумаги в портфеле или в банке, срок которых наступает в ближайшие дни, по порядку дат.
type Status = 'portfolio' | 'atBank' | 'endorsed' | 'collected' | 'bounced' | 'returned';
type Instrument = { no: string; dueDate: string; amountMinor: number; status: Status };
// Allowed moves come from a fixed table; anything else is rejected.
const NEXT: Record<Status, Status[]> = {
portfolio: ['atBank', 'endorsed', 'collected', 'returned'],
atBank: ['collected', 'bounced', 'portfolio'],
endorsed: ['bounced'],
collected: [],
bounced: ['portfolio', 'collected'],
returned: [],
};
function move(i: Instrument, to: Status, by: string, at: Date) {
if (!NEXT[i.status].includes(to)) throw new Error(`${i.status} -> ${to} not allowed`);
return { instrument: { ...i, status: to }, movement: { no: i.no, from: i.status, to, by, at } };
}
// Open instruments due within the next N days, oldest first.
function dueSoon(list: Instrument[], today: Date, days: number) {
const limit = today.getTime() + days * 86_400_000;
return list
.filter(i => ['portfolio', 'atBank'].includes(i.status) && Date.parse(i.dueDate) <= limit)
.sort((a, b) => a.dueDate.localeCompare(b.dueDate));
}С какими системами должен быть связан учет чеков?
Чеки и векселя не должны жить отдельно. Бумага, полученная от клиента, должна появляться как оплата в программе учета расчетов с клиентами вместе со счетом, который она закрыла; если бумагу не оплатили, долг должен открыться снова сам. Оплаченные бумаги попадают в бухгалтерский учет через интеграцию с бухгалтерской программой. Напоминания о сроках формирует задание по расписанию (cron), которое запускается каждое утро, а право сдавать бумагу в банк или передавать ее ограничивается ролевой моделью доступа.
Готовая программа или заказная разработка?
Если бумаг немного и вы работаете с одним банком, модуля учета чеков в бухгалтерской программе обычно достаточно. Заказная разработка оправдана, когда бумаги перемещаются между филиалами, когда учет чеков должен работать на тех же данных, что продажи, заказы и контроль кредитного лимита, или когда выездные сотрудники должны фиксировать бумагу с фото в мобильном приложении в момент получения. Перед решением посчитайте, сколько раз за последние месяцы никто не мог сразу сказать, где бумага и каков ее статус; это лучше всего покажет масштаб проблемы.
Вывод
Программа учета чеков и векселей окупается, когда у каждой бумаги сохраняется история движений, переданные бумаги не выпадают из учета, а полученные и выданные бумаги видны в одном календаре сроков. Эта статья является общим руководством по программному обеспечению, а не юридической или финансовой консультацией. Если хотите оценить ваш процесс учета чеков вместе с текущими системами, загляните на страницу корпоративные решения или напишите нам через форму запросить смету.