Как исправить ошибку «Неверный идентификатор колонки! (ТарифИнвалид)» в 1С 7.7 и настроить перенос данных

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе в устаревших, но все еще используемых конфигурациях на платформе 1С:Предприятие 7.7 (например, «1С:Бухгалтерия 7.7» ред. 4.5, релиз 7.70.658 и смежные) пользователи могут столкнуться с неожиданным аварийным завершением работы программы. Характерный пример — ошибка при формировании регламентированных отчетов для Пенсионного фонда (ПФР/СФР):

{Отчет.ПодготовкаСведенийДляПФР2010.Форма.Модуль(4504)}: Неверный идентификатор колонки!

В этой статье мы подробно разберем, почему возникает данная техническая проблема, рассмотрим способы ее устранения в коде 1С 7.7, а также проанализируем нюансы экстренного перехода на современную платформу 1С 8.3, который часто планируют бухгалтеры при возникновении подобных сбоев.

Причина возникновения ошибки в коде 1С 7.7

Давайте проанализируем строку кода, на которую указывает конфигуратор:

СотрудникИнвалид = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы, "ТарифИнвалид");

Проблема кроется в объекте типа ТаблицаЗначений с идентификатором ДоходыВычетыНалогиСотрудников. Этот объект создается и заполняется динамически в процессе сбора сведений по доходам и страховым взносам физических лиц. В платформе 1С 7.7 метод ПолучитьЗначение() или прямое обращение к колонке таблицы по ее строковому имени вызовет критическую ошибку, если колонка с таким идентификатором не была предварительно добавлена в структуру таблицы с помощью метода НоваяКолонка().

Почему этой колонки не оказалось в таблице? Причиной стали масштабные изменения в законодательстве РФ (в частности, введение пониженных тарифов страховых взносов для субъектов малого и среднего предпринимательства). Разработчики фирмы «1С» обновили глобальные модули конфигураций для корректного расчета налогов по новым шкалам, изменив структуру возвращаемых таблиц. Однако старый отчет ПодготовкаСведенийДляПФР2010, давно снятый с активной поддержки, не был адаптирован под новые алгоритмы формирования таблиц доходов и налогов. В результате при попытке прочитать колонку ТарифИнвалид, которой больше физически нет в новой структуре данных, программа закрывается с ошибкой.

Решение 1. Использование актуальных форм отчетности

Прежде чем вносить изменения в конфигурацию, важно понять, действительно ли вам нужен этот отчет. Форма «Подготовка сведений для ПФР 2010» безнадежно устарела. Для сдачи текущей отчетности в Социальный фонд России (СФР, объединивший ПФР и ФСС) за последние периоды используются совершенно другие формы.

Если вам необходимо сдать сведения о стаже или персонифицированные сведения, выполните следующие шаги:

  1. Перейдите в главное меню программы 1С 7.7.
  2. Откройте пункт меню «Отчеты», далее выберите раздел «Специализированные».
  3. Найдите и запустите отчеты «Сведения о страховом стаже застрахованных лиц (СЗВ-СТАЖ)» или «Персонифицированные сведения застрахованных лиц» в зависимости от того, какую форму требует контролирующий орган.

Старый отчет «Подготовка сведений для ПФР 2010» может понадобиться исключительно для подготовки корректирующих форм за периоды до 2016 года включительно. Если это ваш случай, перейдем к техническим методам исправления кода.

Решение 2. Исправление кода через Конфигуратор 1С 7.7

Если запуск старого отчета неизбежен, мы можем самостоятельно внедрить «обходной путь» в код программы. Для этого нам понадобятся права администратора базы данных.

Выполним процедуру исправления по шагам:

  1. Запустите базу данных 1С 7.7 в режиме Конфигуратор.
  2. В дереве метаданных (окно «Конфигурация») разверните ветку «Отчеты».
  3. Найдите отчет с идентификатором ПодготовкаСведенийДляПФР2010. Если этого отчета нет в дереве, значит, он используется как внешний. В таком случае откройте файл отчета через меню «Файл» — «Открыть», перейдя в каталог базы данных, далее в папку ExtForms, и найдите файл с расширением .ert (например, pfr2010.ert).
  4. Откройте модуль формы отчета (вкладка «Модуль» в нижней части окна редактирования отчета).
  5. Используйте быстрый поиск по коду (сочетание клавиш Ctrl + F) и найдите строку, в которой инициализируется таблица значений ДоходыВычетыНалогиСотрудников. Обычно это выглядит как ДоходыВычетыНалогиСотрудников = СоздатьОбъект("ТаблицаЗначений");.
  6. Ниже в коде, где объявляются колонки таблицы с помощью метода НоваяКолонка(), добавьте принудительное создание отсутствующего поля.

Добавьте следующую строку кода:

ДоходыВычетыНалогиСотрудников.НоваяКолонка("ТарифИнвалид", "Число", 15, 2);

Такая модификация гарантирует, что даже если глобальный модуль не заполнит это поле данными, колонка все равно будет существовать в структуре таблицы значений. При вызове метода ПолучитьЗначение() программа вернет пустое значение или ноль вместо аварийного завершения работы.

Сохраните изменения в отчете (или сохраните внешний файл .ert) и перезапустите 1С в режиме «Предприятие» для проверки результата.

Решение 3. Очистка временного кэша настроек отчета

Иногда сбои обращения к колонкам в регламентированных отчетах 1С 7.7 вызваны некорректно сохраненной историей или кэшем предыдущих расчетов. Система сохраняет параметры выгрузок в специальные файлы настроек.

Чтобы исключить влияние кэша, выполните следующие действия:

  1. Полностью закройте программу 1С 7.7.
  2. Перейдите в каталог вашей информационной базы через Проводник Windows.
  3. Если в базе настроена многопользовательская работа, зайдите в папку конкретного пользователя (название папки совпадает с именем пользователя в Конфигураторе, например, Admin or Buh). Если пользователи не настроены, файлы сохраняются непосредственно в корне каталога базы.
  4. Найдите все файлы с расширением .pf (файлы сохраненных настроек отчетов ПФР).
  5. Удалите эти файлы или переместите их в резервную папку на вашем диске.

При следующем запуске отчета система инициализирует структуру таблиц заново «с чистого листа», что во многих случаях помогает избежать системных конфликтов конфигурации.

Решение 4. Переход на 1С 8.3 и решение сопутствующих проблем

Появление подобных ошибок часто становится для руководства компании последним аргументом в пользу скорейшего перехода с устаревшей платформы 1С 7.7 на современную «1С:Бухгалтерия 8» (ред. 3.0). Однако процесс переноса данных (миграции) может сопровождаться собственными трудностями.

Рассмотрим две ключевые проблемы, упомянутые практикующими специалистами при переходе, и способы их решения.

А. Ошибка устаревшей учетной политики при загрузке данных

При попытке загрузить выгруженные из 1С 7.7 данные в базу 1С 8.3 («тройку») загрузка может прерваться ошибкой со ссылкой на несуществующую или старую учетную политику (которая уже несколько лет как не актуальна). Это происходит по причине переноса периодических реквизитов и истории констант.

В платформе 1С 7.7 константы и параметры учетной политики хранятся в виде периодических значений. Если в истории этих значений за прошлые годы остались пустые строки, некорректные даты или «битые» ссылки, правила конвертации данных попытаются перенести их «как есть», что вызовет ступор у механизмов контроля платформы 1С 8.3.

Для решения этой проблемы перед выгрузкой данных выполните следующие шаги в старой базе 1С 7.7:

  1. Откройте меню «Операции» — «Константы».
  2. Найдите константу «Учетная политика» (или аналогичные периодические параметры, отвечающие за налогообложение).
  3. Нажмите кнопку «История» (клавиша F5), чтобы просмотреть изменения константы по годам.
  4. Внимательно проанализируйте список. Если вы обнаружите пустые строки, некорректные исторические записи (например, с пустыми датами или некорректным типом значения), удалите их. Оставьте только четкие и понятные записи по годам.
  5. В режиме Конфигуратора обязательно запустите процедуру «Тестирование и исправление ИБ» (меню «Администрирование») с включенной проверкой ссылочной целостности базы данных. Это очистит базу от скрытых «битых» объектов.

Б. Несовместимость правил переноса данных

Другой распространенный сбой при миграции — использование неподходящих правил обмена данными. Правила переноса напрямую привязаны к релизам конфигураций-источников и приемников.

Запомните важное правило: выгружать обработку и правила переноса данных необходимо непосредственно из той базы «1С:Бухгалтерия 8», в которую вы планируете загружать информацию!

Сделайте следующее:

  1. Откройте вашу новую (целевую) базу 1С 8.3.
  2. Перейдите в раздел «Администрирование» — «Перенос данных из 1С:Предприятия 7.7».
  3. Сохраните предлагаемую помощником обработку выгрузки и актуальный файл правил конвертации (обычно это файлы acc77_8.ert и XML-правила) во внешнюю папку.
  4. Перенесите эти файлы на компьютер, где установлена 1С 7.7, и запустите выгрузку именно с их помощью. Использование актуальных правил гарантирует, что структура выгружаемых данных будет полностью соответствовать ожиданиям конфигурации 1С 8.3.
← На главную