Правим справочник в 1С: элементы, реквизиты, формы и иерархия
Содержание
Справочник в 1С меняют на двух разных уровнях, и важно не перепутать их. Если нужно поправить сами записи — переименовать контрагента, добавить новый элемент, изменить реквизиты существующей строки — это делается прямо в режиме «1С:Предприятие», без программиста. Если же надо изменить структуру справочника — добавить новое поле (реквизит), поменять тип данных, включить иерархию — это работа в Конфигураторе, и она затрагивает всю базу.
Короткий ориентир. Правка элементов: открываете список справочника в разделе программы и редактируете карточку. Правка структуры: Конфигуратор → дерево конфигурации → Справочники, затем обновление конфигурации
базы данных по F7. Ниже — обе дороги по шагам, со способом доработки без снятия с поддержки и предупреждением о реструктуризации.
Правим элементы справочника без Конфигуратора
Самый частый случай — поменять не структуру, а содержимое. Для этого Конфигуратор не нужен.
Откройте нужный список. Справочники в типовых конфигурациях лежат в тематических разделах: контрагенты и номенклатура — в разделе Справочники, сотрудники в ЗУП — в разделе Кадры, статьи затрат — в настройках учёта. Если не помните, где элемент, воспользуйтесь полем поиска над списком — оно ищет по наименованию и коду.
Дальше всё как в обычной таблице:
- ✏️ изменить элемент — двойной клик по строке, правка полей карточки, кнопка
Записать и закрыть; - ➕ добавить элемент — кнопка
Создатьв командной панели списка; - 📁 создать группу
— кнопка
Создать группу(если справочник иерархический); - 🔀 перенести в другую группу — перетащить мышью или команда
Переместить в группу; - 🏷 переименовать — открыть элемент и изменить поле наименования.
Удалять элементы напрямую нельзя — 1С сначала помечает их на удаление (команда Пометить на удаление или клавиша Del). Физически записи стираются позже, через Администрирование → Обслуживание → Удаление помеченных объектов: программа проверит, что на элемент нигде нет ссылок, и только тогда удалит. Это защита от «висящих» ссылок в документах.
Код элемента в типовых справочниках присваивается автоматически и обычно менять его вручную не нужно. Если поле кода закрыто для редактирования — так и задумано.
Изменить реквизит сразу у многих элементов
Когда одно и то же поле нужно поправить у десятков строк — например, проставить одну группу номенклатуры или одного ответственного, — есть обработка группового изменения реквизитов. Откройте её через главное меню Все функции → Обработки и найдите обработку, меняющую реквизиты группы объектов. Если команды Все функции в меню нет, включите её: главное меню → Сервис → Параметры → флажок отображения команды Все функции.
Обработка доступна пользователю с правами администратора. В ней выбирают справочник, отбирают нужные элементы и указывают реквизит с новым значением. Перед групповой правкой сделайте резервную копию: откат по одному элементу потом невозможен.
Готовимся к правке структуры: копия и способ доработки
Всё, что ниже, выполняется в Конфигураторе и меняет базу целиком. Два решения принимают до того, как открыть дерево конфигурации.
Резервная копия. Структурные изменения перестраивают таблицы базы данных. Если что-то пойдёт не так, вернуться можно только из копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытой базе; для клиент-серверной — выгрузить .dt через Администрирование → Выгрузить информационную базу или снять копию средствами СУБД.
Способ доработки. Типовая конфигурация (Бухгалтерия, ЗУП, УТ) поставляется на поддержке — напрямую её структуру менять не дадут, пока не включите такую возможность. Есть два пути:
- Расширение конфигурации — рекомендуемый способ. Новые реквизиты и формы живут в отдельном модуле, типовая остаётся на поддержке и спокойно обновляется. Расширения работают на платформе 8.3.6 и новее.
- Снятие с поддержки — меняете саму конфигурацию. После этого типовые обновления придётся принимать через сравнение-объединение вручную. Выбирайте только если расширением задачу не решить.
Чтобы разрешить изменения основной конфигурации, в Конфигураторе откройте Конфигурация → Поддержка → Настройка поддержки и нажмите Включить возможность изменения. Для расширения снимать типовую с поддержки не требуется.
Открываем справочник в Конфигураторе
Запустите Конфигуратор: в окне запуска 1С выберите базу и нажмите кнопку Конфигуратор. Для доступа нужны права на администрирование конфигурации.
В Конфигураторе откройте дерево объектов: меню Конфигурация → Открыть конфигурацию. В дереве разверните ветку Справочники — в ней перечислены все справочники конфигурации. Если справочников много, найдите нужный через поле поиска над деревом или команду Правка → Найти.
Дважды щёлкните по справочнику (или вызовите Свойства из контекстного меню) — откроется палитра свойств самого объекта и его подчинённые ветки:
- Реквизиты — дополнительные поля элемента (ИНН, телефон, признак);
- Табличные части — вложенные таблицы внутри элемента;
- Формы — экранные формы: элемента, списка, выбора, группы;
- Макеты — печатные формы и шаблоны;
- Команды — дополнительные команды элемента.
Если справочник заимствуете в расширение: в дереве расширения вызовите Добавить в расширение на нужном справочнике основной конфигурации. В расширение попадёт ссылка на объект, и к нему можно добавлять свои реквизиты и формы.
Открытый в Конфигураторе справочник вы меняете для всех. Экспериментируйте на тестовой копии, а не на рабочей базе в разгар дня.
Добавляем реквизиты и меняем типы данных
Новое поле элемента — это реквизит. Разверните у справочника ветку Реквизиты, вызовите контекстное меню и нажмите Добавить. В палитре свойств заполните главное:
- Имя — служебное, латиницей или кириллицей, без пробелов (например,
ДатаДоговора). Используется в коде и запросах. - Синоним — то, что увидит пользователь в форме и колонке списка (
Дата договора). - Тип — тип данных реквизита: строка, число, дата, булево или ссылка на другой справочник/документ. Для строки задайте длину, для числа — разрядность и точность.
Составной тип (несколько типов сразу) включается галочкой Составной тип данных в окне выбора типа — применяйте его осознанно, он усложняет запросы и формы.
Смена типа существующего реквизита
Это самое рискованное изменение. Если новый тип несовместим со старым, при обновлении базы значения, которые не приводятся к новому типу, будут очищены. Строку в число без потерь не переведёшь, если там есть нечисловые символы; ссылку на один справочник — в ссылку на другой тоже.
Безопасный порядок:
- Сделайте резервную копию (ещё раз — именно перед сменой типа).
- Проверьте на тестовой базе, как лягут текущие данные.
- Если данные важны, добавьте новый реквизит нужного типа, перенесите значения обработкой, а старый уберите позже — так ничего не потеряется.
Удаление реквизита тоже стирает данные в его колонке у всех элементов. Перед удалением убедитесь, что поле нигде не используется в формах, печатных формах и коде.
Иерархия, группы и предопределённые элементы
Иерархия задаётся не правкой элементов, а свойствами самого справочника. В палитре свойств найдите флажок Иерархический. После его включения становится доступным Вид иерархии:
- Иерархия групп и элементов — привычные папки: группы отдельно, элементы внутри. Так устроена большинство справочников — номенклатура, контрагенты.
- Иерархия элементов — родителем может быть любой элемент, отдельных групп нет. Подходит для подразделений, статей, где «папка» сама по себе значимый элемент.
Флажок Размещать группы сверху определяет, показывать ли папки над элементами в списке. Глубину вложенности ограничивает свойство Ограничение количества уровней иерархии.
Предопределённые элементы — это элементы, которые создаёт не пользователь, а сама конфигурация: они нужны коду, который ссылается на них по имени. Их список — в ветке Предопределённые (у реквизитов или в отдельной команде свойств справочника). Добавлять предопределённый элемент можно; а вот удалять или переименовывать его опасно — код, который на него ссылается, перестанет работать. Меняйте предопределённые элементы только если точно знаете, где они используются.
Настраиваем формы справочника
Формы — это экраны, через которые пользователь видит справочник. У справочника их обычно несколько:
| Форма | Когда показывается |
|---|---|
| Форма элемента | при открытии карточки элемента |
| Форма списка | при открытии справочника списком |
| Форма группы | при открытии папки (у иерархических) |
| Форма выбора | когда справочник вызывают для подстановки в документ |
Если форм нет, 1С строит их автоматически по реквизитам. Как только нужно управлять расположением полей — создайте форму явно: на ветке Формы вызовите Добавить, укажите назначение (элемента, списка и т. д.) и пройдите мастер.
Редактор управляемой формы делится на области: слева дерево элементов формы, рядом — реквизиты формы, внизу — командная панель. Новое поле перетаскивают из реквизитов объекта в дерево элементов; порядок и группировку меняют перетаскиванием. Чтобы поле появилось в списке колонкой, добавьте его в таблицу формы списка.
Если добавили реквизит, но в форме его не видно — скорее всего, форма создана явно и поле в неё не попало автоматически. Откройте форму и добавьте колонку или поле вручную.
Обновляем конфигурацию базы данных
Пока вы работаете в Конфигураторе, вы меняете конфигурацию, а не базу. Пользователи в «Предприятии» изменений ещё не видят. Чтобы правки вступили в силу, конфигурацию базы данных нужно обновить.
Перед обновлением имеет смысл проверить конфигурацию на ошибки: Конфигурация → Проверить конфигурацию. Платформа укажет на несохранённые ссылки, формы с потерянными реквизитами и прочие огрехи правки — лучше поймать их здесь, чем на рабочей базе после реструктуризации.
Затем нажмите F7 или выполните Конфигурация → Обновить конфигурацию базы данных. Платформа покажет список изменений и, если менялась структура, запустит реструктуризацию — перестроит таблицы базы под новые реквизиты и типы. Соглашайтесь на принятие изменений только после того, как просмотрели этот список: в нём видно, какие реквизиты добавляются, а какие удаляются вместе с данными.
Важный момент про доступ. Простое изменение (новая форма, правка макета) часто проходит без выгона пользователей. А вот структурные изменения — новый реквизит, смена типа, включение иерархии — требуют монопольного (исключительного) доступа к базе. Если в базе работают люди, платформа сообщит, что не может получить монопольный доступ.
Поэтому перед обновлением структуры:
- Предупредите пользователей и попросите выйти.
- В клиент-серверном варианте завершите сеансы через кластер серверов или консоль администрирования — но только когда все сохранили работу, иначе оборвёте незаписанные документы.
- Запустите обновление и дождитесь окончания реструктуризации.
На больших базах реструктуризация занимает время — планируйте её на вечер или выходные. После обновления войдите в «Предприятие» и проверьте, что новое поле видно, списки открываются, а документы проводятся.
Для расширения порядок тот же: сохраните расширение, затем обновите конфигурацию базы данных — платформа применит изменения из .cfe так же, как из основной конфигурации.