Неточность в статье с добавлением автонумерации на академии
Добрый день!
Заметила в статье на Рис. 2. — Системная настройка [Текущий код продукта] у настройки стоит галочка Кешируется. Это же неправильно, данная настройка не должна кешироваться, т.к. она постоянно меняется. Знаю, что есть отдельная статья про настройки, но задача простая и когда отдаешь её новичкам они идут именно в эту статью и создают настройку с пометкой кешируется.
Не могли бы вы добавить в статью пометку, что эта настройка не должна кешироваться, или, как минимум, исправить скриншот.
Вроде эта ошибка есть еще начиная с документации к 7.9, раньше не заглядывала.
Нравится
Ксения, судя по тому, что в только что развёрнутой «коробке» 7.15.1 три из этих настроек со включенным кешированием, это никак не влияет на работоспособность нумерации:

Хотя, конечно, такой разнобой выглядит странно.
А ещё в академии под каждой статьёй есть кнопки с лайком и наоборот, при нажатии можно вписать текстовое пожелание или замечание.
Зверев Александр,
Не могу сказать за 7.15.1, потому что пока у нас нет ни одного клиента, который бы использовал систему этой версии. Но давайте обратимся к академии:
Это описание из документации по 7.15 ну и это вполне логично.
Хотя нет, вот вам скрин из моей коробки 7.15 (свеженькой):
Было бы странно, если бы номер документа, например, хранился для каждого пользователя свой.
Я знаю про эти кнопки. А какое имеет значение где именно оставлен запрос на исправление документации? Неоднократно их видела на комьюнити (и сама создаю), думаю, терику без разницы откуда их обрабатывать. Честно говоря, я уже как-то давно писала им обращение на странице в академии, но тогда не получила обратной связи. Спасибо за совет конечно.
На Вашем скриншоте нет этих трёх настроек, которые на моём включены.
Во встроенном БП, например, объекта проблем вызывают действие:

Логика этого действия реализована в схеме GenerateSequenseNumberUserTaskPartial:
/// <summary>
/// Returns sequence number.
/// </summary>
/// <param name="entitySchema">Entity schema.</param>
/// <param name="connection">User connection.</param>
/// <returns>String that represents a generated sequence number.</returns>
public virtual string GenerateSequenseNumber(EntitySchema entitySchema, UserConnection connection) {
string entitySchemaName = entitySchema.Name;
string codeMaskSettingName = entitySchemaName + "CodeMask";
string lastNumberSettingName = entitySchemaName + "LastNumber";
string sysSettingsCodeMask = string.Empty;
var sysSettingsMaskItem = new CoreSysSettings(connection) {
UseAdminRights = false,
Code = codeMaskSettingName
};
if (!sysSettingsMaskItem.FetchFromDB("Code", codeMaskSettingName)) {
throw new ItemNotFoundException(codeMaskSettingName);
}
if (sysSettingsMaskItem.IsPersonal) {
sysSettingsCodeMask = (string)CoreSysSettings.GetValue(connection, codeMaskSettingName);
} else {
sysSettingsCodeMask = (string)CoreSysSettings.GetDefValue(connection, codeMaskSettingName);
}
if (GlobalAppSettings.UseDBSequence) {
var sequenceMap = new SequenceMap(connection);
var sequence = sequenceMap.GetByNameOrDefault(lastNumberSettingName);
return string.Format(sysSettingsCodeMask, sequence.GetNextValue());
}
int sysSettingsLastNumber = Convert.ToInt32(CoreSysSettings.GetDefValue(connection, lastNumberSettingName));
++sysSettingsLastNumber;
CoreSysSettings.SetDefValue(connection, lastNumberSettingName, sysSettingsLastNumber);
return string.Format(sysSettingsCodeMask, sysSettingsLastNumber);
}Используются, в зависимости от значения свойства UseDBSequence, либо стандартные функции работы с системными настройками, либо механизм SequenceMap, хранящий счётчик на уровне базы, не в таблице значений настроек. Если они в каких-то случаях отрабатывают неверно, пожалуйста, опишите условия воспроизведения.