Документ «Электронный акт выполненных работ (ЭАВР)»
ЭАВР — это электронный акт выполненных работ/оказанных услуг, которым обмениваются исполнитель и заказчик через государственную ИС ЭСФ Республики Казахстан, подписывая его ЭЦП. Документ не формирует бухгалтерских проводок — он отвечает за юридически значимый документооборот: создание акта, отправку, подписание, подтверждение/отклонение и расторжение, проходя через статусы обмена.
🎯 Что это и зачем
Когда работы выполнены или услуги оказаны, факт нужно подтвердить актом. В Казахстане это всё чаще делают в электронном виде — через Информационную систему электронных счетов-фактур (ИС ЭСФ). Электронный акт выполненных работ (ЭАВР, в коде — АВР):
- фиксирует что, кому, когда и на какую сумму выполнено (перечень услуг, количество, цена, НДС, дата выполнения);
- подписывается ЭЦП обеих сторон и получает регистрационный номер в ИС ЭСФ — то есть приобретает юридическую силу;
- проходит понятный жизненный цикл: исполнитель отправляет → заказчик подтверждает или отклоняет → при необходимости акт можно отозвать или расторгнуть.
Главное, что нужно понимать сразу: ЭАВР — это документ обмена, а не учётный документ. Он сам по себе не списывает услуги, не начисляет выручку и не делает проводок Дт/Кт. Доход, НДС и взаиморасчёты отражает связанный учётный документ — как правило, «Реализация ТМЗ и услуг», на основании которого ЭАВР и формируется. ЭАВР же «оборачивает» эту реализацию в государственный электронный формат и проводит её через ИС ЭСФ.
Кто работает: бухгалтеры и операторы ЭДО — со стороны исполнителя (выписывают и отправляют исходящие акты) и со стороны заказчика (принимают, подтверждают или отклоняют входящие).
🧭 Где найти в программе
В Бухгалтерии для Казахстана 3.0 ЭАВР находится в разделе «ЭСФ/ЭАВР» → пункт «Электронные акты выполненных работ». В зависимости от настроек интерфейса конфигурации пункт также доступен из разделов «Продажа» и «Покупка» (для исходящих и входящих актов соответственно).
Внутри обычно есть отдельные списки: - исходящие (выданные) ЭАВР — то, что вы отправляете заказчикам; - входящие (полученные) ЭАВР — то, что приходит вам от исполнителей; - помощник / список документов-оснований — для пакетного создания актов из учётных документов.
👤 Часть 1. Для пользователя
Разбираем по шагам весь жизненный цикл: от создания исходящего акта до подтверждения, отклонения и расторжения. Помните: всё это — документооборот, проводок не будет.
Урок 1. Создание и отправка исходящего ЭАВР
Когда: вы — исполнитель, работы выполнены, нужно направить акт заказчику на подписание.
Шаг 1. Создаём документ
Самый частый и правильный путь — создать ЭАВР на основании учётного документа (например, «Реализация ТМЗ и услуг»): тогда перечень услуг, контрагент, договор и суммы перенесутся автоматически и будут совпадать с учётом. Для этого:
- откройте помощник ЭАВР (список документов-оснований) и выберите документ, либо
- в самом документе реализации воспользуйтесь командой создания электронного акта.
Создать «с нуля» тоже можно — кнопкой «Создать» в списке исходящих ЭАВР.
Шаг 2. Заполняем шапку
- Организация — исполнитель (поставщик), от чьего имени выписывается акт. При выборе автоматически заполнится строка в табличной части «Поставщики» (ИИН/БИН, наименование, адрес, банк, свидетельство НДС).
- Направление — «Исходящий» (для нового акта от своего имени).
- Дата выполнения работ — дата фактического выполнения. Обязательное поле.
- Код валюты — по умолчанию KZT (398). Обязательное поле для ИС ЭСФ.
- Контрагент — заказчик (получатель). При выборе заполнится табличная часть «Получатели».
- Договор — выбираем договор, либо ставим флаг «Без договора» (разовая сделка). При выборе договора подтянутся его дата, номер и регистрационный номер ЭД.
Шаг 3. Заполняем услуги
В табличной части «Услуги» по каждой строке: - Номенклатура — выполненная работа/услуга (при выборе подтянутся наименование, единица измерения, ставка НДС); - Количество и Цена (без НДС); - Ставка НДС — например, «НДС 12 %», «НДС 0 %» или «Без НДС».
Стоимость без НДС, сумма НДС и стоимость с НДС считаются автоматически — вручную их не правят.
Шаг 4. Проверяем
Нажмите «Проверить» — система прогонит контроль заполнения (обязательные поля шапки и построчная проверка услуг). Все найденные проблемы попадают в служебный список «Ошибки» с указанием поля и номера строки.
Шаг 5. Записываем и отправляем
- «Записать и закрыть» — документ сохранится в статусе «Черновик».
- Выделите акт в списке (или прямо в форме) и нажмите «Отправить».
- Выберите сертификат ЭЦП, подпишите.
После отправки акт получит регистрационный номер из ИС ЭСФ, статус сменится на «Отправлен», заполнятся данные подписи (уполномоченный сотрудник, дата подписи, ЭЦП). У заказчика акт появится в списке входящих.
Урок 2. Подтверждение входящего ЭАВР
Когда: вы — заказчик, исполнитель прислал вам акт, его нужно принять.
Шаг 1. Получаем входящие из ИС ЭСФ
Откройте список входящих ЭАВР и нажмите «Синхронизировать» (получить акты из ИС ЭСФ). Новые акты появятся со статусом получения/ожидания подтверждения.
Шаг 2. Сверяем
Откройте акт двойным щелчком, сверьте перечень услуг, количество, цены и итоговые суммы с тем, что фактически было выполнено и что у вас в учёте.
Шаг 3. Подтверждаем
Выделите акт и нажмите «Подтвердить» → выберите сертификат ЭЦП → подпишите. Статус сменится на «Подтверждён», акт получит вашу ЭЦП, информация уйдёт обратно в ИС ЭСФ. Это финальный «успешный» статус обмена.
Урок 3. Отклонение входящего ЭАВР
Когда: вы не согласны с актом (неверные объёмы, цены, состав работ).
- В списке входящих найдите акт и нажмите «Отклонить».
- Введите Причину отклонения (обязательный текст).
- Подпишите отклонение ЭЦП.
Статус станет «Отклонён», причина сохранится, информация уйдёт исполнителю. Исполнитель сможет выписать исправленный акт (см. Урок 5).
Урок 4. Отзыв и расторжение
- Отозвать — исполнитель может отозвать исходящий акт, пока заказчик его не подтвердил/отклонил (например, отправил с ошибкой).
- Расторгнуть — отмена уже подтверждённого акта. Это двусторонняя процедура: 1. Инициатор нажимает «Расторгнуть», вводит причину и подписывает запрос на расторжение — статус становится «Расторжение ожидает подтверждения». 2. Вторая сторона должна «Подтвердить расторжение» или «Отклонить расторжение». 3. При взаимном согласии акт переходит в статус «Расторгнут».
Урок 5. Исправленный ЭАВР
Когда: ваш исходящий акт отклонили, нужно исправить и переотправить.
- В списке исходящих найдите акт со статусом «Отклонён», прочитайте Причину.
- Нажмите «Выписать исправленный АВР» — откроется новый акт, где: - Тип АВР = «Исправительный»; - Связанный АВР ссылается на отклонённый акт; - реквизиты основного акта (дата, номер, регистрационный номер) заполнены автоматически.
- Исправьте ошибочные данные, проверьте и отправьте заново.
Старый отклонённый акт остаётся в базе с финальным статусом, у заказчика появляется новый входящий акт.
🛠 Часть 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 | Строковая информация о получателе (ИИН/БИН, наименование) |
Направление, ДатаВыполненияРабот, КодВалюты. Все остальные — 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 | Дата выполнения работ по конкретной строке |
Количество, Цена, СтавкаНДС. Ручное изменение будет перезаписано.ТЧ «Ошибки» (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; ЧГ=") + "].ДатаВыполнения";
ЭСФКлиентСерверПереопределяемый.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "Объект", Отказ);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Что важно в этом коде:
- Дата выполнения работ — «или в шапке, или построчно». Если в шапке
ДатаВыполненияРаботпустая, она исключается из стандартной проверки (МассивНепроверяемыхРеквизитов), но взамен включается флагПроверятьДатуВыполненияТЧ— и тогда дата становится обязательной в каждой строке ТЧУслуги. Это объясняет пользовательскую подсказку из Урока 1. - Построчно проверяются
НоменклатураиСтавкаНДС(а при включённом флаге —ДатаВыполнения). Сообщения формируются с указанием точного поля и номера строки (Услуги[N].Номенклатура), поэтому в форме они подсвечиваются адресно. - Адресация поля идёт по индексу
НомерСтроки-1— нумерация ТЧ внутренне нульбазовая; это типовой паттерн 1С дляСообщитьПользователю. - Сообщения локализованы через
НСтр("ru = …"), подстановка — черезЭСФКлиентСерверПереопределяемый.ПодставитьПараметрыВСтроку.
Реальный код: очистка при копировании
Процедура ПриКопировании(ОбъектКопирования)
Если ЗначениеЗаполнено(ОбъектКопирования.Идентификатор) Тогда
Идентификатор = Неопределено;
КонецЕсли;
Если ЗначениеЗаполнено(ОбъектКопирования.ЭЦП) Тогда
ЭЦП = Неопределено;
КонецЕсли;
Если ЗначениеЗаполнено(ОбъектКопирования.РегистрационныйНомер) Тогда
РегистрационныйНомер = Неопределено;
КонецЕсли;
Если ЗначениеЗаполнено(ОбъектКопирования.Статус) Тогда
Статус = Перечисления.СтатусыАВР.Черновик; // по умолчанию новый документ имеет статус Черновик
КонецЕсли;
Если ЗначениеЗаполнено(ОбъектКопирования.ДокументОснование) Тогда
ДокументОснование = Неопределено;
КонецЕсли;
ЭтотОбъект.Ошибки.Очистить();
КонецПроцедуры
Смысл: копия акта не должна «унаследовать» чужую идентичность в ИС ЭСФ. Поэтому сбрасываются Идентификатор, ЭЦП, РегистрационныйНомер, ДокументОснование, статус откатывается в Черновик, а список ошибок очищается. Без этого попытка отправить копию привела бы к конфликту в государственной системе.
Движения по регистрам
Их нет. Документ не пишет ни в регистры бухгалтерии (Типовой/Налоговый), ни в регистры накопления учёта. Вместо движений ЭАВР делает следующее:
| Вместо проводок | Что происходит |
|---|---|
| Статусы | Жизненный цикл в Перечислениях СтатусыАВР/СостоянияАВР: Черновик → Отправлен → Получен → Подтверждён/Отклонён → (Расторжение ожидает подтверждения) → Расторгнут |
| Подписи (ЭЦП) | Реквизиты ЭЦП, …Отправителя, …Получателя, УполномоченныйСотрудник*, ДатаПодписи* |
| Идентификация в ИС ЭСФ | Идентификатор, РегистрационныйНомер — присваиваются государственной системой при отправке/обмене |
| Связи | ДокументОснование (учётный документ-источник), СвязанныйАВР + ТипАВР (для исправительных/дополнительных) |
| Печать | Печатная форма АВР через АВРСерверПереопределяемый.ПечатьАВР (см. 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-значное число.
Валидации (сводно)
- Обязательные реквизиты шапки (
ShowError):ДатаВыполненияРабот,КодВалюты,Направление. - Условная дата выполнения: если шапочная дата пустая → дата обязательна построчно в
Услуги(см. код выше). - Построчно в
Услуги: заполненыНоменклатураиСтавкаНДС. - Договор: заполнен
Договорлибо установленБезДоговора(взаимоисключающе). - Контрагенты (по данным разбора): ИИН/БИН формата 12 цифр с контрольным разрядом — критично для приёма документа в ИС ЭСФ.
- Исправительные/дополнительные акты: требуется заполнение
СвязанныйАВРи реквизитов основного АВР.
Пункты 1–4 подтверждены реальным кодом
ObjectModule. Пункты 5–6 взяты из разбораobjects/(часть из них реализована в общих модулях обмена/формах, а не вObjectModule).
Зависимости (общие модули)
| Модуль | Роль |
|---|---|
ОбработкаОбменЭСФ (через ЭСФСерверПовтИсп.ОбработкаОбменЭСФ()) |
Главный исполнитель: заполнение, до/после записи, печать, обмен с ИС ЭСФ |
ЭСФКлиентСерверПереопределяемый |
Сообщения пользователю, подстановка параметров, общая логика валидации |
ЭСФСерверПереопределяемый |
Серверные процедуры ЭСФ (в т. ч. УдалитьНепроверяемыеРеквизитыИзМассива) |
ЭСФСерверПовтИсп, ЭСФКлиентПереопределяемый |
Кэш-данные и клиентские типы форм ЭСФ |
АВРКлиент / АВРКлиентСервер |
Клиентские команды ЭДО: отправка, смена статусов, создание, фоновая отправка |
АВРСерверПереопределяемый |
Печать и регистрация команд печати АВР |
- «Документ не делает проводок» — это норма, а не баг. Если клиент жалуется, что после ЭАВР «нет движений по 90-м/НДС» — объясните: учёт ведёт реализация-основание, ЭАВР только отправляет акт в ИС ЭСФ. Проверяйте проводки на документе-основании, а не на акте.
- Настройка обмена с ИС ЭСФ — главное при внедрении. Нужны действующие сертификаты ЭЦП, корректные ИИН/БИН организации и контрагентов, заполненные реквизиты для ЭДО. 90 % обращений «не отправляется/отклоняется» — это именно реквизиты сторон и сертификаты, а не сам документ.
- Фоновая отправка управляется
АВРКлиентСервер.ИспользоватьФоновуюОтправкуАВР()— при массовых отправках из списка проверьте, что фоновые задания включены и работают (особенно во Fresh/облаке).- Кастомизация печати — точка расширения
АВРСерверПереопределяемый; саму печать переопределяйте там, не трогаяManagerModuleдокумента.- RLS —
ПриЗаполненииОграниченияДоступапустой; ограничения доступа задаются на уровне подсистемы «Управление доступом».
ObjectModule— фасад: все обработчики (ОбработкаЗаполнения,ПередЗаписью,ПриЗаписи) на 3–4 строки делегируют вОбработкаОбменЭСФ. Реальную бизнес-логику ищите там, а не в документе.- Единственная содержательная «своя» логика модуля —
ДокументАВР_ПроверитьЗаполнениеТабличнойЧастиПострочно(проверкаНоменклатура/СтавкаНДС/ДатаВыполнения) иПриКопировании(сброс идентичности).- Адресация полей в сообщениях — нульбазовая (
НомерСтроки-1); экспортные обёртки (ДокументАВР_ОбработкаПроверкиЗаполнениясЭкспорт) позволяют переиспользовать проверку из других мест.- Команды смены статуса унифицированы:
Подтвердить/Отклонить/Расторгнуть— один и тот же вызовАВРКлиент.ОткрытьФормуИзменениеСтатусовАВРс разным «действием» изАВРКлиентСервер.- При автоматизации сначала смотрите
НаправлениеиСтатус— они определяют допустимые переходы; вызов недоступного действия приведёт к ошибке.
🔗 Связанные разделы
- realizaciya-tmz-i-uslug — учётный документ-основание; именно он делает проводки (доход/НДС), а ЭАВР отражает его в ИС ЭСФ
- schet-faktura-vydannyy — электронный счёт-фактура (ЭСФ): «сосед» по подсистеме обмена, налоговый документ по НДС
- schet-na-oplatu-pokupatelyu — счёт покупателю как преддоговорное основание сделки
- snt — сопроводительная накладная на товары (ещё один электронный документ ИС ЭСФ)
- akt-sverki-vzaimoraschetov — другой «безпроводочный» документ-сверка
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |
| 3.0.72.1 | Расширена Часть 2: полная таблица 49 реквизитов шапки, все колонки 4 ТЧ, 8 форм, справочник 17 ключевых полей | 📝 |