Хранилище конфигурации 1С: как не потерять доработки программиста при его увольнении
Расскажу историю, которая случается у клиентов раз в пару месяцев, я не преувеличиваю. Программист-фрилансер год дорабатывал 1С, всё работало, все были довольны. А потом он просто перестал отвечать на звонки. И выяснилось, что вся логика доработок жила только у него на ноутбуке.
Как обычно это выглядит на практике
У одного клиента, торговой компании на 18 человек, был программист Дима. Хороший, толковый, брал недорого — 25 тысяч в месяц за поддержку 1С:Управление торговлей. Полтора года он дописывал обработки, менял печатные формы, чинил обмен с сайтом. Работал удалённо, через RDP на сервер клиента, конфигурацию редактировал прямо в боевой базе.
А потом Дима поругался с заказчиком из-за задержки оплаты на две недели и пропал. Не ответил ни на звонок, ни на сообщение в Telegram. И тут выяснилось страшное: часть последних доработок он делал у себя локально, в тестовой копии базы, и синхронизировал вручную, когда вспоминал. Последняя синхронизация была за три недели до конфликта.
Три недели работы — коту под хвост. А ещё хуже: никто в компании не знал, что именно он менял и зачем. Документации ноль, комментариев в коде ноль. Пришлось нанимать нового программиста, который две недели просто разбирался, что где сломано, прежде чем начал что-то чинить. Счёт за это разбирательство, кстати, вышел больше, чем годовая зарплата Димы.
Хранилище конфигурации — это не бэкап и не облако
Тут важно разделить два понятия, которые директора обычно путают. Резервная копия базы данных — это снимок всей базы целиком, со всеми документами, остатками, справочниками. Хранилище конфигурации 1С — совсем другое. Это отдельная сущность, встроенная в платформу, которая версионирует именно код: модули, формы, отчёты, обработки, структуру метаданных.
Разница принципиальная. Бэкап базы вам скажет, что было на конец дня. Хранилище конфигурации скажет, кто, когда и что именно поменял в конкретной процедуре, покажет разницу построчно, и позволит откатить только один модуль, не трогая остальное. Без такого версионирования вы либо теряете историю правок целиком, либо откатываетесь на всю базу разом — вместе с новыми документами и продажами за последний месяц.
Механизм в 1С существует с незапамятных времён, платформа умеет это из коробки начиная примерно с версии 8.0. Проблема не в том, что технологии нет. Проблема в том, что 90 процентов небольших компаний, с которыми я сталкиваюсь, просто её не используют — потому что программист один, торопится, и настраивать хранилище кажется лишней бюрократией.
Почему единственная копия у фрилансера — бомба с часовым механизмом
Если доработку 1С ведёт один человек и вся история изменений живёт у него на компьютере — это не вопрос, случится ли катастрофа. Это вопрос, когда именно. Причины могут быть какие угодно: конфликт по деньгам, как в истории с Димой, переход к конкуренту, банальная поломка ноутбука, кража, пожар на съёмной квартире. Я видел все эти варианты за 15 лет в аутсорсинге.
Есть и более тихий сценарий, без скандала. Программист просто уходит на другой проект, отвечает всё реже, а через полгода вы понимаете, что нужный файл конфигурации он давно перезаписал новой версией для другого клиента. Ничего личного, он просто не думал, что вам это когда-нибудь понадобится.
И отдельная беда — юридические клиники и бухгалтерские фирмы, где доработки 1С завязаны на специфику учёта конкретной организации: нетиповые проводки, отраслевые отчёты для ФНС, интеграция с КриптоПро для отправки отчётности. Потерять такую логику — это не просто неудобство, это риск сорвать сдачу отчётности в срок и получить штраф.
Как должно быть устроено правильно
Первое и главное: хранилище конфигурации должно физически лежать на сервере компании, а не на компьютере исполнителя. Не важно, штатный это программист или фрилансер на удалёнке через RDP. Хранилище — это папка на файловом сервере или, что надёжнее, отдельная служба на Windows Server, к которой подключаются авторизованным пользователем.
Второе: у каждого, кто вносит правки, должна быть своя учётная запись в хранилище, а не общий логин админ. Тогда в истории видно не абстрактное «кто-то изменил модуль», а конкретно «Дима, 14 марта, изменил обработку Печать УПД, комментарий: добавлена подпись факсимиле». Это не паранойя, это элементарная трассируемость, которая экономит часы разбирательств при любом инциденте.
Третье — то, что часто забывают: хранилище конфигурации само по себе тоже нужно резервировать. Оно живёт в отдельных файлах на диске сервера, и если сервер накрылся без бэкапа, вы теряете всю историю разработки заодно с текущей базой. У нас для таких серверов стоит Veeam с ежедневным снятием копии, и отдельно — выгрузка истории хранилища раз в неделю на внешний носитель. Стоит это копейки по сравнению с ценой повторной разработки утраченного функционала.
Пошаговый план внедрения, если у вас пока хаос
Начните с ревизии: спросите у своего программиста прямым текстом, где физически лежит хранилище конфигурации и есть ли оно вообще. Если ответ «а зачем, я и так помню, что менял» — это тревожный звонок, останавливайте работу и требуйте настройку хранилища прежде, чем он тронет код дальше.
Дальше — техническая часть, которая делается за один рабочий день. Создаёте хранилище конфигурации через конфигуратор 1С на сервере компании, подключаете к нему текущую конфигурацию, заводите отдельного пользователя для каждого разработчика. Если программистов несколько, обязательно настройте захват объектов — чтобы два человека не правили одну и ту же форму одновременно и не затирали правки друг друга.
Дальше — дисциплина, а не техника. Каждое изменение фиксируется с комментарием: что именно поменяли и зачем. Звучит скучно, но именно это спасает, когда через год нужно понять, почему в отчёте по продажам появилась странная колонка и кто её добавил. У серьёзных компаний это дело идёт ещё дальше — конфигурацию выгружают в Git, чтобы получить полноценный контроль версий с ветками и pull request'ами, но для компании до 50 рабочих мест штатного хранилища 1С обычно вполне хватает.
Что делать, если программист уже увольняется на этой неделе
Если у вас пожар прямо сейчас — программист написал заявление, а хранилища как не было, так и нет — действуйте так. Первым делом заберите полный доступ: попросите выгрузку текущей конфигурации в файл cf и все внешние обработки, отчёты, печатные формы, которые он использовал в работе. Прямо сегодня, не после отработки двух недель.
Вторым шагом снимите резервную копию всей информационной базы целиком, включая конфигурацию — через штатное средство 1С «Выгрузить информационную базу» или через администрирование SQL, если база на Microsoft SQL Server. Это не заменяет хранилище, но фиксирует хотя бы текущее состояние на конкретный момент, и дальше есть от чего отталкиваться.
Третье — и это неприятно, но правильно: закажите независимый технический аудит того, что вообще было сделано. Мы делаем такое клиентам регулярно — берём выгруженную конфигурацию, сравниваем с типовой, документируем все доработки. Стоит это обычно от 15 до 40 тысяч рублей в зависимости от объёма правок, но зато следующий программист не будет две недели разбираться вслепую, а вы получите на руки документ, что именно у вас в системе нестандартного.
Сколько это стоит и почему это дешевле, чем кажется
Настройка хранилища конфигурации с нуля, с разграничением прав и первичной документацией доработок, у нас занимает от 4 до 8 часов работы специалиста — то есть в пределах 8-16 тысяч рублей разовых затрат при нашей ставке. Для сравнения: восстановление утраченной логики доработок после ухода единственного программиста у клиентов обходилось от 60 до 250 тысяч рублей, я считал по нашим же кейсам за последние три года.
Плюс к разовым затратам — минут пятнадцать в месяц на контроль: посмотреть историю изменений, убедиться, что комментарии заполняются, что бэкап хранилища действительно снимается. Это не требует отдельного айтишника в штате, это разумно делегировать на аутсорс вместе с обслуживанием сервера.
Отдельно скажу про психологию. Когда программист знает, что все его правки видны, прокомментированы и лежат на сервере компании, а не только у него в голове и на ноутбуке — это дисциплинирует. Пропадает соблазн вести хозяйство «как удобно мне», появляется ответственность. Работать с таким подрядчиком спокойнее, и, как ни странно, у меня ни разу не было, чтобы адекватный программист сопротивлялся настройке хранилища. Сопротивляются обычно те, кому есть что скрывать.
Частые вопросы
Хранилище конфигурации 1С — это платная функция?
Нет, это штатный механизм платформы 1С:Предприятие, отдельно за него платить не нужно. Нужен только сервер или папка в сети, доступная всем разработчикам, и немного времени на первичную настройку.
У нас всего один программист-фрилансер, есть ли смысл возиться с хранилищем?
Особенно есть, если программист один. Именно в этой ситуации риск потерять всю историю доработок максимален — резервироваться не на кого, второе мнение спросить не у кого. Хранилище тут не бюрократия, а страховка на случай его внезапного исчезновения.
Чем хранилище конфигурации отличается от резервной копии базы Veeam?
Veeam снимает копию всей информационной базы целиком со всеми документами и остатками на конкретный момент времени. Хранилище конфигурации версионирует только код и метаданные, показывает построчные изменения и позволяет откатить одну доработку, не трогая остальные данные. Нужны оба инструмента, они решают разные задачи.
Можно ли настроить хранилище конфигурации задним числом, если правки уже полгода велись без него?
Можно, но историю прошлых изменений это не восстановит — версионирование начнётся с текущего состояния конфигурации. Поэтому имеет смысл параллельно заказать документирование уже существующих доработок, чтобы зафиксировать хотя бы то, что есть сейчас.
Настроим хранилище конфигурации 1С и наведём порядок в доработках за один рабочий день — обращайтесь в «АйТи-Фреш».
Бесплатная консультация →
Подпишитесь на рассылку ITfresh
Раз в неделю — практические гайды для руководителя и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.
