Доработка конфигурации 1С: объекты, формы и обновление

· 10 мин

Содержание

Менять конфигурацию в 1С 8.3 нужно в режиме Конфигуратор, а не в 1С:Предприятии: выберите базу в окне запуска и нажмите кнопку Конфигуратор. Там живёт дерево метаданных — справочники, документы, регистры, отчёты и модули, из которых собрано прикладное решение.

Для типовой конфигурации (БП 3.0, ЗУП 3.1, УТ 11) правило простое: сначала пробуйте расширение конфигурации , и только если задачу расширением не решить — снимайте основную конфигурацию с поддержки. Расширение не ломает обновления и ставится отдельным файлом. Ниже — как создать свои объекты, доработать формы и печать, проверить код и без потерь накатить очередной релиз.

Что такое конфигурация и когда её вообще трогать

Конфигурация — это описание прикладного решения: какие объекты есть в базе, как выглядят их формы, по каким правилам считаются движения. Платформа 8.3 отделена от конфигурации, поэтому одна платформа крутит и Бухгалтерию, и ЗУП, и самописную базу.

Различают три вещи:

  • 🧩 Основная конфигурация — то, что вы редактируете в Конфигураторе.
  • 🗄️ Конфигурация базы данных — то, по чему реально работают пользователи. Обновляется отдельной командой.
  • 🧷 Конфигурация поставщика — эталон вендора, с ним сравниваются ваши правки при обновлении.

Трогать конфигурацию стоит, когда типового функционала не хватает: нужен новый реквизит в документе, своя печатная форма, дополнительный отчёт, автоматизация ручной операции. Косметику (отбор в списке, колонки, свои отчёты на СКД) часто можно сделать прямо в 1С:Предприятии без Конфигуратора — тогда правка конфигурации не нужна.

Если задача — разовый свод данных, сначала проверьте, не решается ли она типовым отчётом или обработкой из раздела дополнительных обработок. Доработка конфигурации — крайняя мера, а не первая.

С чего начать: запуск Конфигуратора и выбор способа правки

Откройте базу в режиме Конфигуратор, затем меню Конфигурация → Открыть конфигурацию — развернётся дерево объектов.

Дальше выбираете способ доработки. От него зависит всё остальное.

Как дорабатывать типовую конфигурацию?

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

Расширения конфигурации появились в платформе 8.3.6. Если ваша платформа новее — а для «Такси» это так по умолчанию — расширения доступны. Готовое расширение хранится отдельным файлом .cfe и загружается через то же меню Конфигурация → Расширения конфигурации.

Создание объектов: справочники, документы, регистры

Новый объект добавляется через контекстное меню нужной ветки дерева: правый клик по Справочники → Добавить. Откроется окно редактирования объекта с закладками.

Коротко по типам объектов:

  • 📒 Справочник — списки однотипных данных: номенклатура, контрагенты, склады. Задаёте имя, синоним (как видит пользователь), реквизиты и табличные части.
  • 📄 Документ — факт хозяйственной операции: поступление, реализация, начисление. У документа есть дата, номер и, главное, движения по регистрам.
  • 📊 Регистр — хранилище итогов. Регистр накопления копит остатки и обороты, регистр сведений — срезы значений на дату, бухгалтерский регистр — проводки.

Порядок для нового документа обычно такой:

  1. Создайте документ, задайте его реквизиты и табличные части.
  2. Опишите, по каким регистрам он двигает данные (закладка Движения).
  3. В модуле объекта, в процедуре проведения, заполните наборы записей регистров.
  4. Настройте роли и права, иначе объект не увидят пользователи.
  5. Обновите конфигурацию базы данных.

Имена объектов и реквизитов пишите латиницей или по-русски без пробелов (СуммаСкидки), а понятное название выносите в синоним. Синоним потом виден в интерфейсе, имя — только разработчику.

Новый объект без настроенных прав доступен только пользователю с полными правами. Если тестируете под обычной ролью и объекта «нет» — проверьте роли, а не код.

Работа с формами: управляемые и обычные

В 1С 8.3 с интерфейсом «Такси» используются управляемые формы — они работают в тонком и веб-клиенте. Обычные формы остались от 8.2 и запускаются только в толстом клиенте; в новых разработках их не делают.

Ключевое отличие управляемой формы: логика разделена на клиент и сервер. Процедуры помечаются директивами компиляции:

&НаКлиенте
Процедура ПриИзменении(Элемент)
    // Выполняется на компьютере пользователя
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьПоУмолчаниюНаСервере()
    // Выполняется на сервере, есть доступ к базе
КонецПроцедуры

Данные формы живут в реквизитах, а не напрямую в полях. Элементы (поля, кнопки, таблицы) связываются с реквизитами через свойство ПутьКДанным. Чтобы добавить поле, перетащите реквизит из списка реквизитов в дерево элементов формы.

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

При доработке типовой формы расширением вы не переписываете её целиком, а заимствуете нужные элементы и добавляете свои обработчики — остальное форма берёт из основной конфигурации.

Печатные формы и отчёты: как добавить своё

Две частые задачи — поправить типовую печатную форму и сделать свой отчёт. Подходы разные.

Печатная форма. Если нужна небольшая правка макета (добавить строку, поменять текст), в типовых конфигурациях есть механизм макетов оформления и внешних печатных форм, подключаемых без Конфигуратора — через раздел дополнительных отчётов и обработок. Для глубокой переделки макет дорабатывают в расширении: заимствуют макет документа и правят его табличный документ.

Отчёт. Собственный отчёт удобнее строить на системе компоновки данных (СКД). Создайте объект Отчёт, откройте его основную схему компоновки, задайте запрос к данным, настройте поля, группировки и отборы. СКД сама построит форму и даст пользователю гибкую настройку.

Табличный документ (ТабДок) — это то, из чего состоит и печатная форма, и вывод отчёта: сетка ячеек, именованные области, которые заполняются параметрами.

Внешний отчёт или обработку (.erf, .epf) можно разработать отдельно и подключить к рабочей базе без изменения конфигурации. Это самый безопасный способ добавить отчёт: обновления типовой его не затронут.

Проверка кода и производительность

Перед тем как отдать доработку пользователям, прогоните две проверки прямо в Конфигураторе.

Синтаксический контроль. В окне редактора модуля есть команда синтаксической проверки — она ловит опечатки в именах процедур, незакрытые скобки, обращения к несуществующим методам. Для проверки всех модулей сразу используйте Конфигурация → Проверка модулей. Это не ловит логические ошибки, но отсекает то, что не скомпилируется.

Замер производительности. Если форма или проведение «тормозят», запустите замер: в Конфигураторе меню Отладка → Замер производительности, затем выполните медленную операцию в 1С:Предприятии и остановите замер. Платформа покажет, какие строки кода съедают время.

Типичные источники медленной работы:

  • 🐌 запрос внутри цикла вместо одного пакетного запроса;
  • 🐌 обращение к реквизитам объекта через точку в цикле (каждое — запрос к базе);
  • 🐌 отсутствие нужных индексов и отборов, из-за чего читается вся таблица.

Для отладки логики ставьте точки останова (клик на левом поле строки модуля или F9) и запускайте отладку F5. В точке останова видно значения переменных и можно идти по коду по шагам.

Перед выкаткой доработки в рабочую базу
Выполнено: 0 / 5

Командная работа: хранилище конфигурации и контроль версий

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

Работает оно так: объект нужно захватить перед правкой (он блокируется для других), а после правки — поместить изменения в хранилище. Меню — Конфигурация → Хранилище конфигурации. Пока объект захвачен вами, другие разработчики его править не могут, но видят, что он занят.

Для более зрелого процесса с ветками и историей по строкам кода используют 1С:Enterprise Development Tools (EDT) и выгрузку конфигурации в файлы для хранения в Git. Это отдельный инструмент; выбор между хранилищем и Git зависит от команды и масштаба проекта.

Базовое правило совместной работы одно: одна правка — один захват — одно помещение с внятным комментарием. Тогда по истории хранилища видно, кто и зачем менял объект.

Не оставляйте объекты захваченными «про запас». Забытый захват блокирует работу коллег, а при увольнении сотрудника снимать его захваты придётся через администрирование хранилища.

Обновление конфигурации и разрешение конфликтов

Обновление зависит от того, в каком виде вы ведёте доработки.

Расширение на поддерживаемой конфигурации. Обновление типовой проходит штатно через Конфигурация → Поддержка → Обновить конфигурацию, подключившись к интернет-поддержке или из файла поставки .cfu/.cf. Расширение при этом обычно переживает обновление без правок — ради этого его и делают.

Изменённая типовая (снята с поддержки). Здесь обновление — это трёхстороннее сравнение: эталон старый, эталон новый и ваша конфигурация. Платформа показывает дерево объектов с пометками:

ПометкаЧто значитЧто делать
Изменён только поставщикомваших правок нетпринять изменение вендора
Изменён только вамивендор не трогалоставить вашу версию
Изменён и там, и тамконфликтразобрать вручную, объединить построчно

Конфликтные объекты (обычно подсвечены) разбирают по одному: открывают режим объединения модуля, смотрят, что добавил вендор и что добавили вы, и собирают итоговую версию, не потеряв ни того ни другого.

После объединения любой доработки выполните обновление конфигурации базы данных (F7). Это отдельный шаг: пока он не сделан, пользователи работают на старой структуре.

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

Порядок для расширения, меняющего структуру:

  1. Загрузите файл .cfe через Конфигурация → Расширения конфигурации.
  2. Выполните обновление конфигурации базы данных (F7).
  3. Проверьте, что новые реквизиты и формы появились в 1С:Предприятии.

Чего избегать при доработке

Ошибки, из-за которых доработка «живёт своей жизнью» и слетает при обновлении:

  • 🚫 Правка типовой напрямую, когда хватило бы расширения. Снятая с поддержки конфигурация превращает каждое обновление в ручной разбор конфликтов на годы вперёд.
  • 🚫 Разработка в рабочей базе. Любые правки обкатывайте на копии. На рабочей базе ошибка в проведении испортит движения у всех пользователей сразу.
  • 🚫 Жёстко прописанные значения в коде — ссылки на конкретные элементы справочников по коду или наименованию. При переносе в другую базу такой код ломается; выносите такие значения в настройки или предопределённые элементы.
  • 🚫 Отсутствие комментария при помещении в хранилище. Через полгода никто не вспомнит, зачем менялся объект, и доработку побоятся трогать.
  • 🚫 Забытое обновление конфигурации базы данных. Код в Конфигураторе есть, а у пользователей его нет — и вы ищете несуществующую ошибку.

Отдельная частая ловушка — доработка, завязанная на номер релиза. Если механизм, который вы расширяете, вендор переписал в новой версии, расширение может перестать работать молча. После крупных обновлений проверяйте, что ваши доработки всё ещё на месте и срабатывают.

Частые вопросы

Чем расширение лучше снятия с поддержки?
Расширение хранится отдельным файлом и не трогает основную конфигурацию, поэтому типовая остаётся на полной поддержке и обновляется без ручного объединения. Снятие с поддержки превращает каждое обновление в трёхстороннее сравнение с разбором конфликтов.
Почему пользователи не видят изменений после правки в Конфигураторе?
Правка попадает в основную конфигурацию, а работают пользователи по конфигурации базы данных. Нужно выполнить обновление конфигурации базы данных (F7). Если менялась структура — в монопольном режиме.
Можно ли сделать отчёт без Конфигуратора?
Да. Собственный отчёт на СКД можно оформить внешним файлом .erf и подключить через раздел дополнительных отчётов и обработок в самом 1С:Предприятии. Конфигурация при этом не меняется, и обновления типовой его не затрагивают.
Обязателен ли монопольный доступ для любых правок?
Нет. Монополия нужна только для операций, меняющих структуру данных: обновление конфигурации базы данных, загрузка расширений со структурными изменениями, тестирование и исправление базы. Для правки форм и кода без реструктуризации постоянная монополия не требуется, но применить такие изменения пользователям всё равно нужно обновлением конфигурации.
Как несколько разработчиков делят одну конфигурацию?
Через встроенное хранилище конфигурации: объект захватывается перед правкой и помещается обратно после. Для процесса с ветками и историей по строкам используют EDT с хранением конфигурации в Git.