Новый справочник, документ или регистр в 1С 8.3: от дерева метаданных до меню пользователя
Содержание
Чтобы добавить объект в конфигураторе 1С 8.3, откройте дерево метаданных (Конфигурация → Открыть конфигурацию), щёлкните правой кнопкой по нужной ветке («Справочники», «Документы», «Регистры накопления») и выберите «Добавить». Затем задайте имя, реквизиты и форму, включите объект в подсистему, дайте права роли и нажмите F7 — «Обновить конфигурацию
базы данных». Без последних трёх шагов пользователи объект просто не увидят.
Обычная история: руководитель просит вести в 1С список договоров аренды или учитывать выдачу спецодежды, а готового объекта в базе нет. Программист добавляет справочник за 10 минут, а потом полдня выясняет, почему у бухгалтера нет нового пункта в меню. Ниже весь путь по порядку, включая шаги, которые чаще всего забывают.
Подготовка: копия базы и запуск конфигуратора
Изменения структуры метаданных пробуйте сначала на копии. Ошибку в рабочей базе откатить сложнее, чем кажется: новые таблицы уже созданы, пользователи уже что-то ввели.
- Сохраните текущую конфигурацию в файл:
Конфигурация → Сохранить конфигурацию в файл(получится.cf). - Сделайте полную копию данных:
Администрирование → Выгрузить информационную базу(файл.dt). - Разверните копию как отдельную базу и добавьте её в список баз.
- В окне запуска выберите базу и нажмите кнопку «Конфигуратор».
- Откройте дерево метаданных:
Конфигурация → Открыть конфигурацию.
Войти в конфигуратор может пользователь с правом администрирования. В типовых конфигурациях это роль «Полные права». Если при входе появляется окно авторизации, укажите такого пользователя.
Конфигуратор можно запустить и из командной строки: 1cv8.exe DESIGNER /F"C:\Base\Copy" /N"Администратор". Удобно, когда в список баз копию добавлять не хочется.
Две конфигурации в одной базе
Это главное, что стоит держать в голове новичку. В конфигураторе есть «основная конфигурация» (её вы редактируете) и «конфигурация базы данных» (по ней работают пользователи). Правки в дереве метаданных живут только в основной, пока вы не обновите базу данных. Поэтому сохранили, но не обновили — у пользователей ничего не изменится.
Типовая конфигурация: расширение или правка основной
Если база самописная, сразу переходите к следующему разделу. Если это БП 3.0, ЗУП 3.1, УТ 11 или другая типовая конфигурация, сначала решите, где будет жить новый объект.
Типовая конфигурация стоит «на поддержке» у поставщика, и по умолчанию дерево метаданных закрыто для правок. Добавить объект можно двумя путями.
| Путь | Как включить | Плюсы | Минусы |
|---|---|---|---|
| Расширение | Конфигурация → Расширения конфигурации → Добавить | Типовая остаётся на полной поддержке, обновления ставятся как обычно | Нужна платформа 8.3 с поддержкой собственных объектов в расширениях; часть возможностей ограничена |
| Основная конфигурация | Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения | Нет ограничений расширений | Каждое обновление типовой придётся ставить через сравнение и объединение |
Расширения появились в платформе 8.3.6, а добавлять в них собственные справочники, документы и регистры стало возможно позже. На актуальных версиях платформы этот путь работает, и для типовых баз он предпочтительнее.
Включение возможности изменения в типовой конфигурации назад «одной кнопкой» не возвращается. Перед этим шагом обязательно сохраните .cf, как описано в подготовке.
Как добавить объект метаданных в дерево конфигурации
Порядок одинаков для всех видов объектов. Различается только набор вкладок в окне редактирования.
- В дереве метаданных найдите ветку нужного вида: «Справочники», «Документы», «Регистры сведений», «Регистры накопления» и т. д.
- Щёлкните по ветке правой кнопкой → «Добавить». То же делает клавиша
Insили зелёный плюс на панели дерева. - Откроется окно редактирования объекта. На вкладке «Основные» заполните «Имя» и «Синоним».
- Пройдите вкладки по порядку и нажмите «Закрыть» — объект появится в дереве.
Имя — техническое, по нему к объекту обращаются из кода: ДоговорыАренды. Без пробелов, начинается с буквы. Синоним видит пользователь: «Договоры аренды». Синоним платформа подставляет из имени сама, но лучше его поправить вручную.
На той же вкладке есть «Представление объекта» и «Представление списка». Заполните их, иначе в заголовках форм будет синоним во множественном числе: «Договоры аренды (создание)» вместо «Договор аренды (создание)».
Что настроить у справочника
- 🔢 Длина кода и наименования. По умолчанию код — 9 символов, наименование — 25. Для договоров 25 символов почти всегда мало, ставьте 100–150.
- 🌳 Иерархия. Вкладка «Иерархия» включает группы (папки) или иерархию элементов.
- 🔗 Владельцы. Если договор всегда принадлежит контрагенту, на вкладке «Владельцы» укажите справочник контрагентов. Список договоров тогда открывается в разрезе выбранного контрагента.
Что настроить у документа
- 📅 Нумерация. Длина номера, тип (строка или число), периодичность (в пределах года, без периода и т. д.).
- ✅ Проведение. На вкладке «Движения» разрешите проведение и отметьте регистры, по которым документ будет делать записи.
- 🛠 Конструктор движений. Там же есть кнопка конструктора: он сам пишет процедуру
ОбработкаПроведенияв модуле объекта по выбранным полям.
Что настроить у регистра
| Вид регистра | Ключевые свойства | Когда выбирать |
|---|---|---|
| Регистр сведений | Периодичность, режим записи (независимый или подчинение регистратору) | Курсы, цены, настройки, история значений |
| Регистр накопления | Вид: остатки или обороты; измерения, ресурсы | Склад, взаиморасчёты, всё, что приходит и уходит |
У регистра накопления нет независимого режима: записи в него всегда делает документ-регистратор. Поэтому порядок такой: сначала регистр, потом документ, который его двигает.
Реквизиты и табличные части нового объекта
Реквизиты и табличные части добавляются на вкладке «Данные» окна редактирования. Справа от списка — кнопки добавления.
Реквизит
- На вкладке «Данные» выделите группу «Реквизиты» и нажмите «Добавить».
- Задайте имя (
ДатаОкончания) и синоним («Дата окончания»). - Выберите тип. Самые частые варианты:
Строка— с длиной; длина 0 означает неограниченную строку, но по ней нельзя нормально отбирать и сортировать список;Число— длина и точность: сумма с копейками — 15 и 2;Дата— с составом «Дата», «Время» или «Дата и время»;Булево— флажок;СправочникСсылка.Контрагенты— ссылка на другой объект.
- Если поле обязательно, в свойствах поставьте «Проверка заполнения» → «Выдавать ошибку». Платформа сама не даст записать элемент с пустым полем.
Табличная часть
Табличная часть — это строки внутри объекта: товары в документе, этапы договора, контактные лица. На той же вкладке выделите «Табличные части» → «Добавить», задайте имя (Товары), а затем добавьте реквизиты уже внутри неё: Номенклатура, Количество, Цена, Сумма.
Пример процедуры проведения, которая переносит строки табличной части в регистр накопления остатков:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого СтрокаТЧ Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТЧ.Номенклатура;
Движение.Количество = СтрокаТЧ.Количество;
КонецЦикла;
КонецПроцедуры
Здесь ОстаткиТоваров — регистр накопления вида «Остатки» с измерением Номенклатура и ресурсом Количество. Документ должен быть отмечен как его регистратор на вкладке «Движения».
Сразу продумайте типы. Сменить тип реквизита, по которому уже введены данные, можно, но при обновлении базы платформа попытается преобразовать значения, а то, что не преобразуется, будет потеряно.
Формы: создать свою или оставить автоматическую
Если не создавать форму вообще, платформа построит её сама. В автоматической форме будут все реквизиты подряд и табличные части отдельными вкладками. Для черновика этого достаточно.
Своя форма нужна, когда надо расставить поля по группам, спрятать служебные реквизиты, добавить кнопку или обработчик.
- В окне редактирования объекта откройте вкладку «Формы».
- Нажмите кнопку добавления у поля нужной формы (форма объекта, форма списка, форма выбора).
- В конструкторе форм выберите тип формы и отметьте реквизиты, которые попадут на неё. Нажмите «Готово».
- Откроется редактор формы. Слева вверху — дерево элементов, справа — реквизиты формы, внизу — сама форма в режиме предпросмотра.
Как работать с редактором:
- 🖱 Добавить поле. Перетащите реквизит из окна «Реквизиты» в дерево элементов.
- 📦 Сгруппировать поля. Добавьте элемент «Группа», в её свойствах выберите горизонтальную или вертикальную группировку и перетащите поля внутрь.
- 🔘 Добавить кнопку. На вкладке «Команды» создайте команду, назначьте ей обработчик, затем перетащите команду в командную панель формы.
- 📝 Код формы. Вкладка «Модуль» внизу редактора. Обработчики событий формы (
ПриСозданииНаСервере,ПередЗаписью) назначаются в свойствах самой формы.
Созданную форму сделайте основной: на вкладке «Формы» её имя должно стоять в поле «Основная форма объекта». Если форм несколько, а основная не указана, пользователь может увидеть не ту.
Как сделать новый объект видимым: подсистемы, командный интерфейс и права
Объект создан, база обновлена, а в программе его нет. Причина почти всегда в одном из трёх пунктов ниже.
Подсистемы
Подсистема — это раздел в панели разделов: «Продажи», «Склад», «Администрирование». Объект, не включённый ни в одну подсистему, в меню не попадёт.
- В окне редактирования объекта откройте вкладку «Подсистемы» и отметьте нужные.
- Либо откройте саму подсистему и добавьте объект в её «Состав».
- У подсистемы должен стоять флажок «Включать в командный интерфейс».
Командный интерфейс
В свойствах подсистемы есть кнопка открытия командного интерфейса. В нём видно, какие команды попадут в панель навигации раздела («Договоры аренды») и в панель действий («Договор аренды: создать»). Там же можно включить или выключить видимость команды для конкретной роли.
У самого объекта должно стоять свойство «Использовать стандартные команды». Без него команды открытия списка и создания элемента не формируются.
Права
Пользователь видит только те объекты, на которые у его ролей есть право «Просмотр». Откройте вкладку «Права» в окне редактирования объекта: слева список ролей, справа права на этот объект.
Минимальный набор для рабочего справочника: «Чтение», «Добавление», «Изменение», «Просмотр», «Интерактивное добавление», «Редактирование». Для документа добавьте «Проведение» и «Интерактивное проведение».
В конфигурациях на Библиотеке стандартных подсистем (это все современные типовые) роль недостаточно отметить в конфигураторе. Её нужно включить в профиль группы доступа в пользовательском режиме: Администрирование → Настройки пользователей и прав → Профили групп доступа. Удобнее всего создать отдельную роль под новые объекты и добавить её в нужный профиль.
У роли «Полные права» в типовых конфигурациях обычно стоит флажок «Устанавливать права для новых объектов». Поэтому администратор видит новый справочник сразу, а бухгалтер — нет. Это не ошибка, а тот самый недостающий шаг с правами.
Сохранение конфигурации и обновление базы данных
Последний шаг переносит изменения из основной конфигурации в конфигурацию базы данных.
| Действие | Как вызвать | Что происходит |
|---|---|---|
| Сохранить | Ctrl+S или Конфигурация → Сохранить конфигурацию | Правки записаны в основную конфигурацию, пользователи их не видят |
| Обновить конфигурацию БД | F7 или Конфигурация → Обновить конфигурацию базы данных | Платформа создаёт новые таблицы и меняет структуру базы |
| Запустить отладку | F5 | Обновляет базу (если нужно) и сразу открывает пользовательский режим для проверки |
После F7 появляется окно «Реорганизация информации» со списком изменений. Прочитайте его. Если там написано, что данные какого-то реквизита будут удалены, а вы этого не ожидали, нажмите «Отмена» и проверьте, что меняли. Если всё сходится — «Принять».
Если в базе работают пользователи, платформа либо применит изменения динамически, либо попросит завершить сеансы — зависит от характера правок. Для добавления новых объектов в рабочую базу удобнее выбрать время, когда в ней никого нет: при обрыве сеансов пользователи потеряют незаписанные данные.
Для расширения порядок свой: сохраните расширение и обновите конфигурацию базы данных из окна этого расширения. Затем перезапустите пользовательский режим — без перезапуска новые объекты не появятся.
Проверка после обновления
- Нажмите
F5и войдите под пользователем с обычной, не административной ролью. - Найдите объект в нужном разделе.
- Создайте элемент, заполните обязательное поле и попробуйте записать с пустым — должна появиться ошибка.
- Для документа проведите его и откройте движения: команда «Движения документа» или отчёт по регистру.
Только после этого переносите изменения в рабочую базу: загрузите .cf с доработкой через сравнение и объединение или подключите .cfe-файл расширения.