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