...

Простой нумератор для CE

Тема в разделе "Вопросы по функционалу", создана пользователем Sergey, 29 мар 2018.

  1. Sergey

    Sergey New Member

    Доброго дня!
    Прошу помощи в написании простого нумератора.
    Создан объект (Numerator), в котором есть контекстная переменная типа целое число (Nomer). Как через сценарий вычислить наибольшее значение (Nomer) и добавить единицу ? Знаю, что копать надо в сторону сущностей EntityManager, но знаний программирования не хватает.
     
  2. arkarimov

    arkarimov Member

    Обычная практика с нумераторами - делать таблицу (в терминах ELMA справочник) вида Идентификатор нумератора - Текущее значение (чтобы много разных нумераторов держать в одном месте)
    Соотв. если поля справочника Name и MaxNumber (целое, пустое значение не допускается) то код получения
    var number=EntityManager<Numerator>.Instance.Find(x=>x.Name=="Интересующее нас имя").Single().MaxNumber;
    код для увеличения
    EntityManager<Numerator>.Instance.Find(x=>x.Name=="Интересующее нас имя").Single().MaxNumber++;
    Сразу предупрежу, что в случае одномоментного обращения (одновременный запуск нескольких процессов например) это приведет к ошибке, т.к. один номер будет использован несколько раз. Но это похоже особенность архитектуры, т.к. стандартные нумераторы в коммерческих версиях работают также -не гарантируют уникальность выданного номера.
     
    1 это нравится

Поделиться: