![]() |
![]() |
![]() |
|
Как 1С:Предприятие 8 определяет следующий номер документа | ☑ | ||
---|---|---|---|---|
0
mdfilsoft
13.01.11
✎
14:05
|
Документ "Расходный кассовый ордер". Необходимо чтобы нумерация документов была в пределах выбранной кассы, так как это влияет на кассовую книгу. Вопрос собственно заключается вот в чем: Как 1С:Предприятие определяет следующий номер документа? Проблема в том что тип номера документа - Строка.
Я конечно понимаю что скорее всего находится максимальный номер документа, а уже потом определяется следующий. Если бы тип номера документа был бы число, то можно было бы прибавить один. Но номер документа - строка. Возможно в 1С:Предприятие есть стандартная функция, которая определяет следующий номер документа, зная максимальный уже существующий. Буду признателен если кто-то знает ответ на мой вопрос... |
|||
1
Defender aka LINN
13.01.11
✎
14:08
|
(0) И наифга тебе это?
|
|||
2
g_frost
13.01.11
✎
14:12
|
стандартной функции нет
типовой алгоритм находим последний код М00000000034 минус префикс базы 00000000034 минус незначащие нули 34 +1 Профит примечание номера ищет в пределах года. Плюшка - хочешь сделать руками номер который не собъёт автонумерацию - добавь впереди пробел " М_мой_код" не добавиш пробел получишь следующий документ с номером " М_мой_код1" |
|||
3
Живой Ископаемый
13.01.11
✎
14:13
|
"примечание номера ищет в пределах года. " - что? всегда-всегда?
|
|||
4
g_frost
13.01.11
✎
14:50
|
только если стоит флаг нумерация в пределах года, но для этого нужно лезть в конфигуратор, что для автора ветки, как мне кажется, не лучший выход
|
|||
5
mikecool
13.01.11
✎
14:57
|
(4) а если в пределах дня? )
|
|||
6
Scooter
13.01.11
✎
15:01
|
(0)выставляй префикс по кассе
|
|||
7
Dmitrii
гуру
13.01.11
✎
15:12
|
Особенности хранения номеров и использования префиксов
Механизм автонумерации выдает номера в разрезе пространств номеров и префиксов. Пространство номера в зависимости от типа объекта может содержать метаданные, владельца, период и др. В пределах пространства номеров номер выдается в разрезе префиксов. По каждому префиксу хранится максимальный выданный номер, на основании которого выдается следующий номер. Один и тот же максимальный номер может соответствовать нескольким префиксам. Например, в БД хранится максимальный номер 001. Мы получили очередной номер по префиксу 0, нам вернули 002. Далее, мы получили очередной номер по префиксу 00, нам вернули номер 003, т.к. в этом случае максимальный номер соответствует обоим префиксам. Механизм автонумерации учитывает этот факт и изменяет максимальный номер зависимых префиксов соответствующим образом. Следует отметить, что на максимальный номер, соответствующий пустому префиксу, влияет изменение максимального номера по любому префиксу, если он превышает максимальный номер по пустому префиксу. Например, мы по пустому префиксу получили номер 001, далее по префиксу 0 получили номер 002, далее по префиксу А получили номер А01, далее по пустому префиксу получили номер А02, т.к. максимальный номер по пустому префиксу соответствует наибольшему из максимальных выданных номеров. В режиме автоматического возврата номеров механизм автонумерации по каждому пространству номеров и префиксу хранит список свободных номеров. Номер становится свободным, если он не записан в базу данных, а объект был удален из памяти или после автоматического получения номера номер был установлен явно. Под явной установкой номера подразумеваем любое изменение номера объекта, не связанное с его автоматическим получением. Это может быть программная установка номера через свойство объекта Номер или Код (в зависимости от типа объекта) или заполнение номера в форме объекта вручную. Номер может стать свободным также при откате транзакции. При получении очередного номера механизм автонумерации сначала ищет свободный номер. Если номер найден, то он удаляется из списка свободных и выдается объекту. Если номер не найден, выполняется увеличение максимального номера и полученный номер выдается объекту. Свободные номера хранятся до перезапуска сервера для серверных информационных баз и до момента закрытия последнего клиентского приложения, работающего с данной информационной базой, для файловых информационных баз. Если необходимо, чтобы номер переиспользовался только в пределах заданного периода (день, месяц), то нужно явно установить номер, больший максимального номера по данному пространству номеров и префиксу. Тогда механизм автонумерации удалит все свободные номера, меньшие чем устанавливаемый, и следующий номер будет получен от установленного. Полностью на ИТС читай. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |