Вопросы к вам
Отвечать письменно не нужно - это список того, что я бы уточнил на старте. Отсортирован по силе влияния: первые четыре меняют модель данных, остальные - правила и интерфейс. Дальше в документе я отвечаю на них сам, чтобы работа не стояла.
- Что для вас является достаточным подтверждением согласия клиента: устного подтверждения по телефону с фиксацией сотрудником хватает, или нужна подпись либо код из СМС? Отсюда следует, нужен ли клиенту отдельный интерфейс и храним ли мы доказательство согласия, а не только запись о нём.
- Есть ли порог, ниже которого доработку можно делать без отдельного согласования - скажем, до определённой суммы или процента от исходной сметы? Кто этот порог устанавливает? Если порога нет, каждая мелочь останавливает ремонт, и процесс начнут обходить мимо системы.
- Клиент решает по каждой позиции или по предложению целиком? Может ли он согласовать работу, но отказаться от запчасти, без которой она невозможна? Определяет, нужна ли связка позиций и на каком уровне живёт статус.
- Откуда берётся цена: есть ли в системе прайс нормо-часов и запчастей, или мастер вводит суммы руками? Что делать, если закупочная цена изменилась уже после согласования? Определяет, храним ли мы снимок цены в позиции или ссылку на справочник.
- Какие каналы связи с клиентом используются сейчас и какой из них основной: звонок, СМС, мессенджер, личный кабинет?
- Что делать, если клиент не отвечает, а машина занимает подъёмник: есть ли правило эскалации, платного хранения или право руководителя решить самостоятельно?
- Нужна ли интеграция со складом и 1С, и считается ли резерв запчасти частью согласования или отдельным шагом?
- Система должна технически запрещать механику делать несогласованные работы, или достаточно фиксировать нарушение и уведомлять руководителя?
- Сколько раз можно пересогласовывать одно предложение? Ведём версии или каждая попытка - отдельный документ?
- Кто вправе дать скидку или списать позицию, и проходит ли это через тот же процесс?
- Нужна ли печатная форма дополнительного соглашения к заказ-наряду и как она нумеруется?
- Новый срок считает система по нормо-часам и срокам поставки, или мастер ставит дату вручную?
На чём построено решение
Ответов пока нет, поэтому фиксирую собственные решения - всё дальнейшее опирается на них. В скобках указано, что придётся переделать, если у вас принято иначе.
- 1Решение принимается по каждой позиции. Поэтому статус живёт и на предложении, и на позиции: статус предложения - производный. Если согласование только целиком, половина логики уходит.
- 2Позиции собираются в пакеты. Работа и запчасти, без которых она невозможна, согласуются вместе: нельзя согласовать замену дисков и отказаться от самих дисков. Влияет на интерфейс и проверки.
- 3Достаточно зафиксировать факт согласия. Храним канал, сотрудника, точное время, дословный комментарий и снимок состава. Подпись и код из СМС - за рамками первой версии, но модель данных к ним готова.
- 4Цена фиксируется снимком. При формировании предложения цена копируется в позицию. Позднее изменение прайса не меняет согласованную сумму: клиент согласовал конкретные цифры.
- 5Предложение версионируется. После отправки правка запрещена, любое изменение создаёт версию +1, прежняя помечается заменённой. Так история остаётся читаемой.
- 6Запчасти резервируются в момент согласования. Раньше - нельзя, иначе остаток блокируется под несогласованные заказы. Наличие проверяется дважды: при формировании и при согласовании.
- 7Запрет на работы до согласования - мягкий. Перевести позицию в работу нельзя, но если она всё же отмечена выполненной, создаётся инцидент и уведомление руководителю. Жёсткую блокировку в сервисе обходят, инцидент - нет.
- 8Один активный черновик на заказ-наряд. Новые находки добавляются в текущее предложение, пока оно не отправлено. После отправки создаётся следующее по номеру.
- 9Срок считает система, мастер может переопределить. Расчёт по сумме нормо-часов и максимальному сроку поставки; ручное значение требует комментария и попадает в историю.
- 10Роли - как в задании: механик, мастер-приёмщик, кассир, руководитель. Отдельной роли оператора нет, её функции у мастера-приёмщика.
Как идёт процесс
Процесс разделён на две зоны ответственности: техническую - механик находит и обосновывает, и коммерческую - мастер-приёмщик оценивает, говорит с клиентом и фиксирует решение. Разделение нужно, чтобы механик не назначал цены, а мастер не выдумывал неисправности.
Схема 1. Путь предложения от находки механика до документов.
Что происходит на каждом шаге
- Находка. Механик фиксирует неисправность, прикладывает фото или замер. Без обоснования предложение не уйдёт дальше - это защита от «на всякий случай заменим».
- Формирование. Работы подтягиваются из справочника с нормо-часами, запчасти - из каталога с проверкой остатка. Позиции группируются в пакеты.
- Передача клиенту. Мастер выбирает канал и отправляет. Отправка замораживает состав и цены.
- Решение. По каждому пакету: согласовано, отклонено или ждём. Частичное согласование - обычный случай, а не исключение.
- Фиксация. Пишется кто зафиксировал, когда, каким способом и что именно сказал клиент.
- Передача в работу. В наряде механика появляются только согласованные позиции.
- Пересчёт. Смета и срок обновляются, обе величины хранятся как «было» и «стало».
- Документы. Согласованное идёт в акт и счёт, отклонённое - в перечень рекомендаций.
Решения, на которых держится процесс
Отправка - точка невозврата. До неё правим свободно, после - только новой версией. Иначе нечем подтвердить, с чем именно согласился клиент.
Отказ тоже результат. Отклонённые позиции не удаляются, а остаются рекомендациями: при следующем визите видно, что замену наконечников предлагали полгода назад.
Срок пересчитывается вместе с ценой. Частая ошибка - согласовать деньги и забыть про дату выдачи. Если срок вырос, система требует отдельной отметки, что клиент об этом знает.
Молчание - не тупик. Через заданное время предложение уходит руководителю, а машина попадает в отчёт по занятым постам.
Кто что может делать
| Действие | Механик | Мастер-приёмщик | Кассир | Руководитель | В историю |
|---|---|---|---|---|---|
| Создать черновик предложения | да | да | нет | да | да |
| Добавить и удалить позицию в черновике | да | да | нет | да | да |
| Проставить или изменить цену | нет | да | нет | да | да, со старым значением |
| Отправить предложение клиенту | нет | да | нет | да | да, с каналом |
| Зафиксировать решение клиента | нет | да | нет | да | да, обязательно |
| Разрешить выполнение работ | нет | автоматически по согласованию | нет | вручную, с обоснованием | да |
| Отменить или изменить принятое решение | нет | до начала работ | нет | да, всегда | да, с причиной |
| Отметить работу выполненной | да | да | нет | да | да |
| Принять оплату по изменённой смете | нет | нет | да | да | да |
| Видеть историю и расхождение «было - стало» | свои позиции | да | итоги | да | - |
| Удалить предложение или запись истории | запрещено | запрещено | запрещено | запрещено | - |
Запрещено всем без исключения
- Удалять отправленное предложение, решение клиента или запись истории - только отмена с причиной.
- Менять состав и цены после отправки без создания новой версии.
- Переводить в выполнение позицию, по которой нет согласования.
- Фиксировать решение задним числом: время ставит система.
- Принимать оплату, пока есть позиции без решения.
Что обязательно попадает в историю
- Создание, изменение состава и цены - со старым и новым значением.
- Отправка клиенту: канал, время, кто отправил, номер версии.
- Решение по каждой позиции: кто зафиксировал, когда, каким способом, комментарий.
- Пересчёт сметы и срока: было и стало.
- Отмена решения, отзыв согласования, ручное разрешение работ руководителем.
- Попытка запрещённого действия - как инцидент, а не как ошибка интерфейса.
Статусы и переходы
Статусов два уровня. На позиции - решение клиента, на предложении - общий итог. Иначе частичное согласование не описать честно: статус «согласовано частично» не говорит, что именно разрешено делать, а статус позиции говорит.
Уровень предложенияожидает согласована отклонена снята сотрудником в работе выполнена нет запчасти
Схема 2. Статусы предложения по стадиям; под каждым - куда из него можно перейти.
Правила, которые легко упустить
- Из
ОТПРАВЛЕНО_КЛИЕНТУнельзя вернуться вЧЕРНОВИК: только новая версия или отмена. Иначе теряется доказательство того, что видел клиент. ОТОЗВАНОдоступно, пока ни одна позиция не начата. Если работы начаты, отзыв применяется только к неначатым.- Позиция может стать невыполнимой из-за отсутствия запчасти уже после согласования - это не отказ клиента и требует отдельного решения, а не тихого удаления.
- Предложение не может быть
ВЫПОЛНЕНО, пока есть позиции без решения: касса заблокирована до их закрытия.
Сложные ситуации
Десять ситуаций из задания и две, которые добавил от себя - обе встречаются в сервисе регулярно.
01Клиент согласовал только часть
Обычный сценарий, а не ошибка. Предложение получает статус «согласовано частично», разрешённые пакеты уходят в работу, отклонённые остаются рекомендациями. Смета пересчитывается только по согласованному.
02После согласования изменилась стоимость
Согласованная сумма неизменна: цена зафиксирована в позиции. Если поставщик поднял цену, создаётся новое предложение на разницу с отдельным согласованием. Без согласия клиента разница в счёт не попадает, но расхождение видно руководителю.
03Нужной запчасти нет на складе
Наличие проверяется дважды: при формировании и при согласовании. Если запчасть пропала между этими точками, пакет помечается невыполнимым, мастер получает задачу и предлагает аналог или новый срок. Работа из этого пакета в наряд не попадает.
04Клиент согласовал, потом передумал
Работы не начаты - отзыв, позиции уходят в отклонённые, резерв снимается. Начаты - отзыв применяется только к неначатым, по начатым фиксируется фактический объём и он остаётся к оплате, а клиент получает уведомление о том, что уже сделано.
05Мастер добавил неправильную позицию
До отправки - удаляется, запись об удалении остаётся. После отправки - создаётся версия +1, клиент видит исправленное предложение. Если ошибку заметили после согласования, позиция снимается с обязательной причиной и в счёт не идёт.
06Двое одновременно правят предложение
Блокировка по номеру версии: при сохранении сравнивается версия, с которой начинали. При расхождении изменения не теряются - второй сотрудник видит, что именно изменилось, и подтверждает слияние. На карточке видно, кто ещё её открыл.
07Работы начали до согласования
Перевести позицию в работу без согласования система не даст. Если факт всплыл позже, создаётся инцидент с уведомлением руководителю, позиция помечается как выполненная без согласования и автоматически в счёт не попадает - решение принимает руководитель.
08Клиент не отвечает
Через контрольное время (по умолчанию 2 часа рабочего дня) предложение уходит в «просрочено», мастер получает напоминание, руководитель видит машину в отчёте по простою постов. Ремонт продолжается в объёме исходного согласования. Вариант «делать без ответа» недоступен.
09Согласование получено по телефону
Основной канал в жизни. Мастер отмечает способ «телефон», обязательно вносит дословную формулировку клиента, время ставит система. Плюс автоматическое дублирование в СМС: «вы согласовали работы на сумму X, срок сдвигается на Y» - дешёвая защита в спорной ситуации.
10После начала работ нашли ещё неисправности
Создаётся следующее предложение по тому же заказ-наряду, нумерация сквозная: доп. 1, доп. 2. Предыдущее согласование не затрагивается. В карточке видна вся цепочка и суммарное отклонение от первоначальной сметы.
11добавлено мнойСогласование принял один мастер, смену принял другой
Решение привязано к сотруднику, который его зафиксировал, а не к текущей смене. Принимающий смену видит, кто и когда зафиксировал, и может связаться с ним. Переоформить решение на себя нельзя.
12добавлено мнойМашина юрлица, решение принимает не водитель
У корпоративного клиента согласующее лицо часто не тот, кто пригнал машину. В карточке клиента хранится, кто вправе согласовывать и до какой суммы; при превышении система требует подтверждения от ответственного лица.
Требования и критерии приёмки
Критерии написаны так, чтобы их можно было проверить руками при приёмке: конкретное состояние, конкретное действие, конкретный результат.
ФТ-1Формирование предложения
Механик фиксирует найденную неисправность, чтобы мастер передал её клиенту.
Если заказ-наряд в статусе «в ремонте»
Когда механик добавляет работу из справочника и связанные запчасти
То создаётся черновик, подтягиваются нормо-часы и остаток на складе, а без обоснования предложение отправить нельзя.
ФТ-2Заморозка состава при отправке
Если предложение подготовлено
Когда мастер нажимает «Отправить клиенту»
То фиксируется снимок состава и цен, редактирование блокируется, записываются канал и время, запускается таймер ожидания.
ФТ-3Фиксация решения по позициям
Если предложение отправлено клиенту
Когда мастер отмечает решение по каждому пакету и указывает способ получения
То для способа «телефон» требуется комментарий, сохраняются автор и время, пересчитывается статус предложения, а сохранить решение с незакрытым пакетом нельзя.
ФТ-4Передача разрешённого в работу
Если есть согласованные позиции
Когда решение сохранено
То они появляются в наряде механика с пометкой «разрешено», отклонённые не появляются вовсе, запчасти резервируются.
ФТ-5Пересчёт сметы и срока
Если решение сохранено
Когда система пересчитывает итог
То показываются первоначальная сумма, разница и новая сумма, прежний и новый срок выдачи; при росте срока требуется отметка, что клиент уведомлён.
ФТ-6Блокировка несогласованных работ
Если позиция не согласована
Когда механик пытается взять её в работу
То система отказывает с понятным сообщением, а попытка записывается в историю.
ФТ-7Одновременное редактирование
Если двое открыли одно предложение
Когда второй сохраняет изменения поверх изменившейся версии
То показывается расхождение по позициям и требуется подтверждение, изменения первого не затираются.
ФТ-8Разбор для руководителя
Если по заказ-наряду были дополнительные согласования
Когда руководитель открывает историю
То он видит хронологию: версии, кто и когда отправил, решение по каждой позиции со способом и комментарием, пересчёт «было - стало» по сумме и сроку.
ФТ-9Блокировка кассы
Если есть позиции без решения
Когда кассир пытается закрыть заказ-наряд к оплате
То оплата не проводится и показывается список позиций, по которым решения нет.
ФТ-10Документы
Если согласованные работы выполнены
Когда формируются акт и счёт
То согласованные позиции входят в документы с номером дополнительного согласования, отклонённые печатаются отдельным блоком рекомендаций.
Какие данные хранить
Центральная сущность - версия предложения, к ней привязано всё остальное. Решение хранится по позициям, а не одним полем: иначе частичное согласование невозможно восстановить.
| Сущность | Ключевые поля | Связи |
|---|---|---|
| Заказ-наряд | номер, автомобиль, клиент, мастер, статус, первоначальные сумма и срок, текущие сумма и срок | один клиент, один автомобиль, много предложений |
| Предложение допработ | номер, версия, статус, автор, кто отправил, канал, время отправки, контрольное время ответа, сумма, изменение срока | принадлежит заказ-наряду, содержит пакеты, имеет одно решение |
| Пакет позиций | наименование, признак обязательной связки, решение по пакету | принадлежит предложению, содержит позиции |
| Позиция | тип (работа или запчасть), ссылка на справочник, наименование-снимок, количество или нормо-часы, цена-снимок, сумма, статус, причина снятия | принадлежит пакету, ссылается на справочник |
| Справочник работ | код, наименование, нормо-часы, стоимость нормо-часа | источник для позиций |
| Справочник запчастей | артикул, наименование, цена, остаток, срок поставки | источник для позиций |
| Решение клиента | время, способ, сотрудник-фиксатор, комментарий, кто согласовал со стороны клиента | относится к предложению, детализируется решениями по позициям |
| Решение по позиции | позиция, результат, время | связывает решение и позицию |
| Резерв склада | позиция, количество, статус резерва, время | создаётся при согласовании |
| Событие истории | объект, тип события, сотрудник, время, значение до и после, комментарий | ссылается на любой объект, только добавление |
| Инцидент | тип, объект, кто создал, статус разбора | ссылается на заказ-наряд и позицию |
Как связаны сущности
- Заказ-наряд содержит много предложений (доп. 1, доп. 2 и далее) и накапливает события истории и инциденты.
- Предложение состоит из пакетов, пакет - из позиций. Позиция бывает работой или запчастью и хранит снимок из справочника.
- У предложения одно решение клиента, и оно детализируется решениями по каждой позиции - отсюда берётся частичное согласование.
- Резерв склада привязан к позиции и создаётся в момент согласования, не раньше.
- Событие истории ссылается на любой объект процесса и только добавляется - редактировать и удалять записи нельзя.
Почему снимок, а не ссылка
Наименование и цена копируются в позицию в момент формирования. Если через месяц в справочнике изменится стоимость нормо-часа, документ месячной давности не должен поменяться задним числом. Ссылка на справочник тоже хранится - для аналитики и повторного заказа.
Как выглядит экран
Ключевой экран - карточка дополнительных работ, рабочее место мастера-приёмщика в момент разговора с клиентом.
| Позиция | Артикул / код | Кол-во | Цена | Сумма |
|---|---|---|---|---|
| Замена тормозных дисков передних | R-0412 | 1,4 н/ч | 1 200 | 1 680 |
| Диск тормозной передний | 43512-33140 | 2 шт | 4 100 | 8 200 |
| Позиция | Артикул / код | Кол-во | Цена | Сумма |
|---|---|---|---|---|
| Замена наконечника рулевой тяги | R-0870 | 0,8 н/ч | 1 200 | 960 |
| Наконечник рулевой тяги | 45046-09630 | 2 шт | 2 280 | 4 560 |
| Позиция | Артикул / код | Кол-во | Цена | Сумма |
|---|---|---|---|---|
| Замена фильтра салона | R-0150 | 0,3 н/ч | 1 200 | 360 |
| Фильтр салонный угольный | 87139-07010 | 1 шт | 1 280 | 1 280 |
- 18.09 11:24Решение по пакету 1: согласовано. Телефон, Петров И. С.
- 18.09 10:42Отправлено клиенту, СМС. Версия 2, состав заморожен
- 18.09 10:38Версия 2: удалён пакет «Замена стоек стабилизатора» - добавлен ошибочно
- 18.09 09:15Цена диска изменена 3 900 → 4 100. Петров И. С.
- 18.09 08:50Черновик создан. Механик Ильин Д. А., фото износа приложено
Почему экран устроен так
- Мастер отмечает решения прямо во время телефонного разговора, поэтому решение - один клик на пакет, без отдельной формы.
- Три суммы видны одновременно: было, предложено, стало. Это первое, что спрашивают и клиент, и руководитель.
- Срок стоит рядом с деньгами: забытый сдвиг даты даёт половину конфликтов на выдаче.
- История рядом, а не в отдельной вкладке - спорную ситуацию разбирают не выходя из карточки.
- Связка «работа и запчасть только вместе» подписана явно, чтобы мастер не пообещал невозможного.
Состояния и ограничения
- Кнопка фиксации недоступна, пока хоть один пакет в состоянии «ожидает».
- Для способа «телефон» комментарий обязателен, без него сохранение не проходит.
- После фиксации таблица переходит в режим чтения; изменить решение может только руководитель, и это отдельное событие в истории.
- Если по позиции пропал остаток, пакет подсвечивается и решение по нему блокируется до выбора аналога.
Как работал с ИИ
Использовал Claude как инструмент проектирования: черновики структуры, проверка модели на полноту, вычитка. Решения принимал сам и за результат отвечаю сам - ниже что отдавал, что взял и что забраковал.
Что отдавал ИИ
- Черновой список вопросов с требованием бить в спорные места, а не в общие слова.
- Первый вариант модели статусов и проверку её на десяти ситуациях из задания.
- Матрицу ролей и прав в виде таблицы.
- Приведение критериев приёмки к единому формату.
Что делал сам
- Решение о двухуровневых статусах и пакетах связанных позиций.
- Снимок цены вместо ссылки на справочник.
- Мягкая блокировка работ вместо жёсткой, с инцидентом.
- Макет экрана: состав, приоритет блоков, вёрстка.
- Проверка на противоречия и финальная редактура.
Промпт 1Список вопросов
«Вот тестовое задание по согласованию дополнительных работ в автосервисе. Составь вопросы, которые вскрывают спорные места бизнес-логики. Никаких общих вопросов про сроки и бюджет. Минимум половина - про юридическую фиксацию согласия клиента и про деньги. По каждому поясни, что именно в архитектуре меняет ответ.»
Что вышло: 20 вопросов, из них 8 общих. Оставил 12, переписал формулировки под конкретику, добавил вопрос про порог мелких доработок - его в выдаче не было, а он снимает главную боль процесса.
Промпт 2Проверка модели статусов
«Вот моя модель статусов предложения: [список]. Прогони по ней десять ситуаций из задания и покажи, какие модель не покрывает или покрывает криво. Не переписывай модель целиком, покажи дырки.»
Что вышло: нашлись две реальные дыры - «клиент передумал после согласования» некуда было положить, и одновременное редактирование модель не описывала вообще. Добавил статус «отозвано» и блокировку по версии. Третью «дыру» про уведомления отклонил: это не статус, а следствие перехода.
Промпт 3Модель данных
«Собери таблицу сущностей: поля и связи. Учти, что решение клиента принимается по позициям, а цены не должны меняться задним числом при изменении справочника.»
Что вышло: первая версия хранила цену ссылкой на справочник - отклонил, заменил снимком в позиции. Убрал предложенное поле «итоговый статус» на заказ-наряде: оно дублировало агрегат и разъехалось бы с позициями при первой же отмене.
Промпт 4Критерии приёмки
«Переведи требования в формат если / когда / то. Каждый критерий должен быть проверяемым: конкретное состояние системы и конкретный результат, без слов „корректно“ и „удобно“.»
Что вышло: взял почти целиком, поправил четыре формулировки с непроверяемым результатом вроде «система должна корректно пересчитать» - заменил на то, что именно показывается и что блокируется.
Как проверял результат
- Прогнал все двенадцать ситуаций по итоговой схеме статусов вручную: у каждой должно быть конечное состояние, предложение нигде не зависает.
- Сверил разделы между собой: каждая роль встречается в требованиях, каждый статус достижим переходом, каждое поле модели используется в требовании или на экране.
- Проверил арифметику в прототипе: три пакета, шесть позиций, суммы сходятся с итогами и пересчитываются при смене решения.
- Вычистил непроверяемые формулировки - «удобно», «корректно», «быстро».
Где ИИ ошибался
- Избыточность: предлагал 20 вопросов и 15 статусов там, где рабочая модель - 12 и 12. Лишний статус выглядит солидно, но это ветка в коде и строка в тестах.
- Не чувствует организационную реальность: предлагал жёсткие запреты там, где сотрудники их обойдут. Когда машина на подъёмнике, а клиент не берёт трубку, жёсткий запрет приводит к работе мимо системы.
- Упускает денежные последствия: цена ссылкой на справочник выглядит нормально, пока не выяснится, что документ прошлого месяца меняется задним числом.
Сроки, стоимость и условия
- Затрачено времени2 часа 40 минут: разбор задачи и вопросы - 40 минут, процесс, статусы и данные - час, макет экрана - 40 минут, сборка и вычитка - 20 минут.
- Что сам, что с ИИСам: архитектурные решения - двухуровневые статусы, пакеты позиций, снимок цены, мягкая блокировка; макет экрана; проверка на противоречия; редактура. С ИИ: черновики списков, проверка модели на полноту, единый формат критериев. Всё, что выдал ИИ, проверял и правил - подробности в разделе 10.
- Что проработал бы дополнительноУведомления клиента и шаблоны сообщений по каналам; интеграцию со складом и 1С, включая резервы и поставку под заказ; права согласования у клиентов-юрлиц; печатные формы дополнительного соглашения; отчёт по отклонению от первоначальной сметы в разрезе мастеров; работу мастера с телефона в цехе.
- Срок полной реализации2 недели10 рабочих дней после знакомства с проектом. Первые 2 дня - разбор кода и ответы на вопросы из раздела 1, дальше серверная часть и интерфейс параллельно, последние 2 дня - тестирование и правки.
- Ориентировочная стоимость100 000 ₽Фиксированная цена за описанный объём, а не почасовая ставка.
- Что входит в стоимостьАнализ и уточнение требований, проектирование модели данных и статусов, интерфейс экрана дополнительных работ, серверная часть и интеграция с существующим заказ-нарядом, история изменений и права ролей, тестирование, исправление замечаний по итогам приёмки и запуск на вашем окружении.
- Что может повлиять на срок и стоимостьСостояние существующего кода и наличие документации; интеграция со складом и 1С - это отдельный объём; требование юридически значимого подтверждения согласия (подпись, код из СМС) - плюс примерно неделя; личный кабинет клиента для самостоятельного согласования - отдельная задача; скорость ответов по вопросам из раздела 1 и доступ к тестовому стенду.
- Проектная работаДа, готов. Оформление через ИП, договор и закрывающие документы предоставлю.
- Загрузка40 часов в неделюПри необходимости больше, включая вечера и выходные. График гибкий.
- Готовность приступитьСразуВ день подтверждения договорённостей.