При работе в программе 1С:Зарплата и управление персоналом 3.1 (ЗУП) пользователи часто сталкиваются с досадной ситуацией: в документе Перемещение в другое подразделение на вкладке «Дополнительно» присутствует поле «Основание перевода», но при выводе на печать унифицированной формы Т-5 эта графа остается пустой. В то же время в аналогичном документе Кадровый перевод всё работает корректно.
В данной статье мы подробно проанализируем ситуацию, выясним технические причины такого поведения программы и разберем по шагам все возможные варианты решения этой задачи.
Давайте разберем, почему стандартное редактирование макета печатной формы в пользовательском режиме (через раздел «Администрирование») не приносит результата. Многие пользователи пытаются добавить параметр РаботаОснованиеПеревода в макет Т-5, надеясь, что программа автоматически «подхватит» данные. Однако этого не происходит.
Проанализируем техническую сторону: в 1С:ЗУП за формирование печатных форм отвечает сложный программный механизм, использующий общие модули управления печатью. Для документа Кадровый перевод в программном коде (в модуле менеджера документа) явно прописан запрос к базе данных, который извлекает текст из поля «Основание» и передает его в макет. Для документа Перемещение в другое подразделение разработчики фирмы 1С такой запрос не реализовали. Программа просто «не видит» это поле в момент формирования печатной формы, поэтому, какой бы параметр вы ни прописали в макете, он останется пустым — в него нечего «вкладывать».
Рассмотрим логику разработчиков: документ Перемещение в другое подразделение изначально задумывался как упрощенный инструмент. Согласно Трудовому кодексу РФ (ст. 72.1), перемещение у того же работодателя в другое структурное подразделение, если оно не влечет за собой изменения условий трудового договора, не требует согласия работника и технически может не оформляться как полноценный перевод. Именно поэтому полная поддержка всех реквизитов формы Т-5 в этом документе ограничена.
Это самый простой и правильный путь с точки зрения методологии 1С. Если вам критически важно, чтобы форма Т-5 заполнялась автоматически и в полном объеме, рекомендуем отказаться от использования документа Перемещение в другое подразделение в пользу документа Кадровый перевод.
Выполним следующие действия:
Кадровый перевод.Если ваша организация уже ввела большое количество документов Перемещение в другое подразделение и переделывать их в «Кадровые переводы» слишком трудозатратно, рассмотрим вариант с подключением внешней печатной формы. Это позволяет изменить алгоритм печати, не снимая программу с поддержки.
Проанализируем, как это работает: программист создает обработку (файл .epf), которая содержит исправленный запрос к базе данных. В этом запросе указывается, что нужно брать данные из реквизита ОснованиеПеревода документа ПеремещениеВДругоеПодразделение.
Инструкция по подключению:
Перемещение в другое подразделение.Теперь в кнопке «Печать» документа появится новый пункт, который будет корректно заполнять основание.
Если вы обладаете навыками программирования или у вас есть штатный специалист, можно исправить ситуацию с помощью расширения. Мы проанализируем примерный алгоритм того, что нужно изменить в программном коде.
Основная задача — перехватить процедуру сбора данных для печати. Обычно это делается в модуле менеджера документа. Нам нужно добавить реквизит ОснованиеПеревода в структуру данных, которая передается в макет.
Посмотрим на пример кода, который может быть использован в расширении:
&После("СформироватьДанныеДляПечатиТ5")
Процедура ИсправитьОснованиеДляПеремещения(ПараметрыПечати, ДанныеДляПечати)
Для Каждого СтрокаДанных Из ДанныеДляПечати Цикл
// Проверяем, если это наше перемещение, и поле пустое
Если ТипЗнч(СтрокаДанных.Ссылка) = Тип("ДокументСсылка.ПеремещениеВДругоеПодразделение") Тогда
СтрокаДанных.РаботаОснованиеПеревода = СтрокаДанных.Ссылка.ОснованиеПеревода;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Использование &После или &Вместо в расширении позволяет точечно добавить недостающие данные в структуру ДанныеДляПечати, которую затем успешно обработает стандартный макет.
Если же проблема наблюдается и в Кадровом переводе (как отмечали некоторые пользователи в обсуждении), то здесь действительно может помочь работа с макетом в пользовательском режиме. Выясним, как проверить настройки макета.
Пройдем по шагам:
{РаботаОснованиеПеревода}.Важное уточнение: этот метод поможет только для Кадрового перевода. Для Перемещения он бесполезен без правок кода, описанных выше.
Мы выяснили, что отсутствие «Основания перевода» в печатной форме документа Перемещение в другое подразделение — это не случайная ошибка в макете, а архитектурная особенность программы 1С:ЗУП 3.1. Данные просто не передаются программным кодом в печатную форму.
Проанализировав ситуацию, мы можем дать следующие рекомендации:
Кадровый перевод. Это решит проблему раз и навсегда без привлечения программистов.Выбор метода зависит от ваших технических возможностей и объема вводимых данных. Надеемся, что этот разбор помог вам разобраться в тонкостях работы с формами Т-5!