Почему в 1С:ERP не создаются ведомости на выплату аванса и как исправить ошибку с отсутствием типа НачислениеЗаПервуюПоловинуМесяца

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

В этой статье мы подробно проанализируем ситуацию, выясним техническую причину возникновения этой проблемы и рассмотрим по шагам несколько практических способов её решения — от применения официальных патчей до ручной корректировки метаданных в конфигураторе.

Суть проблемы и технический контекст

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

В ERP-решениях за связь платежных ведомостей с документами-начислениями отвечают два ключевых определяемых типа:

  1. ДокументОснованиеЗарплатыКВыплате
  2. ДокументОснованиеВедомостиНаВыплатуЗарплаты

Документ НачислениеЗаПервуюПоловинуМесяца отвечает за предварительный расчет и начисление аванса за первую половину месяца. Чтобы программа могла выплатить этот аванс, ведомость должна ссылаться на него как на документ-основание. Однако в релизах линейки 2.4.10 (в частности, 2.4.10.56, 2.4.10.62 и сопутствующих) этот тип документа по ошибке пропал из состава разрешенных типов в вышеуказанных определяемых типах.

На уровне СУБД и бизнес-логики это приводит к следующему: система пытается записать ссылку на документ аванса в реквизит ведомости, но платформа блокирует операцию, так как данный тип данных больше не разрешен метаданными. Пользователь видит ошибку сопоставления типов или сталкивается с тем, что ведомости просто не заполняются.

Почему возникает такая ошибка?

Зарплатный блок для комплексных решений (1С:ERP и 1С:КА) разрабатывается в рамках отдельной конфигурации «1С:Зарплата и управление персоналом» (ЗУП) и регулярно интегрируется в ERP. При слиянии веток конфигураций разработчики иногда перезаписывают свойства определяемых типов значениями по умолчанию, из-за чего специфические связи документов теряются. Именно это и произошло в релизах линейки 2.4.10.

Ниже рассмотрим четыре способа исправления этой ошибки, в зависимости от особенностей администрирования вашей базы данных.

Способ 1. Установка официального патча (рекомендуемый способ)

Фирма «1С» оперативно реагирует на подобные массовые ошибки и выпускает исправления в виде расширений-патчей (с префиксом EF_). Если ваша информационная база подключена к интернету и настроена автоматическая загрузка исправлений, патч должен установиться самостоятельно.

Если автоматическая установка отключена, выполним ручную установку патча:

  1. Перейдем в раздел АдминистрированиеОбслуживаниеОбновление программы.
  2. Выберем пункт Установка обновлений и исправлений (патчей).
  3. Если система обнаружит доступные патчи для вашего релиза (ищите описание, связанное с определяемым типом ДокументОснованиеЗарплатыКВыплате), согласимся на установку.
  4. Перезапустим сеанс работы с базой данных.

Способ 2. Создание собственного расширения конфигурации

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

Разберем по шагам процесс создания расширения:

  1. Запустим информационную базу в режиме Конфигуратор.
  2. Откроем меню КонфигурацияРасширения конфигурации.
  3. В открывшемся окне нажмем кнопку Добавить. Оставим тип назначения «Адаптация» и нажмем «ОК».
  4. В основном дереве конфигурации найдем ветку ОбщиеОпределяемые типы.
  5. Найдем типы ДокументОснованиеЗарплатыКВыплате и ДокументОснованиеВедомостиНаВыплатуЗарплаты.
  6. Кликнем по каждому из них правой кнопкой мыши и выберем команду Добавить в расширение.
  7. Перейдем в дерево нашего расширения, откроем свойства добавленного определяемого типа ДокументОснованиеЗарплатыКВыплате.
  8. В свойстве Тип нажмем на кнопку выбора (три точки) и установим флаг напротив документа ДокументСсылка.НачислениеЗаПервуюПоловинуМесяца.
  9. Повторим процедуру для типа ДокументОснованиеВедомостиНаВыплатуЗарплаты.
  10. Сохраним расширение и обновим конфигурацию базы данных (клавиша F7).

Способ 3. Ручное исправление в Конфигураторе (для измененных баз)

Если ваша конфигурация уже снята с поддержки (или находится в режиме редактирования с сохранением поддержки), исправить проблему можно напрямую в основной конфигурации за пару минут.

Выполним следующие действия:

  1. Откроем базу в Конфигураторе.
  2. В дереве метаданных перейдем по пути: ОбщиеОпределяемые типы.
  3. Дважды кликнем по определяемому типу ДокументОснованиеЗарплатыКВыплате для открытия его палитры свойств.
  4. В строке Тип нажмем кнопку открытия диалогового окна выбора типов.
  5. В появившемся списке типов найдем и отметим галочкой документ ДокументСсылка.НачислениеЗаПервуюПоловинуМесяца.
  6. Аналогичную операцию проведем для определяемого типа ДокументОснованиеВедомостиНаВыплатуЗарплаты.
  7. Нажмем клавишу F7 (Обновить конфигурацию базы данных) и примем изменения метаданных.

После выполнения этих шагов платформа начнет корректно сопоставлять типы данных, и документы по выплате аванса проведутся без ошибок.

Способ 4. Обновление на стабильный релиз

Если вы не хотите вносить изменения в структуру метаданных вручную или с помощью расширений, наиболее надежным и системным решением будет обновление конфигурации на актуальный стабильный релиз. В последующих версиях ветки ERP 2.4.10 (а также при переходе на редакции 2.4.11, 2.5 и выше) разработчики фирмы «1С» полностью устранили данное несоответствие в коде поставки, и состав определяемых типов там заполнен корректно по умолчанию.

Перед проведением обновления обязательно выполните резервное копирование информационной базы.

← На главную