1С:РМ Управление проектами КОРП. Паспортизация проектов
Паспортизация проектов в 1С:РМ Управление проектами КОРП — это не просто заполнение полей в карточке проекта. За кажущейся простотой скрывается механика, которая напрямую влияет на достоверность сводной отчётности, корректность цепочек поручений и работу с ролями. Большинство внедренцев ограничиваются настройкой реквизитов по инструкции и получают «мёртвые» паспорта, которые не синхронизируются с фактическим статусом проекта. Объясним, почему стандартный подход часто даёт сбой, и как этого избежать.
Контекст и ситуация: чем паспорт проекта отличается от карточки
В конфигурации 1С:РМ Управление проектами КОРП за паспортизацию отвечает справочник Проекты. Казалось бы, всё стандартно: определили набор реквизитов (стадия, бюджет, куратор, даты), заполнили — и паспорт готов. Но на практике возникает проблема: паспорт проекта перестаёт отражать реальное состояние дел уже через неделю после открытия. Причина — не в пользователях, а в неправильной настройке взаимосвязей реквизитов паспорта с бизнес-процессами и задачами.
Предупреждение: Паспорт проекта в РМ — это не статическая анкета, а динамический объект, состояние которого должно автоматически меняться при выполнении ключевых событий (закрытие этапа, изменение бюджета, завершение поручений). Если паспорт заполняется вручную и не привязан к механизмам исполнения, уже через месяц у вас будет 90% проектов со статусом «В работе» и просроченным бюджетом.
Технический разбор: механизм синхронизации реквизитов паспорта
Под капотом 1С:РМ использует объект Справочник.Проекты с предопределёнными реквизитами и набором дополнительных сведений через механизм Виды характеристик (БСП). Главная ловушка — не все реквизиты паспорта имеют встроенную связь с регистрами, в которых хранится фактическое выполнение (например, РегистрСведений.ФактическиеТрудозатраты или РегистрНакопления.БюджетПроекта).
Рассмотрим типовую ситуацию: настройка реквизита Стадия.
- Вариант А: «Стадия» — простой реквизит справочника. Заполняется вручную. Проблема: никто не обновляет его вовремя.
- Вариант Б: «Стадия» — реквизит, который должен вычисляться по набору выполненных этапов. Для этого нужен
РегистрСведений.ЭтапыПроектаи подписка на событиеПриЗаписидокументаЭтапПроекта.
Ниже — реальный код обработчика для автоматического обновления стадии:
Процедура ЭтапПроектаПриЗаписе(Источник, Отказ, РежимЗаписи)
// через реальный API ИТС: получаем ссылку на проект
Проект = Источник.Проект;
Если Не ЗначениеЗаполнено(Проект) Тогда
Возврат;
КонецЕсли;
// Определяем максимальную стадию среди всех этапов
Запрос = Новый Запрос(
"ВЫБРАТЬ МАКСИМУМ(ЭтапыПроекта.Стадия) КАК МаксСтадия
ИЗ РегистрСведений.ЭтапыПроекта КАК ЭтапыПроекта
ГДЕ ЭтапыПроекта.Проект = &Проект");
Запрос.УстановитьПараметр("Проект", Проект);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
НоваяСтадия = Выборка.МаксСтадия;
// Обновляем реквизит паспорта, если изменился
Если Проект.Стадия <> НоваяСтадия Тогда
СсылкаПроект = Проект.Ссылка;
ОбъектПроект = СсылкаПроект.ПолучитьОбъект();
ОбъектПроект.Стадия = НоваяСтадия;
ОбъектПроект.Записать(РежимЗаписи.Обновление);
КонецЕсли;
КонецПроцедуры
Главное: любое расхождение между данными паспорта и фактическими регистрами ведёт к тому, что сводная отчётность (диаграмма Ганта, бюджетный контроль) становится бесполезной. Паспорт должен быть не источником информации, а её отражением.
Сравнение подходов: ручное заполнение vs автоматическое ведение
Рассмотрим два сценария настройки паспортизации, различающиеся по сложности и эффекту.
| Критерий | Ручное заполнение (режим «только справочник») | Автоматическое ведение (связь с регистрами) |
|---|---|---|
| Скорость внедрения | 1-2 дня (добавить реквизиты, настроить формы) | 2-3 недели (разработка обработчиков, тестирование) |
| Достоверность данных | Низкая (зависит от дисциплины пользователей) | Высокая (автоматическая синхронизация) |
| Гибкость | Высокая (любое поле меняется вручную) | Средняя (требует доработки при изменении бизнес-логики) |
| Возможность аналитики | Низкая (отчёты строятся по «мёртвым» данным) | Высокая (факт и план совпадают) |
Как показывает практика, для компаний с числом проектов более 50 ручной вариант приводит к необходимости ежемесячного аудита паспортов, что нивелирует всю экономию на внедрении такого подхода.
Типичные ошибки при настройке автоматического обновления
- Отсутствие проверки прав. Процедура
Записать(РежимЗаписи.Обновление)выполняется от имени текущего пользователя. Если у пользователя нет прав на изменение проекта — будет исключение. Рекомендуется выполнять запись в фоновом задании с правами полных. - Рекурсивная запись. Если в обработчике
ПриЗаписеэтапа вы записываете проект, а у проекта есть подписка на событиеПриЗаписе, которая что-то делает с этапами, — получите бесконечный цикл. Нужно отключать подписки флагами. - Игнорирование производительности. При массовом изменении этапов (например, импорт из MS Project) каждый вызов
ПолучитьОбъект()+Записать()— это отдельная блокировка. Используйте пакетную запись черезТаблицаЗначенийиЗапрос.ВыполнитьПакет().
Практическое руководство: чек-лист правильной паспортизации
Внедрение паспортизации проектов, которая не потребует ежеквартальных «ручных» правок, должно включать следующие шаги:
- Шаг 1. Составьте матрицу реквизитов паспорта и укажите для каждого источник данных: вручную, рассчитывается по регистрам, устанавливается бизнес-процессом.
- Шаг 2. Для расчётных реквизитов создайте единую процедуру-пересчёт, вызываемую при записи любых связанных документов и регистров. Например, процедуру
ОбновитьПаспортПроекта(СсылкаПроект). - Шаг 3. Настройте фоновое задание с периодичностью 1 час для синхронизации «упавших» паспортов (если обработчик не выполнился из-за ошибок).
- Шаг 4. Добавьте в форму паспорта проекта условное оформление: если данные расходятся с регистрами — выделять красным.
- Шаг 5. Ограничьте ручное редактирование расчётных полей через установку
ТолькоПросмотрв форме.
Важно: Не пытайтесь автоматизировать всё сразу. Начните с трёх-четырёх ключевых реквизитов (стадия, отклонение по бюджету, статус завершённости поручений). Остальное можно оставить ручным до первой итерации стабилизации.
Что делать прямо сейчас
Проверьте, какой процент проектов в вашей базе имеет актуальное значение даты завершения, совпадающее с датой закрытия последнего этапа в регистре. Сделайте простой отчёт:
ВЫБРАТЬ
Проекты.Ссылка,
Проекты.ДатаОкончания КАК ПлановаяДата,
Макс(ЭтапыПроекта.ДатаОкончания) КАК ФактическаяДата
ИЗ Справочник.Проекты КАК Проекты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЭтапыПроекта КАК ЭтапыПроекта
ПО Проекты.Ссылка = ЭтапыПроекта.Проект
СГРУППИРОВАТЬ ПО
Проекты.Ссылка,
Проекты.ДатаОкончания
ИМЕЮЩИЕ
Проекты.ДатаОкончания <> Макс(ЭтапыПроекта.ДатаОкончания)
Если отчёт возвращает более 30% записей — паспортизация работает некорректно.
Выводы
Паспорт проекта в 1С:РМ Управление проектами КОРП — это не просто удобный список реквизитов, а мост между планированием и фактом. Без автоматической синхронизации с регистрами он превращается в мёртвый документ, который лишь создаёт иллюзию управляемости. Внедряйте паспортизацию с учётом динамики проектных данных, и вы получите реальный инструмент контроля, а не отчётность для галочки.
Рекомендуем прочитать в «1С Обозрение»: «Как не потерять данные при миграции проектов в РМ КОРП» и «Оптимизация фоновых заданий для расчёта бюджетов проектов».
Попробовать НОПик →