Правим справочник в 1С: элементы, реквизиты, формы и иерархия

· 9 мин

Содержание

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

Короткий ориентир. Правка элементов: открываете список справочника в разделе программы и редактируете карточку. Правка структуры: Конфигуратор → дерево конфигурации → Справочники, затем обновление конфигурации базы данных по F7. Ниже — обе дороги по шагам, со способом доработки без снятия с поддержки и предупреждением о реструктуризации.

Что именно нужно изменить в справочнике?

Правим элементы справочника без Конфигуратора

Самый частый случай — поменять не структуру, а содержимое. Для этого Конфигуратор не нужен.

Откройте нужный список. Справочники в типовых конфигурациях лежат в тематических разделах: контрагенты и номенклатура — в разделе Справочники, сотрудники в ЗУП — в разделе Кадры, статьи затрат — в настройках учёта. Если не помните, где элемент, воспользуйтесь полем поиска над списком — оно ищет по наименованию и коду.

Дальше всё как в обычной таблице:

  • ✏️ изменить элемент — двойной клик по строке, правка полей карточки, кнопка Записать и закрыть;
  • ➕ добавить элемент — кнопка Создать в командной панели списка;
  • 📁 создать группу — кнопка Создать группу (если справочник иерархический);
  • 🔀 перенести в другую группу — перетащить мышью или команда Переместить в группу;
  • 🏷 переименовать — открыть элемент и изменить поле наименования.

Удалять элементы напрямую нельзя — 1С сначала помечает их на удаление (команда Пометить на удаление или клавиша Del). Физически записи стираются позже, через Администрирование → Обслуживание → Удаление помеченных объектов: программа проверит, что на элемент нигде нет ссылок, и только тогда удалит. Это защита от «висящих» ссылок в документах.

Код элемента в типовых справочниках присваивается автоматически и обычно менять его вручную не нужно. Если поле кода закрыто для редактирования — так и задумано.

Изменить реквизит сразу у многих элементов

Когда одно и то же поле нужно поправить у десятков строк — например, проставить одну группу номенклатуры или одного ответственного, — есть обработка группового изменения реквизитов. Откройте её через главное меню Все функции → Обработки и найдите обработку, меняющую реквизиты группы объектов. Если команды Все функции в меню нет, включите её: главное меню → Сервис → Параметры → флажок отображения команды Все функции.

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

Готовимся к правке структуры: копия и способ доработки

Всё, что ниже, выполняется в Конфигураторе и меняет базу целиком. Два решения принимают до того, как открыть дерево конфигурации.

Резервная копия. Структурные изменения перестраивают таблицы базы данных. Если что-то пойдёт не так, вернуться можно только из копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытой базе; для клиент-серверной — выгрузить .dt через Администрирование → Выгрузить информационную базу или снять копию средствами СУБД.

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

  1. Расширение конфигурации — рекомендуемый способ. Новые реквизиты и формы живут в отдельном модуле, типовая остаётся на поддержке и спокойно обновляется. Расширения работают на платформе 8.3.6 и новее.
  2. Снятие с поддержки — меняете саму конфигурацию. После этого типовые обновления придётся принимать через сравнение-объединение вручную. Выбирайте только если расширением задачу не решить.

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

Перед изменением структуры справочника
Выполнено: 0 / 4

Открываем справочник в Конфигураторе

Запустите Конфигуратор: в окне запуска 1С выберите базу и нажмите кнопку Конфигуратор. Для доступа нужны права на администрирование конфигурации.

В Конфигураторе откройте дерево объектов: меню Конфигурация → Открыть конфигурацию. В дереве разверните ветку Справочники — в ней перечислены все справочники конфигурации. Если справочников много, найдите нужный через поле поиска над деревом или команду Правка → Найти.

Дважды щёлкните по справочнику (или вызовите Свойства из контекстного меню) — откроется палитра свойств самого объекта и его подчинённые ветки:

  • Реквизиты — дополнительные поля элемента (ИНН, телефон, признак);
  • Табличные части — вложенные таблицы внутри элемента;
  • Формы — экранные формы: элемента, списка, выбора, группы;
  • Макеты — печатные формы и шаблоны;
  • Команды — дополнительные команды элемента.

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

Открытый в Конфигураторе справочник вы меняете для всех. Экспериментируйте на тестовой копии, а не на рабочей базе в разгар дня.

Добавляем реквизиты и меняем типы данных

Новое поле элемента — это реквизит. Разверните у справочника ветку Реквизиты, вызовите контекстное меню и нажмите Добавить. В палитре свойств заполните главное:

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

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

Смена типа существующего реквизита

Это самое рискованное изменение. Если новый тип несовместим со старым, при обновлении базы значения, которые не приводятся к новому типу, будут очищены. Строку в число без потерь не переведёшь, если там есть нечисловые символы; ссылку на один справочник — в ссылку на другой тоже.

Безопасный порядок:

  1. Сделайте резервную копию (ещё раз — именно перед сменой типа).
  2. Проверьте на тестовой базе, как лягут текущие данные.
  3. Если данные важны, добавьте новый реквизит нужного типа, перенесите значения обработкой, а старый уберите позже — так ничего не потеряется.

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

Иерархия, группы и предопределённые элементы

Иерархия задаётся не правкой элементов, а свойствами самого справочника. В палитре свойств найдите флажок Иерархический. После его включения становится доступным Вид иерархии:

  • Иерархия групп и элементов — привычные папки: группы отдельно, элементы внутри. Так устроена большинство справочников — номенклатура, контрагенты.
  • Иерархия элементов — родителем может быть любой элемент, отдельных групп нет. Подходит для подразделений, статей, где «папка» сама по себе значимый элемент.

Флажок Размещать группы сверху определяет, показывать ли папки над элементами в списке. Глубину вложенности ограничивает свойство Ограничение количества уровней иерархии.

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

Настраиваем формы справочника

Формы — это экраны, через которые пользователь видит справочник. У справочника их обычно несколько:

ФормаКогда показывается
Форма элементапри открытии карточки элемента
Форма спискапри открытии справочника списком
Форма группыпри открытии папки (у иерархических)
Форма выборакогда справочник вызывают для подстановки в документ

Если форм нет, 1С строит их автоматически по реквизитам. Как только нужно управлять расположением полей — создайте форму явно: на ветке Формы вызовите Добавить, укажите назначение (элемента, списка и т. д.) и пройдите мастер.

Редактор управляемой формы делится на области: слева дерево элементов формы, рядом — реквизиты формы, внизу — командная панель. Новое поле перетаскивают из реквизитов объекта в дерево элементов; порядок и группировку меняют перетаскиванием. Чтобы поле появилось в списке колонкой, добавьте его в таблицу формы списка.

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

Обновляем конфигурацию базы данных

Пока вы работаете в Конфигураторе, вы меняете конфигурацию, а не базу. Пользователи в «Предприятии» изменений ещё не видят. Чтобы правки вступили в силу, конфигурацию базы данных нужно обновить.

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

Затем нажмите F7 или выполните Конфигурация → Обновить конфигурацию базы данных. Платформа покажет список изменений и, если менялась структура, запустит реструктуризацию — перестроит таблицы базы под новые реквизиты и типы. Соглашайтесь на принятие изменений только после того, как просмотрели этот список: в нём видно, какие реквизиты добавляются, а какие удаляются вместе с данными.

Важный момент про доступ. Простое изменение (новая форма, правка макета) часто проходит без выгона пользователей. А вот структурные изменения — новый реквизит, смена типа, включение иерархии — требуют монопольного (исключительного) доступа к базе. Если в базе работают люди, платформа сообщит, что не может получить монопольный доступ.

Поэтому перед обновлением структуры:

  1. Предупредите пользователей и попросите выйти.
  2. В клиент-серверном варианте завершите сеансы через кластер серверов или консоль администрирования — но только когда все сохранили работу, иначе оборвёте незаписанные документы.
  3. Запустите обновление и дождитесь окончания реструктуризации.

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

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

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

Нужен ли программист, чтобы изменить справочник?
Чтобы поправить элементы — нет, это делает любой пользователь в режиме «Предприятие». Чтобы добавить поле или изменить структуру — нужен доступ к Конфигуратору и понимание последствий для базы. Такую правку обычно поручают специалисту.
Потеряются ли данные при добавлении реквизита?
Нет. Новый реквизит у существующих элементов просто будет пустым. Данные теряются при смене типа на несовместимый и при удалении реквизита — вот тогда нужна копия.
Можно ли изменить типовой справочник, не снимая конфигурацию с поддержки?
Да, через расширение конфигурации. Оно добавляет реквизиты и формы в отдельном модуле, а типовая остаётся на поддержке и обновляется штатно. Это основной способ дорабатывать типовые решения на платформе 8.3.6 и новее.
Почему платформа не даёт обновить конфигурацию базы?
Для структурных изменений нужен монопольный доступ. Пока в базе есть активные сеансы, обновление не пройдёт. Освободите базу и повторите.
Чем отличается изменение справочника от изменения документа?
Принцип тот же: реквизиты, формы, обновление базы. Но у документа есть движения по регистрам, и смена его структуры может потребовать перепроведения. Справочник движений не делает, поэтому правится проще.