Разработка и Конфигурация · 11 мин
Как отредактировать обработку в 1С
Как отредактировать обработку в 1С: открытие в конфигураторе, изменение форм и кода, работа с внешними и встроенными обработками, проверка результата и типичные ошибки.
Обработка в 1С — это самостоятельный программный объект: набор форм, макетов и кода на встроенном языке, который выполняет прикладную задачу — загрузку данных, групповое изменение реквизитов, формирование отчётов. Редактировать обработку можно только в конфигураторе, и порядок действий зависит от того, где она находится: в составе конфигурации или в виде внешнего файла с расширением .epf.
Прежде чем вносить изменения, нужно понять тип обработки и ограничения вашей конфигурации. Типовые конфигурации часто находятся на поддержке, и прямая правка встроенных объектов усложняет последующие обновления. Внешние обработки, напротив, редактируются свободно, но требуют аккуратности при сохранении, чтобы не потерять работоспособную версию.
Ниже разобран полный цикл работы: от открытия файла до проверки результата, с типичными ошибками и безопасными границами самостоятельного редактирования.
Как определить тип обработки и где она хранится
Первый шаг — выяснить, с какой обработкой вы работаете. Внешняя обработка — это отдельный файл с расширением .epf, который открывается в режиме предприятия через меню «Файл → Открыть» или подключается через механизм дополнительных отчётов и обработок. Встроенная обработка находится внутри конфигурации, в ветке «Обработки» дерева конфигурации, и запускается из интерфейса программы.
Способ редактирования принципиально различается. Внешний файл правится напрямую и сохраняется обратно на диск. Встроенный объект изменяется в конфигураторе, а результат применяется только после обновления конфигурации базы данных. Если вы не знаете, откуда запускается обработка, посмотрите путь её открытия: если пользователь открывает файл с диска — это внешняя обработка, если кнопка встроена в интерфейс — объект конфигурации или подключённая внешняя обработка из справочника дополнительных отчётов.
Как открыть внешнюю обработку в конфигураторе
Запустите конфигуратор той же информационной базы, в которой планируете использовать обработку. Это важно, потому что при открытии файла конфигуратор проверяет обращения к объектам метаданных, и код, написанный под другую конфигурацию, может содержать ошибки. Далее выберите в главном меню «Файл → Открыть» и укажите файл .epf.
После открытия слева появится структура обработки: формы, макеты, модуль объекта. Двойной щелчок по форме открывает визуальный редактор, где можно менять расположение элементов, добавлять поля и кнопки. Модуль формы и модуль объекта открываются через контекстное меню — в них находится программный код на встроенном языке 1С.
Если файл не открывается, проверьте два момента: файл не должен быть заблокирован открытым сеансом предприятия, и версия платформы конфигуратора должна быть не ниже той, в которой обработка была сохранена. Обработка, сохранённая в более новой платформе, в старой может не открыться.
- 1Сделайте копию исходного файла .epf в отдельную папку
- 2Запустите конфигуратор нужной информационной базы
- 3Откройте файл через меню «Файл → Открыть»
- 4Внесите изменения в формы, модули или макеты
- 5Сохраните обработку через «Файл → Сохранить»
- 6Проверьте работу в режиме предприятия
Как редактировать форму, код и макеты
Изменение формы
В редакторе формы доступны два представления: дерево элементов и визуальный макет. Чтобы добавить кнопку, создайте команду формы, перетащите её на форму и свяжите с обработчиком в модуле. Чтобы изменить существующий элемент, выделите его и правьте свойства в палитре свойств справа: заголовок, доступность, видимость, связь с реквизитом данных.
Реквизиты формы — это данные, которые форма хранит и отображает. Если обработке нужно новое поле ввода, сначала добавьте реквизит формы с нужным типом, затем перетащите его в дерево элементов. Обратный порядок не сработает: элемент без привязки к данным не сможет хранить значение.
Изменение программного кода
Код обработки распределён между модулем объекта (серверная логика, обращения к данным) и модулями форм (интерактивная логика, реакция на действия пользователя). В управляемых формах действует разделение контекста: директивы &НаКлиенте и &НаСервере определяют, где выполняется процедура. Прямой запрос к базе данных из клиентского контекста невозможен — такой вызов нужно выносить в серверную процедуру.
Для проверки синтаксиса используйте встроенную проверку модуля: конфигуратор подчеркнёт ошибки и покажет их список. Перед сохранением полезно выполнить синтаксическую проверку всех модулей обработки, чтобы не передавать пользователям файл с очевидными ошибками.
Изменение макетов
Макеты используются для печатных форм и табличных документов. Откройте макет двойным щелчком и правьте ячейки как в табличном редакторе: текст, оформление, параметры. Параметры (имена в фигурных скобках или заданные в свойствах ячейки) заполняются из кода, поэтому при переименовании параметра в макете не забудьте поправить соответствующее обращение в модуле — иначе в печатной форме останется пустое место.
Как отредактировать обработку в составе конфигурации
Откройте конфигуратор, загрузите конфигурацию («Конфигурация → Открыть конфигурацию») и найдите нужный объект в ветке «Обработки». Если конфигурация типовая и закрыта для изменений, потребуется включить возможность изменения: «Конфигурация → Поддержка → Настройка поддержки», кнопка «Включить возможность изменения». Для отдельного объекта может понадобиться снятие с поддержки или установка режима «Редактируется с сохранением поддержки».
После внесения правок сохраните конфигурацию и выполните обновление конфигурации базы данных (клавиша F7 или соответствующий пункт меню). Без этого шага изменения останутся только в конфигураторе и не попадут в рабочую базу. Обновление требует монопольного доступа в ряде случаев, поэтому планируйте его на время, когда пользователи могут выйти из системы.
Учитывайте последствия для обновлений: объект, снятый с поддержки, при следующем обновлении типового релиза не обновится автоматически, и ваши доработки придётся сопоставлять с изменениями поставщика вручную. Поэтому для небольших доработок часто безопаснее альтернатива — вынести логику во внешнюю обработку или расширение конфигурации, не трогая типовой объект.
Как проверить результат после редактирования
Сохранённую внешнюю обработку проверяют в режиме предприятия: откройте файл через «Файл → Открыть» и выполните основной сценарий работы. Убедитесь, что форма открывается без ошибок, кнопки выполняют заявленные действия, а данные изменяются корректно. Если обработка изменяет данные базы, сначала прогоните её на тестовой копии базы или на минимальном наборе данных.
Для встроенной обработки после обновления конфигурации базы данных запустите её из интерфейса под пользователем с правами, аналогичными правам реальных пользователей. Ошибки прав доступа часто всплывают именно на этом этапе: под администратором обработка работает, а у рядового пользователя падает с сообщением о нарушении прав.
Как проверить результат
Форма открывается без сообщений об ошибках
Ошибка компиляции модуля или «объект не найден»
Действие завершается, данные изменены как ожидалось
Ошибка в середине выполнения, частично изменённые данные
Все функции доступны с рабочими правами
Нарушение прав доступа к объектам
Все параметры заполнены, оформление не съехало
Пустые поля, текст ошибки вместо значения
Типичные ошибки и ограничения самостоятельной правки
Самая частая проблема — обработка перестаёт открываться после правок. Причины: синтаксическая ошибка в модуле, удалённый реквизит, на который ссылается элемент формы, или обращение к объекту метаданных, отсутствующему в текущей конфигурации. Диагностику начинайте с текста сообщения об ошибке — конфигуратор указывает модуль и строку.
Вторая группа ошибок связана с контекстом исполнения: код, работавший в обычных формах, переносится в управляемые без учёта разделения клиент-сервер. Процедуры без директив, прямые обращения к данным из клиентского контекста, модальные вызовы — всё это приводит к ошибкам в тонком и веб-клиенте.
Третья группа — потеря исходной версии. Редактирование единственного экземпляра файла без копии лишает возможности отката. Храните версии обработок с датой в имени файла или в системе контроля версий, особенно если обработку используют несколько подразделений.
Когда лучше выбрать альтернативу прямому редактированию
Прямая правка — не единственный способ изменить поведение обработки. Если нужно скорректировать типовую функциональность, рассмотрите расширение конфигурации: оно позволяет переопределять формы и добавлять код, не снимая объекты с поддержки, и заметно упрощает обновление релизов. Ограничение — не все объекты и сценарии доступны для расширения.
Если задача разовая — например, групповое изменение реквизитов, — иногда проще воспользоваться штатными инструментами (групповое изменение реквизитов, универсальный подбор и обработка объектов), чем дорабатывать существующую обработку. А если обработка часто обновляется сторонним разработчиком, свои правки лучше согласовать с ним, чтобы они вошли в основную версию и не терялись при каждом обновлении файла.
Что важно запомнить
Внешнюю обработку открывают и правят через «Файл → Открыть» в конфигураторе, встроенную — через дерево конфигурации с последующим обновлением базы данных. Всегда делайте копию до правок, проверяйте синтаксис модулей и тестируйте результат под правами обычного пользователя. Для типовых объектов сначала рассмотрите расширение конфигурации.
Частые вопросы
Можно ли отредактировать обработку без конфигуратора?
Нет. Файл .epf — бинарный контейнер, и изменить формы или код можно только в конфигураторе. В режиме предприятия обработку можно только запускать. Если конфигуратор недоступен по лицензионным ограничениям или правам, правки должен выполнять специалист с соответствующим доступом.
Почему обработка не открывается в конфигураторе после сохранения в другой базе?
Чаще всего дело в версии платформы: файл, сохранённый в более новой версии, может быть несовместим со старой. Проверьте версии платформы обеих баз. Реже причина — повреждение файла при копировании; попробуйте получить исходный файл заново.
Как вернуть исходный вид типовой обработки после неудачной правки?
Если есть выгрузка базы или файл конфигурации до изменений — восстановите из них. Если копии нет, а конфигурация типовая, можно загрузить конфигурацию поставщика соответствующего релиза через «Загрузить конфигурацию из файла» или выполнить сравнение и объединение с конфигурацией поставщика, вернув объект в исходное состояние.
Чем внешняя обработка отличается от расширения конфигурации?
Внешняя обработка — отдельный файл, который запускается вручную или подключается как дополнительная; она не меняет конфигурацию. Расширение подключается к базе и переопределяет поведение типовых объектов: форм, модулей, ролей. Для доработки типового интерфейса подходит расширение, для отдельных сервисных задач — внешняя обработка.
Почему обработка работает у администратора, но не у пользователя?
Код обращается к объектам, на которые у пользователя нет прав: справочникам, регистрам, документам. Проверьте роли пользователя и при необходимости добавьте нужные права или выполняйте критичные операции в привилегированном модуле — с осторожностью и пониманием последствий для безопасности данных.
Как узнать, какие объекты конфигурации использует обработка?
Откройте обработку в конфигураторе и выполните поиск обращений к метаданным по тексту модулей, либо воспользуйтесь анализом ссылок. Практичный способ — синтаксическая проверка модулей с контролем обращений к объектам текущей конфигурации: обращения к отсутствующим объектам будут показаны как ошибки.