Приложение 3. Ведение максимальных значений(АРМ Комплектатор) |
В этом разделе:
Максимальные значения
MaxInvent=1 - разрешено ведение максимального инв.№
В системе предусмотрено ведение максимальных значений, для некоторых вводимых элементов.
Оно выполняется с использованием записи POLZV.
В частности, вычисляются и хранятся максимальные значения для различных параметров, а именно:
•Максимальное значение инвентарных номеров
•Максимальное значение номера КСУ поступления/списания
•Максимальное значение номера акта
•Максимальное значение кода организации
Предполагается, что новое вводимое значение по своей структуре относится к одной из схем:
«число», «префикс-число», «число-суффикс», «префикс-разделитель-число».
При этом происходит следующее:
•Введенное значение анализируется на принадлежность к одной из схем, причем, разделителем считается символ из набора: / \ | -
•Выделяется цифровая часть. Если найден разделитель, то цифровая часть должна быть сразу после разделителя!
•Выделенное число увеличивается на 1 и «встраивается» в свою схему.
•Увеличенное значение параметра сравнивается со списком аналогичных значений в записи POLZV, «аналогичность» определяется как соответствие схеме нового введенного значения
•Если новое значение является максимальным, то оно пишется в запись, меньшие значения этой схемы удаляются
•При следующем вводе нового в подаваемом словаре будет увеличенное на 1 значение.
При ведении максимального значения инвентарных номеров имеется отличие. Часто инвентарный номер строится из разных буквенно-цифровых частей и важно определить, какая из этих частей является изменяемой. Например, для двух инвентарных номеров 1234-01 и 1234-02 изменяемой частью является 01, 02. А для номеров 1234-01 и 1235-01 изменяемой частью является 1234, 1235.
|
Предлагается использовать т.н. модель инвентарного номера, в которой можно задать, какая часть инвентарного номера является цифровой и изменяемой. Значение модели присваивается параметру INI-файла MODEINVENT. С версии 2015 можно использовать одновременно несколько моделей, которые задаются дополнительными параметрами:
MODEINVENT1
MODEINVENT2
MODEINVENT3
MODEINVENT4
MODEINVENT5
Модель задается в виде строки, каждый символ строки задает часть числа.
•9 – означает цифровую переменную часть инвентарного номера (символ 9 должен быть единственным в модели!),
•A – означает буквенную неизменную часть номера,
•* - означает буквенные или цифровые символы неизменной части номера.
•Другой символ – означает именно его присутствие в инвентарном номере
Т.е., для 1-го из вышеприведенных случаев следует задать модель: *-9, для второго случая – 9-*.
Если заданная модель не соответствует инвентарному номеру или в заданной модели нет символа «9», то максимальное значение определяется по общей схеме.
Если инвентарный номер соответствует заданной модели, то в номере выделяется часть, соответствующая «9» модели. Число этой части увеличивается на 1 и новое значение вытесняет старое из записи POLZV.
Пример: |
Например: 1.Задана модель 9-*. Тогда инвентарные номера 000001-01, 00026-02 принадлежат к разным группам (01 и 02), но у обоих будут отслеживаться числовые значения перед символом «-». 2.Задана модель *-9. Для групп инвентарных номеров типа 000001-01, 00026-02 и т.д. будут отслеживаться числовые значения после символа «-». В данном примере для двух групп – 000001 и 00026. 3.Задана модель 9_A. Для групп инвентарных номеров типа 12345_СБ, 5555_REM, 67_КЛИП и т.д. будут отслеживаться числовые значения перед символом «_» 4.Задана модель 9_A. Для инвентарного номера 12345/02 модель определится как несоответствующая и этот номер будет использоваться по схеме «префикс» (12345/)-число(02)». 5.Задана модель 9_A. Для инвентарного номера 12345_02 не будет определена ни модель, ни схема (разделитель неизвестен). Это число не пополнит запись POLZV. 6.Задана модель *=9. Для групп инвентарных номеров типа 12345=07, REM=2, ?=26 и т.д. будут отслеживаться числовые значения после символа «=» 7.Другие примеры структуры инвентарного номера с необходимостью использования параметра модели. Для каждого инвентарного номера указана желаемая изменяемая часть. Результат: «да» - если макс.инв. будет формироваться верно, «нет» - если не будет формироваться, «Модель» - если для успешного формирования следует использовать модель. |
Инв.ном. Изменяемая часть Рез-т Модель
--------------------------------------------------------------------------------------
47-11 11 да
47-11-001 001 да
47-11 47 Модель ModeInvent=9-*
ПР-45/25 25 да
A1/B1/45 45 да
24-046-01 01 да
Б.Н 46 46 да
Б/Н 46 46 нет
Б/Н 46 46 Модель ModeInvent=A/A 9
Б.Н 46 01 01 нет
Б.Н 46-01 01 да
Б.Н 46 01 01 Модель ModeInvent=A.A * 9
УК/25 М1 1 Модель ModeInvent=A/* A9
Формирование максимального инвентаря в записи POLZV происходит при выполнении автоввода при сохранении записи, т.е. операторами пакетного задания AUTOIN.gbl, которые используют специальный форматный выход.
Расширена разрядность максимального инвентарного номера – было 10-разрядное число, стало 2^63-1. При пополнении записи КСУ также считается по-новому. |
В параметрическом файле имеется параметр разрешающий или запрещающий ведение максимального инвентарного номера – MaxInvent.
MaxInvent=1 разрешает добавление/изменение инвентарного номера. По умолчанию параметр =1.
Начиная с версии 2014 добавлена возможность задавать несколько моделей для ведения максимальных инвентарных номеров. Для этого в irbisp.ini можно добавить дополнительные параметры, не более 5-ти. Их значения будет использовать автоввод для БД CMPL. Следует не забывать, что если используются модели, то для ведения максимального цифрового инвентарного номера одна из моделей должна быть 9.
Пример: |
Примеры набора моделей:
ModeInvent=9 ModeInvent1=A9 ModeInvent2=A9A ModeInvent3=A.A9 ModeInvent4=*_9 ModeInvent5=*/9 |
Имеются параметры, ограничивающие добавление новых повторений в поля записи POLZV:
MAX81Polzv задает максимальное значение повторений поля 81, по умолчанию =50
MAX30Polzv задает максимальное значение повторений поля 30, по умолчанию =50
MAX910Polzv задает максимальное значение повторений поля 910, по умолчанию =50
MAX88Polzv задает максимальное значение повторений поля 88, по умолчанию =50
MAX888Polzv задает максимальное значение повторений поля 888, по умолчанию =50
MAX80Polzv задает максимальное значение повторений поля 80, по умолчанию =50
MAX800Polzv задает максимальное значение повторений поля 800, по умолчанию =50
См. также:
Максимальный инвентарный номер