При работе с программой 1С:Бухгалтерия предприятия 3.0 (особенно на релизах линейки 3.0.82.х) пользователи часто сталкиваются с неприятной ситуацией: при попытке сформировать «Оборотно-сальдовую ведомость по счету» для 10 счета программа выдает критическую ошибку «Неверное имя колонки». Эта проблема блокирует работу бухгалтерии, так как 10 счет является одним из самых активных в учете ТМЦ. В этой статье мы подробно разберем, почему возникает эта ошибка, как ее диагностировать с помощью отладчика и какие существуют способы решения.
Прежде всего, проанализируем техническую сторону вопроса. Как показывает практика и отчеты отладчика, ошибка локализуется в модуле менеджера отчета ОборотноСальдоваяВедомостьПоСчету. Рассмотрим типичный стек вызова, который сопровождает эту проблему:
{Отчет.ОборотноСальдоваяВедомостьПоСчету.МодульМенеджера(849)}: ПодходящиеСтроки = ТаблицаСубконтоСчетов.НайтиСтроки(СтруктураСубконто);
{Отчет.ОборотноСальдоваяВедомостьПоСчету.МодульМенеджера(1207)}: Для Каждого СчетаИСубконто Из СоставСубконтоСчетов(ОсобенныеСчета, ВидыСубконтоЭталон(Счет)) Цикл
...
по причине: Неверное имя колонки
Разберем ситуацию подробнее. Метод НайтиСтроки() пытается найти данные в таблице значений ТаблицаСубконтоСчетов по ключам, переданным в СтруктураСубконто. Ошибка «Неверное имя колонки» означает, что в структуре поиска указано имя (например, «Склады» или «Партии»), которого физически нет в колонках таблицы. Это происходит из-за того, что в определенных релизах разработчики 1С изменили механизм обработки так называемых «Особенных счетов» (счета 10, 41, 43), для которых предусмотрена специальная логика формирования временных таблиц в запросе.
Первое, что мы должны сделать — исключить фактор «битых» пользовательских настроек. Иногда в сохраненных настройках компоновки данных (СКД) зависают старые идентификаторы полей, которые после обновления стали невалидными. Рассмотрим, как выполнить сброс:
Если это не помогло, проанализируем ситуацию с группировками. Перейдем на закладку «Группировка», снимем все галочки с субконто (Номенклатура, Склады, Партии) и попробуем сформировать отчет. Если отчет сформировался без субконто, добавляем их по одному, чтобы выяснить, на каком именно поле происходит сбой. Чаще всего проблема кроется в поле Партии.
Иногда платформа кэширует старые описания типов метаданных. Рассмотрим вспомогательные методы очистки:
Оборотно-сальдовая ведомость по счету. Если там отчет работает корректно, значит проблема в конкретном сохраненном варианте отчета в интерфейсе пользователя.Поскольку проблема носит массовый характер для релиза 3.0.82.24, фирма «1С» выпустила оперативные исправления в виде патчей. Выясним, установлены ли они у вас:
EF_00123456.Наиболее надежный и правильный способ решения — это обновление конфигурации до актуальной версии. Рассмотрим, почему это важно. В версии 3.0.83.25 и выше механизм формирования текста запроса для «особенных» счетов был полностью пересмотрен. Ошибка с неверным именем колонки там была устранена на уровне программного кода модуля менеджера.
Если по каким-то причинам вы не можете обновиться прямо сейчас, рассмотрим временное техническое решение, которое применили опытные специалисты на форумах:
Можно взять модуль менеджера отчета ОборотноСальдоваяВедомостьПоСчету из предыдущего стабильного релиза (например, 3.0.81) и заменить им код в текущей конфигурации через расширение или путем внесения изменений в основную конфигурацию (если она снята с поддержки). Рассмотрим пример логики, которая часто вызывает сбой:
// В проблемном коде происходит обращение к таблице
Если ТаблицаСубконтоСчетов.Колонки.Найти("Партия") = Неопределено Тогда
// Здесь должен быть код добавления колонки, но в 3.0.82 он иногда пропускается
КонецЕсли;
Проанализируем этот момент: если ваш учет настроен без использования партионного учета (в настройках параметров учета запасов), а отчет пытается программно обратиться к колонке Партия в таблице ТаблицаСубконтоСчетов, возникает исключение. Проверьте настройки в разделе Администрирование — Настройки программы — Параметры учета — Настройки учета запасов. Попробуйте временно включить или выключить признак учета по партиям или складам — иногда это заставляет программный код «пересобрать» временную таблицу правильно.
Подводя итог, выделим основные шаги при столкновении с ошибкой «Неверное имя колонки» в ОСВ по счету 10:
Важный совет: Всегда делайте резервную копию базы данных перед выполнением любых манипуляций с конфигурацией или массовой очисткой настроек. Если вы используете расширения, попробуйте временно отключить их и проверить работу отчета — сторонние расширения, меняющие план счетов, также могут провоцировать данную ошибку.