Документ «Доверенность»
Документ оформляет полномочия физического лица на получение товарно-материальных ценностей (НМА, денег) от поставщика и печатает официальный бланк формы Д2. Документ непроводной — не формирует ни одной проводки и ни одного движения по регистрам; всё, что он делает в учёте, — хранит реквизиты и связь со счётом-основанием для дальнейшей приёмки.
🎯 Что это и зачем
Когда товар получает не директор, а кладовщик или экспедитор, поставщик вправе потребовать доверенность — документ, подтверждающий, что этот сотрудник имеет право принять ценности от имени организации. В Казахстане для этого используется типовая форма Д2.
Документ «Доверенность» в Бухгалтерии для Казахстана 3.0 решает ровно эту задачу: фиксирует, кому (физлицо), от кого (контрагент-поставщик), что (перечень ТМЗ) и на какой срок выдано право получения, после чего печатает готовый бланк Д2. Он также может хранить ссылку на счёт-основание, чтобы потом было видно, по какому счёту получали товар.
Кто работает: снабженцы, логисты, бухгалтеры. Создаётся либо вручную (разовая доверенность), либо «на основании» счёта на оплату поставщика — тогда шапка и список товаров заполняются автоматически.
🧭 Где найти в программе
Доверенность относится к подсистеме «Покупка» (документооборот с поставщиками). Открывается из раздела «Покупка»; в журнале новый документ создаётся кнопкой «Создать». Второй типовой путь — из открытого счёта на оплату поставщика через «Создать на основании» → «Доверенность».
navigation-map.json объекта Документ.Доверенность нет, точное наименование пункта левого меню Fresh не подтверждено. По метаданным (ввод на основании счёта поставщика, связь с поступлениями) документ однозначно относится к разделу «Покупка»; наименование пункта журнала («Доверенности») указано предположительно и требует сверки в интерфейсе. См. [журнал ошибок](../../../../issues/AccountingKZ30/issues.md).👤 Часть 1. Для пользователя
Проходим по шагам: от пустого документа до готового к печати бланка Д2 и до проверки, исполнена ли доверенность.
Урок 1. Доверенность вручную
Когда: нужно выдать разовую доверенность на получение товаров от поставщика, а готового счёта-основания нет.
Шаг 1. Создаём документ
Раздел «Покупка» → журнал «Доверенности» → «Создать». Откроется пустая форма документа.
Шаг 2. Заполняем шапку
- Организация — от имени какой организации выдаётся доверенность. Обязательно — без неё документ не запишется.
- Физлицо — сотрудник, на чьё имя выдаётся доверенность (тот, кто пойдёт получать товар). Формально необязательно, но без него печатный бланк будет неполным.
- Контрагент — поставщик (грузоотправитель), от которого получают ценности. При его выборе подтянутся реквизиты контрагента и условия по договору.
- Договор контрагента — договор, в рамках которого выдаётся доверенность.
- Структурное подразделение — подразделение, для которого получают товар.
- Дата действия — срок, до которого доверенность действительна. По умолчанию подставляется дата документа + 10 дней (можно изменить).
Шаг 3. Добавляем товары (ТМЗ)
Переходим в табличную часть «Товары» (синоним — «ТМЗ»). Заполнить можно двумя способами: - вручную — строка за строкой; - через кнопки «Подбор ТМЗ», «Подбор ОС», «Подбор НМА» — открывается форма подбора номенклатуры с фильтром по типу ценностей.
В каждой строке указываем Наименование товара (номенклатура, НМА или просто текст), Единицу по классификатору и Количество (по умолчанию подставляется 1).
Шаг 4. Записываем
Нажимаем «Записать» или «Записать и закрыть».
Урок 2. Доверенность на основании счёта поставщика
Когда: поступил счёт от поставщика и по нему нужна доверенность. Это самый быстрый способ — большинство полей заполнится само.
Шаг 1. Запускаем ввод на основании
Открываем документ «Счёт на оплату поставщика» → кнопка «Создать на основании» → «Доверенность».
Шаг 2. Проверяем автозаполнение
Программа создаст новую доверенность и заполнит из счёта: - Организацию, Контрагента, Договор (через типовое заполнение шапки по основанию); - Структурную единицу и Документ-основание (= ссылка на счёт); - поле «По документу» — текстом вида «Счет на оплату от поставщика №… от … г.» (если в счёте указаны номер и дата входящего документа); - табличную часть «Товары» — копируются позиции и из раздела «Товары», и из раздела «ОС» счёта. Для строк по ОС единица измерения подставляется как «штука», количество — 1.
Шаг 3. Дозаполняем и записываем
Указываем Физлицо (его в счёте нет), при необходимости правим Дату действия и количества, нажимаем «Записать».
Урок 3. Печать бланка Д2
Когда: доверенность оформлена, нужен бумажный бланк для передачи сотруднику.
Шаг 1. Открываем печать
В форме документа нажимаем «Печать» → «Доверенность (Д2)».
Шаг 2. Уточняем два текстовых поля
Откроется небольшая форма, где можно отредактировать: - «На получение от» — текст про грузоотправителя (по умолчанию подставляется полное наименование контрагента); - «По документу» — текст про документ-основание.
Шаг 3. Печатаем
После «ОК» сформируется табличный бланк формы Д2 (ФИО и должность физлица, паспортные данные, список товаров и т.д.) — его можно распечатать или сохранить в файл.
Урок 4. Проверка: исполнена ли доверенность
Доверенность считается «исполненной», когда по ней получили товар, то есть существует документ поступления, ссылающийся на неё. Прямой кнопки «показать исполнение» в интерфейсе нет, но связь устанавливается через поле Документ-основание в документах поступления: программа ищет Поступление товаров и услуг, Поступление НМА или Приходный кассовый ордер, у которых в основании указана эта доверенность.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/Доверенность/Ext/ObjectModule.bsl и фрагменты ManagerModule.bsl), плюс разбор objects/ и business-logic/.
Структура объекта
Реквизиты шапки (по objects/):
| Реквизит | Тип | Обязательность | Назначение |
|---|---|---|---|
Организация |
СправочникСсылка.Организации | ShowError | От имени кого выдаётся; ключ для RLS и отборов |
ФизЛицо |
СправочникСсылка.ФизическиеЛица | DontCheck | Кому выдана (для печати Д2) |
Контрагент |
СправочникСсылка.Контрагенты | DontCheck | Грузоотправитель-поставщик |
ДоговорКонтрагента |
СправочникСсылка.ДоговорыКонтрагентов | DontCheck | Договор; влияет на условия взаиморасчётов |
СтруктурноеПодразделение |
СправочникСсылка.ПодразделенияОрганизаций | DontCheck | Подразделение; участвует в RLS |
СтруктурнаяЕдиница |
СправочникСсылка.БанковскиеСчета | DontCheck | Банковский счёт (заполняется из счёта-основания) |
ДатаДействия |
Дата | DontCheck | Срок действия; по умолчанию Дата + 10 дней |
ДокументОснование |
ДокументСсылка.СчетНаОплатуПоставщика | DontCheck | Счёт-основание для автозаполнения |
Сделка |
ДокументСсылка (РегистрацияПрочихОперацийПоРеализованнымТоварамВЦеляхНДС / ОплатаОтПокупателяПлатежнойКартой / ПриходныйКассовыйОрдер) | DontCheck | Документ расчётов; конфликтует с ПоДокументу |
НаПолучениеОт |
Строка | DontCheck | Текст «получение от» для печати (по умолчанию = Контрагент.НаименованиеПолное) |
ПоДокументу |
Строка | DontCheck | Текст «по документу» для печати |
Автор, Ответственный |
СправочникСсылка.Пользователи | DontCheck | Служебные |
Комментарий |
Строка | DontCheck | Произвольный комментарий |
Табличная часть Товары (синоним «ТМЗ»):
| Реквизит | Тип | Назначение |
|---|---|---|
НаименованиеТовара |
СправочникСсылка.Номенклатура / СправочникСсылка.НематериальныеАктивы / Строка | Что получаем (ссылка или текст) |
ЕдиницаПоКлассификатору |
СправочникСсылка.КлассификаторЕдиницИзмерения | Единица измерения |
Количество |
Число | Кол-во (по умолчанию 1) |
Формы: ФормаДокумента (основная), ФормаСписка (журнал, отбор по физлицу, групповое изменение, печать журнала), ФормаВыбора (выбор с отбором по сделке), ФормаПечать (уточнение НаПолучениеОт / ПоДокументу перед печатью Д2).
Жизненный цикл (обработчики ObjectModule)
Модуль крошечный — 74 строки, три обработчика и одна служебная процедура. Никакого ОбработкаПроведения нет (документ непроводной).
| Обработчик | Что делает |
|---|---|
ОбработкаЗаполнения |
Заполняет документ: при вводе на основании — делегирует в ЗаполнитьПоДокументуОснованию; иначе переносит переданную структуру; вызывает типовое ЗаполнениеДокументов.ЗаполнитьШапкуДокумента; задаёт ДатаДействия = Дата + 10 дней и НаПолучениеОт = Контрагент.НаименованиеПолное |
ОбработкаПроверкиЗаполнения |
Если Товары пусты — исключает табличную часть из проверки заполнения (делает её опциональной) |
ПриКопировании |
Сбрасывает Дата на начало текущего дня и ДатаДействия на Дата + 10 дней |
ЗаполнитьПоДокументуОснованию (служебная, Экспорт) |
Если основание — СчетНаОплатуПоставщика, вызывает Документы.Доверенность.ЗаполнитьДокументПоСчетуНаОплатуПоставщика (логика в ManagerModule) |
Ключевой код — ОбработкаЗаполнения (3.0.72.1)
Это центр всей логики документа: ветвление по типу данных заполнения, типовое заполнение шапки и установка двух «умолчательных» значений.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ДанныеЗаполнения <> Неопределено И ТипДанныхЗаполнения <> Тип("Структура")
И Метаданные().ВводитсяНаОсновании.Содержит(ДанныеЗаполнения.Метаданные()) Тогда
ЗаполнитьПоДокументуОснованию(ДанныеЗаполнения); // ввод «на основании»
Возврат;
ИначеЕсли ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("Основание") И ДанныеЗаполнения.Свойство("ВводНаОсновании") Тогда
ЗаполнитьПоДокументуОснованию(ДанныеЗаполнения.Основание);
Возврат;
КонецЕсли;
Если ДанныеЗаполнения.Свойство("Автор") Тогда
ДанныеЗаполнения.Удалить("Автор"); // автора не переносим из структуры
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
КонецЕсли;
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, Константы.ВалютаРегламентированногоУчета.Получить());
ДатаДействия = Дата + 10 * (24 * 60 * 60); // срок действия по умолчанию = +10 дней
НаПолучениеОт = Контрагент.НаименованиеПолное; // текст «получение от» по умолчанию
КонецПроцедуры
Разбор:
- Три пути заполнения. (1) Прямой ввод на основании документа из списка ВводитсяНаОсновании → сразу ЗаполнитьПоДокументуОснованию и выход. (2) Структура с ключами Основание/ВводНаОсновании → то же самое. (3) Прочая структура → переносится в реквизиты через ЗаполнитьЗначенияСвойств, причём ключ Автор предварительно удаляется (автор не должен перетекать из шаблона заполнения).
- ДатаДействия и НаПолучениеОт задаются в конце безусловно (в путях 2 и 3 — не в пути «ввод на основании», т.к. тот завершается Возврат). Поэтому свежесозданная вручную доверенность всегда получает срок «+10 дней» и текст получателя из полного наименования контрагента.
- 10 * (24 * 60 * 60) — это 10 суток в секундах (тип Дата в 1С — это число секунд).
objects/ и business-logic/ утверждает, что «+10 дней» к ДатаДействия устанавливается только при копировании. Реальный код показывает обратное: значение задаётся и в ОбработкаЗаполнения (при обычном создании), и в ПриКопировании. Истина — в коде. См. [журнал ошибок](../../../../issues/AccountingKZ30/issues.md).objects/ не отражено, что НаПолучениеОт автоматически инициализируется значением Контрагент.НаименованиеПолное при заполнении (там сказано лишь «редактируется через форму печати»). Это меняет поведение печати по умолчанию. См. журнал ошибок.Заполнение на основании — реальный код (ManagerModule)
Вся «начинка» ввода на основании счёта поставщика вынесена в менеджер-модуль (ManagerModule.bsl, стр. 567):
Процедура ЗаполнитьДокументПоСчетуНаОплатуПоставщика(Объект, Основание) Экспорт
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(Объект, Основание);
Объект.Товары.Очистить();
СкопироватьТоварыОС(Объект, Основание); // копирует и .Товары, и .ОС счёта
РеквизитыОснования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Основание,
"Ссылка, СтруктурнаяЕдиница, Номер, Дата, НомерВходящегоДокумента, ДатаВходящегоДокумента");
Если РеквизитыОснования = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.СтруктурнаяЕдиница = РеквизитыОснования.СтруктурнаяЕдиница;
Объект.ДокументОснование = РеквизитыОснования.Ссылка;
ТекстПоДокументу = НСтр("ru = 'Счет на оплату от поставщика №%1 от %2 г.'", ОбщегоНазначения.КодОсновногоЯзыка());
// … подстановка номера/даты входящего документа в Объект.ПоДокументу …
КонецПроцедуры
А СкопироватьТоварыОС (стр. 597) одним запросом объединяет строки из табличных частей счёта Товары (берётся Номенклатура) и ОС (берётся ОсновноеСредство); для строк ОС единица измерения подставляется как «штука» (КлассификаторЕдиницИзмерения.НайтиПоКоду("796"), с откатом на поиск по наименованию «шт»), а количество = 1.
objects/ [KZ30-0102]. Разбор пишет, что на основании счёта «копируются товары из раздела ОС счёта». На деле копируются обе табличные части счёта — и Товары, и ОС (через ОБЪЕДИНИТЬ ВСЕ). См. журнал ошибок.Движения по регистрам — их нет
Документ «Доверенность» не формирует ни одной проводки и ни одного движения по регистрам. Это подтверждается и метаданными (register_records = []), и кодом — в ObjectModule.bsl отсутствует обработчик ОбработкаПроведения, а сам документ непроводной.
Что выступает «вместо движений»:
| Механизм | Где живёт | Роль |
|---|---|---|
| Реквизиты документа | сам объект | Хранят полномочия: кто, от кого, что, до какого срока |
ДокументОснование |
реквизит шапки | Связь со счётом поставщика (основание) |
| Связь с исполнением | поле ДокументОснование в документах поступления |
По нему НайтиДокументИсполнения находит факт получения |
| Печатные формы | ManagerModule: ПечатьДоверенность, ПечатьЖурналДоверенностей |
Бланк Д2 и журнал доверенностей |
Поиск исполнения — ManagerModule.bsl, стр. 523:
Функция НайтиДокументИсполнения(Доверенность, ДокументИсполнения) Экспорт
// ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 … из ПоступлениеТоваровУслуг / ПоступлениеНМА /
// ПриходныйКассовыйОрдер, ГДЕ ДокументОснование = &ДокументСсылка
// → возвращает первый найденный документ исполнения или Неопределено
КонецФункции
ОбработкаПроведения в коде. См. [журнал ошибок](../../../../issues/AccountingKZ30/issues.md).НайтиДокументИсполнения). Связь «доверенность → поступление» держится исключительно на реквизите ДокументОснование в документе поступления, который пользователь должен заполнить вручную, — об этом стоит предупредить на внедрении.Валидации (ОбработкаПроверкиЗаполнения)
Логика валидации минимальна:
- Организация — обязательна на уровне метаданных (ShowError); проверяется платформой.
- Товары — условно обязательна: если строк нет, табличная часть исключается из проверки заполнения (МассивНепроверяемыхРеквизитов.Добавить("Товары") → ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива). То есть пустой список товаров — это нормально, документ запишется.
- Прочих проверок (НДС, акциз, счета учёта) нет — их и быть не может, документ ничего не считает.
Зависимости (общие модули)
ЗаполнениеДокументов—ЗаполнитьШапкуДокумента,ЗаполнитьШапкуДокументаПоОснованию.ОбщегоНазначения— текущая дата пользователя, чтение реквизитов объекта, работа с массивом непроверяемых реквизитов.УправлениеПечатью(ManagerModule) — регистрация и вывод печатных форм.СтруктураФИО,ДанныеДляЗаполнения,ОбщегоНазначенияБКВызовСервера— сервис печати и заполнения.- В модуле формы:
РаботаСДиалогами,УправлениеВзаиморасчетамиСервер,ПодключаемыеКоманды, обработкаПодборНоменклатуры.
- Документ непроводной — не ищите
ОбработкаПроведения, его нет. Любая «учётная» логика над доверенностью — это доработка.ПриЗаполненииОграниченияДоступав ManagerModule пуст (тело процедуры пустое), хотя разборbusiness-logic/ManagerModuleутверждает, что он «устанавливает ограничения на основе организации и подразделения». Ограничения доступа фактически задаются декларативно (RLS поОрганизация/СтруктурноеПодразделение), а не в этой процедуре. См. [KZ30-0104] в журнале ошибок.- Конфликт
Сделка↔ПоДокументу. На форме при заполненииСделкапредлагается очиститьПоДокументу(диалог подтверждения). При программном заполнении задавайте что-то одно.- Ввод на основании в форме. Выбор
ДокументОснованиепрямо в форме запускает диалог «Заполнить по документу-основанию?» (асинхронно,ПослеОтветаНаВопросЗаполнить) →ЗаполнитьПоДокументуОснованиюНаСервере→ тот же объектныйЗаполнитьПоДокументуОснованию.- Печать редактирует два поля документа.
ФормаПечатьвозвращает изменённыеНаПолучениеОт/ПоДокументув объект только при «ОК» (черезОповеститьОВыборе).
🔗 Связанные разделы
- schet-na-oplatu-postavshchika — счёт-основание, из которого заполняется доверенность
- postuplenie-tmz-i-uslug — документ исполнения (фактическое получение ТМЗ по доверенности)
- schet-faktura-poluchennyy — соседний документ закупочного цикла; ЭСФ от поставщика
- Приходный кассовый ордер — ещё один документ исполнения (получение денежных средств по доверенности); связывается через реквизит «Документ-основание»
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |