Документ «Оприходование товаров»
Документ приходует товары и материалы на склад, когда у поступления нет поставщика: излишки по инвентаризации, материалы от разборки основных средств, безвозмездно полученные или ранее не учтённые ТМЗ. Принимает запасы на учётный счёт (БУ и НУ) в корреспонденции со счётом-источником и ставит товар на остатки склада. Раздел «Номенклатура и склад».
🎯 Что это и зачем
В обычном цикле товар попадает на склад документом «Поступление ТМЗ и услуг» — есть поставщик, накладная, долг. Но бывает приход без поставщика:
- излишки, выявленные при инвентаризации (фактически на складе больше, чем по учёту);
- материалы и запчасти от ликвидации или разборки основного средства;
- безвозмездно полученные или самостоятельно изготовленные ТМЗ;
- товары, которые по какой-то причине не были оприходованы раньше.
Во всех этих случаях нужно: поставить товар на остатки склада и отразить его стоимость на счёте запасов в бухгалтерском (а при необходимости и в налоговом) учёте. Источник стоимости — не долг перед поставщиком, а прочий доход (мы получили актив «бесплатно»). Документ «Оприходование товаров» делает это одним проведением.
Кто работает: бухгалтер и материально ответственное лицо. Используется по мере необходимости — это не ежедневный документ, а реакция на конкретное событие (чаще всего — на инвентаризацию).
Документ.ОприходованиеТоваров. Печатная форма называется «Накладная на оприходование товаров».🧭 Где найти в программе
Раздел «Номенклатура и склад» → группа документов по учёту ТМЗ → «Оприходование товаров» (в части баз — «Оприходование ТМЗ»). Откроется журнал; новый документ создаём кнопкой «Создать». Чаще всего документ вводят не из журнала, а «на основании» проведённой инвентаризации.
navigation-map.json объект Документ.ОприходованиеТоваров пока отсутствует. Раздел «Номенклатура и склад» определён по подсистеме и логике учёта ТМЗ; точное название пункта меню и его размещение в конкретном релизе нужно подтвердить на стенде (в части конфигураций пункт может находиться в подменю «Склад» / «Складские операции»). См. поле issues.👤 Часть 1. Для пользователя
Идём по шагам: от выявленных излишков до проведённого оприходования и проверки проводок. Главный сценарий — на основании инвентаризации, поэтому с него и начнём.
Урок 1. Оприходование излишков по инвентаризации (основной сценарий)
Когда: инвентаризация показала, что фактически товара на складе больше, чем по учёту, и излишки надо принять к учёту.
Шаг 1. Создаём документ на основании инвентаризации
Открываем проведённый документ «Инвентаризация товаров на складе» → «Создать на основании» → «Оприходование товаров». Так шапка и товары заполнятся автоматически и без ошибок.
Шаг 2. Проверяем автозаполнение
Система подставит: - Организация и Склад — из инвентаризации; - Документ-основание — ссылка на эту инвентаризацию; - табличную часть Товары — только позиции, где факт больше учёта (излишки), с количеством, ценой и счётом учёта из инвентаризации.
Шаг 3. Указываем вид учёта НУ (если нужно)
Если организация — плательщик КПН и в документе включён флаг «Учитывать КПН», заполняем Вид учёта НУ. Если налоговый учёт по операции не ведётся — поле можно не заполнять (см. подсказку ниже).
Шаг 4. Проверяем счета и корр-счёт
- Счёт учёта (БУ) — счёт запасов (для товаров обычно 1330 «Товары», для материалов — счёт группы 13xx). Подставляется из карточки номенклатуры.
- Корр. счёт оприходования (БУ) — счёт-источник стоимости. По умолчанию правило заполнения указывает на прочие доходы (в типовом плане Казахстана — 6280 «Прочие доходы»).
Шаг 5. Проводим и проверяем
«Провести» или «Записать и закрыть». Чтобы проверить учёт — открываем Дт/Кт (отчёт о движениях документа).
Урок 2. Оприходование материалов от разборки ОС
Когда: ликвидировали или разукомплектовали основное средство, и остались пригодные материалы, запчасти, металлолом — их нужно принять на склад.
Отличия от Урока 1: 1. Основание — документ «Реструктуризация ОС»; создаём оприходование «на основании» него. 2. Кроме организации и склада, из основания подтянется флаг «Учитывать КПН», а товары заполнятся из материалов документа-основания. 3. Корр-счёт по смыслу — тоже доход/источник от выбытия ОС; проверьте, что счёт и его субконто (статья доходов) заполнены корректно.
Урок 3. Ручное оприходование (без основания)
Когда: приход не связан ни с инвентаризацией, ни с ОС (нашли неучтённый товар, безвозмездно получили ТМЗ, изготовили сами).
Шаги
- «Создать» → новый пустой документ.
- Заполняем шапку: Организация, Склад, при необходимости Вид учёта НУ и «Учитывать КПН».
- В поле «Основание» (текстовое) пишем причину — например, «Излишки, выявленные вне инвентаризации». Это попадёт в документооборот и печатную форму.
- В табличной части «Товары» через «Добавить» или «Подбор» выбираем номенклатуру, указываем Количество и Цену (оценочную стоимость). Сумма = Количество × Цена считается сама.
- Счета учёта (БУ/НУ) подставятся из карточки номенклатуры; корр-счёт — из правил заполнения. При необходимости правим вручную.
- «Провести».
Печать
Кнопка «Печать» → «Накладная на оприходование товаров». Доступен также «Настраиваемый комплект документов» (можно добавить внешние печатные формы). Печать непроведённого документа разрешается настройкой прав; по умолчанию печать требует проведения.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 — Documents/ОприходованиеТоваров/Ext/ObjectModule.bsl (модуль небольшой, ~195 строк) и …/Ext/ManagerModule.bsl (заполнение по основанию, подготовка проведения, печать), плюс разбор objects/ и business-logic/.
Структура объекта
Реквизиты шапки. Обязательные (контролируются проверкой заполнения): Организация, Склад. Условно-обязательный: ВидУчетаНУ (только при необходимости отражения в НУ). Управляющие/служебные: УчитыватьКПН (Булево), РучнаяКорректировка (Булево — отключает авто-движения), ДокументОснование (Документ.ИнвентаризацияТоваровНаСкладе или Документ.РеструктуризацияОС), Основание (строка — текстовая причина), ТипЦен, СтруктурноеПодразделение, СуммаДокумента (заполняется в ПередЗаписью), Автор, Ответственный, Комментарий.
Табличная часть Товары (синоним «ТМЗ»): Номенклатура, Количество, ЕдиницаИзмерения, Коэффициент, Цена, Сумма, НомерГТД, счета БУ (СчетУчетаБУ, КорСчетОприходованияБУ, КорСубконтоОприходованияБУ1..3) и счета НУ (СчетУчетаНУ, КорСчетОприходованияНУ, КорСубконтоОприходованияНУ1..3).
Формы: ФормаДокумента, ФормаСписка, ФормаВыбора.
Жизненный цикл (обработчики ObjectModule)
| Обработчик | Что делает |
|---|---|
ОбработкаЗаполнения |
При вводе на основании (тип основания входит в ВводитсяНаОсновании) делегирует в Документы.ОприходованиеТоваров.ЗаполнитьПоДокументуОснования. Иначе заполняет шапку по структуре. В конце — ЗаполнениеДокументов.ЗаполнитьШапкуДокумента (валюта рег. учёта и т.п.) |
ПриКопировании |
Заново заполняет шапку документа валютой рег. учёта (на базе копируемого объекта) |
ОбработкаПроверкиЗаполнения |
Определяет необходимость отражения в НУ, при её отсутствии исключает ВидУчетаНУ из проверки; запускает построчную проверку Товары и СчетаУчетаВДокументах.ПроверитьЗаполнение |
ПередЗаписью |
СуммаДокумента = Товары.Итог("Сумма"); СчетаУчетаВДокументах.ЗаполнитьПередЗаписью (досчёт/подстановка счетов учёта) |
ОбработкаПроведения |
Готовит наборы записей, при РучнаяКорректировка — выходит; иначе собирает ПодготовитьПараметрыПроведения и формирует движения через профильные модули |
ЗаполнитьНаборыЗначенийДоступа (обл. «УправлениеДоступом») |
Заполняет наборы RLS по Организация / СтруктурноеПодразделение / Склад |
Как формируется проведение — реальный код (3.0.72.1)
Главное: проводки не «зашиты» в документ. ОбработкаПроведения собирает таблицы и делегирует формирование движений профильным общим модулям — конкретные счета Дт/Кт определяются правилами заполнения счетов и учётной политикой, а не самим документом.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (целиком):
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручное управление движениями
КонецЕсли;
ПараметрыПроведения = Документы.ОприходованиеТоваров.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Документы.ОприходованиеТоваров.ДобавитьКолонкуСодержание(ПараметрыПроведения.ОприходованиеТоваровТаблицаТовары);
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
УчетТоваров.СформироватьДвиженияОприходованиеТоваров(ПараметрыПроведения.ОприходованиеТоваровТаблицаТовары,
ПараметрыПроведения.ОприходованиеТоваровРеквизиты, Движения, Отказ);
// Товары организаций (учёт по номерам ГТД)
НомераГТДСервер.СформироватьДвиженияТоварыОрганизаций(ПараметрыПроведения.ТаблицаТоварыОрганизаций, ПараметрыПроведения.Реквизиты, Движения, Отказ);
// Отражение ПР в НУ
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ(ПараметрыПроведения.Реквизиты, Движения, Отказ);
КонецПроцедуры
Разбор:
РучнаяКорректировка = Истина→ авто-проведение полностью пропускается (раннийВозврат); движения заполняет пользователь.ПодготовитьПараметрыПроведения(вManagerModule) проверяет, что существует учётная политика по БУ и НУ на дату/организацию (иначеОтказ), вычисляетНеобходимостьОтраженияВНУи пакетным запросом готовит таблицы: реквизиты, товары (с счетами и субконто), товары организаций.ДобавитьКолонкуСодержаниеподставляет в каждую строку текст содержания проводки — «Оприходование ТМЗ».- Дальше — три формирователя движений (см. таблицу ниже). Самих счетов в документе нет: их подбирают
СчетаУчетаВДокументахпо правилам иУчетТоваровпри формировании проводок.
Кто что формирует:
| Вызов в коде | Какой учёт пишет | Регистр(ы) |
|---|---|---|
УчетТоваров.СформироватьДвиженияОприходованиеТоваров |
приход товара на склад и бухгалтерская/налоговая проводка оприходования | ТоварыОрганизацийБУ (накопление, приход) + Типовой (БУ) + при необходимости Налоговый (НУ) |
НомераГТДСервер.СформироватьДвиженияТоварыОрганизаций |
учёт по номерам ГТД (страна происхождения / импортные партии); только небалансовые строки | ТоварыОрганизаций (накопление) |
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ |
постоянные разницы в налоговом учёте | Налоговый (НУ), вид суммы ПР |
Движения и проводки — иллюстрация (источник истины — УчетТоваров)
Документ формирует проводки (в отличие от чисто регистрового документа), но счета берутся из реквизитов строки и правил заполнения. Ниже — иллюстрация на типовом плане счетов Казахстана; точные счета смотрите по отчёту «Дт/Кт» на проведённом документе.
| Регистр | Движение | Что пишет |
|---|---|---|
ТоварыОрганизацийБУ |
Накопление / Приход | Постановка ТМЗ на остатки: Организация, Склад, Номенклатура, ЕдиницаИзмерения, НомерГТД → Количество, Сумма |
Типовой (БУ) |
Бухгалтерская проводка | Дт СчетУчетаБУ (запас, напр. 1330) — Кт КорСчетОприходованияБУ (источник, по умолчанию 6280 «Прочие доходы») на Сумма, с субконто номенклатуры по дебету и субконто доходов по кредиту |
Налоговый (НУ) |
Проводка НУ + ПР | Аналогично БУ в налоговом плане (СчетУчетаНУ / КорСчетОприходованияНУ), только если НеобходимостьОтраженияВНУ = Истина; постоянные разницы — отдельным движением |
ТоварыОрганизаций |
Накопление | Учёт партий по ГТД для небалансовых строк (НЕ СчетУчетаБУ.Забалансовый) |
Откуда берётся корр-счёт по умолчанию. В ManagerModule, процедура УстановитьПравилаЗаполненияСчетовУчета:
// Табличная часть Товары
СчетаУчетаВДокументах.ДобавитьПравилоЗаполнения(Правила, "Товары", "СчетУчетаБУ", "Запасы");
…
СчетаУчетаВДокументах.ДобавитьПодчиненноеПравилоЗаполнения(Правила, "КорСчетОприходованияБУ", "ПрочиеДоходы"); // "Выручка"
…
СчетаУчетаВДокументах.ДобавитьПодчиненноеПравилоЗаполнения(Правила, "КорСубконтоОприходованияБУ1", "СубконтоДоходов1");
То есть назначение счёта-источника — ПрочиеДоходы, а его субконто — СубконтоДоходов1..3. Маппинг назначения на конкретный счёт делает менеджер плана счетов Типовой (функция ОсновнойСчет): Запасы → Товары (1330), доходы — на счёт прочих доходов 6280.
objects/ указывает корр-счёт как «91/84 (прочие доходы / нераспределённая прибыль)» и приводит российские номера счетов (10, 20, 91, 84). Реальные правила релиза 3.0.72.1 используют назначение ПрочиеДоходы (KZ — 6280) и запас Товары (KZ — 1330); российских счетов в конфигурации нет. Считать истиной правила заполнения + СформироватьДвиженияОприходованиеТоваров, а не «плоские» Дт/Кт из objects/.objects/ помечает ВидУчетаНУ как всегда обязательный. По коду (ОбработкаПроверкиЗаполнения + ПодготовитьПараметрыПроведения) он обязателен только при НеобходимостьОтраженияВНУ = ОрганизацияПлательщикНалогаНаПрибыль И УчитыватьКПН И (учёт временных разниц балансовым методом ИЛИ ВидУчетаНУ = НУ). Иначе реквизит исключается из проверки.Документы.ОприходованиеТоваров.УстановитьПравилаЗаполненияСчетовУчета (назначения «Запасы»/«ПрочиеДоходы»), ChartsOfAccounts.Типовой.ОсновнойСчет (маппинг назначения → счёт) и УчетТоваров.СформироватьДвиженияОприходованиеТоваров. Если у клиента доход от оприходования должен идти не на 6280, а на другой счёт (например, целевое финансирование) — настраивается через счета учёта / корр-счёт в строке, а не правкой документа. Частые обращения: пустой корр-счёт (включён режим «пользователь управляет счетами учёта» — поле стало обязательным) и «нет учётной политики на дату» (проведение прерывается в ПодготовитьПараметрыПроведения).Валидации (ОбработкаПроверкиЗаполнения + построчная)
- Шапка: обязательны
Организация,Склад;ВидУчетаНУ— условно (см. выше). Базовая обязательность задаётся в метаданных (ShowError) и дополняется кодом. - Построчно (
ПроверитьЗаполнениеТабличнойЧастиТоварыПоСтрочно): - если в строке выбрана номенклатура с признаком
Услуга→ ошибка «Указана номенклатура, являющаяся услугой»; - если
СчетУчетаБУне заполнен → строка пропускается (сообщение об этом выдаст общий механизм проверки счетов); - если счёт БУ забалансовый → корр-счёт и счета НУ для строки не требуются (
Продолжитьв цикле проверки); - при включённом режиме «Пользователь управляет счетами учёта» обязателен
КорСчетОприходованияБУ; при отражении в НУ —СчетУчетаНУ, а при учёте временных разниц балансовым методом — ещё иКорСчетОприходованияНУ. СчетаУчетаВДокументах.ПроверитьЗаполнение(ЭтотОбъект, …)— общая проверка корректности счетов учёта.
Заполнение по основанию (ManagerModule.ЗаполнитьПоДокументуОснования)
- Шапка — через
ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию, проставляетсяДокументОснование. - Инвентаризация:
ЗаполнитьТоварыПоИнвентаризацииТоваровзапросом отбирает строки, гдеКоличество - КоличествоУчет > 0(излишки), и вычитает ранее оприходованное по этому же основанию (левое соединение с проведённымиОприходованиеТоваров.Товарыпо складу). В табличную часть попадает только положительный остаток; цена — из инвентаризации. Если приходовать нечего — выводится сообщение «отсутствуют товары, учётное количество которых превышает фактическое». - Реструктуризация ОС:
ЗаполнитьТоварыПоРеструктуризацииОСпереносит материалы из документа-основания.
Печать (ManagerModule)
- Команды: «Накладная на оприходование товаров» (
ОприходованиеТоваров_Накладная, макетПФ_MXL_Накладная) и «Настраиваемый комплект документов». ПечатьОприходованияТоваровучитывает константу «Дополнительная колонка печатных форм» (Артикул / Код) и поддерживает вывод на других языках.
Зависимости (общие модули)
УчетТоваров (движения оприходования и остатков), НомераГТДСервер (партии по ГТД), ПроцедурыНалоговогоУчета (признак плательщика КПН, постоянные разницы), СчетаУчетаВДокументах (правила и проверка счетов), ПроцедурыБухгалтерскогоУчета / …ВызовСервераПовтИсп (свойства счёта, забалансовость), УчетнаяПолитикаСервер (наличие политики, временные разницы), ЗаполнениеДокументов, ПроведениеСервер, ОбщегоНазначения.
- Не редактируй проводки в документе — счета приходят из правил
УстановитьПравилаЗаполненияСчетовУчетаи маппингаОсновнойСчет. Меняешь поведение счетов — меняешь правила/учётную политику, неОбработкаПроведения.РучнаяКорректировка = Истина→ проведение пропускается раннимВозвратом; не рассчитывай на авто-движения в этом режиме.- Забалансовые строки ведут себя особо: не требуют корр-счёта/НУ и не пишут в
ТоварыОрганизаций(фильтрНЕ …ЗабалансовыйвТекстЗапросаТоварыОрганизаций).- Условность НУ: прежде чем требовать
ВидУчетаНУ/счета НУ, документ вычисляетНеобходимостьОтраженияВНУ. При автозаполнении/тестах воспроизводи это условие, иначе получишь ложные ошибки проверки.- Идемпотентность оприходования обеспечивается запросом по инвентаризации (вычитание уже оприходованного) — при правках заполнения сохраняй левое соединение с проведёнными документами, иначе появятся двойные приходы.
🔗 Связанные разделы
- inventarizaciya-tovarov-na-sklade — основной документ-основание (источник излишков)
- restrukturizaciya-os — основание для оприходования материалов от выбытия ОС
- spisanie-tmz — зеркальная операция: списание недостач/выбытие ТМЗ
- postuplenie-tmz-i-uslug — приход товаров с поставщиком (обычный цикл закупки)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |