Как правильно оценить время на разработку внешней печатной формы в 1С:ЗУП 3.1

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

Разработка внешних печатных форм (ВПФ) — одна из самых частых задач при сопровождении конфигурации 1С:Зарплата и управление персоналом 3.1. На первый взгляд задача кажется тривиальной, однако разброс оценок от разных специалистов может составлять от 2 до 24 часов. В этой статье мы подробно разберем, из чего складывается время работы программиста, какие технические сложности могут возникнуть и как объективно оценить трудозатраты на создание качественного продукта.

Основные этапы разработки внешней печатной формы

Для того чтобы оценка была прозрачной, разделим процесс на логические блоки. Рассмотрим типичную ситуацию: необходимо создать печатную форму для документа «График отпусков», в которую нужно вывести данные о сотрудниках, периодах их отпуска и официальное название подразделения, хранящееся в дополнительных реквизитах.

  1. Подготовка каркаса по стандартам БСП. Современные конфигурации используют Библиотеку стандартных подсистем. Это значит, что обработка должна содержать строго определенные экспортные методы в модуле объекта.
  2. Разработка запроса к базе данных. Нам необходимо получить не только данные самого документа, но и связанные сведения из кадровых регистров и таблиц свойств.
  3. Создание макета (верстка). Самый трудоемкий этап, если требуется сложная визуализация, например, объединение ячеек по условию или специфическое форматирование.
  4. Тестирование на реальных данных. Проверка вывода при наличии совместителей, длинных ФИО и пустых значений.

Технические нюансы работы с 1С:ЗУП 3.1

Проанализируем, почему простая форма может занять больше времени, чем ожидалось. Одной из ключевых сложностей в ЗУП является работа с данными сотрудников. Разберем по шагам создание запроса для получения Дополнительных реквизитов подразделения.

В ЗУП 3.1 официальные наименования или другие специфические данные часто выносятся в «Дополнительные сведения и реквизиты». Для их получения в запросе нельзя просто обратиться к полю через точку. Нам потребуется соединение с таблицей ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения или использование программного интерфейса БСП.

Пример программного получения значения свойства, который может использоваться при выводе каждой строки макета:


ЗначениеСвойства = УправлениеСвойствами.ЗначениеСвойства(СсылкаНаОбъект, ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ОфициальноеНазвание"));

Однако для оптимизации работы печатной формы рекомендуется собирать все данные одним запросом. Посмотрим, как может выглядеть фрагмент запроса с использованием временных таблиц для получения доп. реквизита:


ВЫБРАТЬ
    СпрПодразделения.Ссылка КАК Подразделение,
    ДопРеквизиты.Значение КАК ОфициальноеНазвание
ИЗ
    Справочник.ПодразделенияОрганизаций КАК СпрПодразделения
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ДопРеквизиты
        ПО СпрПодразделения.Ссылка = ДопРеквизиты.Ссылка
ГДЕ
    ДопРеквизиты.Свойство = &СвойствоОфициальноеНазвание

Сложности верстки: объединение строк в макете

Типичная проблема, на которой «спотыкаются» начинающие разработчики, — это группировка данных в печатной форме. Например, если у одного сотрудника в графике указано несколько периодов отпуска, заказчик часто хочет видеть ФИО один раз в объединенной ячейке слева, а периоды — списком справа.

Разберем, почему это занимает время. В 1С ТабличныйДокумент не умеет автоматически объединять ячейки при выводе строк. Программисту приходится использовать методы Область.Присоединить() или вручную вычислять индексы строк для метода Область.Объединить(). Проанализируем алгоритм:

  1. Выводится первая строка с данными сотрудника.
  2. Запоминается номер первой строки.
  3. Выводятся последующие строки с периодами отпуска (только правая часть макета).
  4. После вывода всех периодов вызывается метод Область(НомерПервойСтроки, НомерКолонки, НомерПоследнейСтроки, НомерКолонки).Объединить().

Этот процесс требует тщательной отладки, чтобы границы ячеек и рамки таблицы не «поплыли» при печати.

Обоснование временных затрат (Оценка в часах)

Рассмотрим различные сценарии оценки, которые обсуждались экспертами сообщества:

Вариант 1: «Минимальный» (2–4 часа)
Подходит для опытного разработчика, у которого есть готовая библиотека шаблонов («рыб») для ВПФ. В это время входит написание запроса, набросок простого макета без сложной группировки и базовая регистрация в системе. Это время «чистого кодинга» без учета согласований.

Вариант 2: «Стандартный под ключ» (6–8 часов)
Это наиболее реалистичная оценка для качественной работы. Сюда закладывается:
- 1 час: Создание структуры ВПФ по стандартам БСП.
- 2 часа: Написание и отладка запроса (включая работу с доп. реквизитами).
- 3 часа: Верстка макета, настройка областей, объединение ячеек, проверка переносов строк.
- 1-2 часа: Тестирование, исправление мелких замечаний заказчика, установка в рабочую базу.

Вариант 3: «Сложный/Неопределенный» (12–24 часа)
Такая оценка возникает, если ТЗ представлено в виде «сделайте как на картинке», а данные в базе не подготовлены. Например, если нужно вычислять остатки отпусков на лету или склонять ФИО в разные падежи с использованием функций ФизическиеЛица.ФИОФизЛица(). Также время растет, если исполнитель тратит время на обучение (изучение структуры регистров ЗУП в процессе работы).

Как не переплатить и получить результат?

Выясним причины, по которым работа может затянуться. Если программист выставляет счет на 12 часов, но при этом в печатной форме не реализовано объединение строк или запрос работает медленно, это повод для детального технического аудита.

Рекомендации для постановки задачи:

Важно помнить, что работа через Библиотеку стандартных подсистем (БСП) — это обязательное требование для современных конфигураций. Использование устаревших методов может привести к тому, что печатная форма перестанет работать после первого же обновления программы. Поэтому качественная ВПФ не может стоить «слишком дешево», но и 12 часов для формы среднего уровня — это часто избыточная оценка, включающая в себя риски или низкую квалификацию исполнителя.

← На главную