Ситуация, когда в табличной части документа «Поступление (акт, накладная, УПД)» отображается колонка со складами, а в бухгалтерских проводках (Дт 10/41 — Кт 60) по всем позициям фигурирует один и тот же склад из шапки, является классической проблемой при эксплуатации доработанных систем. В этой статье мы подробно разберем, почему так происходит, как устроена архитектура 1С:Бухгалтерии и что делать, если после обновления этот функционал перестал работать корректно.
Прежде всего, нам необходимо понять базовый принцип работы типовой конфигурации «1С:Бухгалтерия предприяти 3.0». Разберем по шагам, как система хранит данные о складах:
Склады.Склад расположен исключительно в «шапке» документа. Это означает, что весь товар по данной накладной оприходуется на одно место хранения.Хозрасчетный, обращается к реквизиту Объект.Склад (шапка) и подставляет его во все строки проводок.Таким образом, если вы видите колонку «Склад» в табличной части Товары, это однозначно свидетельствует о том, что ваша конфигурация была изменена. Это могло быть сделано либо прямым изменением кода, либо с помощью расширения, либо вы используете специализированное отраслевое решение (например, для сельского хозяйства или строительства).
Проанализируем ситуацию: до обновления всё работало, а после — склады в таблице остались, но в проводки «идет» только склад из шапки. Рассмотрим основные причины:
1. Затирание кастомного кода в основной конфигурации. Если программист внес изменения напрямую в типовую конфигурацию (сняв ее с поддержки), то при автоматическом обновлении через «сравнение и объединение» код процедуры ОбработкаПроведения мог быть заменен на стандартный. В стандартном коде нет обращения к табличной части для поиска склада.
2. Конфликт расширения. Сейчас наиболее популярный метод доработки — Расширения конфигурации. Если логика подстановки склада была вынесена в расширение, после обновления оно могло:
3. Использование «чужого» обновления. Бывают случаи, когда на отраслевую конфигурацию (например, 1С:Бухгалтерия СХП) по ошибке накатывают обновление от обычной 1С:Бухгалтерии. В этом случае все уникальные механизмы проведения (включая учет по разным складам в ТЧ) просто исчезают, так как в «базовой» версии их не существует.
Давайте посмотрим, как обычно выглядит доработка, позволяющая учитывать склады из табличной части. Чтобы проводки формировались правильно, программист должен перехватить процедуру формирования движений. Проанализируем пример кода, который мог быть утерян при обновлении:
// Пример логики, которая должна быть в расширении или модуле
Процедура ПередЗаписьюРегистраХозрасчетный(Отказ, Движения)
Для Каждого Движение Из Движения.Хозрасчетный Цикл
// Находим соответствующую строку в табличной части по номеру строки или ключу связи
СтрокаТЧ = ЭтотОбъект.Товары.Найти(Движение.НомерСтроки, "НомерСтроки");
Если СтрокаТЧ <> Неопределено Тогда
// Подставляем склад из строки ТЧ в субконто проводки
ИндексСклада = 1; // Предположим, что Склады - это первое субконто на счете
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = СтрокаТЧ.Склад;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Если после обновления этот код перестал выполняться, система по умолчанию берет значение из шапки документа, так как стандартный алгоритм 1С:БП 3.0 не предполагает вариативности складов внутри одного документа.
Рассмотрим порядок действий для восстановления корректной работы программы:
Функциональность — Запасы — Складской учет включает ведение учета по складам, она не добавляет поле в таблицу. Если поле есть — возвращаемся к пункту о доработках.ПоступлениеТоваровУслуг с резервной копией до обновления. Ищите изменения в процедурах ИнициализироватьДанныеДокумента или СформироватьДвиженияХозрасчетный.Если восстановить доработку невозможно или вы решили вернуться на «типовые рельсы», проанализируем, как 1С рекомендует решать задачу поступления на разные склады штатными средствами:
Перемещение товаров распределяется по нужным точкам.Резюме: Если в вашей «1С:Бухгалтерии» поле «Склад» присутствует в таблице, но проводки игнорируют его после обновления — это верный признак «слетевшей» доработки. Проверьте расширения и корректность примененного обновления конфигурации.