Неточность в статье с добавлением автонумерации на академии
Добрый день!
Заметила в статье на Рис. 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, хранящий счётчик на уровне базы, не в таблице значений настроек. Если они в каких-то случаях отрабатывают неверно, пожалуйста, опишите условия воспроизведения.