Изменение кода конфигурации в Конфигураторе 1С 8.3
Содержание
Код конфигурации 1С правят не в «Предприятии», а в Конфигураторе — отдельном режиме запуска той же программы. Частая ошибка новичка: открыть типовую конфигурацию , начать менять модули прямо в ней и потом обнаружить, что база больше не обновляется автоматически. Так делать можно, но осознанно — либо снять конфигурацию с поддержки, либо, что правильнее, вынести свои доработки в расширение.
Ниже — порядок действий от входа в Конфигуратор до обновления рабочей базы: как получить права, где лежит встроенный язык 1С, как найти нужный объект в дереве метаданных, проверить изменения отладчиком и не потерять возможность обновляться на новые релизы.
Любое изменение кода делайте на копии базы. Правка модуля в рабочей базе без тестовой проверки — прямой путь к остановке работы бухгалтерии.
Что нужно для правки кода: Конфигуратор и права доступа
Менять код может пользователь, у которого в правах включена роль с административным доступом — обычно это «Администратор». Рядовой пользователь Конфигуратор просто не откроет на редактирование.
Проверьте доступ:
- Запустите список баз, выделите нужную и нажмите
Конфигураторвместо1С:Предприятие. - Войдите под учётной записью с полными правами.
- Откройте дерево через
Конфигурация → Открыть конфигурацию.
Если пункт Открыть конфигурацию неактивен или дерево открывается «серым» и недоступным для изменений — прав не хватает либо конфигурация заблокирована поддержкой (об этом ниже).
Для работы нужна лицензия на платформу: без действующей лицензии (клиентской или серверной) платформа базу не запустит — исключение только учебная версия. На базовых версиях 1С Конфигуратор доступен в урезанном виде, часть возможностей редактирования закрыта.
Для командной разработки код хранят в хранилище конфигурации (Конфигурация → Хранилище конфигурации): объекты захватываются на редактирование по одному, изменения помещаются в общее хранилище. В одиночной работе это не обязательно.
Снятие конфигурации с поддержки и возможность изменения
Типовая конфигурация (Бухгалтерия, ЗУП, Управление торговлей) поставляется «на поддержке». Это значит, что поставщик управляет её составом, а вы получаете обновления в один клик. Пока конфигурация полностью на поддержке, редактировать её объекты нельзя — замок на каждом элементе дерева.
Чтобы разрешить правку, не теряя обновлений:
- Откройте
Конфигурация → Поддержка → Настройка поддержки. - Нажмите
Включить возможность изменения. - Выберите, разрешить ли редактирование всей конфигурации или отдельных объектов.
После включения изменений режим «только автоматическое обновление » для изменённых объектов пропадает. Обновление на новый релиз при этом не ломается, но по изменённым объектам платформа будет предлагать разрешить конфликт вручную. Поэтому минимизируйте число объектов, которые снимаете с замка.
Полностью снимать конфигурацию с поддержки (Снять с поддержки) нужно редко — только если вы отказываетесь от типового сопровождения. После этого каждое обновление превращается в ручное объединение. Для большинства задач достаточно включить возможность изменения точечно.
Навигация по дереву метаданных и поиск объекта
Код в 1С привязан к объектам: документам, справочникам, обработкам, общим модулям. Дерево конфигурации — это и есть каталог всех объектов, сгруппированных по типам.
Чтобы быстро найти нужное:
- 🔍 Нажмите
Ctrl+Alt+Fв дереве — откроется поиск по конфигурации, ищите по имени объекта или по строке кода. - 📁 Разверните ветку нужного типа:
Документы,Справочники,Обработки,Общие → Общие модули. - 🧩 Чтобы понять, какой объект отвечает за форму в «Предприятии», в самом «Предприятии» откройте нужную форму и в её настройках или через отладку найдите имя объекта, затем ищите его в дереве.
Правой кнопкой по объекту вызывается контекстное меню: Открыть модуль объекта, Открыть модуль менеджера, переход к формам. Двойной клик по объекту открывает его окно редактирования со всеми вкладками: данные, формы, макеты, права.
Полезный приём — переход к определению. Если вы видите в коде вызов процедуры или функции, поставьте курсор на её имя и нажмите F12: Конфигуратор откроет тот модуль, где она описана. Обратный поиск — «Поиск ссылок на объект» через контекстное меню в дереве: платформа покажет все места, где объект используется, чтобы вы оценили последствия правки заранее.
Если не знаете, где именно выполняется нужная логика, используйте глобальный поиск по тексту (Правка → Глобальный поиск, или Ctrl+Shift+F в окне модуля) по характерной строке — названию реквизита, тексту сообщения пользователю.
Где лежит код и как редактировать модули
Встроенный язык 1С живёт в модулях. Основные виды:
| Модуль | Где находится | За что отвечает |
|---|---|---|
| Модуль объекта | у документа, справочника | обработка проведения, события записи |
| Модуль формы | у каждой формы | поведение формы, кнопки, поля |
| Общий модуль | ветка Общие → Общие модули | переиспользуемые процедуры |
| Модуль менеджера | у объекта | методы уровня менеджера объекта |
| Модуль приложения | корень конфигурации | запуск и завершение сеанса |
Порядок редактирования:
- Откройте нужный модуль двойным кликом или через контекстное меню.
- Найдите процедуру — слева есть список процедур и функций для быстрого перехода.
- Внесите изменения. Директивы компиляции (
&НаСервере,&НаКлиенте,&НаСервереБезКонтекста) определяют, где исполняется код, — не переносите клиентский код на сервер и наоборот. - Проверьте синтаксис:
Текст → Проверить модуль(или кнопка проверки в панели). Платформа укажет строки с ошибками.
Для подсказок по методам и свойствам держите открытым Синтакс-помощник (Справка → Синтакс-помощник). Он показывает точный синтаксис метода, параметры и пример. Контекстная подсказка по точке (после имени объекта) выводит доступные методы и свойства прямо при наборе.
Не всё нужно писать прямо в конфигурации. Если задача — разовая обработка данных или дополнительный отчёт, удобнее сделать внешнюю обработку
(.epf) или внешний отчёт (.erf): это отдельный файл, который подключается к базе без изменения конфигурации. Код в нём пишется на том же встроенном языке, но конфигурация остаётся нетронутой и полностью на поддержке.
Кроме классического Конфигуратора код конфигурации можно править в 1С:Enterprise Development Tools (EDT) — отдельной среде разработки на базе Eclipse. EDT удобнее для командной работы и систем контроля версий (Git), но для точечной правки одного модуля большинство специалистов по-прежнему открывают привычный Конфигуратор.
Не меняйте общие модули и типовые процедуры «на всякий случай». Одна лишняя строка в проведении документа может поменять учёт по всей базе. Правьте только то, что нужно для конкретной задачи.
Расширения конфигурации: менять код без снятия с поддержки
Это главный приём, которого часто не хватает в инструкциях. Расширения конфигурации
(появились в платформе 8.3.6) позволяют добавить свой код поверх типовой конфигурации, не трогая её саму. Основная конфигурация остаётся полностью на поддержке и обновляется автоматически, а ваши доработки живут отдельным файлом .cfe.
Когда выбирать расширение:
- нужно добавить кнопку, реквизит, изменить печатную форму ;
- нужно переопределить или дополнить типовую процедуру;
- важно сохранить простое автоматическое обновление.
Как создать расширение :
- Откройте
Конфигурация → Расширения конфигурации. - Нажмите
Добавить, задайте имя и префикс. - В расширении добавьте нужный объект или заимствуйте типовой (
Добавить в расширение), затем переопределите его модуль. - Сохраните расширение:
Конфигурация → Сохранить конфигурацию в файлв формате.cfe.
Загрузка расширения в базу и обновление конфигурации
базы данных — два отдельных шага: сначала загружаете .cfe, затем применяете Обновить конфигурацию базы данных.
Расширение — безопаснее прямой правки типовой конфигурации: обновления ставятся штатно, а при проблеме расширение можно отключить одной галочкой. Для серьёзных доработок это предпочтительный путь.
Проверка изменений в отладчике
Прежде чем выкатывать правку пользователям, прогоните её под отладчиком. Отладчик встроен в Конфигуратор и позволяет пройти код построчно.
Как запустить отладку:
- Поставьте точку останова в нужной строке модуля — клик на левом поле строки или
F9. - Запустите отладку:
Отладка → Начать отладку(F5). Откроется «Предприятие». - Выполните действие, которое вызывает ваш код, — выполнение остановится на точке останова.
Инструменты во время остановки:
F10— шаг с обходом процедур,F11— шаг с заходом внутрь;- окно
Табло— следить за значениями переменных; Стек вызовов— видеть, откуда вызвана текущая процедура;- вычислить выражение по месту — выделить и посмотреть результат.
Если точка останова не срабатывает, проверьте, что отладка разрешена: Сервис → Параметры → Запуск 1С:Предприятия → Отладка, а для серверных процедур — что включена отладка на сервере в настройках информационной базы.
Когда код исполняется в цикле по сотням строк, обычная точка останова будет тормозить на каждой итерации. В свойствах точки останова можно задать условие — остановка сработает, только когда переменная примет нужное значение. Это экономит время при поиске одной проблемной записи среди большого объёма данных.
Для клиент-серверной базы клиентский и серверный код исполняются в разных процессах. Чтобы ловить серверные процедуры, в предмете отладки должен быть выбран сервер, иначе точка останова в &НаСервере молча не сработает.
Сравнение и объединение конфигураций
Когда правок много или вы ставите обновление на доработанную конфигурацию, пригодится механизм сравнения и объединения.
Сравнить с эталоном или файлом:
Конфигурация → Сравнить, объединить с конфигурацией из файла.- Укажите файл
.cf(например, свежую типовую конфигурацию от поставщика). - В окне сравнения видно, какие объекты и строки кода различаются.
Для объединения:
- отметьте галочками, какие изменения перенести;
- для конфликтных объектов (которые меняли и вы, и поставщик) платформа предложит режим: взять свой вариант, вариант поставщика или объединить вручную;
- после подтверждения изменения переносятся в основную конфигурацию.
Именно на этом шаге всплывают последствия снятия с поддержки: по каждому изменённому вами объекту придётся принимать решение. Чем меньше объектов вы правили в основной конфигурации, тем проще обновление, — ещё один довод в пользу расширений.
Перед сравнением сохраните текущее состояние: Конфигурация → Сохранить конфигурацию в файл создаст .cf, который станет точкой отката, если объединение пойдёт не так. Этот файл — не то же самое, что выгрузка базы: он хранит только конфигурацию, без данных, и восстанавливается быстрее.
Обновление базы и поддержка актуальности
Правка в дереве конфигурации сама по себе на работу пользователей не влияет — она лежит в «основной конфигурации». Чтобы изменения заработали, их нужно перенести в конфигурацию базы данных.
- Нажмите
F7илиКонфигурация → Обновить конфигурацию базы данных. - Платформа покажет список изменений и предупредит, если нужна реструктуризация.
- Подтвердите обновление.
Если менялась только логика в модулях, обновление часто проходит динамически, без выгона пользователей. Но при изменении структуры (новые реквизиты, таблицы) платформе нужен монопольный доступ — все сеансы придётся завершить. Делайте такие обновления в нерабочее время и предупреждайте пользователей.
Чтобы оставаться на поддержке и получать обновления:
- храните свои доработки в расширениях, а основную конфигурацию не трогайте без необходимости;
- перед крупным обновлением делайте резервную копию (
Администрирование → Выгрузить информационную базу); - после обновления платформы или конфигурации обязательно прогоняйте ключевые операции на тестовой копии.
Частые вопросы
Можно ли поменять код 1С в режиме «Предприятие»?
Потеряю ли я автоматическое обновление, если поменяю код?
Чем расширение лучше прямой правки конфигурации?
Почему изменения в коде не видны пользователям?
Обновить конфигурацию базы данных (F7). До этого шага пользователи работают на старой версии.