Ответ на
пост №1
Aksy, аналогичная проблема.
Ошибка в коде регламентной операции у 1С.
Проявляется, вроде, только при расчёте за год.
Ответьте, пожалуйста, у ваших объектов не менялась регистрация в налоговом органе за прошлый год?
Самое обидное, что нет никакой, даже теоретической, возможности ввести данные вручную через правку регистров - регламентная операция просто не проводится.
Процедура, рассчитывающая налог на имущество, выдаёт таблицу, которую потом записывает в регистр, в этой таблице есть дублированные строки с полным совпадением данных в колонках ресурсов регистра. При записи в регистр происходит ошибка, проведение прерывается.
Код расчёта налога на имущество чудовищно большой, поэтому не очень хочется в него залезать.
Ждать новой версии от 1С выход конечно, но не для нас.
Я не нашёл решения путём изменения учётных данных, если кто-то сможет - прошу написать.
Я решил проблему аккуратно попросив (в коде) свернуть таблицу перед записью в регистр.
Далее. На свой страх и риск.
Результаты расчётов требуют проверки бухгалтером.
Пожалуйста, сделайте резервную копию.
Если в вашей базе разрешены изменения, попросите программистов внести правку, если изменения запрещены или вы не хотите изменять код, можно попробовать через расширение (см. инструкцию внизу и вложение)
Достаточно либо правки кода, либо расширения.
КОД
Код |
---|
ОбщийМодуль РасчетИмущественныхНалогов
Процедура СформироватьДвиженияРасчетНалога(ТаблицыНачислениеНалога, ТаблицаРеквизитов, Движения, Отказ) Экспорт |
Закомментировать строку 4258
Код |
---|
//ЗакрытиеМесяца.ЗаписьВоВспомогательныеРегистрыСведений(Движения, Параметры.СправкаРасчет, Параметры.Реквизиты, Реквизиты.ИмяРегистраРасчетНалогов); |
Добавить после закомментированной строки и перед
следующий код
Код |
---|
// D.G.P.
// Исправление ошибки - перед записью в регистр не проверяется наличие полных дублей по измерениям регистра
// При записи в регистр возникает ошибка.
// Для исключения полных дублей требуется свернуть таблицу так, чтобы не было суммирования, то есть по измерениям И ресурсам.
// Дублирование в исходном запросе, рассчитывающем справку, происходит по неизвестным причинам,
// в любом случае лучше оставить исправление логики расчётов программистам 1С.
МетаданныеРегистра = Метаданные.РегистрыСведений[Реквизиты.ИмяРегистраРасчетНалогов];
ИменаРеквизитов = Новый Массив;
Колонки = Параметры.СправкаРасчет.Колонки;
Для Каждого ОписаниеРеквизита Из МетаданныеРегистра["Измерения"] Цикл
Если Колонки.Найти(ОписаниеРеквизита.Имя) = Неопределено Тогда
Продолжить;
КонецЕсли;
ИменаРеквизитов.Добавить(ОписаниеРеквизита.Имя);
КонецЦикла;
Для Каждого ОписаниеРеквизита Из МетаданныеРегистра["Ресурсы"] Цикл
Если Колонки.Найти(ОписаниеРеквизита.Имя) = Неопределено Тогда
Продолжить;
КонецЕсли;
ИменаРеквизитов.Добавить(ОписаниеРеквизита.Имя);
КонецЦикла;
СтрокаГруппировки = СтрСоединить(ИменаРеквизитов, ",");
СтрокаСуммирования = "";
ЗакрытиеМесяца.ЗаписьВоВспомогательныеРегистрыСведений(Движения, Параметры.СправкаРасчет, Параметры.Реквизиты, Реквизиты.ИмяРегистраРасчетНалогов,
истина,СтрокаГруппировки,СтрокаСуммирования); |
РАСШИРЕНИЕ (во вложении)делает то же самое, но не требует правки кода и может работать на базе с запретом изменений.
Внимание. Перед применением расширения, пожалуйста, просмотрите его код Конфигуратором. В расширении нет закрытого кода и вирусов, но лучше всегда проверять скачанное из интернета.
Расширение не работает в безопасном режиме, при установке расширения в режиме Предприятие нужно снять признак
Безопасный режим.
И приведённый код и расширение позволяют провести
Расчёт налога на имущество без ошибки, используя стандартную логику расчёта.
Исключаются только дубли из регистра.
Если и когда 1С всё исправит, расширение можно удалить. Если вы не собираетесь перепроводить закрытие года, расширение тоже можно удалить.