Вопрос

Неточность в статье с добавлением автонумерации на академии

Добрый день!

Заметила в статье на Рис. 2. — Системная настройка [Текущий код продукта] у настройки стоит галочка Кешируется. Это же неправильно, данная настройка не должна кешироваться, т.к. она постоянно меняется. Знаю, что есть отдельная статья про настройки, но задача простая и когда отдаешь её новичкам они идут именно в эту статью и создают настройку с пометкой кешируется.

Не могли бы вы добавить в статью пометку, что эта настройка не должна кешироваться, или, как минимум, исправить скриншот.

Вроде эта ошибка есть еще начиная с документации к 7.9, раньше не заглядывала.

Нравится

3 комментария

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

Показать все комментарии