Разберем распространенную ситуацию: в карточке номенклатуры была указана группа финансового учета (ГФУ), отправляющая стоимость ТМЦ на счет 10.02. Позже выяснилось, что материалы должны отражаться на счете 10.09. Бухгалтер меняет ГФУ в карточке номенклатуры, запускает перепроведение документа поступления, однако счета учета в проводках регламентированного учета остаются прежними — Д10.02 К60. При этом, если заново добавить в табличную часть строку вручную, система сразу подставляет новый счет.
Проанализируем архитектурные причины такого поведения конфигураций 1С:Комплексная автоматизация 2 и 1С:ERP Управление предприятием, а также рассмотрим по шагам способы решения этой проблемы без монотонного ручного перевыбора позиций в документах.
Выясним причину, почему стандартное перепроведение документа не меняет счет учета в проводках. В современных релизах конфигураций 1С:КА 2 и 1С:ERP определение счета бухгалтерского учета завязано на справочник ВидыЗапасов.
Рассмотрим, как работает этот механизм:
ВидыЗапасов. Именно в нем сохраняется текущая ГруппаФинУчета.Записать(РежимЗаписиДокумента.Проведение) не перезаполняет существующие строки справочника ВидыЗапасов автоматически.ОбработкаВыбора или ПриИзменении реквизита номенклатуры). Именно поэтому при интерактивном добавлении новой строки подставляются актуальные настройки, а при обычном проведении старых документов проводки формируются по ранее зафиксированному виду запасов.Разберем наиболее надежный технический способ обновления проводок для большого массива документов. Чтобы система заново считала измененную ГФУ из карточки номенклатуры, необходимо сбросить привязку к старым видам запасов.
Посмотрим на пример логики внешней обработки, которая очищает зафиксированные виды запасов в документе поступления и перепроводит его:
// Пример программного обновления видов запасов в документе
ДокументОбъект = ВыбраннаяСсылка.ПолучитьОбъект();
// Если виды запасов хранятся в отдельной табличной части документа:
ДокументОбъект.ВидыЗапасов.Очистить();
// В строках табличной части Товары сбрасываем ссылку на зафиксированный вид запасов:
Для Каждого СтрТовары Из ДокументОбъект.Товары Цикл
СтрТовары.ВидЗапасов = Справочники.ВидыЗапасов.ПустаяСсылка();
КонецЦикла;
// При проведении система автоматически сгенерирует актуальный вид запасов
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Рассмотрим по шагам правила выполнения этой процедуры в рабочей базе:
10.02 и 10.09.Если документов немного, перевыбирать номенклатуру в каждой строке тоже не требуется. Рассмотрим встроенную возможность типовой конфигурации.
Разберем по шагам, как отредактировать аналитику через интерфейс:
Проанализируем саму настройку системы. Обособленный учет себестоимости по группам финансового учета нужен далеко не всегда. Он предназначен для сценариев, когда одна и та же номенклатурная позиция на одном складе может иметь разную оценку стоимости — например, при совмещении использования номенклатуры как материала для собственного производства и как товара для перепродажи, либо при раздельном учете в рамках целевого финансирования и гособоронзаказа (ГОЗ).
Если специфика бизнеса не требует такого разделения, функциональную опцию можно отключить в настройках параметров учета. После снятия флага обособления по видам запасов и ГФУ система перестает жестко фиксировать счета учета через виды запасов, и проводки начинают подхватывать актуальную ГФУ из номенклатуры при штатном перепроведении документов.
Важное предостережение: нельзя бездумно включать и отключать эту опцию в середине года. Отключение опции в закрытом периоде с последующим включением обратно нарушает целостность партионного учета в регистрах накопления ТоварыОрганизаций и СебестоимостьТоваров. Это приведет к появлению развернутого сальдо (одновременные положительные и отрицательные остатки по одной номенклатуре) и блокировке регламентной процедуры «Расчет себестоимости товаров».
Если период уже закрыт для изменений и перепроведение документов поступления запрещено, исправление выполняем следующими способами:
СебестоимостьТоваров, ТоварыОрганизаций и в регистр бухгалтерии между счетами 10.02 и 10.09.