Папка на сетевом диске — тоже система. Что мы узнали, пока делали программу для проектных бюро

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

Папка на сетевом диске — тоже система. Что мы узнали, пока делали программу для проектных бюро

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

Мы разрабатываем программу для архитектурных и проектных бюро. С самого начала мы исходили из того, что программа не должна менять привычный порядок работы бюро, то есть хранение проектов в папках на сетевом диске. В процессе разработки мы выявили ряд особенностей, которые неочевидны со стороны. В статье рассмотрены три из них; большая часть рекомендаций применима независимо от того, какими инструментами вы пользуетесь. В завершение — небольшое обращение к читателям.

1. Папки — это уже база данных

Бюро, которое ведёт деятельность более двух лет, как правило, хранит проекты в папках на сервере или сетевом хранилище. Обычно в начале названия папки указывается код, например «02-014 Жилой комплекс», а внутри размещаются договор, исходные данные, стадии и разделы. По сути, это и есть база данных проектов, только без интерфейса.

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

Мы приняли следующее решение: программа должна работать с папками, а не заменять их. Каждая папка в корневом каталоге считается проектом, код и название определяются по её имени. Даже текстовый файл со сведениями о проекте, например «инф.txt» с данными заказчика и номером договора, сохранённый в устаревшей кодировке Windows-1251, программа читает и редактирует на месте. Если программу удалить, папки останутся в исходном виде.

2. Ограничения работы с папками

Работать с папками удобно, пока проектов немного и их создаёт один сотрудник. С ростом бюро возникают три типичные проблемы.

Первая проблема — различная структура проектов. Один сотрудник размещает исходные данные в папке «01_Исходные», другой в папке «Исходка», третий не создаёт её вовсе. В результате поиск документов в чужом проекте занимает значительное время. Решением служит единое дерево папок, принятое для всех проектов: например, договор, исходные данные, стадии ЭП, П и Р с разделами внутри. Основная сложность заключается не в том, чтобы его разработать, а в том, чтобы контролировать его соблюдение. Эту проверку мы поручили программе.

Пример общего дерева папок, которое можно взять за основу 
Пример общего дерева папок, которое можно взять за основу 

Вторая проблема менее очевидна, однако её следует учитывать всем, кто хранит проекты на сервере. В Windows действует ограничение на длину пути к файлу, около 260 символов. Файлы с более длинным путём многие программы, включая Проводник, Office и CAD-системы, открывают некорректно либо не открывают вовсе; такие файлы также могут не копироваться и не архивироваться. Превысить ограничение проще, чем может показаться: адрес сетевой папки, название проекта, «06_Экспертиза и согласования», «Ответы на замечания государственной экспертизы по разделу архитектурные решения», и на имя самого файла почти не остаётся символов. Рекомендуем использовать короткие названия папок, а пояснения переносить в имя файла или в отдельный текстовый документ. Глубоко вложенные папки стоит проверять заранее, а не в день сдачи, когда архив для экспертизы не удаётся сформировать.

Каждая папка добавляет символы к пути, и 260 набираются незаметно 
Каждая папка добавляет символы к пути, и 260 набираются незаметно 
Проверка структуры: недостающие папки, файлы не по маске и слишком длинные пути 
Проверка структуры: недостающие папки, файлы не по маске и слишком длинные пути 

Третья проблема — та, с которой мы начали: что именно и кому было передано. Файлы в папке «Выпуск» регулярно редактируются и перезаписываются. Решить эту проблему помогает простое правило: всё, что передано за пределы бюро, следует копировать в отдельную папку с датой и номером выпуска и в дальнейшем не изменять. Рядом стоит сохранить опись с перечнем документов и указанием получателя. В этом случае ответить на вопрос заказчика можно за минуту. В нашей программе копия и опись формируются автоматически в момент выпуска, однако правило применимо и при ручной работе.

3. Почему нельзя работать вдвоём в одном файле

Во многих бюро на сетевом диске ведётся общая таблица проектов, сроков или выпусков. И нередко с ней возникает одна и та же проблема: сообщение «Файл заблокирован другим пользователем», а в худшем случае потеря чьих-либо изменений, если два сотрудника сохранили файл практически одновременно. Это не ошибка конкретного сотрудника: один файл не рассчитан на одновременную запись несколькими пользователями.

Решая эту задачу, мы пришли к простому принципу: у каждого файла должен быть один автор изменений. Каждый компьютер записывает изменения в собственный файл в общей папке, а остальные компьютеры эти файлы только читают. Если два сотрудника изменили одни и те же данные, сохраняется более позднее изменение. Сервер для этого не требуется, достаточно общей папки. Сервер нужен только сотрудникам, которые работают на строительной площадке или удалённо, при этом папки с чертежами через него не передаются: у каждого компьютера они свои.

Один файл — один автор изменений: так общая папка работает надёжно 
Один файл — один автор изменений: так общая папка работает надёжно 

Приведём пример из практики разработки. Номер выпуска (В-015, В-016) в бюро должен быть уникальным. Однако если два сотрудника работают без связи друг с другом, оба могут присвоить выпуску номер «В-015». Мы решили это следующим образом: пока номер не подтверждён, рядом с ним отображается звёздочка, а если два выпуска всё же получили один номер, более ранний его сохраняет, а более поздний автоматически получает следующий свободный. На всех компьютерах такой конфликт разрешается одинаково.

Зачем мы об этом рассказываем

Программа называется Lintela, и она находится на раннем этапе развития. Изложенные выше выводы основаны на разработке и тестировании на демонстрационных данных, а не на ежедневной работе бюро. Именно практического опыта нам сейчас и не хватает.

Поэтому мы ищем десять архитекторов и проектировщиков, которые будут использовать Lintela в своей работе и сообщать нам о том, что мешает. Других обязательств нет: ни отчётов, ни созвонов по графику. Взамен подписка, которая появится позднее, для вас лично не будет действовать никогда: программа останется бесплатной на любом вашем компьютере и в любой команде, где бы вы ни работали. На коллег это условие не распространяется. Кроме того, новые версии вы будете получать первыми, за одну-две недели до общего выпуска.

Если вам интересно участие, напишите на support@sepolar.ru с темой «Десятка Lintela». Достаточно нескольких строк: сколько сотрудников в бюро, где хранятся проекты и что сейчас вызывает наибольшие затруднения. Десять участников мы выберем сами и свяжемся с ними. Если в течение двух недель вы не получили ответа, значит, набор завершён. Сейчас программа работает на Windows и доступна всем бесплатно, ознакомиться с ней можно на lintela.sepolar.ru.

11