При обновлении конфигураций «Комплексная автоматизация» (редакция 1.1) или «Управление производственным предприятием» (редакция 1.3) на релиз 1.1.81.1 пользователи и разработчики могут столкнуться с критической ошибкой при открытии документов Начисление по больничному листу или Начисление зарплаты работникам организаций:
{ОбщийМодуль.РаботаСДиалогамиЗК.Модуль(936)}: Поле объекта не обнаружено (ПримененныйВычетНаДетейОпекунов)
Разберем природу возникновения данной ошибки, рассмотрим по шагам варианты ее исправления для типовых и доработанных баз, а также проанализируем сопутствующие проблемы проведения документов с упрощенным учетом НДФЛ.
Проанализируем ситуацию: в связи с законодательными изменениями по НДФЛ произошло разделение стандартных налоговых вычетов на детей между родителями и опекунами/попечителями (введение кодов вычетов 126–149). Разработчики типового решения внесли изменения в процедуры общего модуля РаботаСДиалогамиЗК, добавив обращение к новым колонкам табличной части:
КолонкиНДФЛ.ПримененныйВычетНаДетейОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код130];
Однако в формах документов (например, в форме документа Начисление по больничному листу) соответствующие элементы управления в табличном поле НДФЛ добавлены не были. При обращении к несуществующему элементу формы через переданную коллекцию КолонкиНДФЛ платформа 1С генерирует исключительную ситуацию.
Фирма «1С» оперативно выпустила корректирующее обновление, зарегистрировав ошибку под номером 30152230. В релизе 1.1.81.2 для конфигурации «Комплексная автоматизация» и аналогичном релизе для УПП состав колонок формы документа НачислениеПоБольничномуЛисту был скорректирован.
Если база находится на типовой поддержке без значительных доработок, оптимальным решением будет установка релиза 1.1.81.2 или любого более свежего релиза конфигурации.
Если конфигурация сильно доработана и оперативно накатить следующий релиз невозможно, разберем корректный способ правки формы без изменения программного кода модулей:
НачислениеПоБольничномуЛисту (а также при необходимости НачислениеЗарплатыРаботникамОрганизаций) и откроем его основную форму документа.ПримененныйВычетНаДетейОпекунов, ПримененныйВычетНаДетейДвойнойОпекунов и остальные новые поля).После размещения реквизитов на форме коллекция элементов заполнится необходимыми объектами, и модуль РаботаСДиалогамиЗК отработает корректно без ошибок.
В экстренных случаях, когда требуется срочно выдать расчетные листки или провести документы, можно временно закомментировать обращения к отсутствующим колонкам в общем модуле РаботаСДиалогамиЗК. Рассмотрим пример процедур ОформитьКолонкиНДФЛ и ОтобразитьКолонкиНДФЛ:
Процедура ОформитьКолонкиНДФЛ(КолонкиНДФЛ) Экспорт
// ... Заполнение массива ссылок и стандартных вычетов ...
// Временно комментируем строки с отсутствующими в форме колонками:
// КолонкиНДФЛ.ПримененныйВычетНаДетейОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код130];
// КолонкиНДФЛ.ПримененныйВычетНаДетейДвойнойОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код135];
// КолонкиНДФЛ.ПримененныйВычетНаДетейДвойнойВторойОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код143];
// КолонкиНДФЛ.ПримененныйВычетНаВторогоРебенкаОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код131];
// КолонкиНДФЛ.ПримененныйВычетНаВторогоРебенкаДвойнойОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код137];
// КолонкиНДФЛ.ПримененныйВычетНаВторогоРебенкаДвойнойВторойОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код145];
// КолонкиНДФЛ.ПримененныйВычетНаТретьегоРебенкаОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код132];
// КолонкиНДФЛ.ПримененныйВычетНаТретьегоРебенкаДвойнойОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код139];
// КолонкиНДФЛ.ПримененныйВычетНаТретьегоРебенкаДвойнойВторойОпекунов.ТекстШапки = Представления[Справочники.ВычетыНДФЛ.Код147];
КонецПроцедуры
Аналогично в процедуре ОтобразитьКолонкиНДФЛ комментируются вызовы добавления данных колонок в массивы блоков для группировки.
При последующих обновлениях (например, на релиз 1.1.82.1) в нетиповых конфигурациях может возникнуть сопутствующая ошибка при проведении документов:
{Документ.НачислениеПоБольничномуЛисту.МодульОбъекта}: Метод объекта не обнаружен (ВписатьСуммыВыплаченнойЗарплатыВУдержанныеНалоги)
Выясним причину этого сбоя: процедура ВписатьСуммыВыплаченнойЗарплатыВУдержанныеНалоги является экспортной и находится в общем модуле ПроведениеРасчетов. Она вызывается модулями документов начисления только в том случае, если в учетной политике по персоналу включена опция «При начислении НДФЛ принимать исчисленный налог к учету как удержанный» (упрощенный учет НДФЛ).
Ошибка возникает из-за некорректного трехстороннего объединения конфигураций при обновлении: модули документов обновились, а общий модуль ПроведениеРасчетов остался старой версии.
Для исправления необходимо:
.cf актуального релиза.ПроведениеРасчетов и принудительно перенести изменения (или добавить недостающую процедуру ВписатьСуммыВыплаченнойЗарплатыВУдержанныеНалоги).