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