Документ «Электронный акт выполненных работ (ЭАВР)»

ЭАВР — это электронный акт выполненных работ/оказанных услуг, которым обмениваются исполнитель и заказчик через государственную ИС ЭСФ Республики Казахстан, подписывая его ЭЦП. Документ не формирует бухгалтерских проводок — он отвечает за юридически значимый документооборот: создание акта, отправку, подписание, подтверждение/отклонение и расторжение, проходя через статусы обмена.

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

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

Когда работы выполнены или услуги оказаны, факт нужно подтвердить актом. В Казахстане это всё чаще делают в электронном виде — через Информационную систему электронных счетов-фактур (ИС ЭСФ). Электронный акт выполненных работ (ЭАВР, в коде — АВР):

Главное, что нужно понимать сразу: ЭАВР — это документ обмена, а не учётный документ. Он сам по себе не списывает услуги, не начисляет выручку и не делает проводок Дт/Кт. Доход, НДС и взаиморасчёты отражает связанный учётный документ — как правило, «Реализация ТМЗ и услуг», на основании которого ЭАВР и формируется. ЭАВР же «оборачивает» эту реализацию в государственный электронный формат и проводит её через ИС ЭСФ.

Кто работает: бухгалтеры и операторы ЭДО — со стороны исполнителя (выписывают и отправляют исходящие акты) и со стороны заказчика (принимают, подтверждают или отклоняют входящие).

💡 ЭАВР и ЭСФ — родственники, но не одно и то же. Электронный счёт-фактура (ЭСФ) — это налоговый документ по НДС. ЭАВР — это электронный акт выполненных работ. Они живут в одной подсистеме обмена (ИС ЭСФ) и работают по схожей механике статусов и подписей, но это разные документы для разных целей.

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

В Бухгалтерии для Казахстана 3.0 ЭАВР находится в разделе «ЭСФ/ЭАВР» → пункт «Электронные акты выполненных работ». В зависимости от настроек интерфейса конфигурации пункт также доступен из разделов «Продажа» и «Покупка» (для исходящих и входящих актов соответственно).

Внутри обычно есть отдельные списки: - исходящие (выданные) ЭАВР — то, что вы отправляете заказчикам; - входящие (полученные) ЭАВР — то, что приходит вам от исполнителей; - помощник / список документов-оснований — для пакетного создания актов из учётных документов.

📷 СКРИН 01
СКРИН 01 — раздел «ЭСФ/ЭАВР», открытый список «Электронные акты выполненных работ» с переключателем Исходящие/Входящие. (AccountingKZ30 во Fresh; маршрут: ЭСФ/ЭАВР → Электронные акты выполненных работ)
⚠️ Несостыковка маршрута. В навигационной карте конфигурации основной раздел для ЭАВР — «ЭСФ/ЭАВР», а «Продажа»/«Покупка» указаны как альтернативы. Если в вашей базе пункт лежит в другом разделе — ориентируйтесь на название пункта «Электронные акты выполненных работ» и поиск по слову «ЭАВР». См. поле issues этого гайда.

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

Разбираем по шагам весь жизненный цикл: от создания исходящего акта до подтверждения, отклонения и расторжения. Помните: всё это — документооборот, проводок не будет.

Урок 1. Создание и отправка исходящего ЭАВР

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

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

Самый частый и правильный путь — создать ЭАВР на основании учётного документа (например, «Реализация ТМЗ и услуг»): тогда перечень услуг, контрагент, договор и суммы перенесутся автоматически и будут совпадать с учётом. Для этого:

Создать «с нуля» тоже можно — кнопкой «Создать» в списке исходящих ЭАВР.

📷 СКРИН 02
СКРИН 02 — помощник ЭАВР — список документов-оснований (реализации) для пакетного создания актов.
💡 Почему «на основании» лучше. ЭАВР не делает проводок, поэтому единственный источник правды по суммам — учётный документ. Создавая акт из реализации, вы гарантируете, что в ИС ЭСФ уйдут ровно те же цифры, что и в бухгалтерии.

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

📷 СКРИН 03
СКРИН 03 — заполненная шапка исходящего ЭАВР (организация, контрагент, дата выполнения, валюта, договор).
⚠️ Договор или «Без договора» — что-то одно. Если договора нет, обязательно ставьте флаг «Без договора», иначе акт не пройдёт проверку.

Шаг 3. Заполняем услуги

В табличной части «Услуги» по каждой строке: - Номенклатура — выполненная работа/услуга (при выборе подтянутся наименование, единица измерения, ставка НДС); - Количество и Цена (без НДС); - Ставка НДС — например, «НДС 12 %», «НДС 0 %» или «Без НДС».

Стоимость без НДС, сумма НДС и стоимость с НДС считаются автоматически — вручную их не правят.

📷 СКРИН 04
СКРИН 04 — табличная часть «Услуги» с перечнем работ, количеством, ценой и ставкой НДС.
💡 Если дата выполнения у строк разная, её можно указать построчно в колонке «Дата выполнения». Если общая «Дата выполнения работ» в шапке не заполнена — система потребует заполнить дату в каждой строке (см. Часть 2, код проверки).

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

Нажмите «Проверить» — система прогонит контроль заполнения (обязательные поля шапки и построчная проверка услуг). Все найденные проблемы попадают в служебный список «Ошибки» с указанием поля и номера строки.

📷 СКРИН 05
СКРИН 05 — результат команды «Проверить» — список ошибок заполнения (если есть).

Шаг 5. Записываем и отправляем

  1. «Записать и закрыть» — документ сохранится в статусе «Черновик».
  2. Выделите акт в списке (или прямо в форме) и нажмите «Отправить».
  3. Выберите сертификат ЭЦП, подпишите.

После отправки акт получит регистрационный номер из ИС ЭСФ, статус сменится на «Отправлен», заполнятся данные подписи (уполномоченный сотрудник, дата подписи, ЭЦП). У заказчика акт появится в списке входящих.

📷 СКРИН 06
СКРИН 06 — кнопка «Отправить» и диалог выбора сертификата ЭЦП.
⚠️ Важно. Поля Дата выполнения работ, Код валюты, Направление обязательны — без них акт не отправится. ИИН/БИН поставщика и получателя должны быть корректными (12 цифр) — иначе ИС ЭСФ отклонит документ.

Урок 2. Подтверждение входящего ЭАВР

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

Шаг 1. Получаем входящие из ИС ЭСФ

Откройте список входящих ЭАВР и нажмите «Синхронизировать» (получить акты из ИС ЭСФ). Новые акты появятся со статусом получения/ожидания подтверждения.

📷 СКРИН 07
СКРИН 07 — список входящих ЭАВР после синхронизации; кнопка «Синхронизировать».

Шаг 2. Сверяем

Откройте акт двойным щелчком, сверьте перечень услуг, количество, цены и итоговые суммы с тем, что фактически было выполнено и что у вас в учёте.

Шаг 3. Подтверждаем

Выделите акт и нажмите «Подтвердить» → выберите сертификат ЭЦП → подпишите. Статус сменится на «Подтверждён», акт получит вашу ЭЦП, информация уйдёт обратно в ИС ЭСФ. Это финальный «успешный» статус обмена.

📷 СКРИН 08
СКРИН 08 — кнопка «Подтвердить» и подписание входящего акта.
💡 Пользователь не заполняет реквизиты руками — только проверяет данные и подписывает. ФИО подписанта, дату подписи и ЭЦП получателя система проставит сама.

Урок 3. Отклонение входящего ЭАВР

Когда: вы не согласны с актом (неверные объёмы, цены, состав работ).

  1. В списке входящих найдите акт и нажмите «Отклонить».
  2. Введите Причину отклонения (обязательный текст).
  3. Подпишите отклонение ЭЦП.

Статус станет «Отклонён», причина сохранится, информация уйдёт исполнителю. Исполнитель сможет выписать исправленный акт (см. Урок 5).

📷 СКРИН 09
СКРИН 09 — диалог отклонения с обязательным полем «Причина».

Урок 4. Отзыв и расторжение

📷 СКРИН 10
СКРИН 10 — панель управления статусами — кнопки «Отозвать», «Расторгнуть», «Подтвердить расторжение», «Отклонить расторжение».
⚠️ Набор доступных кнопок зависит от текущего статуса и направления акта. Например, «Подтвердить» доступно только для полученного входящего акта, «Расторгнуть» — только для подтверждённого. Недоступные действия программа просто не предложит.

Урок 5. Исправленный ЭАВР

Когда: ваш исходящий акт отклонили, нужно исправить и переотправить.

  1. В списке исходящих найдите акт со статусом «Отклонён», прочитайте Причину.
  2. Нажмите «Выписать исправленный АВР» — откроется новый акт, где: - Тип АВР = «Исправительный»; - Связанный АВР ссылается на отклонённый акт; - реквизиты основного акта (дата, номер, регистрационный номер) заполнены автоматически.
  3. Исправьте ошибочные данные, проверьте и отправьте заново.

Старый отклонённый акт остаётся в базе с финальным статусом, у заказчика появляется новый входящий акт.

📷 СКРИН 11
СКРИН 11 — новый исправительный акт со ссылкой на основной (реквизиты «Связанный АВР», «Тип АВР»).
💡 Печать. Для ЭАВР предусмотрена печатная форма (команда печати АВР). Её можно вывести из формы документа — пригодится для бумажной копии или архива.

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

Источник: реальный код релиза 3.0.72.1 (Documents/ЭлектронныйАктВыполненныхРабот/Ext/ObjectModule.bsl, ManagerModule.bsl, командные модули), плюс разбор objects/ и business-logic/.

Главное про объект в одном абзаце

Документ.ЭлектронныйАктВыполненныхРабот — непроводимый документ-обёртка для электронного документооборота с ИС ЭСФ. В ObjectModule нет ОбработкаПроведения и нет движений по регистрам учёта. Собственная логика модуля минимальна: проверка заполнения и очистка реквизитов при копировании, а всё остальное (заполнение, до/после записи, отправка, смена статусов, печать) делегируется в общие модули подсистемы ЭСФ/АВР. Документ — тонкая «точка входа», вся механика обмена живёт в ОбработкаОбменЭСФ, АВРКлиент, АВРКлиентСервер, АВРСерверПереопределяемый, ЭСФ*Переопределяемый.

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

Реквизиты шапки — полная таблица (51 реквизит)

№ Имя Тип Обязательность Назначение
1 Организация СправочникСсылка DontCheck Организация-исполнитель (поставщик), от имени которой выписывается АВР
2 СтруктурноеПодразделение СправочникСсылка DontCheck Структурное подразделение организации
3 Направление ПеречислениеСсылка.НаправленияЭСФ ShowError Направление документа: Исходящий / Входящий (обязательное)
4 ДатаВыполненияРабот DateTime ShowError Дата фактического выполнения работ/услуг (обязательное)
5 КодВалюты String ShowError Цифровой код валюты ISO 4217, напр. «398» (обязательное для ИС ЭСФ)
6 Валюта СправочникСсылка DontCheck Валюта расчётов по акту
7 КурсВалюты Decimal DontCheck Курс валюты на дату документа
8 Контрагент СправочникСсылка DontCheck Основной контрагент — заказчик (для исходящих) / исполнитель (для входящих)
9 БезДоговора Boolean DontCheck Флаг: разовая сделка без письменного договора
10 Договор СправочникСсылка DontCheck Ссылка на договор, по которому выполнены работы
11 ДатаДоговора DateTime DontCheck Дата заключения договора
12 НомерДоговора String DontCheck Номер договора
13 РегистрационныйНомерДоговора String DontCheck Регистрационный номер договора в системе ЭД
14 ДокументОснование ДокументСсылка DontCheck Учётный документ-источник (реализация, заказ и т. п.)
15 ТипАВР ПеречислениеСсылка.ТипыАВР DontCheck Тип акта: Основной / Исправительный / Дополнительный
16 СвязанныйАВР ДокументСсылка.ЭлектронныйАктВыполненныхРабот DontCheck Ссылка на связанный АВР (основной или исправительный)
17 ДатаОсновногоАВР DateTime DontCheck Дата основного АВР (для исправительных/дополнительных)
18 НомерОсновногоАВР String DontCheck Номер основного АВР
19 РегистрационныйНомерОсновногоАВР String DontCheck Рег. номер основного АВР в ИС ЭСФ
20 Идентификатор String DontCheck Уникальный ID документа в ИС ЭСФ (заполняется системой)
21 РегистрационныйНомер String DontCheck Рег. номер из ИС ЭСФ, присваивается после отправки
22 Статус ПеречислениеСсылка.СтатусыАВР DontCheck Статус жизненного цикла ЭДО (Черновик, Отправлен, Подтверждён и т. д.)
23 Состояние ПеречислениеСсылка.СостоянияАВР DontCheck Состояние обработки документа
24 ДатаПринятияСтатуса DateTime DontCheck Дата присвоения текущего статуса
25 ЭЦП String DontCheck Электронная цифровая подпись (общее поле)
26 ТипПодписи ПеречислениеСсылка.ТипыПодписиЭСФ DontCheck Тип ЭЦП (общее поле)
27 УполномоченныйСотрудник String DontCheck ФИО сотрудника, подписавшего от имени отправителя
28 ДатаПодписи DateTime DontCheck Дата подписания отправителем
29 ЭЦПОтправителя String DontCheck ЭЦП отправителя (дублирующее/детальное поле)
30 ТипПодписиОтправителя ПеречислениеСсылка.ТипыПодписиЭСФ DontCheck Тип ЭЦП отправителя
31 ДатаПодписиОтправителя String DontCheck Дата подписания отправителем (строковый формат ИС ЭСФ)
32 ЭЦППолучателя String DontCheck ЭЦП получателя (при подтверждении/отклонении)
33 УполномоченныйСотрудникПолучателя String DontCheck ФИО сотрудника, подписавшего от имени получателя
34 ДатаПодписиПолучателя DateTime DontCheck Дата подписания получателем
35 ТипПодписиПолучателя ПеречислениеСсылка.ТипыПодписиЭСФ DontCheck Тип ЭЦП получателя
36 ИтогоСуммаНДС Decimal DontCheck Итоговая сумма НДС по всем строкам (рассчитывается)
37 ИтогоСтоимостьБезУчетаКосвенныхНалогов Decimal DontCheck Общая стоимость без НДС (рассчитывается)
38 ИтогоСтоимостьСУчетомКосвенныхНалогов Decimal DontCheck Общая стоимость с НДС (рассчитывается)
39 ИтогоРазмерОборота Decimal DontCheck Размер облагаемого оборота (рассчитывается)
40 АВРДополнительныеСведения String DontCheck Текстовые дополнительные сведения к акту
41 ПереченьДокументации String DontCheck Перечень сопутствующей документации
42 ДополнительноеНаименование String DontCheck Дополнительное название работ/услуг
43 ИспользованныеЗапасы String DontCheck Информация об использованных материалах
44 ДолжностьСдающего String DontCheck Должность лица, сдающего работы
45 ДолжностьПринимающего String DontCheck Должность лица, принимающего работы
46 Причина String DontCheck Причина отклонения или расторжения
47 Автор СправочникСсылка DontCheck Пользователь, создавший документ
48 ИнформацияОтправитель String DontCheck Строковая информация об отправителе (ИИН/БИН, наименование)
49 ИнформацияПолучатель String DontCheck Строковая информация о получателе (ИИН/БИН, наименование)
💡 3 поля ShowError (обязательных): Направление, ДатаВыполненияРабот, КодВалюты. Все остальные — DontCheck (проверка не на уровне платформы, а в бизнес-логике / при отправке).

Табличные части — полные таблицы колонок

ТЧ «Поставщики» (15 колонок)

Реквизиты исполнителя(ей) работ. Может содержать одного или нескольких поставщиков.

№ Имя Тип Назначение
1 Поставщик СправочникСсылка Ссылка на элемент справочника Контрагенты
2 ПоставщикНаименование String Полное наименование исполнителя
3 ПоставщикИдентификатор String ИИН/БИН исполнителя (12 цифр)
4 БИНФилиала String БИН структурного подразделения
5 Адрес String Адрес места нахождения
6 НомерСвидетельстваПоНДС String Номер свидетельства плательщика НДС
7 СерияСвидетельстваПоНДС String Серия свидетельства НДС
8 ДополнительныеСведения String Дополнительная информация
9 КБе String Код бенефициара
10 ИИК String Индивидуальный идентификационный код счёта
11 БИК String Банковский идентификационный код
12 НаименованиеБанка String Наименование банка
13 ТипРегистрации ПеречислениеСсылка.ТипыРегистрацииНПАВР Тип регистрации налогоплательщика
14 ДатаДокументаПоверенного DateTime Дата документа на представителя (доверенности)
15 НомерДокументаПоверенного String Номер доверенности/документа представителя

ТЧ «Получатели» (15 колонок)

Реквизиты заказчика(ов) — получателей работ/услуг.

№ Имя Тип Назначение
1 Получатель СправочникСсылка Ссылка на контрагента-получателя
2 ПолучательНаименование String Полное наименование заказчика
3 ПолучательИдентификатор String ИИН/БИН получателя (12 цифр)
4 БИНФилиала String БИН структурного подразделения
5 Адрес String Адрес места нахождения
6 Нерезидент Boolean Признак нерезидента РК
7 ДополнительныеСведения String Дополнительная информация
8 КБе String Код бенефициара
9 ИИК String ИИК счёта
10 БИК String БИК банка
11 НаименованиеБанка String Наименование банка
12 ТипРегистрационногоУчета String Тип регистрации в налоговых органах
13 ТипРегистрации ПеречислениеСсылка.ТипыРегистрацииНПАВР Тип регистрации налогоплательщика
14 ДатаДокументаПоверенного DateTime Дата документа представителя
15 НомерДокументаПоверенного String Номер доверенности представителя

ТЧ «Услуги» (19 колонок)

Основная табличная часть — перечень выполненных работ / оказанных услуг.

№ Имя Тип Назначение
1 Номенклатура СправочникСсылка Ссылка на элемент справочника Номенклатура
2 УслугаНаименование String Наименование работ/услуг (для ИС ЭСФ)
3 НаименованиеУслугиВСистеме String Наименование из учётной системы (техническое)
4 ЕдиницаИзмерения СправочникСсылка Ссылка на единицу измерения
5 ЕдиницаИзмеренияКод String Код единицы измерения (СОАТЕ)
6 ЕдиницаИзмеренияНаименование String Текстовое наименование единицы измерения
7 СоставнойКодГСВС String Код по ГСВС (государственному стандарту)
8 Количество Decimal Объём выполненных работ
9 Цена Decimal Цена за единицу без НДС
10 СтоимостьБезУчетаКосвенныхНалогов Decimal Стоимость без НДС (= Количество × Цена)
11 РазмерОборота Decimal Размер облагаемого/необлагаемого оборота
12 СтавкаНДС СправочникСсылка Ссылка на ставку НДС
13 СтавкаНДСЧисло Decimal Числовое значение ставки (%, напр. 12)
14 БезНДС Boolean Признак необлагаемого оборота
15 СуммаНДС Decimal Сумма НДС по строке
16 СтоимостьСУчетомКосвенныхНалогов Decimal Итоговая стоимость с НДС
17 ДополнительныеСведения String Дополнительная информация по строке
18 ДатаВыполнения DateTime Дата выполнения работ по конкретной строке
19 ДатаВыполнения DateTime Дата выполнения работ по конкретной строке
⚠️ Колонки 10, 11, 15, 16 рассчитываются автоматически при изменении Количество, Цена, СтавкаНДС. Ручное изменение будет перезаписано.

ТЧ «Ошибки» (2 колонки)

Служебная табличная часть для хранения ошибок валидации и обмена с ИС ЭСФ.

№ Имя Тип Назначение
1 Текст String Текст сообщения об ошибке
2 Поле String Идентификатор поля, к которому относится ошибка

Формы (8 форм)

Форма Назначение
ФормаДокумента Основная форма создания, редактирования и просмотра АВР (779 элементов управления, ключевая форма для пользователя)
ФормаСпискаИсходящих Список исходящих (выданных) АВР с панелью управления статусами
ФормаСпискаВходящих Список входящих (полученных) АВР с кнопками подтверждения/отклонения
ФормаВыбора Форма выбора документа из списка
ФормаСписка Универсальная форма списка с переключением направления
ФормаСпискаДокументов Список документов-оснований для оформления АВР (помощник)
ФормаВыбораДокументаОснования Диалоговая форма выбора документа-основания
ПросмотрСпискаДокументовЭАВР Форма просмотра связанных АВР

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

Обработчик Строк Что делает (по реальному коду)
ОбработкаЗаполнения 4 Делегирует инициализацию в ОбработкаОбменЭСФ.ДокументАВР_ОбработкаЗаполнения (значения по умолчанию: организация, направление, валюта и т. д.)
ОбработкаПроверкиЗаполнения 5 (+ 2 подпроцедуры) Точка входа в валидацию: формирует массив непроверяемых реквизитов и вызывает ДокументАВР_ОбработкаПроверкиЗаполнения
ПередЗаписью 4 Делегирует в ОбработкаОбменЭСФ.ДокументАВР_ПередЗаписью (подготовка данных, пересчёт итогов)
ПриЗаписи 4 Делегирует в ОбработкаОбменЭСФ.ДокументАВР_ПриЗаписи (постобработка: обновление связей, запись статусов ЭДО)
ПриКопировании 23 Сбрасывает уникальные реквизиты копии: Идентификатор, ЭЦП, РегистрационныйНомер, ДокументОснование → Неопределено; Статус → Перечисления.СтатусыАВР.Черновик; очищает ТЧ Ошибки
⚠️ ОбработкаПроведения отсутствует. Документ зарегистрирован как непроводимый: бухгалтерских и налоговых движений он не делает. Это подтверждается и ObjectModule (нет обработчика), и ManagerModule (логики проведения нет).

Реальный код: проверка заполнения (3.0.72.1)

Главная «своя» логика документа — построчная проверка табличной части Услуги и условная проверка даты выполнения. Источник: ObjectModule.bsl.

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

    МассивНепроверяемыхРеквизитов = Новый Массив();

    ДокументАВР_ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);

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

Процедура ДокументАВР_ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов) Экспорт

    ПроверятьДатуВыполненияТЧ = Ложь;
    Если Не ЗначениеЗаполнено(ЭтотОбъект.ДатаВыполненияРабот) Тогда
        МассивНепроверяемыхРеквизитов.Добавить("ДатаВыполненияРабот");   // дату в шапке не проверяем…
        ПроверятьДатуВыполненияТЧ = Истина;                              // …но требуем её построчно
    КонецЕсли;

    ЭСФСерверПереопределяемый.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);

    ДокументАВР_ПроверитьЗаполнениеТабличнойЧастиПострочно(ЭтотОбъект, ЭтотОбъект.Услуги, "Услуги", ПроверятьДатуВыполненияТЧ, Отказ);

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

Процедура ДокументАВР_ПроверитьЗаполнениеТабличнойЧастиПострочно(ЭтотОбъект, ПроверяемаяТабличнаячасть, ИмяТабличнойЧасти, ПроверятьДатуВыполненияТЧ, Отказ)

    Для Каждого СтрокаТабличнойЧасти Из ПроверяемаяТабличнаячасть Цикл

        ТекстСообщенияШаблон = НСтр("ru = 'Не заполнена колонка ""%1"" в строке %2 списка ""%3""'");

        Если Не ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура) Тогда
            // … сообщение по колонке Номенклатура с номером строки …
            Поле = ИмяТабличнойЧасти + "[" + Формат(СтрокаТабличнойЧасти.НомерСтроки-1, "ЧН=0; ЧГ=") + "].Номенклатура";
            ЭСФКлиентСерверПереопределяемый.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "Объект", Отказ);
        КонецЕсли;

        Если Не ЗначениеЗаполнено(СтрокаТабличнойЧасти.СтавкаНДС) Тогда
            // … сообщение по колонке СтавкаНДС …
            Поле = ИмяТабличнойЧасти + "[" + Формат(СтрокаТабличнойЧасти.НомерСтроки-1, "ЧН=0; ЧГ=") + "].СтавкаНДС";
            ЭСФКлиентСерверПереопределяемый.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "Объект", Отказ);
        КонецЕсли;

        Если ПроверятьДатуВыполненияТЧ Тогда
            ТекстСообщенияШаблонДата = НСтр("ru = 'Необходимо заполнить колонку ""Дата выполнения работ"" в строке %2 списка ""%3"" или поле ""Дата выполнения работ"" в разделе A'");
            Если Не ЗначениеЗаполнено(СтрокаТабличнойЧасти.ДатаВыполнения) Тогда
                Поле = ИмяТабличнойЧасти + "[" + Формат(СтрокаТабличнойЧасти.НомерСтроки-1, "ЧН=0; ЧГ=") + "].ДатаВыполнения";
                ЭСФКлиентСерверПереопределяемый.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "Объект", Отказ);
            КонецЕсли;
        КонецЕсли;

    КонецЦикла;

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

Что важно в этом коде:

Реальный код: очистка при копировании

Процедура ПриКопировании(ОбъектКопирования)

    Если ЗначениеЗаполнено(ОбъектКопирования.Идентификатор) Тогда
        Идентификатор = Неопределено;
    КонецЕсли;

    Если ЗначениеЗаполнено(ОбъектКопирования.ЭЦП) Тогда
        ЭЦП = Неопределено;
    КонецЕсли;

    Если ЗначениеЗаполнено(ОбъектКопирования.РегистрационныйНомер) Тогда
        РегистрационныйНомер = Неопределено;
    КонецЕсли;

    Если ЗначениеЗаполнено(ОбъектКопирования.Статус) Тогда
        Статус = Перечисления.СтатусыАВР.Черновик; // по умолчанию новый документ имеет статус Черновик
    КонецЕсли;

    Если ЗначениеЗаполнено(ОбъектКопирования.ДокументОснование) Тогда
        ДокументОснование = Неопределено;
    КонецЕсли;

    ЭтотОбъект.Ошибки.Очистить();

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

Смысл: копия акта не должна «унаследовать» чужую идентичность в ИС ЭСФ. Поэтому сбрасываются Идентификатор, ЭЦП, РегистрационныйНомер, ДокументОснование, статус откатывается в Черновик, а список ошибок очищается. Без этого попытка отправить копию привела бы к конфликту в государственной системе.

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

Их нет. Документ не пишет ни в регистры бухгалтерии (Типовой/Налоговый), ни в регистры накопления учёта. Вместо движений ЭАВР делает следующее:

Вместо проводок Что происходит
Статусы Жизненный цикл в Перечислениях СтатусыАВР/СостоянияАВР: Черновик → Отправлен → Получен → Подтверждён/Отклонён → (Расторжение ожидает подтверждения) → Расторгнут
Подписи (ЭЦП) Реквизиты ЭЦП, …Отправителя, …Получателя, УполномоченныйСотрудник*, ДатаПодписи*
Идентификация в ИС ЭСФ Идентификатор, РегистрационныйНомер — присваиваются государственной системой при отправке/обмене
Связи ДокументОснование (учётный документ-источник), СвязанныйАВР + ТипАВР (для исправительных/дополнительных)
Печать Печатная форма АВР через АВРСерверПереопределяемый.ПечатьАВР (см. ManagerModule)

Учётные движения (доход, НДС, взаиморасчёты) формирует документ-основание — как правило, «Реализация ТМЗ и услуг». ЭАВР лишь отражает тот же факт в государственном электронном обмене.

Команды (жизненный цикл ЭДО) — реальные вызовы

Вся механика обмена реализована командами документа, которые делегируют в клиентские модули АВРКлиент/АВРКлиентСервер. Из командных модулей релиза 3.0.72.1:

Команда Вызов Смысл
Отправить АВРКлиент.ОтправитьИсходящиеАВР(...) Отправка исходящего акта в ИС ЭСФ (из формы — синхронно, из списка — фоновым заданием при ИспользоватьФоновуюОтправкуАВР())
Подтвердить АВРКлиент.ОткрытьФормуИзменениеСтатусовАВР(АВРКлиентСервер.ДействиеПодтверждение(), ...) Подписание/подтверждение входящего акта
Отклонить ... ДействиеОтклонение() ... Отклонение входящего акта (с причиной)
Расторгнуть ... ДействиеРасторжение() ... Запрос на расторжение подтверждённого акта
Отозвать, ПодтвердитьРасторжение, ОтклонитьРасторжение, Подтвердить расторжение те же формы смены статуса Прочие переходы статусов (см. Commands в составе документа)
СоздатьЭлектронныйАВР АВРКлиент.ВыполнитьКомандуСоздатьЭАВР(ПараметрКоманды) Пакетное создание ЭАВР (только для Тип("Массив"))
ОткрытьФормуПомощникаЭАВР ОткрытьФорму("...Форма.ФормаСпискаДокументов", ...) Помощник: список документов-оснований
Синхронизировать ОткрытьФорму("Обработка.ОбменЭСФ.Форма.СинхронизацияАВР", ...) Получение/обновление актов из ИС ЭСФ
ВыписатьИсправленныйАВР через АВРКлиент/обмен ЭСФ Создание исправительного акта со связью на основной

Пример (Commands/Отправить/Ext/CommandModule.bsl) — выбор между синхронной отправкой из формы и фоновой из списка:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

    Источник = ПараметрыВыполненияКоманды.Источник;

    Если ТипЗнч(Источник) = ЭСФКлиентПереопределяемый.ПолучитьТипФормаКлиентскогоПриложения() Тогда

        Если Источник.ИмяФормы = "Документ.ЭлектронныйАктВыполненныхРабот.Форма.ФормаДокумента" Тогда
            АВРКлиент.ОтправитьИсходящиеАВР(ПараметрКоманды, Новый Структура("ЗапускатьФоновоеЗадание", Ложь));
        Иначе
            ИспользоватьФоновуюОтправкуАВР = АВРКлиентСервер.ИспользоватьФоновуюОтправкуАВР();
            ДополнительныеПараметры = Новый Структура("ЗапускатьФоновоеЗадание, КлючФормы", ИспользоватьФоновуюОтправкуАВР, Источник.КлючУникальности);
            АВРКлиент.ОтправитьИсходящиеАВР(ПараметрКоманды, ДополнительныеПараметры);
        КонецЕсли;

    КонецЕсли;

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

Печать (ManagerModule)

ManagerModule тоже тонкий — он только подключает печать и делегирует её:

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    АВРСерверПереопределяемый.ПечатьАВР(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецПроцедуры

Функция ПечатьАВР(МассивОбъектов, ОбъектыПечати) Экспорт
    ОбработкаОбменЭСФ = ЭСФСерверПовтИсп.ОбработкаОбменЭСФ();
    Возврат ОбработкаОбменЭСФ.ПечатьАВР(МассивОбъектов, ОбъектыПечати);
КонецФункции

Также ManagerModule содержит пустой ПриЗаполненииОграниченияДоступа (точка расширения RLS) и ДобавитьКомандыПечати → АВРСерверПереопределяемый.ДобавитьКомандыПечати.

Справочник полей (per-field reference)

Развёрнутое описание ключевых реквизитов: обязательность, взаимосвязи, валидация, типичные значения.

Направление (ПеречислениеСсылка.НаправленияЭСФ)

Обязательность: ShowError (критически важное поле). Описание: Определяет направление документа — Исходящий (выданный организацией) или Входящий (полученный от контрагента). От этого поля зависит доступность команд управления: для исходящих — «Отправить», «Отозвать»; для входящих — «Подтвердить», «Отклонить». Влияние на другие поля: При значении «Исходящий» организация становится поставщиком, контрагент — получателем; для «Входящий» — наоборот. Определяет видимость кнопок в формах списков. Валидация: Проверяется на уровне платформы (fill_value_required=ShowError). Типичные значения: «Исходящий» при создании нового АВР от своего имени; «Входящий» устанавливается автоматически при получении из ИС ЭСФ.

ДатаВыполненияРабот (DateTime)

Обязательность: ShowError. Описание: Дата фактического выполнения работ или оказания услуг. Ключевое поле для налогового учёта и отчётности. Влияние на другие поля: Если не заполнена глобально — проверяется построчно в ТЧ Услуги (колонка ДатаВыполнения). При заполнении может автоматически копироваться в строки ТЧ. Валидация: Обязательна к заполнению (ОбработкаПроверкиЗаполнения); не должна быть позже текущей даты; не должна быть в закрытом периоде. Типичные значения: Текущая дата или дата завершения последних работ по договору.

КодВалюты (String)

Обязательность: ShowError. Описание: Цифровой код валюты по классификатору ISO 4217 (например, «398» для тенге). Обязательное требование ИС ЭСФ. Влияние на другие поля: Связано с реквизитом Валюта (справочник). При выборе валюты код заполняется автоматически. Влияет на отображение курса (КурсВалюты). Валидация: Проверяется на соответствие справочнику валют и наличие в системе ИС ЭСФ. Типичные значения: «398» (KZT), «840» (USD), «978» (EUR).

Организация (СправочникСсылка)

Обязательность: DontCheck (но фактически обязательно для исходящих АВР). Описание: Организация-исполнитель (поставщик), от имени которой выписывается акт. Влияние на другие поля: При выборе автоматически заполняется первая строка в ТЧ Поставщики с реквизитами организации (ИИН/БИН, наименование, адрес, банковские реквизиты, свидетельство НДС). Определяет доступные сертификаты ЭЦП для подписания. Валидация: Проверяется наличие в справочнике Организации; проверка регистрации в качестве плательщика НДС (если в ТЧ Услуги есть строки с НДС). Типичные значения: Основная организация пользователя (подставляется по умолчанию).

Контрагент (СправочникСсылка)

Обязательность: DontCheck (но фактически обязателен). Описание: Основной контрагент — заказчик (получатель) для исходящих АВР или исполнитель для входящих. Влияние на другие поля: При выборе автоматически заполняется ТЧ Получатели (для исходящих) или Поставщики (для входящих) с реквизитами контрагента: ИИН/БИН, наименование, адрес, банковские реквизиты. Фильтрует список договоров в поле Договор. Валидация: Проверка наличия в справочнике; проверка заполненности обязательных реквизитов контрагента (ИИН/БИН); проверка регистрации в ИС ЭСФ (для отправки). Типичные значения: Контрагенты из справочника с заполненными реквизитами для ЭДО.

Договор (СправочникСсылка)

Обязательность: DontCheck. Описание: Ссылка на договор, на основании которого выполнены работы. Альтернатива — установка флага БезДоговора. Влияние на другие поля: При выборе автоматически заполняются ДатаДоговора, НомерДоговора, РегистрационныйНомерДоговора (если договор зарегистрирован в ЭДО). Может подтягивать валюту и условия расчётов. Валидация: Проверка соответствия контрагента в договоре и в документе. Если не заполнен — должен быть установлен флаг БезДоговора. Типичные значения: Договоры с типом «С покупателем» или «С поставщиком» в зависимости от направления АВР.

БезДоговора (Boolean)

Обязательность: DontCheck. Описание: Флаг, указывающий на отсутствие письменного договора между сторонами (разовая сделка, устная договорённость). Влияние на другие поля: При установке поле Договор становится недоступным для редактирования; поля ДатаДоговора, НомерДоговора, РегистрационныйНомерДоговора очищаются. Если не установлен — договор должен быть заполнен. Валидация: Логическая проверка: либо заполнен Договор, либо установлен БезДоговора. Типичные значения: Ложь (по умолчанию, работа по договору); Истина (разовая сделка).

ТипАВР (ПеречислениеСсылка.ТипыАВР)

Обязательность: DontCheck. Описание: Тип акта — Основной, Исправительный или Дополнительный. Определяет, является ли акт первичным или создан для исправления/дополнения ранее выписанного. Влияние на другие поля: При значении «Исправительный» или «Дополнительный» становятся обязательными поля СвязанныйАВР, РегистрационныйНомерОсновногоАВР, ДатаОсновногоАВР, НомерОсновногоАВР. Определяет доступность команды «ВыписатьИсправленныйАВР». Валидация: Проверка наличия связи с основным АВР для неосновных типов. Типичные значения: «Основной» (по умолчанию при создании нового); «Исправительный» (при использовании команды «ВыписатьИсправленныйАВР»).

Статус (ПеречислениеСсылка.СтатусыАВР)

Обязательность: DontCheck (заполняется автоматически). Описание: Текущий статус документа в жизненном цикле обмена: Черновик, Отправлен, Получен, Подтверждён, Отклонён, Расторгнут и т. д. Управляется системой обмена с ИС ЭСФ. Влияние на другие поля: От статуса зависит доступность команд управления (отправить, подтвердить, отклонить, расторгнуть). Определяет доступность документа для редактирования (в статусах «Подтверждён», «Отклонён» редактирование запрещено). Валидация: Изменяется только через стандартные команды управления или при синхронизации с ИС ЭСФ. Типичные значения: «Черновик» (новый документ); «Отправлен» (после отправки); «Подтверждён» (финальный успешный статус).

РегистрационныйНомер (String)

Обязательность: DontCheck (заполняется автоматически ИС ЭСФ). Описание: Уникальный регистрационный номер документа, присваиваемый ИС ЭСФ после успешной отправки. Служит для идентификации документа в государственной системе ЭДО. Влияние на другие поля: Наличие номера свидетельствует о регистрации документа в ИС ЭСФ. Используется для поиска и связывания документов в системе обмена. Валидация: Не редактируется пользователем; заполняется только при получении ответа от ИС ЭСФ. Типичные значения: Строка формата «XXXXXXXXXXXX-XXXX» (длина до 34 символов).

ДокументОснование (ДокументСсылка)

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

ТЧ «Услуги» — Номенклатура (СправочникСсылка)

Обязательность: Фактически обязательна (проверяется при заполнении строки). Описание: Ссылка на элемент справочника Номенклатура, представляющий выполненную работу или оказанную услугу. Влияние на другие поля: При выборе автоматически заполняются УслугаНаименование, ЕдиницаИзмерения, ЕдиницаИзмеренияКод, ЕдиницаИзмеренияНаименование, СоставнойКодГСВС, СтавкаНДС. Может подтянуть Цену из прайс-листа или договора. Валидация: Проверка типа номенклатуры (должна быть «Услуга» или «Работа»). Проверка заполненности обязательных реквизитов номенклатуры (единица измерения, ставка НДС). Типичные значения: Элементы справочника Номенклатура с видом «Услуга».

ТЧ «Услуги» — Количество (Decimal)

Обязательность: Обязательна (построчная валидация). Описание: Объём выполненных работ или оказанных услуг в единицах измерения. Влияние на другие поля: Используется для расчёта СтоимостьБезУчетаКосвенныхНалогов (Количество × Цена), РазмерОборота, СуммаНДС, СтоимостьСУчетомКосвенныхНалогов. Изменение количества пересчитывает все зависимые суммовые поля. Валидация: Должно быть больше нуля. Проверка формата (до 4 знаков после запятой). Типичные значения: Положительные числа (1, 10.5, 100.25).

ТЧ «Услуги» — Цена (Decimal)

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

ТЧ «Услуги» — СтавкаНДС (СправочникСсылка)

Обязательность: Обязательна (если оборот облагаемый). Описание: Ставка налога на добавленную стоимость, применяемая к данной строке (12 %, 0 %, без НДС). Влияние на другие поля: При выборе автоматически заполняется СтавкаНДСЧисло (числовое значение для расчёта) и БезНДС (флаг). Участвует в расчёте СуммаНДС и СтоимостьСУчетомКосвенныхНалогов. Влияет на РазмерОборота (облагаемый/необлагаемый). Валидация: Проверка соответствия справочнику «Ставки НДС». Проверка актуальности ставки на дату документа. Типичные значения: «НДС 12 %», «НДС 0 %», «Без НДС».

ТЧ «Поставщики» — ПоставщикИдентификатор (String)

Обязательность: Фактически обязательна (проверяется при отправке в ИС ЭСФ). Описание: ИИН (для физических лиц) или БИН (для юридических лиц) исполнителя работ. Уникальный идентификатор налогоплательщика РК. Влияние на другие поля: Заполняется автоматически при выборе Поставщика из справочника Контрагенты. Используется для идентификации в ИС ЭСФ. Валидация: Проверка формата (12 цифр), проверка контрольного разряда (алгоритм ИИН/БИН), проверка регистрации в налоговых органах РК. Типичные значения: 12-значное число (например, «123456789012»).

ТЧ «Получатели» — ПолучательИдентификатор (String)

Обязательность: Обязательна. Описание: ИИН/БИН заказчика (получателя) работ. Влияние на другие поля: Аналогично ПоставщикИдентификатор — заполняется автоматически при выборе Получателя, используется для идентификации в ИС ЭСФ. Валидация: Проверка формата и контрольного разряда; проверка регистрации в налоговых органах. Типичные значения: 12-значное число.

Валидации (сводно)

  1. Обязательные реквизиты шапки (ShowError): ДатаВыполненияРабот, КодВалюты, Направление.
  2. Условная дата выполнения: если шапочная дата пустая → дата обязательна построчно в Услуги (см. код выше).
  3. Построчно в Услуги: заполнены Номенклатура и СтавкаНДС.
  4. Договор: заполнен Договор либо установлен БезДоговора (взаимоисключающе).
  5. Контрагенты (по данным разбора): ИИН/БИН формата 12 цифр с контрольным разрядом — критично для приёма документа в ИС ЭСФ.
  6. Исправительные/дополнительные акты: требуется заполнение СвязанныйАВР и реквизитов основного АВР.

Пункты 1–4 подтверждены реальным кодом ObjectModule. Пункты 5–6 взяты из разбора objects/ (часть из них реализована в общих модулях обмена/формах, а не в ObjectModule).

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

Модуль Роль
ОбработкаОбменЭСФ (через ЭСФСерверПовтИсп.ОбработкаОбменЭСФ()) Главный исполнитель: заполнение, до/после записи, печать, обмен с ИС ЭСФ
ЭСФКлиентСерверПереопределяемый Сообщения пользователю, подстановка параметров, общая логика валидации
ЭСФСерверПереопределяемый Серверные процедуры ЭСФ (в т. ч. УдалитьНепроверяемыеРеквизитыИзМассива)
ЭСФСерверПовтИсп, ЭСФКлиентПереопределяемый Кэш-данные и клиентские типы форм ЭСФ
АВРКлиент / АВРКлиентСервер Клиентские команды ЭДО: отправка, смена статусов, создание, фоновая отправка
АВРСерверПереопределяемый Печать и регистрация команд печати АВР
💼 Партнёру / внедренцу.
  1. «Документ не делает проводок» — это норма, а не баг. Если клиент жалуется, что после ЭАВР «нет движений по 90-м/НДС» — объясните: учёт ведёт реализация-основание, ЭАВР только отправляет акт в ИС ЭСФ. Проверяйте проводки на документе-основании, а не на акте.
  2. Настройка обмена с ИС ЭСФ — главное при внедрении. Нужны действующие сертификаты ЭЦП, корректные ИИН/БИН организации и контрагентов, заполненные реквизиты для ЭДО. 90 % обращений «не отправляется/отклоняется» — это именно реквизиты сторон и сертификаты, а не сам документ.
  3. Фоновая отправка управляется АВРКлиентСервер.ИспользоватьФоновуюОтправкуАВР() — при массовых отправках из списка проверьте, что фоновые задания включены и работают (особенно во Fresh/облаке).
  4. Кастомизация печати — точка расширения АВРСерверПереопределяемый; саму печать переопределяйте там, не трогая ManagerModule документа.
  5. RLS — ПриЗаполненииОграниченияДоступа пустой; ограничения доступа задаются на уровне подсистемы «Управление доступом».
🧩 Заметки для разработчика.
  1. ObjectModule — фасад: все обработчики (ОбработкаЗаполнения, ПередЗаписью, ПриЗаписи) на 3–4 строки делегируют в ОбработкаОбменЭСФ. Реальную бизнес-логику ищите там, а не в документе.
  2. Единственная содержательная «своя» логика модуля — ДокументАВР_ПроверитьЗаполнениеТабличнойЧастиПострочно (проверка Номенклатура/СтавкаНДС/ДатаВыполнения) и ПриКопировании (сброс идентичности).
  3. Адресация полей в сообщениях — нульбазовая (НомерСтроки-1); экспортные обёртки (ДокументАВР_ОбработкаПроверкиЗаполнения с Экспорт) позволяют переиспользовать проверку из других мест.
  4. Команды смены статуса унифицированы: Подтвердить/Отклонить/Расторгнуть — один и тот же вызов АВРКлиент.ОткрытьФормуИзменениеСтатусовАВР с разным «действием» из АВРКлиентСервер.
  5. При автоматизации сначала смотрите Направление и Статус — они определяют допустимые переходы; вызов недоступного действия приведёт к ошибке.

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

🆕 Что нового

Версия Изменение Тип
3.0.72.1 Первичное описание (на релизе 3.0.72.1) 🆕
3.0.72.1 Расширена Часть 2: полная таблица 49 реквизитов шапки, все колонки 4 ТЧ, 8 форм, справочник 17 ключевых полей 📝