Изменение автора в 1С:Предприятие — типичная задача, с которой сталкиваются бухгалтеры при исправлении ошибок в документах, администраторы при миграции данных или программисты при доработке конфигураций. В стандартном интерфейсе программы поле «Автор» часто заблокировано для редактирования, что вызывает вопросы: как обойти это ограничение без потери целостности данных? В этой статье разберём легитимные способы изменения автора в справочниках, документах и регистрах — от ручных методов до программных скриптов.
Важно понимать, что поле «Автор» в 1С привязано к пользователю системы, который создал или последний раз изменил объект. В некоторых конфигурациях (например, 1С:Бухгалтерия 8 или 1С:Зарплата и Управление Персоналом) это поле может влиять на права доступа, историю изменений и даже на логику бизнес-процессов. Поэтому перед редактированием всегда проверяйте, не используется ли авторство в отчётах или регламентных задачах вашей базы.
Почему в 1С нельзя просто так изменить автора?
Поле «Автор» в 1С защищено от прямого редактирования не случайно. Разработчики платформы предусмотрели несколько уровней ограничений:
- 🔒 Целостность данных: авторство фиксирует ответственного за объект, что критично для аудита и восстановления истории изменений.
- 🛡️ Права доступа: в некоторых конфигурациях автор может влиять на видимость документа для других пользователей (например, в 1С:Документооборот).
- ⚙️ Логика работы: в типовом функционале (например, согласование документов) авторство используется для маршрутизации задач.
- 📜 Регламентированные отчёты: в бухгалтерских и налоговых отчётах автор может быть частью печатной формы (например, в актах выполненных работ).
Если вы пытаетесь изменить автора через стандартный интерфейс (например, в карточке документа), поле будет недоступно для редактирования — его значение проставляется автоматически при создании или сохранении объекта. Однако есть обходные пути, которые мы рассмотрим ниже.
⚠️ Внимание: Изменение автора в документах, которые уже проведены или включены в регламентные операции (например, закрытие месяца), может привести к расхождению итогов. Перед массовым редактированием обязательно сделайте резервную копию базы и проверьте влияние изменений в тестовом режиме.
Способ 1: Изменение автора через «Все функции» (для опытных пользователей)
Этот метод подходит для конфигураций на управляемых формах (например, 1С:Бухгалтерия 8.3 или 1С:ERP) и не требует прав администратора. Он основан на использовании встроенного механизма платформы для доступа к скрытым полям.
Алгоритм действий:
- Откройте документ или элемент справочника, в котором нужно изменить автора.
- Нажмите
Ctrl + Shift + F12(или перейдите в менюВсе функциичерез правую кнопку мыши на заголовке формы). - В открывшемся окне найдите команду
Изменить реквизиты объекта(в некоторых конфигурациях она может называтьсяРедактировать реквизиты). - В списке реквизитов найдите поле
Автор(илиПользователь,Создал— название зависит от конфигурации). - Выберите нового пользователя из справочника
Пользователии сохраните изменения.
Этот способ работает не во всех конфигурациях — некоторые разработчики блокируют доступ к реквизитам через «Все функции». Если команда отсутствует или поле неактивно, переходите к следующему методу.
Если в списке реквизитов нет поля «Автор», попробуйте найти его по системному имени — часто оно называется ПользовательСоздал или АвторДокумента.
Способ 2: Редактирование через консоль запросов (для администраторов)
Для пользователей с правами «Администратор» или «Полные права» доступен более гибкий метод — прямая правка данных через консоль запросов. Этот способ подходит для массового изменения автора в нескольких документах или справочниках.
Пример запроса для изменения автора документа Поступление товаров и услуг:
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
ПоступлениеТоваровУслуг.Автор = &ТекущийАвтор
// Обновление автора
ОБНОВИТЬ Документ.ПоступлениеТоваровУслуг КАК Док
УСТАНОВИТЬ
Док.Автор = &НовыйАвтор
ГДЕ
Док.Ссылка В (&СписокСсылок)
Как выполнить запрос:
- 📌 Откройте
Администрирование → Консоль запросов(илиСервис → Запросыв старых версиях). - 🔍 Вставьте запрос, заменив
&ТекущийАвтори&НовыйАвторна нужные значения (можно выбрать из справочника пользователей). - 📋 Для массового обновления сначала выполните
ВЫБРАТЬ-часть запроса, чтобы убедиться в правильности фильтра. - ⚡ Запустите
ОБНОВИТЬ-часть запроса и подтвердите изменения.
⚠️ Внимание: Некоторые конфигурации (например, 1С:Управление торговлей) используют триггеры на изменение документов. После прямого обновления через запрос может потребоваться перепроведение документов или запуск регламентных операций для восстановления связей.
Сделать резервную копию базы|Проверить права доступа (нужны полные права)|Составить список документов для изменения|Убедиться, что новые авторы существуют в справочнике пользователей|Проверять документы на проведение после изменения-->
Способ 3: Программное изменение автора (для разработчиков)
Если вам нужно автоматизировать процесс или изменить автора в нестандартных объектах (например, в регистрах сведений), потребуется написать небольшой скрипт на встроенном языке 1С. Этот метод самый универсальный, но требует знаний программирования.
Пример кода для изменения автора документа:
Процедура ИзменитьАвтораДокумента(СсылкаНаДокумент, НовыйАвтор)
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокументОбъект.Автор = НовыйАвтор;
ДокументОбъект.Записать();
КонецПроцедуры
// Пример вызова:
Ссылка = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("ПТУ-000123");
НовыйАвтор = Справочники.Пользователи.НайтиПоНаименованию("Иванов И.И.");
ИзменитьАвтораДокумента(Ссылка, НовыйАвтор);
Особенности программного метода:
- 🔧 Работает для любых объектов метаданных (документы, справочники, регистры).
- 📝 Можно интегрировать в обработку для массового изменения.
- ⚠️ Требует режим «Конфигуратор» или права на выполнение внешних обработок.
- 🔄 Для проведения документов после изменения автора добавьте строку
ДокументОбъект.Провести();.
Для сложных конфигураций (например, 1С:Комплексная автоматизация) может потребоваться дополнительная логика — например, обновление связанных регистров или перерасчёт итогов. В таких случаях лучше использовать транзакции:
НачатьТранзакцию();
Попытка
// Код изменения автора
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
Способ 4: Использование внешних обработок
Если у вас нет доступа к конфигуратору или вы не хотите писать код самостоятельно, можно воспользоваться готовыми внешними обработками. Многие разработчики выкладывают бесплатные инструменты для изменения реквизитов объектов, включая автора.
Примеры популярных обработок:
| Название обработки | Назначение | Совместимость |
|---|---|---|
| Универсальный редактор реквизитов | Изменение любых реквизитов документов и справочников, включая автора | 1С:Предприятие 8.3 (все конфигурации) |
| Массовое изменение автора | Пакетное изменение автора в выбранных документах по фильтру | 1С:Бухгалтерия, 1С:УТ, 1С:ERP |
| Редактор служебных полей | Доступ к системным реквизитам (включая «Автор», «Дата создания») | Только для управляемых форм |
Как использовать внешнюю обработку:
- Скачайте файл обработки (
.epfили.erf) с проверенного источника (например, Инфостарт или 1С:ИТС). - Откройте базу в режиме
1С:Предприятиеи перейдите вФайл → Открыть → Внешняя обработка. - Загрузите файл и следуйте инструкциям на форме обработки (обычно нужно выбрать объект и нового автора).
- Сохраните изменения и перезагрузите базу, если это требуется.
⚠️ Внимание: Обработки от сторонних разработчиков могут содержать вредоносный код. Перед использованием проверьте файл на вирусы и запускайте сначала в тестовой базе. Отдавайте предпочтение обработкам с открытым исходным кодом или от сертифицированных партнёров 1С.
Ручной через "Все функции"|Консоль запросов|Программный код|Внешние обработки|Не изменял автора-->
Способ 5: Изменение автора через прямую работу с базой данных (для технических специалистов)
Этот метод подходит только для администраторов сервера 1С или системных администраторов, так как требует прямого доступа к SQL-базе. Он используется в крайних случаях, когда другие способы не работают (например, при повреждении данных или массовом исправлении).
Пример SQL-запроса для Microsoft SQL Server (для конфигураций на управляемых формах):
UPDATE [dbo].[Document123] -- Замените на реальную таблицу документа
SET [AuthorRef] = (SELECT [t_ref] FROM [dbo].[_Reference8] WHERE [t_descr] = 'Иванов И.И.')
WHERE [AuthorRef] = (SELECT [t_ref] FROM [dbo].[_Reference8] WHERE [t_descr] = 'Петров П.П.');
Важные нюансы:
- 🗝️ Требуются права на изменение таблиц в SQL-базе.
- 🔍 Имена таблиц и полей зависят от конфигурации (их можно найти в
Конфигураторе → Администрирование → Хранилище конфигурации). - 🛑 Никогда не изменяйте системные таблицы (например,
_1SJournили_Subsystems) — это может привести к неработоспособности базы. - 🔄 После изменений выполните
Тестирование и исправлениебазы в Конфигураторе.
Для PostgreSQL (используется в Linux-версиях 1С) синтаксис будет аналогичным, но с учётом особенностей СУБД. Например:
UPDATE "Document123"
SET "authorref" = (SELECT "t_ref" FROM "_Reference8" WHERE "t_descr" = 'Иванов И.И.')
WHERE "authorref" = (SELECT "t_ref" FROM "_Reference8" WHERE "t_descr" = 'Петров П.П.');
⚠️ Внимание: Прямое изменение данных в SQL обходит все проверки 1С, что может привести к несовпадению итогов, ошибкам проведения или потере ссылочной целостности. Используйте этот метод только если понимаете последствия и имеете резервную копию.
Что будет если изменить автора в проведённом документе?
При изменении автора в уже проведённом документе (например, реализации или платежном поручении) могут возникнуть следующие проблемы:
1. Расхождение итогов — если документ влияет на регистры (например, остатки товаров или денежные средства), его проведение может не обновить связанные данные.
2. Ошибки в отчётах — некоторые отчёты (например, «Анализ субконто») могут учитывать автора как фильтр.
3. Нарушение бизнес-процессов — если документ участвует в согласовании или задачах, изменение автора может сбросить статус процесса.
Чтобы избежать проблем, после изменения автора перепроводите документ и проверяйте связанные регистры через отчёт «Движения документа».
Частые ошибки и как их избежать
При изменении автора в 1С пользователи часто сталкиваются с типовыми проблемами. Рассмотрим самые распространённые из них и способы их решения:
| Ошибка | Причина | Решение |
|---|---|---|
Недостаточно прав для изменения объекта |
У пользователя нет прав на редактирование реквизита «Автор» | Запросите права «Администратор» или используйте учётную запись с полными правами |
Поле «Автор» не найдено в объекте |
В данной конфигурации поле называется иначе (например, «ПользовательСоздал») | Проверьте структуру метаданных в Конфигураторе или используйте «Все функции» для поиска правильного реквизита |
Документ не проведён после изменения автора |
Изменение автора не вызвало автоматического проведения | Вручную проведите документ или добавьте строку ДокументОбъект.Провести(); в код |
Ошибка ссылочной целостности |
Новый автор не существует в справочнике пользователей | Сначала добавьте пользователя в справочник Пользователи (раздел «Администрирование») |
Ещё одна типичная ошибка — попытка изменить автора в архивных документах (например, за закрытые периоды). В некоторых конфигурациях (например, 1С:Бухгалтерия) такие документы блокируются от редактирования. В этом случае:
- 🔓 Временно снимите флаг «Запрет редактирования» в настройках учётной политики (если это разрешено).
- 📅 Используйте отмену проведения перед изменением автора.
- 🔄 Создайте корректировочный документ вместо изменения оригинала.
1. Наличие нового пользователя в справочнике «Пользователи».
2. Права доступа текущего пользователя (нужны права на изменение реквизитов).
3. Статус документов (проведённые документы могут потребовать повторного проведения).
4. Влияние на отчёты и регламентные операции (особенно в бухгалтерских конфигурациях).-->
FAQ: Ответы на частые вопросы
Можно ли изменить автора в 1С:Зарплата и Управление Персоналом?
Да, но с оговорками. В 1С:ЗУП авторство документов (например, приказов или начислений) часто используется в кадровых отчётах. Для изменения:
- Используйте метод «Все функции» (если поле доступно).
- Для массового изменения напишите запрос с учётом особенностей конфигурации (в ЗУП автор может храниться в таблице
DocumentCadres). - После изменения проверьте отчёты «Кадровый учёт» и «Анализ начислений» на корректность данных.
⚠️ Внимательно относитесь к документам, которые уже включены в расчёт зарплаты — изменение автора может повлиять на расчёт среднего заработка или налогов.
Как изменить автора в 1С:Документооборот?
В 1С:Документооборот авторство тесно связано с бизнес-процессами и правами доступа. Здесь стандартные методы (например, «Все функции») могут не сработать. Рекомендации:
- Используйте внешнюю обработку «Редактор реквизитов» (доступна на Инфостарт).
- Для изменений через SQL учитывайте, что автор хранится в таблице
DocFlow_Documents(полеCreator). - После изменения автора может потребоваться перезапуск бизнес-процесса для документа.
🔹 Если документ находится на согласовании, изменение автора может сбросить задачу. В этом случае лучше создать новый документ с правильным автором.
Почему после изменения автора документ исчез из отчётов?
Это типичная проблема, если:
- В отчёте стоит фильтр по автору (например, «Показать только мои документы»).
- Документ не был перепроведён после изменения автора (итоги не обновлены).
- В конфигурации используются дополнительные отборы по пользователю (например, в 1С:ERP для разделения данных по подразделениям).
Решение:
- Проверьте настройки отчёта — снимите фильтр по автору.
- Перепроведите документ (
ДокументОбъект.Провести();). - Обновите итоги в регистрах через
Администрирование → Обслуживание → Тестирование и исправление.
Можно ли изменить дату создания документа вместе с автором?
Технически да, но это крайне не рекомендуется. Дата создания документа в 1С связана с:
- 📅 Хронологией операций (важно для бухгалтерских итогов).
- 🔗 Ссылочной целостностью (документы могут ссылаться друг на друга по датам).
- 📊 Отчётами (например, «Оборотно-сальдовая ведомость» учитывает даты документов).
Если всё же нужно изменить дату:
- Используйте SQL-запрос (поле обычно называется
DateTimeCreationилиДатаСоздания). - После изменения полностью перепроведите все документы за затронутый период.
- Проверьте логическую целостность через
Администрирование → Обслуживание → Проверка логической целостности.
⚠️ В бухгалтерских базах изменение даты создания документов за закрытые периоды может привести к искажению налоговой отчётности.
Как отследить, кто и когда изменил автора документа?
В стандартных конфигурациях 1С нет встроенного журнала изменений автора, но есть несколько способов отследить действия:
- 📋 Журнал регистрации (
Администрирование → Журнал регистрации) — фиксирует вход пользователей и изменения объектов, но не всегда детализирует редактирование реквизитов. - 🔍 Внешние обработки (например, «Журнал изменений документов» с Инфостарта) — позволяют вести историю редактирования.
- 📊 SQL-запросы — если включен аудит изменений, можно проанализировать таблицы
_1SJournилиConfigLog. - 🛠️ Доработка конфигурации — добавьте обработчик события
ПередЗаписьюдля логирования изменений автора.
Пример кода для логирования:
Процедура ПередЗаписью(Отказ, ТекстСообщения)
Если ЗначениеЗаполнено(ЭтотОбъект.Автор) И ЭтотОбъект.Автор <> ЭтотОбъект.ТекущийАвтор Тогда
ЗаписатьЛог(НСтр("ru = 'Изменён автор документа %1 с %2 на %3'",
ЭтотОбъект.Ссылка, ЭтотОбъект.ТекущийАвтор, ЭтотОбъект.Автор));
КонецЕсли;
КонецПроцедуры