Многие пользователи и разработчики сталкиваются с ситуацией, когда при попытке оформить начисление отпуска или больничного в 1С:Бухгалтерия 3.0 программа выдает ошибку о превышении лимита в 60 сотрудников. Давайте разберем, почему это происходит, как программа считает персонал и какими способами можно обойти данное ограничение.
Фирма «1С» позиционирует конфигурацию 1С:Бухгалтерия 8 как инструмент для ведения бухгалтерского и налогового учета. Функционал по расчету сложной заработной платы (больничные, отпуска, исполнительные листы) внедрен туда как вспомогательный сервис для малых предприятий. Ограничение в 60 человек — это маркетинговый и технический барьер, призванный выделить «границу применимости» упрощенного функционала.
Основная причина технического ограничения заключается в том, что при росте численности персонала существенно возрастает сложность расчетов, количество законодательных нюансов и требований к кадровому документообороту. Архитектура 1С:Бухгалтерии не рассчитана на полноценный кадровый учет, для чего существует специализированная конфигурация 1С:Зарплата и управление персоналом (ЗУП).
Важно понимать, что ограничение срабатывает не по количеству элементов в справочнике Сотрудники, а по данным кадровых регистров. Система анализирует только тех, кто имеет активный трудовой договор на текущую дату. В частности, проверка выполняется с помощью запроса к регистру сведений ТекущиеКадровыеДанныеСотрудников.
Алгоритм учитывает сотрудников, соответствующих следующим критериям:
Если вы видите, что количество сотрудников в программе превышает лимит, хотя по факту работает меньше людей, рекомендуется проверить корректность оформления увольнений в базе. Часто бывает, что у сотрудников с «текучкой» не установлена дата увольнения, из-за чего они продолжают учитываться системой как активные.
В конфигурации существует функция ПорогЗапрета в модуле РасчетЗарплатыДляНебольшихОрганизаций, которая возвращает значение 60. Ранее попытки изменить это значение напрямую в коде или константу РасчетЗарплатыДляНебольшихОрганизаций могли помочь, однако в последних версиях платформы и конфигурации 1С активно использует защиту модулей, что делает прямую правку невозможной или неэффективной.
Наиболее корректным способом снятия ограничения является создание расширения конфигурации. Это позволяет модифицировать поведение программы без изменения основного кода поставщика, что упрощает дальнейшее обновление конфигурации.
Для обхода ограничения необходимо внести изменения в процедуру ДокументыПередЗаписью общего модуля РасчетЗарплатыДляНебольшихОрганизацийСобытия. Вам потребуется перехватить вызов этой процедуры и изменить логику проверки:
Процедура ДокументыПередЗаписью(Источник, Отказ) Экспорт
Если НЕ Отказ И Источник.ЭтоНовый Тогда
ТекстИсключения = "";
Если НЕ ПолучитьФункциональнуюОпцию("РасчетЗарплатыДляНебольшихОрганизаций") Тогда
// Вместо принудительного отказа устанавливаем Ложь
Отказ = Ложь;
Иначе
УчетЗарплаты.ПроверитьВозможностьЗаписиДокумента(Источник, ТекстИсключения, Отказ);
КонецЕсли;
Если Отказ Тогда
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Прежде чем принимать решение о снятии программного ограничения, проанализируйте следующие риски:
1С:Бухгалтерии отсутствуют инструменты для глубокого анализа стажа, сложные графики работы и автоматическая отчетность по труду, что может привести к ошибкам в соответствии с трудовым законодательством.Если ваша компания динамично растет, наиболее правильным и безопасным путем будет переход на специализированное решение — 1С:Зарплата и управление персоналом. Это позволит не только избежать блокировок функционала, но и автоматизировать сложные расчеты в соответствии с актуальными требованиями законодательства.