Документ «Акт сверки взаиморасчётов»
Документ сверяет состояние взаиморасчётов между вашей организацией и контрагентом за период: автоматически тянет обороты по счетам расчётов из бухучёта, рядом показывает данные контрагента, считает расхождение и печатает официальный акт сверки на подпись. Проводок не делает и движений по регистрам не пишет — это информационно-аналитический документ.
🎯 Что это и зачем
Раз в квартал (или по запросу партнёра) нужно подтвердить, кто кому сколько должен. Бухгалтер берёт обороты по счетам расчётов — 1210/3310, 1610/3510 и т. п. — за период, сопоставляет их с тем, что насчитал у себя контрагент, и фиксирует результат: совпало или есть расхождение. Если всё сошлось — акт подписывают обе стороны, и спор о задолженности закрыт документально.
Документ «Акт сверки взаиморасчётов» автоматизирует ровно это:
- заполняет «свою» сторону (таблица «По данным организации») прямо из бухучёта — по выбранным счетам, периоду и контрагенту;
- даёт ввести «чужую» сторону (таблица «По данным контрагента») — вручную или скопировать из своей и поправить;
- считает сальдо на начало, обороты и расхождение;
- фиксирует факт согласования флагом «Сверка согласована» (после этого документ блокируется от случайных правок);
- печатает официальный бланк акта сверки для передачи контрагенту.
Кто работает: бухгалтеры по расчётам с контрагентами, периодически (поквартально / по году / по запросу).
🧭 Где найти в программе
Раздел «Продажа» (или «Покупка» — расчёты ведутся с обеих сторон) → список «Акты сверки взаиморасчётов». Откроется журнал документов; новый создаём кнопкой «Создать».
navigation-map.json) маршрут для Документ.АктСверкиВзаиморасчетов не задан — точные название пункта и раздел в левом меню Fresh не зафиксированы в источниках. Ориентир: документ относится к подсистемам «Продажа/Покупка» (расчёты с контрагентами). Проверьте фактическое расположение пункта в своей базе и при необходимости уточните fresh_nav. См. issues.👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до согласованного и распечатанного акта.
Урок 1. Сверка по данным учёта
Когда: плановая сверка расчётов с контрагентом за квартал/год.
Шаг 1. Создаём документ
«Создать». Откроется форма акта. Поле Дата — это дата составления акта.
Шаг 2. Заполняем шапку
- Организация — от чьего имени акт (обязательно).
- Контрагент — с кем сверяемся (обязательно).
- Договор контрагента — если сверяем по одному договору; оставьте пустым — сверка пойдёт по всем договорам контрагента.
- Период: Дата начала и Дата окончания (например, 01.01.2026 — 31.03.2026). Удобнее задать через кнопку «Выбрать период» — там готовые варианты (квартал, год и т. д.).
- Валюта документа — обычно тенге (валюта регламентированного учёта).
Шаг 3. Задаём список счетов сверки
Перейдите на закладку/таблицу «Список счетов» и нажмите «Заполнить по умолчанию» — система подставит стандартный набор счетов расчётов с контрагентами. Галочкой «Участвует в расчётах» включаете/выключаете конкретные счета.
Шаг 4. Заполняем «свою» сторону
Над таблицей «По данным организации» нажмите «Заполнить по данным бухгалтерского учёта». Запустится фоновое (длительное) заполнение: система соберёт обороты и сальдо по выбранным счетам, контрагенту и периоду.
Шаг 5. Вводим сторону контрагента
Данные партнёра вносим в таблицу «По данным контрагента»: - вручную — построчно из присланного контрагентом акта; либо - кнопкой «Заполнить данные контрагента по данным организации» — программа скопирует вашу таблицу как заготовку (с «зеркальными» дебетом/кредитом), а вы поправите расхождения.
Шаг 6. Смотрим расхождение и итоги
Программа покажет Остаток на начало, обороты и Расхождение (разницу между сторонами). Если расхождение не ноль — сравните строки таблиц и найдите несовпадающие документы. Опишите причину в поле Комментарий.
Шаг 7. Записываем
«Записать» или «Записать и закрыть». Документ не проводится — кнопки «Провести» у него нет.
Урок 2. Согласование акта
Когда контрагент подписал акт и расхождений нет:
- Заполните Представитель организации (кто подписал с вашей стороны) и Представитель контрагента (контактное лицо партнёра).
- Установите флаг «Сверка согласована».
- Запишите документ.
Урок 3. Корректировка периода
- Нажмите «Выбрать период» и укажите новые даты.
- Если таблицы уже заполнены, программа спросит подтверждение очистки данных «По данным организации» и «По данным контрагента» — подтвердите.
- Заново нажмите «Заполнить по данным бухгалтерского учёта».
Урок 4. Печать акта
- Откройте документ.
- Меню «Печать» → «Акт сверки».
- Программа сформирует табличный документ (бланк акта). Просмотрите, при необходимости выгрузите в PDF или распечатайте.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/АктСверкиВзаиморасчетов/Ext/ObjectModule.bsl — модуль небольшой, 78 строк, приведён ниже почти целиком), плюс Forms/ФормаДокумента/Ext/Form/Module.bsl (1382 стр.), ManagerModule.bsl и разборы objects/ и business-logic/.
Структура объекта
Реквизиты шапки:
| Реквизит | Тип | Обязательность | Назначение |
|---|---|---|---|
Организация |
Справочник.Организации | Обязателен (ShowError) | От чьего имени акт |
Контрагент |
Справочник.Контрагенты | Обязателен (ShowError) | С кем сверяемся |
ДоговорКонтрагента |
Справочник.ДоговорыКонтрагентов | Нет | Один договор или (пусто) все |
ДатаНачала / ДатаОкончания |
Дата | Нет (но критичны) | Период сверки |
ВалютаДокумента |
Справочник.Валюты | Нет | Валюта сумм акта |
СтруктурноеПодразделение |
Справочник.ПодразделенияОрганизаций | Нет | Подразделение |
ОстатокНаНачало |
Число | Нет | Сальдо на начало периода |
Расхождение |
Число | Нет | Разница «организация ↔ контрагент» |
СверкаСогласована |
Булево | Нет | Признак согласования → блокировка формы |
ПредставительОрганизации |
Справочник.ФизическиеЛица | Нет | Подписант со стороны организации |
ПредставительКонтрагента |
Справочник.КонтактныеЛица | Нет | Подписант со стороны контрагента |
ВключатьДочерние, ВключатьВнутренниеОбороты, РазбитьПоДоговорам |
Булево | Нет | Управление выборкой/группировкой |
Комментарий, Ответственный, Автор |
— | Нет | Служебные |
Табличные части:
| ТЧ | Ключевые колонки | Назначение |
|---|---|---|
ПоДаннымОрганизации |
Дата, Документ, Дебет, Кредит, Договор |
Обороты по данным вашего учёта (заполняется автоматически) |
ПоДаннымКонтрагента |
Дата, Документ, Дебет, Кредит, Договор |
Обороты по данным контрагента (вручную / копией) |
СписокСчетов |
Счет (ПланСчетов.Типовой), УчаствуетВРасчетах (Булево) |
Какие счета БУ включать в сверку |
СписокОрганизаций |
Организация |
Перечень организаций для консолидированной сверки |
Жизненный цикл (обработчики ObjectModule)
ObjectModule нет ОбработкаПроведения и ОбработкаУдаленияПроведения, реквизит Проведён не используется, движений по регистрам нет (register_records: []). Поэтому жизненный цикл — это только запись/проверка/заполнение, а «учётный эффект» документа равен нулю.| Обработчик | Строк | Что делает |
|---|---|---|
ОбработкаЗаполнения |
12 | При вводе на основании/по шаблону: удаляет служебный Автор из входной структуры, переносит свойства, заполняет шапку (валюта регл. учёта) |
ОбработкаПроверкиЗаполнения |
25 | Проверяет период (ДатаНачала ≤ ДатаОкончания) и непустоту списка счетов сверки |
ПередЗаписью |
11 | Если СписокОрганизаций пуст, а Организация заполнена — добавляет строку в СписокОрганизаций; пропускается при обмене данными |
ПриКопировании |
3 | Ставит Дата = текущая дата пользователя |
Обработчики формы (ФормаДокумента) дополняют поведение: ДатаПриИзменении, КонтрагентПриИзменении, ДоговорКонтрагентаПриИзменении — каскадная очистка таблиц с подтверждением; ВалютаДокументаПриИзменении — сброс договора при несовпадении валют; СверкаСогласованаПриИзменении → ИзменитьДоступностьПоСогласованиюСверки — блокировка формы.
Реальный код: ОбработкаПроверкиЗаполнения и ПередЗаписью
Так как проведения нет, ядро серверной логики документа — это валидация и автозаполнение СписокОрганизаций. Привожу реальный код (ObjectModule.bsl):
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ЗначениеЗаполнено(ДатаНачала) И ЗначениеЗаполнено(ДатаОкончания)
И ДатаНачала > ДатаОкончания Тогда
ТекстСообщения = ОбщегоНазначенияБККлиентСервер.ПолучитьТекстСообщения("Поле", "Корректность",
НСтр("ru = 'Период по'"), , ,
НСтр("ru = 'Дата окончания периода сверки должна быть больше даты начала.'"));
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ДатаОкончания", "Объект", Отказ);
КонецЕсли;
ФильтрСписокСчетов = Новый Массив();
Для Каждого СтрокаСчета Из СписокСчетов Цикл
Если НЕ ЗначениеЗаполнено(СтрокаСчета.Счет) ИЛИ НЕ СтрокаСчета.УчаствуетВРасчетах Тогда
Продолжить;
Иначе
ФильтрСписокСчетов.Добавить(СтрокаСчета.Счет);
КонецЕсли;
КонецЦикла;
Если ФильтрСписокСчетов.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Неверно задан список счетов, по которым производится сверка'"), ЭтотОбъект, "СписокСчетов", "Объект", Отказ);
КонецЕсли;
КонецПроцедуры
Разбор:
- Проверка периода срабатывает только если обе даты заполнены (период не обязателен формально, но без него сверка бессмысленна). При ДатаНачала > ДатаОкончания — Отказ = Истина, текст привязывается к полю ДатаОкончания.
- Проверка списка счетов: в ФильтрСписокСчетов отбираются строки, где счёт заполнен и взведена галочка УчаствуетВРасчетах. Если таких нет — отказ записи. То есть пустой или весь «выключенный» список счетов записать нельзя.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Заполнение ТЧ СписокОрганизаций
Если (СписокОрганизаций.Количество() = 0) И (ЗначениеЗаполнено(Организация)) Тогда
НоваяСтрокаСпискаОрганизаций = СписокОрганизаций.Добавить();
НоваяСтрокаСпискаОрганизаций.Организация = Организация;
КонецЕсли;
КонецПроцедуры
Разбор: при записи нового документа СписокОрганизаций автоматически получает строку с основной организацией — её не нужно заполнять вручную. При загрузке из обмена логика пропускается, чтобы не перетирать выгруженные данные.
Движения по регистрам
Нет. Документ не пишет ни в регистры бухгалтерии (Типовой/Налоговый), ни в регистры накопления/сведений. Вместо движений документ делает следующее:
| Вместо движений | Где реализовано | Что происходит |
|---|---|---|
| Чтение оборотов и сальдо | ManagerModule.ЗаполнитьПоДаннымБухгалтерскогоУчета (≈374 стр.) |
Запрос к бухгалтерским итогам по выбранным счетам, контрагенту, периоду; группировка по договорам/валютам; заполнение ТЧ ПоДаннымОрганизации. Работает в привилегированном режиме |
| Хранение результата сверки | Реквизиты + ТЧ документа | Сальдо, обороты, расхождение, признак согласования — хранятся в самом документе |
| Статус | СверкаСогласована (Булево) |
Аналог «проведения»: фиксирует согласование и блокирует форму |
| Печать | ManagerModule.ПечатьАктаСверки (≈623 стр.), макет ПФ_MXL_АктСверки, идентификатор команды печати "АктСверки" |
Формирует официальный бланк акта (УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию) |
ПолучитьТекстЗапросаДляФормированияПечатнойФормыАктСверки) анализирует первичные документы расчётов — СчётФактураВыданный/СчётФактураПолученный, РеализацияТоваровУслуг, РеализацияУслугПоПереработке, АктОбОказанииПроизводственныхУслуг — то есть собирает движения по взаиморасчётам для бланка.Логика блокировки формы при согласовании
Это «фирменная» особенность документа. Реальный код (ФормаДокумента, процедура ИзменитьДоступностьПоСогласованиюСверки, сокращённо):
Процедура ИзменитьДоступностьПоСогласованиюСверки(Форма)
Элементы = Форма.Элементы;
Объект = Форма.Объект;
Элементы.Контрагент.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ДоговорКонтрагента.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ДатаНачала.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ДатаОкончания.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ВалютаДокумента.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ПоДаннымОрганизации.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ПоДаннымКонтрагента.Доступность = НЕ Объект.СверкаСогласована;
Элементы.СписокСчетов.Доступность = НЕ Объект.СверкаСогласована;
Элементы.ВыбратьПериод.Доступность = НЕ Объект.СверкаСогласована;
// ... аналогично: ОстатокНаНачало, ВключатьДочерние, РазбитьПоДоговорам,
// кнопки «ЗаполнитьПоДаннымБухгалтерскогоУчета», «ЗаполнитьПоУмолчанию» ...
Если НЕ Объект.СверкаСогласована Тогда
Элементы.ДоговорКонтрагента.Доступность = НЕ Объект.ВключатьДочерние;
КонецЕсли;
КонецПроцедуры
Разбор: один флаг СверкаСогласована каскадно гасит доступность всех значимых элементов формы. Отдельно: при снятом согласовании поле ДоговорКонтрагента дополнительно блокируется, если включён ВключатьДочерние (сверка по группе компаний — конкретный договор тогда не выбирается).
Валидации
- Период:
ДатаНачала ≤ ДатаОкончания(см. код выше; иначе отказ). - Список счетов: хотя бы один счёт заполнен и с галочкой
УчаствуетВРасчетах(иначе отказ). - Обязательные реквизиты:
Организация,Контрагент— на уровне метаданных (fill_value_required: ShowError). - Соответствие валют: при смене
ВалютаДокумента, не совпадающей с валютой договора,ДоговорКонтрагентасбрасывается (ВалютаДокументаПриИзменении). - Защита согласованного акта: при
СверкаСогласована = Истинаформа блокируется (см. выше). - Каскадная очистка: смена
Контрагент/Договор/Периодпри заполненных таблицах требует подтверждения и очищаетПоДаннымОрганизациииПоДаннымКонтрагента(вопрос «Перед заполнением табличная часть будет очищена. Заполнить?»).
Зависимости (общие модули)
ОбщегоНазначения,ОбщегоНазначенияБК,ОбщегоНазначенияБККлиентСервер,ОбщегоНазначенияБКВызовСервераПовтИсп— тексты сообщений, валюта регл. учёта, текущая дата.ЗаполнениеДокументов—ЗаполнитьШапкуДокументавОбработкаЗаполнения.ДлительныеОперации/ДлительныеОперацииКлиент— фоновое заполнение по данным учёта.РаботаСДиалогами/РаботаСДиалогамиКлиент— выбор периода, диалоги подтверждения, формирование заголовка печати.УправлениеПечатью— печать акта (ПФ_MXL_АктСверки).БухгалтерскиеОтчетыКлиентСервер— вспомогательные функции по данным отчётности.ПодключаемыеКоманды,ВерсионированиеОбъектов,ОценкаПроизводительности— служебная обвязка формы.
- «Документ не проводится / нет проводок» — это нормально, не баг. Объясните клиенту: акт сверки только читает учёт и хранит результат. Влиять на остатки он не должен.
- «Кнопка заполнения недоступна / поля серые» — почти всегда взведён флаг «Сверка согласована». Снимите его, чтобы редактировать.
- «Заполнить по данным учёта» возвращает пусто — проверьте: задан ли период, отмечены ли счета галочкой
УчаствуетВРасчетах, есть ли вообще обороты по этому контрагенту за период, и есть ли у пользователя право на заполнение (функция работает в привилегированном режиме, но команду нужно запустить).- «Расхождения в печатной форме» — настраивайте не документ, а первичку и список счетов сверки. Состав счетов задаётся в ТЧ
СписокСчетов(«Заполнить по умолчанию» + ручная правка).- Простая версия конфигурации:
ManagerModule.ПолучитьБлокируемыеРеквизитыОбъектаможет блокироватьВалютаДокумента— учитывайте при поддержке клиентов на «упрощённой» поставке.
- Серверного «ядра проведения» нет — вся «работа» в
ManagerModule.ЗаполнитьПоДаннымБухгалтерскогоУчета(чтение) иПечатьАктаСверки(вывод). Меняете логику сверки — смотрите туда, а не вObjectModule.- Заполнение — длительная операция; при автоматизации/тестах дожидайтесь
ЗаданиеВыполнено, иначе таблицы окажутся пустыми.- Любая правка
Контрагент/Договор/Период/Валютарассинхронизирует таблицы — отсюда каскадные очистки с подтверждением. Это нужно держать в голове при программном заполнении (диалоги придётся обрабатывать или обходить).СписокОрганизацийзаполняется сам вПередЗаписью— не дублируйте строку вручную.- Печатная форма —
Документ.АктСверкиВзаиморасчетов.ПФ_MXL_АктСверки, команда печати"АктСверки"(регистрируется вДобавитьКомандыПечати); параметры печати —ПАРАМЕТРЫ_ПЕЧАТИ_АктСверкиВзаиморасчетов_АктСверки.
🔗 Связанные разделы
- realizaciya-tmz-i-uslug — отгрузки, формирующие дебиторскую задолженность для сверки
- schet-faktura-vydannyy — ЭСФ; учитывается при сборе данных печатной формы
- schet-na-oplatu-pokupatelyu — счета покупателям по тому же контрагенту
- postuplenie-tmz-i-uslug — поступления, формирующие кредиторскую задолженность
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |