Работа с предопределенными элементами в 1С:Предприятие — одна из самых деликатных задач, с которыми сталкиваются как рядовой пользователь, так и опытный разработчик. Эти элементы (справочники, документы, перечисления) заложены в конфигурацию на этапе создания и часто имеют критическое значение для корректной работы системы. Однако бизнес-процессы меняются, и иногда требуется внести правки в то, что изначально казалось неизменным.
В этой статье мы разберём все законные способы изменения предопределенных элементов — от простых корректировок через интерфейс до сложных программных решений. Вы узнаете, когда можно обойтись штатными средствами 1С, а когда потребуется вмешательство в конфигурацию или даже помощь специалиста. Особое внимание уделим рискам и последствиям: почему некоторые изменения могут привести к сбоям, как их предотвратить, и что делать, если"всё пошло не так".
Материал будет полезен бухгалтерам, кадровикам, кладовщикам и другим пользователям, которые работают с 1С ежедневно, а также начинающим программистам 1С, которые хотят понять механизмы управления предопределенными данными. Все инструкции актуальны для последних версий платформы 1С:Предприятие 8.3 (включая 8.3.23 и новее) и типовой конфигурации 1С:ERP, 1С:Бухгалтерия 3.0, 1С:ЗУП 3.1 и других.
Что такое предопределенные элементы в 1С и почему их сложно менять
Предопределенные элементы — это объекты метаданных (справочники, документы, планы видов характеристик и др.), которые созданы заранее в конфигурации и имеют фиксированные идентификаторы. Их главная особенность: они существуют до первого запуска базы и не удаляются при очистке данных. Примеры:
- 📌 Справочник"Валюты" с предопределенными валютами (рубль, доллар, евро)
- 📌 Перечисление"ВидыНоменклатуры" (товар, услуга, работа)
- 📌 Документ"Установка цен номенклатуры" с предопределенным видом операции
- 📌 План видов характеристик"ВидыСубконто" (счета бухгалтерского учёта)
Основная проблема при изменении таких элементов заключается в их жёсткой привязке к логике работы конфигурации. Например, если вы измените идентификатор предопределенной валюты"USD" на"US_Dollar", то все документы, где использовался старый идентификатор, перестанут корректно обрабатываться. Платформа 1С не сможет автоматически подставить новый идентификатор в уже созданные данные.
Кроме того, предопределенные элементы часто используются в:
- 🔹 Типовых отчётах (например, оборотно-сальдовая ведомость опирается на предопределенные счета бухгалтерского учёта)
- 🔹 Бизнес-процессах (маршруты документов могут ссылаться на предопределенные виды операций)
- 🔹 Интеграциях (обмен данными с другими системами через предопределенные идентификаторы)
⚠️ Внимание: Изменение предопределенных элементов в рабочей базе может привести к невозможности обновления конфигурации в будущем. Типовые обновления от 1С рассчитаны на стандартную структуру метаданных.
Когда действительно нужно менять предопределенный элемент: 5 легитимных причин
Прежде чем приступать к изменению предопределенных данных, убедитесь, что это действительно необходимо. В 80% случаев задачу можно решить альтернативными способами (например, создать новый элемент справочника вместо изменения существующего). Рассмотрим ситуации, когда правка оправдана:
- Ошибка в типовой конфигурации. Например, в справочнике"Страны мира" отсутствует актуальное название государства или указан неверный код.
- Изменение законодательства. Если предопределенный элемент ссылается на устаревший нормативный акт (например, старую ставку НДС).
- Локализация для специфичного бизнеса. Например, в типовой 1С:Розница нет предопределенного вида номенклатуры"Цифровой товар", который нужен для вашего магазина.
- Миграция данных из другой системы. При переносе базы может потребоваться сопоставить идентификаторы предопределенных элементов.
- Оптимизация производительности. В редких случаях изменение структуры предопределенных данных ускоряет работу системы (например, сокращение длины идентификаторов).
Если ваша ситуация не попадает в этот список, рассмотрите альтернативные решения:
- 🔄 Создание нового элемента вместо изменения существующего (например, добавить новую валюту вместо редактирования доллара)
- 🔄 Использование дополнительных реквизитов для хранения специфичных данных
- 🔄 Настройка прав доступа, если проблема в ограничении видимости элемента
Перед изменением предопределенного элемента всегда проверяйте, не используется ли он в регламентных заданиях или фоновых процессах. Например, в 1С:ЗУП предопределенные виды расчётов могут участвовать в автоматическом перерасчёте зарплаты.
Способы изменения предопределенных элементов: от простого к сложному
Выбор метода зависит от типа элемента, версии платформы и ваших прав доступа. Рассмотрим все варианты — от самых безопасных до самых рискованных.
1. Изменение через интерфейс пользователя (самый безопасный способ)
Некоторые предопределенные элементы можно редактировать в режиме 1С:Предприятие, если это разрешено конфигурацией. Например:
- 🖱️ В справочнике
Валютыможно изменить наименование или символьный код валюты (но не идентификатор!) - 🖱️ В справочнике
Контрагентыпредопределенные элементы (например,"Розничный покупатель") иногда разрешается редактировать
Как проверить возможность редактирования:
- Откройте справочник с предопределенным элементом (например,
Справочники → Валюты). - Найдите нужный элемент (обычно они выделены жирным шрифтом или имеют иконку"замочка").
- Попробуйте открыть его на редактирование (двойной клик или кнопка"Изменить").
⚠️ Внимание: Даже если система позволяет изменить наименование предопределенного элемента, не меняйте его идентификатор (поле"Код" или"Ссылка"). Это приведёт к разрыву связей в базе.
2. Редактирование в Конфигураторе (для разработчиков)
Если элемент заблокирован в режиме 1С:Предприятие, можно попробовать изменить его в Конфигураторе:
- Откройте базу в режиме
Конфигуратор(правой кнопкой по базе в списке →"Конфигуратор"). - Перейдите в дерево метаданных и найдите нужный справочник/перечисление.
- Откройте список предопределенных элементов (например, для справочника: правая кнопка →"Предопределённые данные").
- Измените необходимые свойства (наименование, синоним, но не идентификатор!).
- Сохраните конфигурацию и обновите базу данных (
Конфигурация → Обновить базу данных).
Пример изменения предопределенной валюты в 1С:Бухгалтерия 3.0:
// 1. Открываем справочник"Валюты" в Конфигураторе
// 2. Находим предопределенный элемент"USD"
// 3. Меняем свойство"ПолноеНаименование" с"Доллар США" на"Доллар США (обновлённое)"
// 4. Сохраняем и обновляем базу
3. Программное изменение через встроенный язык
Для опытных пользователей и разработчиков доступен метод изменения предопределенных элементов через встроенный язык 1С. Этот способ требует знания синтаксиса и понимания последствий. Пример кода для изменения наименования предопределенной валюты:
ВалютаUSD = Справочники.Валюты.НайтиПоНаименованию("Доллар США");
Если Не ВалютаUSD = Неопределено Тогда
ВалютаUSD.Наименование ="Доллар США (новое)";
ВалютаUSD.Записать;
КонецЕсли;
Ограничения программного метода:
- 🚫 Нельзя изменить идентификатор (ссылку) элемента
- 🚫 Не все свойства доступны для редактирования (зависит от конфигурации)
- 🚫 Изменения могут сброситься при обновлении конфигурации
4. Прямое редактирование базы данных (крайний случай)
Это самый рискованный метод, который следует использовать только в случае крайней необходимости и при наличии резервной копии. Предопределенные элементы хранятся в системных таблицах базы данных (например, _ReferenceXX для справочников). Для редактирования потребуется:
- Подключиться к базе через SQL-клиент (например, Microsoft SQL Server Management Studio для MS SQL).
- Найти таблицу с предопределенными данными (имя зависит от конфигурации).
- Выполнить UPDATE-запрос для изменения нужного поля.
⚠️ Внимание: Неправильный SQL-запрос может полностью разрушить базу данных. Этот метод рекомендуется использовать только специалистам с опытом администрирования СУБД.
Создать резервную копию базы данных|Проверить, не используется ли элемент в интеграциях|Убедиться, что изменение не нарушит бизнес-логику|Протестировать изменения на копии базы|Документировать все правки для будущих обновлений-->
Пошаговая инструкция: как изменить предопределенный элемент в справочнике"Валюты"
Рассмотрим на практике самый распространённый случай — редактирование предопределенной валюты. Например, нам нужно изменить наименование доллара США с"Доллар США" на"Доллар США (USD)" для удобства пользователей.
Шаг 1. Проверка возможности редактирования
Откройте 1С:Предприятие и перейдите в справочник Валюты (Справочники → Валюты). Найдите строку с валютой"Доллар США". Если при двойном клике открывается форма редактирования — можно приступать. Если нет, потребуется Конфигуратор.
Шаг 2. Редактирование в режиме предприятия
Если редактирование разрешено:
- Откройте элемент"Доллар США" на изменение.
- В поле Наименование введите новое значение:
Доллар США (USD). - Поле Код (или Ссылка) не трогайте — это приведёт к ошибкам!
- Сохраните изменения (кнопка"Записать и закрыть").
Шаг 3. Редактирование через Конфигуратор
Если в режиме предприятия изменения заблокированы:
- Закройте 1С:Предприятие и откройте базу в Конфигураторе.
- В дереве метаданных найдите справочник
Валюты. - Правой кнопкой →
Предопределённые данные. - Найдите элемент
USD(обычно он имеет идентификаторВалюты.USD). - Измените свойство
НаименованиенаДоллар США (USD). - Сохраните конфигурацию (
Файл → Сохранить). - Обновите базу данных (
Конфигурация → Обновить базу данных).
Шаг 4. Проверка изменений
После применения изменений:
- 🔍 Откройте 1С:Предприятие и проверьте, отображается ли новое наименование в справочнике.
- 🔍 Создайте тестовый документ (например,
Поступление товаров) с новой валютой и убедитесь, что он проводится без ошибок. - 🔍 Проверьте отчёты (например,
Оборотно-сальдовая ведомость по счетам учёта), где используется валюта.
Что делать, если после изменения валюты перестали проводиться документы?
Если документы перестали проводиться с ошибкой"Не найдена валюта с кодом USD", это означает, что вы случайно изменили идентификатор элемента, а не только наименование. Восстановить работоспособность можно двумя способами:
1. Откатить изменения через резервную копию.
2. Вручную исправить все ссылки на старый идентификатор в таблицах базы данных (требуются знания SQL).
В будущем никогда не редактируйте поле"Код" или"Ссылка" у предопределенных элементов!
Ошибки при изменении предопределенных элементов и как их исправить
Даже опытные разработчики иногда сталкиваются с проблемами после редактирования предопределенных данных. Рассмотримчные ошибки и способы их устранения.
| Ошибка | Причина | Решение |
|---|---|---|
| "Не найден объект метаданных" | Изменён идентификатор предопределенного элемента, на который ссылаются другие объекты | Восстановить старый идентификатор или исправить все ссылки в базе |
| "Ошибка при записи объекта" | Попытка изменить заблокированное свойство (например, код валюты) | Откатить изменения и редактировать только разрешённые поля |
| "Несоответствие версии конфигурации" | Правки в предопределенных данных конфликтуют с типовым обновлением | Снять базу с поддержки или перенести изменения в расширение |
| "Нарушение ссылочной целостности" | Удаление или изменение элемента, на который есть ссылки в документах | Восстановить элемент или заменить все ссылки через обработку |
Самая распространённая ошибка — изменение идентификатора (ссылки) предопределенного элемента. Например, если в справочнике Валюты поменять USD на US_Dollar, то все документы, где использовался старый идентификатор, станут некорректными. Исправить это можно только:
- 🔧 Восстановлением из резервной копии
- 🔧 Ручным исправлением ссылок в таблицах базы данных (для опытных администраторов)
- 🔧 Созданием нового элемента с правильным идентификатором и переносом данных
Другая частая проблема — конфликты при обновлении конфигурации. Если вы изменили предопределенный элемент в типовой конфигурации, следующее обновление от 1С может его перезаписать. Чтобы избежать этого:
- 📌 Переносите изменения в расширение конфигурации
- 📌 Используйте механизм подписок на события для динамической правки данных
- 📌 Документируйте все изменения, чтобы быстро восстановить их после обновления
Изменение предопределенных элементов в типовой конфигурации всегда рискованно. Если вы не уверены в своих действиях, лучше создать новый элемент или обратиться к специалисту. Большинство бизнес-задач можно решить без правки предопределенных данных.
Альтернативные решения: когда менять предопределенные элементы не нужно
В 90% случаев задачу можно решить без рискованных изменений в предопределенных данных. Рассмотрим альтернативные подходы, которые сохранят стабильность системы.
1. Создание нового элемента вместо изменения существующего
Если вам не хватает предопределенного элемента (например, в справочнике ВидыНоменклатуры нет типа"Цифровой товар"), вместо изменения существующего создайте новый:
- Откройте справочник
ВидыНоменклатуры. - Создайте новый элемент с нужным наименованием (например,"Цифровой товар").
- Настройте права доступа и реквизиты по аналогии с другими элементами.
Преимущества:
- ✅ Нет риска нарушить работу типовой конфигурации
- ✅ Сохраняется возможность обновления
- ✅ Легко откатить изменения при необходимости
2. Использование дополнительных реквизитов
Если нужно хранить дополнительную информацию о предопределенном элементе (например, новый код валюты для интеграции), добавьте дополнительный реквизит:
- В Конфигураторе откройте справочник (например,
Валюты). - Добавьте новый реквизит (например,
ВнешнийКодтипаСтрока). - Заполните реквизит для нужных элементов через 1С:Предприятие.
3. Подписки на события для динамической правки
Если нужно автоматически корректировать данные при работе с предопределенными элементами, используйте подписки на события. Например, чтобы всегда подставлять актуальный курс валюты:
Процедура ПриСозданииОбъекта(Объект) Экспорт
Если Объект.ЭтоГруппа Тогда
Возврат;
КонецЕсли;
Если Объект.Ссылка = Справочники.Валюты.USD Тогда
Объект.Курс = ПолучитьАктуальныйКурсДоллара;
КонецЕсли;
КонецПроцедуры
4. Перенос логики в обработки или отчёты
Если проблема в отображении данных (например, нужно показывать валюту с дополнительной информацией), измените отчёт или обработку, а не сам предопределенный элемент. Например, в отчёте можно добавить колонку с расшифровкой кода валюты.
Перед тем как изменять предопределенный элемент, спросите себя:"Могу ли я решить задачу, не трогая его?". В большинстве случаев ответ будет"да", а риски — минимальными.
Как защитить предопределенные элементы от случайных изменений
Если в вашей компании несколько пользователей работают с 1С в режиме Конфигуратор, есть риск, что кто-то случайно изменит предопределенные данные. Чтобы этого избежать, используйте следующие меры защиты:
1. Настройка прав доступа
Ограничьте права на изменение конфигурации:
- 🔐 Создайте роль с правом только на
Чтениеметаданных - 🔐 Запретите изменение предопределенных данных для всех, кроме администраторов
- 🔐 Используйте пароль на вход в Конфигуратор
2. Ведение журнала изменений
Включите журналирование изменений конфигурации:
- В Конфигураторе перейдите в
Администрирование → Журналы регистрации. - Настройте регистрацию событий изменения метаданных.
- Периодически проверяйте журнал на подозрительные действия.
3. Резервное копирование перед изменениями
Перед любыми правками в предопределенных данных:
- 💾 Создайте полную копию базы (
Администрирование → Выгрузить информационную базу) - 💾 Сохраните дамп структуры метаданных (можно через
Конфигурация → Сохранить конфигурацию в файл) - 💾 Задокументируйте текущие настройки элемента (скриншоты или экспорт в Excel)
4. Использование расширений вместо правки типовой конфигурации
Если вам нужно изменить логику работы с предопределенными элементами, переносите изменения в расширение конфигурации:
- Создайте новое расширение (
Конфигурация → Расширения → Добавить). - Перенесите в него все модификации предопределенных данных.
- Это позволит обновлять типовую конфигурацию без потери изменений.
⚠️ Внимание: Даже при использовании расширений не меняйте идентификаторы предопределенных элементов. Это может привести к ошибкам при обмене данными с другими системами.
FAQ: Частые вопросы по работе с предопределенными элементами в 1С
Можно ли удалить предопределенный элемент из справочника?
Удалять предопределенные элементы категорически не рекомендуется. Это приведёт к:
- 🔴 Ошибкам при проведении документов, которые ссылаются на удалённый элемент
- 🔴 Проблемам при обновлении конфигурации (типовой механизм восстановит элемент)
- 🔴 Нарушению ссылочной целостности базы данных
Если элемент не нужен, лучше отключить его использование через настройку прав или пометку на удаление (если это разрешено конфигурацией).
Как изменить предопределенный элемент в облачной версии 1С (1С:Fresh)?
В 1С:Fresh возможности редактирования предопределенных элементов сильно ограничены. Вы можете:
- 🔹 Изменять только те поля, которые разрешено редактировать в веб-интерфейсе (обычно это наименование или комментарий)
- 🔹 Создавать новые элементы вместо изменения существующих
- 🔹 Использовать механизм дополнительных реквизитов для хранения специфичных данных
Для серьёзных изменений потребуется:
- Обратиться в поддержку 1С:Fresh с обоснованием необходимости правок.
- Если изменения критичны — рассмотреть переход на локальную версию 1С.
Что будет, если при обновлении конфигурации перезапишутся мои изменения в предопределенных элементах?
При обновлении типовой конфигурации все изменения в предопределенных данных будут утеряны, если:
- 🔴 Вы правили элементы непосредственно в типовой конфигурации
- 🔴 Не использовали механизм расширений
Чтобы избежать потери данных:
- Переносите все изменения в расширение конфигурации.
- Перед обновлением сравнивайте и объединяйте конфигурации (
Конфигурация → Сравнить, объединить с конфигурацией из файла). - Тестируйте обновление на копии базы перед применением на рабочей версии.
Можно ли изменить предопределенный элемент в плане видов характеристик (например, в"ВидыСубконто")?
Предопределенные элементы в планах видов характеристик (например, ВидыСубконто в бухгалтерии) изменять крайне не рекомендуется. Эти элементы жёстко зашиты в логику учёта и используются в:
- 📊 Типовых отчётах (оборотно-сальдовая ведомость, карточка счёта)
- 📊 Проводках и регистрах бухгалтерии
- 📊 Механизмах закрытия периода
Если вам нужно добавить новый вид субконто:
- Создайте новый элемент в плане видов характеристик.
- Настройте для него соответствующие счета учёта.
- При необходимости доработайте печатные формы и отчёты.
Как перенести изменения предопределенных элементов на другую базу?
Чтобы перенести правки предопределенных элементов на другую базу, используйте один из методов:
- Выгрузка/загрузка данных:
- В исходной базе выгрузите справочник с изменениями в XML (
Файл → Выгрузить данные). - В целевой базе загрузите данные с флагом
Заменять существующие.
- В исходной базе выгрузите справочник с изменениями в XML (