Почему в документе «Реализация отгруженных товаров» не заполняется склад и как это исправить?

Программист 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе в конфигурации 1С:Бухгалтерия предприятия 2.0 (БП 2.0), особенно в версии КОРП, бухгалтеры и технические специалисты часто сталкиваются с неприятной ситуацией: после проведения документа Реализация отгруженных товаров в Оборотно-сальдовой ведомости (ОСВ) по счету учета отгрузки «зависают» остатки. При этом количество и сумма по номенклатуре могут закрываться в ноль, но в разрезе субконто Склад образуется перекос: приход был на конкретный склад, а списание произошло с «пустого» склада. Рассмотрим подробнее, почему это происходит и как привести учет в порядок.

Анализируем методологию учета отгруженных товаров

Для начала разберем стандартную цепочку документов при схеме реализации без перехода права собственности. Сначала оформляется документ Реализация товаров и услуг с видом операции «Отгрузка без перехода права собственности». Этот документ делает проводку:

Дт 45.01 (или другой счет передачи) — Кт 41.01 (Склад)

В этот момент товар физически покидает территорию предприятия. Согласно логике разработчиков 1С, склад — это место материальной ответственности. Поскольку товар отгружен покупателю или передан перевозчику, он больше не находится под контролем кладовщика. Именно поэтому на типовом счете 45 «Товары отгруженные» субконто Склад отсутствует. Весь учет ведется только в разрезе Номенклатуры, Партий и Контрагентов.

Проблема возникает тогда, когда организация решает использовать вместо 45-го счета субсчета 41-го счета (например, 41.05) и оставляет на них включенным складской учет. В этом случае первый документ (отгрузка) фиксирует склад в дебете, а второй документ (реализация отгруженного) при списании в кредит этот склад «игнорирует».

Выясняем причину программного поведения

Проанализируем работу документа Реализация отгруженных товаров на уровне кода. Если мы откроем модуль документа и найдем процедуру ПодготовитьТаблицыДокумента, то увидим, что при формировании запроса к данным отгрузки поле Склад просто не выбирается из табличных частей или регистров. Программисты 1С сознательно исключили эту аналитику, так как документ жестко ориентирован на работу со счетом 45, где склада нет.

Когда система формирует проводку Дт 90.02.1 — Кт 41.05, она заполняет только те измерения, которые считает обязательными для счетов отгрузки. В результате в регистре бухгалтерии по кредиту 41.05 значение субконто Склад остается пустым. Из-за этого в ОСВ мы видим сальдо: положительное по складу «Основной» и отрицательное по «пустому» складу.

Вариант решения №1: Приведение учета к стандарту (без доработки)

Самый правильный путь с точки зрения поддержки конфигурации — это использование типового счета 45. Посмотрим, как это исправить:

  1. Проанализируем настройки учетной политики и счетов учета номенклатуры.
  2. В документах Реализация товаров и услуг (отгрузка) заменим «Счет передачи» с 41.05 на 45.01.
  3. Поскольку на счете 45.01 нет субконто Склад, документ Реализация отгруженных товаров закроет остатки корректно, так как аналитика будет совпадать (Номенклатура + Партия).

Если же использование счета 41.05 принципиально, попробуем зайти в План счетов и в настройках этого счета снять признак складского учета. Если складской учет на этом счете не будет вестись, то и «пустых» остатков в ОСВ не возникнет.

Вариант решения №2: Техническая доработка (для программистов)

Если бухгалтерия настаивает на сохранении склада на счете 41.05 (например, для аналитики в версии КОРП), нам потребуется внести изменения в код. Нам нужно изменить алгоритм сбора данных, чтобы документ «увидел» склад из первичного документа отгрузки.

Рассмотрим по шагам, что нужно изменить в модуле документа РеализацияОтгруженныхТоваров:

Шаг 1. Изменение запроса в процедуре ПодготовитьТаблицыДокумента.

Нам необходимо добавить поле Склад в выборку. Обычно данные берутся из табличной части Товары или связываются с документом отгрузки. Пример изменения части запроса:


// В тексте запроса добавляем выборку склада
ТекстЗапроса = "
|ВЫБРАТЬ
|    Док.Номенклатура,
|    Док.Количество,
|    Док.ДокументОтгрузки.Склад КАК Склад, // Добавляем получение склада из документа основания
|    Док.СчетУчета,
|    ...
";

Шаг 2. Заполнение колонки в таблице списания.

После выполнения запроса убедимся, что колонка Склад заполняется в результирующей таблице, которая передается в механизм проведения (например, в структуру ДополнительныеСвойства или напрямую в движения).

Шаг 3. Корректировка движений по регистру бухгалтерии.

В процедуре ДвиженияПоРегистрам (или аналогичной, отвечающей за формирование проводок Хозрасчетного регистра) нужно найти участок кода, отвечающий за заполнение субконто кредита. Проверим, передается ли туда значение Склад.


// Пример заполнения субконто в модуле проведения
НомерСубконтоСклад = СчетаУчета.НайтиНомерСубконто(Проводка.СчетКт, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
Если НомерСубконтоСклад <> Неопределено Тогда
    Проводка.СубконтоКт[НомерСубконтоСклад] = СтрокаТаблицы.Склад;
КонецЕсли;

Важные нюансы при доработке

Проанализируем возможные риски. Добавление склада в документ Реализация отгруженных товаров может повлиять на партионный учет, если в системе включено списание по ФИФО с учетом складов. Помните следующие правила:

Резюме

Мы выяснили, что отсутствие склада в проводках — это не программная ошибка, а методологическая особенность 1С. Система ожидает, что на счетах передачи складской учет не ведется. Если ваша учетная модель требует иного, самым быстрым способом будет отключение субконто Склад на счете 41.05. Если же аналитика по складу необходима для отчетности, используйте предложенную выше программную доработку запроса в модуле документа.

← На главную