Перейти к содержимому


Проблемы с автонумерацией


Сообщений в теме: 17

#1 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 26 Ноябрь 2010 - 07:59

Для меня ОКАЗАЛАСЬ ОЧЕНЬ СЕРЬЕЗНОЙ ПРОБЛЕМОЙ!!!!! Проблемы с авто нумерацией. Проблема заключается вот в чем. Были документы созданные по порядку, с полями "Номер документа" равными соответственно 1,2,3,4 и 5 и т.д. Никакой уникальности у поля нет, стоит галочка "автонумерация". Мне необходимо было у первого документа изменить номер 1 на 2 (должно было быть два документа с номерами 2). НО ПРОИЗОШЛО УЖАСНОЕ!!! Программа просто сместила на +1 номера ВСЕХ документов. Тот что 2 стал 3, 3 стал 4 и тд. А документов почти сотня.

В чем проблема??? Исправьте ошибку в программе!!!

ДОПОЛНЕНИЕ Смещение идет так. Если номер отредактированной записи совпадает у уже имеющейся записью, то та запись которая была становиться +1 и тд. Цепная реакция. Не важно какой из документов редактировать.

ЕЩЕ ДОПОЛНЕНИЕ: авто нумерацию убрал, не помогло

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Ноябрь 2010 - 10:39

Это не ошибка. Это как раз наоборот особенность поля типа "номер", что его собственно и отличает от поля с типом "число" (см. Документацию)

Если вам не нужно смещение, смените тип поля на Число. Правда автонумерацию на данный момент там невозможно поставить, но мы попробуем исправить этот момент.

#3 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 26 Ноябрь 2010 - 10:44

Вопрос закрыт. Спасибо.

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Ноябрь 2010 - 16:16

Просмотр сообщенияРазработчик (26.11.2010, 10:39) писал:

Правда автонумерацию на данный момент там невозможно поставить, но мы попробуем исправить этот момент.
Добавили в 1.9.2.

#5 cedric

    Участник

  • Пользователи
  • PipPip
  • 26 сообщений
  • Пол:Мужчина
  • Город:Екатеринбург

Отправлено 13 Декабрь 2010 - 14:10

Добавил в таблицу "Контрагенты" поле "№ по порядку" и поставил его в начало таблицы.
У менеджеров начались непонятные сбои.
Удалил поле.
Поля таблицы остались пронумерованными со значения 2. Может быть это ни на что не влияет, но всё-таки...
С уважением,
Алексей Туркин
Екатеринбург
1.9.3. local Ревизия: 1592

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Декабрь 2010 - 14:14

Это не имеет значения. Нумерация нужна лишь для задания порядка следования полей. Не важно, "1 2 3" это, или "10 20 30".

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Декабрь 2010 - 14:19

Просмотр сообщенияcedric (13.12.2010, 14:10) писал:

У менеджеров начались непонятные сбои.
Что именно за сбои то?

#8 cedric

    Участник

  • Пользователи
  • PipPip
  • 26 сообщений
  • Пол:Мужчина
  • Город:Екатеринбург

Отправлено 13 Декабрь 2010 - 14:31

Просмотр сообщенияРазработчик (13.12.2010, 14:19) писал:

Что именно за сбои то?
При добавлении контрагента выскакивала ошибка о неправильном номере и страница возвращалась в список контрагентов не запоминая введённых данных.
Менеджер нервничал, поэтому сразу убрал нумерацию.
Кстати, нумерация в перечне контрагентов была с большим пропуском номеров.
С уважением,
Алексей Туркин
Екатеринбург
1.9.3. local Ревизия: 1592

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Декабрь 2010 - 15:45

Просмотр сообщенияcedric (13.12.2010, 14:31) писал:

При добавлении контрагента выскакивала ошибка о неправильном номере
Скиньте текст ошибки, если не трудно.

#10 cedric

    Участник

  • Пользователи
  • PipPip
  • 26 сообщений
  • Пол:Мужчина
  • Город:Екатеринбург

Отправлено 14 Декабрь 2010 - 16:10

Просмотр сообщенияРазработчик (13.12.2010, 15:45) писал:

Скиньте текст ошибки, если не трудно.
Сегодня ошибки не возникали.
А номера в списке клиентов поставились хаотичным образом. Сбился алфавитный порядок.
Нельзя ли сделать нумерацию в любом фильтре поля контрагентов с 1 и по порядку возрастания?
С уважением,
Алексей Туркин
Екатеринбург
1.9.3. local Ревизия: 1592

#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2010 - 16:18

Просмотр сообщенияcedric (14.12.2010, 16:10) писал:

Нельзя ли сделать нумерацию в любом фильтре поля контрагентов с 1 и по порядку возрастания?
Только через вычисления. Шаблон "автонумерация" просто дублирует ID строки, который в общем случае может начинаться не с единицы.

#12 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 15 Декабрь 2010 - 13:08

Просмотр сообщенияРазработчик (14.12.2010, 16:18) писал:

Только через вычисления. Шаблон "автонумерация" просто дублирует ID строки, который в общем случае может начинаться не с единицы.
Было бы кажется удобнее, чтобы не по ID строки а от последнего номера

#13 cedric

    Участник

  • Пользователи
  • PipPip
  • 26 сообщений
  • Пол:Мужчина
  • Город:Екатеринбург

Отправлено 15 Декабрь 2010 - 14:08

Просмотр сообщенияРазработчик (14.12.2010, 16:18) писал:

Только через вычисления. Шаблон "автонумерация" просто дублирует ID строки, который в общем случае может начинаться не с единицы.
А можно ли тут выложить пример простого вычисления для нумерации списков?
С уважением,
Алексей Туркин
Екатеринбург
1.9.3. local Ревизия: 1592

#14 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 15 Декабрь 2010 - 14:35

Просмотр сообщенияcedric (15.12.2010, 14:08) писал:

А можно ли тут выложить пример простого вычисления для нумерации списков?

$res = mysql_query("SELECT max(f19) as num FROM ".DATA_TABLE."2 WHERE status=0");
$doc = mysql_fetch_array($res);
$doc['num'] = $doc['num']+1;
return $doc['num'];

Сами так делаем, стандартная по ID не подходит, так как нужно отталкиваться от последнего документа. Это Вам пример, мы правда чуть расширили её, у нас отдельная таблица, там ведется номера для разных документов + префикс для документов в зависимости например от региона, договора или вида деятельности 28/АС-00026

#15 DarkNight

    Активный участник

  • Пользователи
  • PipPipPip
  • 181 сообщений

Отправлено 17 Декабрь 2010 - 16:42

Просмотр сообщенияjazvenko (15.12.2010, 14:35) писал:

SELECT max(f19) as num FROM ".DATA_TABLE."2 WHERE status=0

Прошу прощенья, сей скрип стоит на поле, или на таблице?

При активном внесении данных возможно дублирование номеров.

#16 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Декабрь 2010 - 17:01

Просмотр сообщенияDarkNight (17.12.2010, 16:42) писал:

При активном внесении данных возможно дублирование номеров.
Собственно поэтому "автонумерация" и использует ID. В этом случае за отсутствие дублирования отвечает MySQL.

#17 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 17 Декабрь 2010 - 21:07

Просмотр сообщенияDarkNight (17.12.2010, 16:42) писал:

Прошу прощенья, сей скрип стоит на поле, или на таблице?

При активном внесении данных возможно дублирование номеров.

При сохранении таблице тем самым исключите возможность дублирования (хотя и не на все 100%). Но как заверяют разработчики программное обеспечения для малого бизнеса что скорее всего исключает "активное пользование" на столько чтобы дублировать записи. Так-что пользуйтесь, мы даже написали свои функции для автономерации.

#18 jazvenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 224 сообщений

Отправлено 17 Декабрь 2010 - 21:09

Просмотр сообщенияРазработчик (17.12.2010, 17:01) писал:

Собственно поэтому "автонумерация" и использует ID. В этом случае за отсутствие дублирования отвечает MySQL.
Ну при таком вопросе можно скрипт и усовершенствовать чтобы он проверял и ID и номера в базе :) уж точно тогда исключим дубль





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных