Документ «Перемещение товаров»
Документ оформляет внутреннее перемещение ТМЗ между складами (и подразделениями) одной организации: списывает товар с одного склада и приходует на другой, без смены собственника, реализации и НДС. Переносит и партионный учёт по ГТД, печатает накладную на перемещение и форму З-5. Документ раздела «Номенклатура и склад».
🎯 Что это и зачем
Товары физически переезжают между складами и подразделениями постоянно: с центрального склада — в филиалы, из цеха выпуска — на склад готовой продукции, из «брака» — в «годное». Учёт обязан это отражать: уменьшить остаток на складе-отправителе и увеличить на складе-получателе, сохранив при этом себестоимость, привязку к таможенной декларации (ГТД) и данные налогового учёта.
Ключевое отличие от продажи: при перемещении не возникает выручки, не начисляется НДС и не меняется собственник — товар остаётся активом той же организации, просто числится в другом месте хранения. Поэтому документ не делает «торговых» проводок дохода/НДС, а формирует внутреннюю передачу запасов между счетами и складами по их себестоимости.
Кто работает: кладовщики, логисты, бухгалтеры по складу, в ежедневном режиме. Документ создаётся как с нуля, так и на основании поступления товаров или отчёта производства за смену.
🧭 Где найти в программе
Раздел «Номенклатура и склад» → пункт «Перемещение товаров» (журнал документов перемещения). Новый документ — кнопкой «Создать».
Документ.ПеремещениеТоваров нет в navigation-map.json конфигурации. Раздел «Номенклатура и склад» определён по метаданным (документ работает со складами, в форме есть команда «Заполнить по остаткам», привязанная к складам). Точный пункт меню и его синонимы во Fresh нужно подтвердить и внести в карту. В некоторых поставках раздел может называться «Склад».👤 Часть 1. Для пользователя
Проходим по шагам, как в курсе: от пустого документа до проведённого перемещения и проверки остатков на обоих складах.
Урок 1. Перемещение товаров между складами
Когда: товар физически переезжает с одного склада на другой в пределах одной организации.
Шаг 1. Создаём документ
Раздел «Номенклатура и склад» → «Перемещение товаров» → «Создать». Откроется пустая форма документа.
Шаг 2. Заполняем шапку
Порядок важен — заполняйте сверху вниз:
- Организация — подставится основная или выбираем вручную. От неё зависят доступные склады и подразделения.
- Склад-отправитель — склад, с которого списываем товар (обязательно).
- Склад-получатель — склад, на который приходуем товар (обязательно; должен отличаться от отправителя).
- Подразделение-отправитель / Подразделение-получатель — за каким подразделением числятся склады (для аналитики затрат).
- Вид учёта НУ — заполняется только если организация — плательщик КПН и ведёт раздельный налоговый учёт.
Шаг 3. Добавляем товары
В табличной части «Товары»:
- Кнопка «Подбор» — удобный выбор номенклатуры с остатками; или добавляем строки вручную.
- Для каждой строки указываем Номенклатуру и Количество (должно быть > 0).
- Единица измерения, Коэффициент и счета учёта (БУ/НУ отправителя и получателя) подставятся автоматически по карточке номенклатуры и правилам учёта запасов.
Шаг 4. Заполнение по остаткам (быстрый способ)
Если нужно перенести весь остаток склада:
- Заполните Организацию и Склад-отправитель (без них команда недоступна).
- Нажмите «Заполнить по остаткам» над таблицей.
- Программа добавит строки с текущими остатками склада-отправителя — останется проверить количества.
Шаг 5. Номера ГТД (для импортных товаров)
Если товар импортный и ведётся учёт по ГТД (партионный учёт «Товары организаций»):
- Выделите строку товара → откройте номера ГТД (кнопка/команда в форме).
- Укажите исходный Номер ГТД (склад-отправитель) и Новый номер ГТД (склад-получатель), а также количество по каждой декларации.
Шаг 6. Проводим и проверяем
«Провести» или «Записать и закрыть». Чтобы убедиться, что товар «уехал» правильно:
- Откройте Дт/Кт (движения документа) — увидите внутреннюю передачу запасов между счетами/складами.
- Или сверьте остатки обоих складов в отчётах по складам.
Урок 2. Создание на основании
Чтобы не вводить позиции повторно, перемещение удобно создавать «на основании»:
- из Поступления товаров и услуг — типовой сценарий «приняли на центральный склад → раздаём по филиалам». Организация и склад-отправитель (= склад приёмки) и строки товаров заполнятся автоматически; ГТД скопируются.
- из Отчёта производства за смену — «выпустили продукцию в цехе → переносим на склад готовой продукции». Заполнятся организация, склад выпуска и выпущенная продукция.
Урок 3. Печать
Из документа доступны печатные формы:
- Накладная на перемещение — внутренний документ передачи между складами.
- Форма З-5 — типовая казахстанская форма накладной на внутреннее перемещение.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/ПеремещениеТоваров/Ext/ObjectModule.bsl, Ext/ManagerModule.bsl, Forms/ФормаДокумента/Ext/Form/Module.bsl), плюс разбор objects/ и business-logic/. Расхождения с авто-разбором помечены в журнале ошибок.
Структура объекта
Ключевые реквизиты шапки. Обязательные (контролируются через СчетаУчетаВДокументах.ПроверитьЗаполнение и стандартную проверку): Организация, СкладОтправитель, СкладПолучатель. Аналитика: СтруктурноеПодразделениеОтправитель, СтруктурноеПодразделениеПолучатель. Налоговый учёт: ВидУчетаНУ, УчитыватьКПН. Прочее: ДокументОснование (основание заполнения), НомераГТД (ТЧ), РучнаяКорректировка (флаг ручного управления движениями), Ответственный, Автор, Комментарий.
Табличные части:
- Товары — Номенклатура, Количество, ЕдиницаИзмерения, Коэффициент, счета отправителя СчетУчетаБУ / СчетУчетаНУ и счета получателя НовыйСчетУчетаБУ / НовыйСчетУчетаНУ, технический КлючСвязи (связь с ГТД).
- НомераГТД — КлючСвязи, НомерГТД (отправителя), НовыйНомерГТД (получателя), Количество. Реквизиты УдалитьНоменклатура, УдалитьКоэффициент — устаревшие, не использовать.
Формы: ФормаДокумента (основная), ФормаСписка (журнал), ФормаВыбора (для подбора в качестве основания).
Жизненный цикл (обработчики ObjectModule)
| Обработчик | Что делает |
|---|---|
ЗаполнитьНаборыЗначенийДоступа (экспорт) |
RLS: формирует наборы доступа по Организация + подразделение/склад отправителя и получателя (два вызова УчетТоваров.ЗаполнитьНаборыПоОрганизацииСтрутурномуПодразделениюСкладу) |
ОбработкаЗаполнения |
При вводе на основании — ЗаполнитьПоДокументуОснования; при заполнении структурой — копирует свойства (с удалением Автор); затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента |
ОбработкаПроверкиЗаполнения |
Снимает проверку реквизитов НУ, если организация не плательщик КПН / не ведёт ВР / ВидУчетаНУ ≠ НУ; делегирует проверку счетов в СчетаУчетаВДокументах.ПроверитьЗаполнение |
ПриКопировании |
Перезаполняет шапку (валюта регл. учёта); очищает НомераГТД, если они были |
ОбработкаПроведения |
Готовит наборы записей; при РучнаяКорректировка — выходит; иначе формирует движения через профильные модули учёта (см. ниже) |
ПередЗаписью |
При проведении и ведении учёта по ГТД — заполняет таблицу НомераГТД; при НЕ УчитыватьКПН обнуляет ВидУчетаНУ; вызывает СчетаУчетаВДокументах.ЗаполнитьПередЗаписью |
ЗаполнитьПоДокументуОснования (экспорт) |
Маршрутизация по типу основания: ПоступлениеТоваровУслуг или ОтчетПроизводстваЗаСмену (вызовы менеджера документа) |
objects/ упомянуты обработчики ОрганизацияПриИзменении, СкладОтправительПриИзменении, ТоварыНоменклатураПриИзменении, ДокументОснованиеПриИзменении как часть ObjectModule. В реальном ObjectModule.bsl их нет — это обработчики формы (Forms/ФормаДокумента/Ext/Form/Module.bsl). Интерактивная логика (очистка ГТД при смене склада, вопрос при смене основания, автозаполнение счетов по номенклатуре) живёт в модуле формы, а не объекта.Как формируется проведение — реальный код (3.0.72.1)
Главное: проводки не «зашиты» в документ. ОбработкаПроведения собирает таблицы через менеджер документа и делегирует формирование движений профильным общим модулям — конкретные счета и суммы определяются учётной политикой, методом оценки запасов и регистром остатков, а не самим документом.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 95), целиком:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручное управление движениями
КонецЕсли;
ПараметрыПроведения = Документы.ПеремещениеТоваров.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// Таблица списанных товаров
ТаблицаСписанныеТовары = УчетТоваров.ПодготовитьТаблицуСписанныеТовары(ПараметрыПроведения.СписаниеТоваровТаблицаТовары,
ПараметрыПроведения.СписаниеТоваровРеквизиты, Отказ);
//КОНТРОЛЬ ПО РЕГИСТРУ "ТОВАРЫ ОРГАНИЗАЦИЙ"
НомераГТДСервер.ВыполнитьКонтрольТоварыОрганизаций(ПараметрыПроведения.ТаблицаСписаниеТоварыОрганизаций,
ПараметрыПроведения.ТаблицаРеквизитыСписаниеТоварыОрганизаций, , Отказ);
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ
УчетТоваров.СформироватьДвиженияСписаниеТоваров(ТаблицаСписанныеТовары,
ПараметрыПроведения.СписаниеТоваровРеквизиты, Движения, Отказ);
// Товары организаций (приход на склад-получатель и расход со склада-отправителя)
НомераГТДСервер.СформироватьДвиженияТоварыОрганизаций(ПараметрыПроведения.ТаблицаОприходованиеТоварыОрганизаций,
ПараметрыПроведения.ТаблицаРеквизитыОприходованиеТоварыОрганизаций, Движения, Отказ);
НомераГТДСервер.СформироватьДвиженияТоварыОрганизаций(ПараметрыПроведения.ТаблицаСписаниеТоварыОрганизаций,
ПараметрыПроведения.ТаблицаРеквизитыСписаниеТоварыОрганизаций, Движения, Отказ);
// Отражение постоянных разниц в НУ
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ(ПараметрыПроведения.СписаниеТоваровРеквизиты, Движения, Отказ);
КонецПроцедуры
Кто что формирует (вызов → смысл):
| Вызов в коде | Какой учёт пишет |
|---|---|
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению |
создаёт пустые наборы записей всех регистров документа |
Документы.ПеремещениеТоваров.ПодготовитьПараметрыПроведения |
запросами собирает таблицы: реквизиты, списание товаров, списание/оприходование «Товары организаций» |
УчетТоваров.ПодготовитьТаблицуСписанныеТовары |
готовит данные себестоимости списываемого товара |
НомераГТДСервер.ВыполнитьКонтрольТоварыОрганизаций |
контроль остатка по регистру «Товары организаций» (партионный/ГТД-учёт) |
УчетТоваров.СформироватьДвиженияСписаниеТоваров |
движения списания/передачи запасов (включая бухгалтерскую часть) |
НомераГТДСервер.СформироватьДвиженияТоварыОрганизаций (×2) |
приход на склад-получатель и расход со склада-отправителя в разрезе ГТД |
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ |
постоянные разницы в налоговом учёте |
Важные детали из кода:
- РучнаяКорректировка = Истина → авто-проведение полностью пропускается (Возврат сразу после подготовки наборов) — движения заполняет пользователь.
- Двойной ранний Возврат по Отказ: после ПодготовитьПараметрыПроведения (там же проверяется существование учётной политики БУ и НУ на дату — см. ManagerModule, стр. 202).
- Строка содержания операции при списании — "Перемещены ТМЗ" (ManagerModule.ПодготовитьПараметрыПроведения, параметр СодержаниеСписаныТМЗ).
- Два вызова СформироватьДвиженияТоварыОрганизаций — это приход (оприходование на получателя) и расход (списание с отправителя) по партионному регистру.
Движения по регистрам
| Регистр | Тип / движение | Что пишет |
|---|---|---|
ТоварыОрганизаций (партионный, ГТД) |
Накопление / приход + расход | Расход со склада-отправителя, приход на склад-получатель в разрезе ГТД; на нём же — контроль остатка перед проведением |
| Регистр(ы) учёта запасов / себестоимости | через УчетТоваров.СформироватьДвиженияСписаниеТоваров |
Передача себестоимости товара между складами/счетами |
| Регистр(ы) НУ (постоянные разницы) | через ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ |
Постоянные разницы, если организация плательщик КПН и ВидУчетаНУ = НУ |
РегистрБухгалтерии.Типовой |
источник, а не приёмник | В ПодготовитьПараметрыПроведения читается РегистрБухгалтерии.Типовой.ДвиженияССубконто для получения сумм; собственно проводки формируют модули Учет* |
objects/ приводит «плоские» проводки: Дт НовыйСчетУчетаБУ Кт СчетУчетаБУ и аналогично в регистре «Налоговый», со счетами вида 1310/1320/1380. В реальном ОбработкаПроведения нет ни одной явной записи в РегистрБухгалтерии.Типовой/Налоговый — движения формируют общие модули УчетТоваров и ПроцедурыНалоговогоУчета по учётной политике и методу оценки запасов. Регистр Типовой в коде документа фигурирует только на чтение (источник сумм себестоимости). Поэтому:
- точные Дт/Кт смотрите по отчёту «Дт/Кт» на проведённом документе и по коду
УчетТоваров;- счета берутся из строк ТЧ (
СчетУчетаБУ→НовыйСчетУчетаБУ), но сумма считается не документом, а из остатков/себестоимости;- в плане счетов Казахстана это счета раздела 1300 «Запасы» (например, 1310 «Сырьё и материалы», 1320 «Готовая продукция», 1330 «Товары»). Российские 10/41/43 — не применять.
Поскольку отправитель и получатель — одна организация и часто один счёт учёта, бухгалтерски это нередко оборот внутри одного счёта (меняется только аналитика: склад/подразделение), а не межсчётная проводка. Источник истины —
ОбработкаПроведения+УчетТоваров, а не таблица изobjects/.
- «После перемещения не та себестоимость / не сходится склад» — причина почти всегда в методе оценки запасов и учётной политике, а не в документе. Документ — оркестратор; вся логика себестоимости в
УчетТоваров, существование политики проверяется вУчетнаяПолитикаСервер.Существует(...)(нет политики на дату →Отказ, документ не проводится).- «Не проводится с ошибкой по остаткам» — сработал
НомераГТДСервер.ВыполнитьКонтрольТоварыОрганизаций: на складе-отправителе нет нужного количества/партии. Проверяйте остатки и заполнение ГТД.- «Перемещение не отражается в НУ» — это нормально, если организация не плательщик КПН или
ВидУчетаНУ ≠ НУ: проверка НУ-реквизитов снимается вОбработкаПроверкиЗаполнения, движения ПР не формируются.- Печать: две формы — «Накладная на перемещение» (
НакладнаяНаПеремещение) и казахстанская З-5 (НакладнаяЗ5), макетыПФ_MXL_НакладнаяиПФ_MXL_З5.
Валидации
ОбработкаПроверкиЗаполнения: обязательность реквизитов и счетов учёта делегирована вСчетаУчетаВДокументах.ПроверитьЗаполнение. ПроверкаВидУчетаНУ,Товары.СчетУчетаНУ,Товары.НовыйСчетУчетаНУснимается, если организация не плательщик КПН, не поддерживается учёт ВР, либоВидУчетаНУ ≠ Справочники.ВидыУчетаНУ.НУ.ПередЗаписью: при проведении иНомераГТДСервер.ВедетсяУчетПоТоварамОрганизаций(Дата) = Истина— пересборка таблицыНомераГТДпо складам ТЧ; приНЕ УчитыватьКПНпринудительноВидУчетаНУ = ПустаяСсылка.- Контроль остатка/партий — при проведении (
ВыполнитьКонтрольТоварыОрганизаций), не при записи. - Существование учётной политики БУ и НУ на дату документа — в
ПодготовитьПараметрыПроведения(иначеОтказ). - Логическое требование «склады разные» в коде проведения не выбрасывает явную ошибку — при совпадении складов движения взаимно компенсируются (нулевой эффект). Стоит контролировать на форме.
Зависимости (общие модули)
УчетТоваров (себестоимость, наборы доступа, таблицы списания), НомераГТДСервер (партионный/ГТД-учёт, контроль остатков, движения «Товары организаций»), ПроведениеСервер (наборы записей), ПроцедурыНалоговогоУчета (плательщик КПН, ВР, постоянные разницы), УчетнаяПолитикаСервер (наличие политики, плательщик налога на прибыль), СчетаУчетаВДокументах (заполнение и проверка счетов), ЗаполнениеДокументов / ЗаполнениеДокументов.ЗаполнитьШапкуДокумента (инициализация), менеджер Документы.ПеремещениеТоваров (ПодготовитьПараметрыПроведения, заполнение по основаниям, печать).
- Источник истины по проводкам —
УчетТоваров, а не документ. ВОбработкаПроведениянет прямыхДвижения.Типовой.Добавить(). Чтобы понять Дт/Кт — читайтеУчетТоваров.СформироватьДвиженияСписаниеТоварови сверяйте с «Дт/Кт».- Интерактивная логика — в модуле формы. Очистка ГТД при смене
СкладОтправитель(Форма.СкладОтправительПриИзменении), вопрос-перезаполнение при сменеДокументОснование, автозаполнение счетов вТоварыНоменклатураПриИзменении. ВObjectModuleэтого нет.КлючСвязисвязывает строкуТоварыс записямиНомераГТД; новый ключ выдаётОбщегоНазначенияБККлиентСервер.НовыйКлючСвязиСтрокиТаблицы, при удалении строки товара ГТД чистятся вТоварыПередУдалением.РучнаяКорректировка = Истинаполностью отключает авто-проведение (раннийВозврат) — движения заполняет пользователь.- Основания: только
ПоступлениеТоваровУслугиОтчетПроизводстваЗаСмену(ЗаполнитьПоДокументуОснования). При вводе на основанииМетаданные().ВводитсяНаОснованиифильтрует допустимые типы.
🔗 Связанные разделы
- postuplenie-tmz-i-uslug — типовое основание (приняли на склад → распределяем)
- realizaciya-tmz-i-uslug — отгрузка со сменой собственника (в отличие от перемещения)
- otchet-proizvodstva-za-smenu — основание для перемещения готовой продукции
- peremeshchenie-os — аналог для основных средств (не ТМЗ)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |