При переходе на новые релизы программных продуктов на платформе «1С:Предприятие 8» пользователи и администраторы периодически сталкиваются с досадными техническими сбоями. Один из таких «эпических» сбоев произошел в ветке обновлений конфигурации 1С:ERP Управление предприятием (а также в аналогичных версиях «1С:Комплексная автоматизация»). Пользователи обнаружили, что в системе внезапно заблокировалась возможность выплаты аванса сотрудникам: документы на выплату просто отказывались создаваться, заполняться или проводиться.
В этой статье мы подробно проанализируем ситуацию, выясним техническую причину возникновения этой проблемы и рассмотрим по шагам несколько практических способов её решения — от применения официальных патчей до ручной корректировки метаданных в конфигураторе.
Для начала разберем по шагам, как устроена взаимосвязь документов в зарплатном блоке конфигураций 1С. В системе реализован механизм полиморфизма связей через так называемые Определяемые типы (DefinedTypes). Это особые объекты метаданных, которые позволяют одному реквизиту ссылаться на документы разных типов.
В ERP-решениях за связь платежных ведомостей с документами-начислениями отвечают два ключевых определяемых типа:
ДокументОснованиеЗарплатыКВыплатеДокументОснованиеВедомостиНаВыплатуЗарплатыДокумент НачислениеЗаПервуюПоловинуМесяца отвечает за предварительный расчет и начисление аванса за первую половину месяца. Чтобы программа могла выплатить этот аванс, ведомость должна ссылаться на него как на документ-основание. Однако в релизах линейки 2.4.10 (в частности, 2.4.10.56, 2.4.10.62 и сопутствующих) этот тип документа по ошибке пропал из состава разрешенных типов в вышеуказанных определяемых типах.
На уровне СУБД и бизнес-логики это приводит к следующему: система пытается записать ссылку на документ аванса в реквизит ведомости, но платформа блокирует операцию, так как данный тип данных больше не разрешен метаданными. Пользователь видит ошибку сопоставления типов или сталкивается с тем, что ведомости просто не заполняются.
Зарплатный блок для комплексных решений (1С:ERP и 1С:КА) разрабатывается в рамках отдельной конфигурации «1С:Зарплата и управление персоналом» (ЗУП) и регулярно интегрируется в ERP. При слиянии веток конфигураций разработчики иногда перезаписывают свойства определяемых типов значениями по умолчанию, из-за чего специфические связи документов теряются. Именно это и произошло в релизах линейки 2.4.10.
Ниже рассмотрим четыре способа исправления этой ошибки, в зависимости от особенностей администрирования вашей базы данных.
Фирма «1С» оперативно реагирует на подобные массовые ошибки и выпускает исправления в виде расширений-патчей (с префиксом EF_). Если ваша информационная база подключена к интернету и настроена автоматическая загрузка исправлений, патч должен установиться самостоятельно.
Если автоматическая установка отключена, выполним ручную установку патча:
ДокументОснованиеЗарплатыКВыплате), согласимся на установку.Если база данных находится на строгой поддержке («на замке»), и вы не хотите снимать её с поддержки ради исправления одной строки кода, идеальным выходом будет создание собственного точечного расширения.
Разберем по шагам процесс создания расширения:
ДокументОснованиеЗарплатыКВыплате и ДокументОснованиеВедомостиНаВыплатуЗарплаты.ДокументОснованиеЗарплатыКВыплате.ДокументСсылка.НачислениеЗаПервуюПоловинуМесяца.ДокументОснованиеВедомостиНаВыплатуЗарплаты.Если ваша конфигурация уже снята с поддержки (или находится в режиме редактирования с сохранением поддержки), исправить проблему можно напрямую в основной конфигурации за пару минут.
Выполним следующие действия:
Общие — Определяемые типы.ДокументОснованиеЗарплатыКВыплате для открытия его палитры свойств.ДокументСсылка.НачислениеЗаПервуюПоловинуМесяца.ДокументОснованиеВедомостиНаВыплатуЗарплаты.После выполнения этих шагов платформа начнет корректно сопоставлять типы данных, и документы по выплате аванса проведутся без ошибок.
Если вы не хотите вносить изменения в структуру метаданных вручную или с помощью расширений, наиболее надежным и системным решением будет обновление конфигурации на актуальный стабильный релиз. В последующих версиях ветки ERP 2.4.10 (а также при переходе на редакции 2.4.11, 2.5 и выше) разработчики фирмы «1С» полностью устранили данное несоответствие в коде поставки, и состав определяемых типов там заполнен корректно по умолчанию.
Перед проведением обновления обязательно выполните резервное копирование информационной базы.