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