Доработка конфигурации 1С: объекты, формы и обновление
Содержание
Менять конфигурацию в 1С 8.3 нужно в режиме Конфигуратор, а не в 1С:Предприятии: выберите базу в окне запуска и нажмите кнопку Конфигуратор. Там живёт дерево метаданных — справочники, документы, регистры, отчёты и модули, из которых собрано прикладное решение.
Для типовой конфигурации (БП 3.0, ЗУП 3.1, УТ 11) правило простое: сначала пробуйте расширение конфигурации , и только если задачу расширением не решить — снимайте основную конфигурацию с поддержки. Расширение не ломает обновления и ставится отдельным файлом. Ниже — как создать свои объекты, доработать формы и печать, проверить код и без потерь накатить очередной релиз.
Что такое конфигурация и когда её вообще трогать
Конфигурация — это описание прикладного решения: какие объекты есть в базе, как выглядят их формы, по каким правилам считаются движения. Платформа 8.3 отделена от конфигурации, поэтому одна платформа крутит и Бухгалтерию, и ЗУП, и самописную базу.
Различают три вещи:
- 🧩 Основная конфигурация — то, что вы редактируете в Конфигураторе.
- 🗄️ Конфигурация базы данных — то, по чему реально работают пользователи. Обновляется отдельной командой.
- 🧷 Конфигурация поставщика — эталон вендора, с ним сравниваются ваши правки при обновлении.
Трогать конфигурацию стоит, когда типового функционала не хватает: нужен новый реквизит в документе, своя печатная форма, дополнительный отчёт, автоматизация ручной операции. Косметику (отбор в списке, колонки, свои отчёты на СКД) часто можно сделать прямо в 1С:Предприятии без Конфигуратора — тогда правка конфигурации не нужна.
Если задача — разовый свод данных, сначала проверьте, не решается ли она типовым отчётом или обработкой из раздела дополнительных обработок. Доработка конфигурации — крайняя мера, а не первая.
С чего начать: запуск Конфигуратора и выбор способа правки
Откройте базу в режиме Конфигуратор, затем меню Конфигурация → Открыть конфигурацию — развернётся дерево объектов.
Дальше выбираете способ доработки. От него зависит всё остальное.
Конфигурация → Расширения конфигурации. Основная конфигурация остаётся на полной поддержке, обновления накатываются без ручного объединения.Конфигурация → Поддержка → Настройка поддержки, кнопка включения возможности изменения. После этого каждое обновление придётся объединять вручную.Перед снятием типовой конфигурации с поддержки сделайте резервную копию базы . Операция обратимая по смыслу, но вернуть полную поддержку потом сложнее, чем сделать бэкап заранее.
Расширения конфигурации
появились в платформе 8.3.6. Если ваша платформа новее — а для «Такси» это так по умолчанию — расширения доступны. Готовое расширение хранится отдельным файлом .cfe и загружается через то же меню Конфигурация → Расширения конфигурации.
Создание объектов: справочники, документы, регистры
Новый объект добавляется через контекстное меню нужной ветки дерева: правый клик по Справочники → Добавить. Откроется окно редактирования объекта с закладками.
Коротко по типам объектов:
- 📒 Справочник — списки однотипных данных: номенклатура, контрагенты, склады. Задаёте имя, синоним (как видит пользователь), реквизиты и табличные части.
- 📄 Документ — факт хозяйственной операции: поступление, реализация, начисление. У документа есть дата, номер и, главное, движения по регистрам.
- 📊 Регистр — хранилище итогов. Регистр накопления копит остатки и обороты, регистр сведений — срезы значений на дату, бухгалтерский регистр — проводки.
Порядок для нового документа обычно такой:
- Создайте документ, задайте его реквизиты и табличные части.
- Опишите, по каким регистрам он двигает данные (закладка
Движения). - В модуле объекта, в процедуре проведения, заполните наборы записей регистров.
- Настройте роли и права, иначе объект не увидят пользователи.
- Обновите конфигурацию базы данных.
Имена объектов и реквизитов пишите латиницей или по-русски без пробелов (СуммаСкидки), а понятное название выносите в синоним. Синоним потом виден в интерфейсе, имя — только разработчику.
Новый объект без настроенных прав доступен только пользователю с полными правами. Если тестируете под обычной ролью и объекта «нет» — проверьте роли, а не код.
Работа с формами: управляемые и обычные
В 1С 8.3 с интерфейсом «Такси» используются управляемые формы — они работают в тонком и веб-клиенте. Обычные формы остались от 8.2 и запускаются только в толстом клиенте; в новых разработках их не делают.
Ключевое отличие управляемой формы: логика разделена на клиент и сервер. Процедуры помечаются директивами компиляции:
&НаКлиенте
Процедура ПриИзменении(Элемент)
// Выполняется на компьютере пользователя
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоУмолчаниюНаСервере()
// Выполняется на сервере, есть доступ к базе
КонецПроцедуры
Данные формы живут в реквизитах, а не напрямую в полях. Элементы (поля, кнопки, таблицы) связываются с реквизитами через свойство ПутьКДанным. Чтобы добавить поле, перетащите реквизит из списка реквизитов в дерево элементов формы.
Если форму не создавать вручную, платформа при открытии сгенерирует её автоматически по составу объекта. Своя форма нужна, когда автогенерации не хватает: особая раскладка, дополнительные кнопки, своя логика заполнения.
При доработке типовой формы расширением вы не переписываете её целиком, а заимствуете нужные элементы и добавляете свои обработчики — остальное форма берёт из основной конфигурации.
Печатные формы и отчёты: как добавить своё
Две частые задачи — поправить типовую печатную форму и сделать свой отчёт. Подходы разные.
Печатная форма. Если нужна небольшая правка макета (добавить строку, поменять текст), в типовых конфигурациях есть механизм макетов оформления и внешних печатных форм, подключаемых без Конфигуратора — через раздел дополнительных отчётов и обработок. Для глубокой переделки макет дорабатывают в расширении: заимствуют макет документа и правят его табличный документ.
Отчёт. Собственный отчёт удобнее строить на системе компоновки данных (СКД). Создайте объект Отчёт, откройте его основную схему компоновки, задайте запрос к данным, настройте поля, группировки и отборы. СКД сама построит форму и даст пользователю гибкую настройку.
Табличный документ (ТабДок) — это то, из чего состоит и печатная форма, и вывод отчёта: сетка ячеек, именованные области, которые заполняются параметрами.
Внешний отчёт или обработку (.erf, .epf) можно разработать отдельно и подключить к рабочей базе без изменения конфигурации. Это самый безопасный способ добавить отчёт: обновления типовой его не затронут.
Проверка кода и производительность
Перед тем как отдать доработку пользователям, прогоните две проверки прямо в Конфигураторе.
Синтаксический контроль. В окне редактора модуля есть команда синтаксической проверки — она ловит опечатки в именах процедур, незакрытые скобки, обращения к несуществующим методам. Для проверки всех модулей сразу используйте Конфигурация → Проверка модулей. Это не ловит логические ошибки, но отсекает то, что не скомпилируется.
Замер производительности. Если форма или проведение «тормозят», запустите замер: в Конфигураторе меню Отладка → Замер производительности, затем выполните медленную операцию в 1С:Предприятии и остановите замер. Платформа покажет, какие строки кода съедают время.
Типичные источники медленной работы:
- 🐌 запрос внутри цикла вместо одного пакетного запроса;
- 🐌 обращение к реквизитам объекта через точку в цикле (каждое — запрос к базе);
- 🐌 отсутствие нужных индексов и отборов, из-за чего читается вся таблица.
Для отладки логики ставьте точки останова (клик на левом поле строки модуля или F9) и запускайте отладку F5. В точке останова видно значения переменных и можно идти по коду по шагам.
Командная работа: хранилище конфигурации и контроль версий
Когда над конфигурацией работают несколько человек, нужен механизм, который не даст затереть чужие правки. У платформы для этого есть встроенное хранилище конфигурации.
Работает оно так: объект нужно захватить перед правкой (он блокируется для других), а после правки — поместить изменения в хранилище. Меню — Конфигурация → Хранилище конфигурации. Пока объект захвачен вами, другие разработчики его править не могут, но видят, что он занят.
Для более зрелого процесса с ветками и историей по строкам кода используют 1С:Enterprise Development Tools (EDT) и выгрузку конфигурации в файлы для хранения в Git. Это отдельный инструмент; выбор между хранилищем и Git зависит от команды и масштаба проекта.
Базовое правило совместной работы одно: одна правка — один захват — одно помещение с внятным комментарием. Тогда по истории хранилища видно, кто и зачем менял объект.
Не оставляйте объекты захваченными «про запас». Забытый захват блокирует работу коллег, а при увольнении сотрудника снимать его захваты придётся через администрирование хранилища.
Обновление конфигурации и разрешение конфликтов
Обновление зависит от того, в каком виде вы ведёте доработки.
Расширение на поддерживаемой конфигурации. Обновление типовой проходит штатно через Конфигурация → Поддержка → Обновить конфигурацию, подключившись к интернет-поддержке или из файла поставки .cfu/.cf. Расширение при этом обычно переживает обновление без правок — ради этого его и делают.
Изменённая типовая (снята с поддержки). Здесь обновление — это трёхстороннее сравнение: эталон старый, эталон новый и ваша конфигурация. Платформа показывает дерево объектов с пометками:
| Пометка | Что значит | Что делать |
|---|---|---|
| Изменён только поставщиком | ваших правок нет | принять изменение вендора |
| Изменён только вами | вендор не трогал | оставить вашу версию |
| Изменён и там, и там | конфликт | разобрать вручную, объединить построчно |
Конфликтные объекты (обычно подсвечены) разбирают по одному: открывают режим объединения модуля, смотрят, что добавил вендор и что добавили вы, и собирают итоговую версию, не потеряв ни того ни другого.
После объединения любой доработки выполните обновление конфигурации
базы данных (F7). Это отдельный шаг: пока он не сделан, пользователи работают на старой структуре.
Обновление конфигурации базы данных и загрузку расширений, меняющих структуру, выполняют в монопольном режиме. Это значит, что все пользователи должны выйти из базы — иначе платформа не даст реструктуризировать данные. Делайте это в нерабочее время и предупредите коллег: активные сеансы придётся завершить.
Порядок для расширения, меняющего структуру:
- Загрузите файл
.cfeчерезКонфигурация → Расширения конфигурации. - Выполните обновление конфигурации базы данных (
F7). - Проверьте, что новые реквизиты и формы появились в
1С:Предприятии.
Чего избегать при доработке
Ошибки, из-за которых доработка «живёт своей жизнью» и слетает при обновлении:
- 🚫 Правка типовой напрямую, когда хватило бы расширения. Снятая с поддержки конфигурация превращает каждое обновление в ручной разбор конфликтов на годы вперёд.
- 🚫 Разработка в рабочей базе. Любые правки обкатывайте на копии. На рабочей базе ошибка в проведении испортит движения у всех пользователей сразу.
- 🚫 Жёстко прописанные значения в коде — ссылки на конкретные элементы справочников по коду или наименованию. При переносе в другую базу такой код ломается; выносите такие значения в настройки или предопределённые элементы.
- 🚫 Отсутствие комментария при помещении в хранилище. Через полгода никто не вспомнит, зачем менялся объект, и доработку побоятся трогать.
- 🚫 Забытое обновление конфигурации базы данных. Код в Конфигураторе есть, а у пользователей его нет — и вы ищете несуществующую ошибку.
Отдельная частая ловушка — доработка, завязанная на номер релиза. Если механизм, который вы расширяете, вендор переписал в новой версии, расширение может перестать работать молча. После крупных обновлений проверяйте, что ваши доработки всё ещё на месте и срабатывают.
Частые вопросы
Чем расширение лучше снятия с поддержки?
Почему пользователи не видят изменений после правки в Конфигураторе?
F7). Если менялась структура — в монопольном режиме.Можно ли сделать отчёт без Конфигуратора?
.erf и подключить через раздел дополнительных отчётов и обработок в самом 1С:Предприятии. Конфигурация при этом не меняется, и обновления типовой его не затрагивают.