Как доработать типовую конфигурацию 1С и не потерять обновления
Содержание
Конфигурацию 1С меняют в Конфигураторе: меню Конфигурация → Открыть конфигурацию, дальше правка объектов в дереве метаданных и сохранение в базу. Но сначала решите, как именно менять. Для типовой «Бухгалтерии», ЗУП или УТ правильный путь в большинстве случаев — расширение конфигурации
: типовой код остаётся нетронутым, а ваши доработки живут отдельно и переживают обновления.
Правка самой типовой конфигурации возможна, но требует снять объект с поддержки. После этого каждое обновление превращается в ручное объединение изменений. Ниже — что считается изменением, чем его делать, как это пройти по шагам и что делать при обновлении.
Что такое конфигурация и что в ней можно менять
Конфигурация — это «программа» внутри информационной базы: справочники, документы, регистры, отчёты, формы, модули с кодом на встроенном языке. Данные (контрагенты, проводки, остатки) хранятся рядом, но конфигурацией не являются. Платформа 1С:Предприятие одна, а конфигурации на ней — разные: Бухгалтерия предприятия, ЗУП, Управление торговлей и так далее.
Менять можно практически всё, что видно в дереве метаданных:
- 📄 структуру данных — добавить реквизит в документ или справочник, создать новый регистр;
- 🖼 формы — переставить поля, скрыть лишнее, добавить кнопку;
- 🖨 печатные формы — свой макет счёта, акта, накладной;
- 📊 отчёты — новая настройка компоновки данных или полностью свой отчёт;
- ⚙ логику — проверки при проведении, заполнение по умолчанию, обмены.
Не любая «настройка» — это изменение конфигурации. Включить функциональную опцию, поменять учётную политику, добавить пользователя или настроить права — это работа в режиме «1С:Предприятие», конфигурация остаётся прежней. Если задачу можно решить настройками, решайте ими.
Способы доработки: от безопасного к рискованному
Способы отличаются тем, что происходит с типовым кодом и что будет при обновлении.
| Способ | Что меняется | Что будет при обновлении | Риск |
|---|---|---|---|
| Настройки в режиме «1С:Предприятие» | Ничего в конфигурации | Сохраняются | Минимальный |
| Расширение конфигурации | Типовая конфигурация не затрагивается, доработки хранятся в расширении | Расширение подключается заново, обычно нужна проверка совместимости | Низкий |
| Правка типовой конфигурации | Объекты поставщика меняются прямо в конфигурации | Нужно объединять свои правки с новым релизом | Высокий |
| Собственная конфигурация | Вы владеете всем кодом | Обновления ведёте сами | Зависит от команды |
Расширение вместо правки типового кода
В расширении вы заимствуете нужный объект (например, форму документа) и описываете, что изменить. Можно добавить реквизит, поменять форму, перехватить процедуру до или после типовой. Сам типовой модуль не трогается.
Расширения создаются в Конфигураторе: Конфигурация → Расширения конфигурации. Там же их можно выгрузить в файл .cfe и загрузить в другую базу. Это удобно для переноса из тестовой копии в рабочую.
Оговорка: расширение не всесильно. Вы не сможете переписать произвольный кусок типового модуля так, как правите его напрямую. Зато откат тривиален — расширение отключается или удаляется, и база возвращается к типовому состоянию.
Правка типовой конфигурации и снятие с поддержки
Типовая конфигурация стоит «на поддержке»: платформа знает, какие объекты принадлежат поставщику, и по умолчанию запрещает их менять. Режим настраивается в меню Конфигурация → Поддержка → Настройка поддержки. У объекта три состояния:
- Не редактируется — объект защищён, менять нельзя.
- Редактируется с сохранением поддержки — можно менять, при обновлении платформа попытается объединить ваши правки с релизом.
- Снят с поддержки — связь с поставщиком разорвана, обновления для объекта больше не придут.
Второй вариант разумный компромисс, если расширение не подходит. Третий — крайняя мера: вы берёте объект на себя целиком.
Если конфигурацию снять с поддержки целиком, обновлять её придётся самостоятельно, сравнивая с релизом поставщика вручную. Для небольшой организации это обычно дороже, чем держать расширение.
Подготовка: что сделать до первой правки
Подготовка занимает 20-30 минут, а экономит часы восстановления. Нужно три вещи.
1. Рабочая копия базы. Менять конфигурацию на рабочей базе напрямую — плохая идея. Выгрузите базу в файл (Администрирование → Выгрузить информационную базу в Конфигураторе; получится .dt) и разверните копию на отдельной базе или на стенде. Для файловой базы можно просто скопировать каталог при закрытых сеансах.
2. Сохранённая конфигурация. В Конфигураторе Конфигурация → Сохранить конфигурацию в файл создаёт .cf. Это снимок структуры и кода без данных. Имя файла удобно делать с датой и номером релиза.
3. Права и доступ. Для работы в Конфигураторе нужна роль с правом администрирования. Для части операций (обновление структуры базы, загрузка .dt) база должна быть открыта монопольно, то есть без других сеансов. Договоритесь с пользователями заранее.
Кроме того, определите, что именно вы хотите получить. Одной строкой: «в документе “Поступление” добавить поле “Номер заявки” и показывать его в печатной форме». Размытое «сделать удобнее» превращается в бесконечную доработку.
Пошагово: как изменить конфигурацию 1С в Конфигураторе
Пример: добавляем реквизит в документ через расширение. Для правки напрямую шаги те же, только вместо расширения вы открываете основную конфигурацию.
Шаг 1. Откройте Конфигуратор и дерево метаданных
В списке баз выберите нужную, нажмите Конфигуратор. Откройте дерево: Конфигурация → Открыть конфигурацию. Если пункт недоступен, значит, не хватает прав.
Шаг 2. Создайте расширение
Конфигурация → Расширения конфигурации → Добавить. Задайте имя на латинице или кириллицей без пробелов. Расширение создастся пустым.
Шаг 3. Заимствуйте объект
В дереве основной конфигурации найдите документ, правой кнопкой выберите команду заимствования в расширение. Объект появится в дереве расширения с пометкой.
Шаг 4. Внесите изменение
Откройте заимствованный документ, на вкладке реквизитов добавьте новый. Откройте нужную форму и перетащите реквизит на неё. Для логики используйте процедуры расширения, которые срабатывают до, после или вместо типовой.
Шаг 5. Проверьте себя до сохранения
Запустите Конфигурация → Проверка конфигурации и отметьте проверки синтаксиса, ссылок на объекты, неиспользуемых переменных. Ошибки поправьте сразу: на рабочей базе они всплывут в самый неудобный момент.
Шаг 6. Обновите конфигурацию базы данных
Сохраните изменения кнопкой F7 (Конфигурация базы данных → Обновить конфигурацию базы данных). Платформа предложит реструктуризацию, если изменилась структура хранения. Подтвердите. Если база занята другими сеансами, часть операций не пройдёт, пока они не завершатся.
Шаг 7. Запустите в режиме 1С:Предприятие и проверьте
Откройте документ, создайте тестовую запись, проведите, распечатайте. Особенно проверьте то, что вы не меняли, но что могло зависеть от изменённого: отчёты по этому документу, обмены, права.
Для рабочей базы переносите готовое расширение через .cfe, не повторяя правки руками. Так вы исключаете опечатки при повторении.
Что делать с доработками при обновлении релиза
Доработки доживают до обновления не всегда, поэтому план нужен заранее.
Расширения. Обычно после обновления типовой конфигурации расширение остаётся подключённым. Если поставщик изменил объект, который вы заимствовали, в Конфигураторе вы увидите предупреждения. Нужно открыть расширение и привести заимствованные объекты к новой версии.
Правки с сохранением поддержки. Это самый хлопотный путь. При обновлении платформа сравнивает три версии: старую типовую, новую типовую и вашу. Если вы и поставщик изменили одно место по-разному, возникает конфликт, и решение принимаете вы: оставить своё, взять типовое или собрать вручную.
Порядок такой:
- Сделайте копию базы
и сохраните
.cfдо обновления. - Запустите обновление из Конфигуратора:
Конфигурация → Поддержка → Обновить конфигурацию. - Выберите файл обновления или каталог шаблонов.
- На этапе объединения просмотрите список объектов с конфликтами.
- По каждому решите, чей вариант оставить, и завершите объединение.
- Обновите конфигурацию базы данных и проверьте работу.
Чем меньше объектов вы правили в самой конфигурации, тем короче список конфликтов. Поэтому правят «точечно»: одну процедуру, а не весь модуль.
Снятые с поддержки объекты. Обновления для них не приходят совсем. Поставщик может поправить ошибку в этом объекте, а вы об этом не узнаете. Периодически сравнивайте их с актуальным релизом: Конфигурация → Сравнить, объединить с конфигурацией из файла показывает разницу и позволяет переносить выбранное.
Когда базу ведут несколько разработчиков
Если над конфигурацией работают двое и больше, правки через общий файл неизбежно перетрут друг друга. Для этого есть хранилище конфигурации: объект «захватывается» одним разработчиком, остальные видят это. Создаётся в Конфигураторе, пункт Конфигурация → Хранилище конфигурации. Для одного человека хранилище избыточно, а для команды без него не обойтись.
Распространённые ошибки при доработке и как их избежать
Большинство проблем повторяется из года в год.
- 🔴 Правка на рабочей базе. Одна опечатка в проведении, и документы перестают проводиться во всей организации. Всегда тестируйте на копии.
- 🔴 Снятие с поддержки «на всякий случай». Объект уже не обновится, а через год вы не вспомните, что это сделали вы.
- 🟠 Перезапись чужих правок при загрузке
.cf. Загрузка полной конфигурации из файла заменяет всё. Если коллега успел что-то поменять, оно пропадёт. - 🟠 Доработка без описания. Через полгода никто не знает, зачем добавлен реквизит и что сломается, если его убрать. Ведите короткий журнал изменений.
- 🟠 Игнор предупреждений при проверке конфигурации. Часть из них безобидна, часть — признак проблем с совместимостью.
- 🟡 Дублирование типового. Вместо нового отчёта пытаются переписать стандартный. Часто достаточно настройки варианта отчёта.
Конфигурация → Поддержка → Настройка поддержки, выберите режим «редактируется с сохранением поддержки» или, лучше, сделайте доработку расширением..cf, сохранённого до обновления, и перенесите вручную.Сделать самому или позвать специалиста
Самостоятельно разумно решать простые задачи:
- ✅ изменить макет печатной формы или подпись под ним;
- ✅ скрыть ненужные поля и команды на форме;
- ✅ настроить вариант отчёта и сохранить его для всех;
- ✅ добавить дополнительный реквизит или сведение через встроенные механизмы без кода.
К программисту стоит идти, когда:
- 🛠 нужно менять логику проведения документов или расчётов;
- 🛠 затронут обмен с внешними системами (банк, сайт, другая база);
- 🛠 доработка пересекается с регламентированной отчётностью;
- 🛠 конфигурация уже сильно изменена и стоит «не на поддержке».
Ориентиры по стоимости, ориентировочно и для небольшого заказа: простая печатная форма или настройка отчёта у фрилансера — от 2 000 до 6 000 рублей, добавление реквизитов и доработка формы — от 3 000 до 10 000, доработка логики проведения или обмена — от 10 000 и выше в зависимости от сложности. Часовая ставка 1С-программиста в регионах — примерно 1 500-3 500 рублей, в крупных городах выше. Это порядок цен, а не прайс: точную цифру даст оценка по ТЗ.
Хорошее ТЗ экономит деньги. В нём должно быть: в какой конфигурации и какой версии работа, какой документ или отчёт меняется, что нужно получить, пример данных «до» и «после». И обязательно условие: доработка оформляется расширением, если это технически возможно.
Частые вопросы
Можно ли менять конфигурацию 1С без программиста?
Изменение конфигурации влияет на данные в базе?
Что лучше: расширение или правка типовой конфигурации?
Как вернуть конфигурацию, если доработка сломала базу?
.cf через Конфигурация → Загрузить конфигурацию из файла или разверните рабочую копию из .dt. Расширение достаточно отключить или удалить.