Функция, которую вы используете для логирования действий пользователей в Google Sheets, действительно ограничена в своей возможности идентификации пользователей, поскольку Google Apps Script предоставляет доступ к информации о текущем пользователе в зависимости от настроек безопасности и уровня доступа к таблице.
Когда таблица общего доступа, для пользователей, которые не имеют доступа к просмотру их адресов электронной почты, Google предоставляет только анонимные идентификаторы. Если вы хотите видеть адреса электронной почты всех пользователей, необходимо, чтобы они имели доступ к таблице с привилегиями редактирования и использовали аккаунты Google, которые имеют доступ к вашей таблице.
Для того чтобы исправить эту ситуацию, убедитесь в следующем:
1. **Проверьте доступ к таблице**: Убедитесь, что пользователи, действия которых вы хотите отслеживать, имеют доступ к таблице и используются свои аккаунты Google, с которыми они зарегистрированы.
2. **Требования к разрешениям**: Убедитесь, что у вас есть соответствующие права доступа. Если у вас нет прав администратора, вы можете не иметь возможности видеть адреса электронной почты других пользователей.
3. **Используйте `Session.getActiveUser().getEmail()`**: Если пользователи имеют соответствующий доступ, вы можете использовать `Session.getActiveUser().getEmail()` для получения их адресов электронной почты.
Попробуйте заменить следующую строку в вашем коде:
```javascript
const user = e.user || Session.getActiveUser().getEmail() || "Аноним";
```
на эту:
```javascript
const user = (e.user) ? e.user : Session.getActiveUser().getEmail() || "Аноним";
```
В идеале, если у вас правильно настроены права доступа, и у пользователей есть соответствующее разрешение, адреса пользователей должны отображаться корректно. Однако имейте в виду, что и в этом случае Google может возвращать "Аноним", если безопасность доступа запрещает отображение адресов электронной почты.