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