Как настроить автоматическое заполнение поля "автор" в программе 1С?

Как я могу помочь вам разобраться с этим вопросом?
  • 11 февраля 2024 г. 14:49
Ответы на вопрос 2
Для настройки автоматического заполнения поля "Автор" в программе 1С есть несколько способов, в зависимости от того, какой именно функционал вы используете и какой у вас объект, для которого требуется заполнить это поле. Вот общие шаги, которые нужно выполнить:

1. Анализ структуры программы:
   - Определите, в каком документе, справочнике или регистре нужно автоматически заполнять поле "Автор".

2. Изменение метаданных (если требуется):
   Если в метаданных объекта нет поля "Автор", его следует добавить:
   - Зайдите в конфигуратор.
   - Найдите нужный объект в дереве метаданных.
   - Добавьте атрибут "Автор" с типом "Пользователи".

3. Настройка обработчика событий:
   - В конфигураторе откройте модуль объекта, для которого хотите автоматизировать заполнение.
   - Напишите код в обработчике события "ПередЗаписью", "ПриСозданииНаСервере" или другом, в зависимости от желаемой логики.

Пример кода для документа (1С:Предприятие 8.*):
```1C
Процедура ПередЗаписью(Отказ, РаботаСДиалогами)
    // Если поле "Автор" не заполнено, заполняем его текущим пользователем
    Если ЭтоНовый() И ЗначениеЗаполнено(Ссылка) И Автор = Неопределено Тогда
        Автор = Справочники.Пользователи.НайтиПоПользователю(СеансыИБ.ТекущийПользователь());
    КонецЕсли;
КонецПроцедуры
```

В данном примере используется функция `ЭтоНовый()`, которая проверяет, является ли запись только что созданной, и функция `Справочники.Пользователи.НайтиПоПользователю()`, которая возвращает элемент справочника "Пользователи" для текущего пользователя сеанса.

4. Проверка прав пользователя:
   Убедитесь, что у всех пользователей есть права на запись в поле "Автор", если это поле используется для ограничения доступа.

5. Тестирование:
   - Запустите 1С в режиме предприятия.
   - Проверьте, что поле "Автор" заполняется автоматически при создании новых объектов.

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

Ты решил использовать событие записи документа - это противоречит постановке задачи. Там требуют устанавливать автора (если он отсутствует) при открытии документа (при создании формы).

Создал Параметры сеанса "ТекущийПользователь"

Т.е. у тебя какая-то своя конфа, которую пишешь с нуля? Ну тогда не сильно заморачивайся - в модуле установки параметров сеанса оставь код по запросу параметра пользователя (сюда 1С стучится, когда кто-то явно запрашивает параметр сеанса - если кода установки нет, то будет ошибка обращения к неинициированному параметру), где оставь как в твоем примере получение текущего пользователя ИБ и поиск по идентификатору в справочнике пользователей.

У тебя же справочник Пользователей самостоятельно заполняется по данным пользователей ИБ? Если нет, то задача не имеет решения, так как сначала нужно связать пользователей ИБ и элементы справочника для указания авторства документов. Для сдачи задачи можешь временно сделать поиск по наименованию и вручную проконтролируй, чтобы имена справочника Пользователи соответствовали логинам системы.
Похожие вопросы