18.07.2006, 08:26 | #1 |
Участник
|
И снова про номерные серии... правда немного глубже...
Интересует собственно такой механизм как группа номерных серий, что он из себя представляет и как с ним работать?
Задался этим вопросом по простой причине: сейчас стоит задача привязать к каждой номенклатурной группе свою номерную серию (чтоб потом использовать это дело при отслеживании ItemID в номенклатурной единице). Так вот хотелось бы собственно узнать и понять поможет ли мне этот механизм чем-нибудь в данной задаче или все таки придется для каждой номенкл. группы делать "стандартный" механизм создания номерной серии, столько раз описанный в различных статьях и темах форума... |
|
18.07.2006, 09:09 | #2 |
NavAx
|
Данный механизм поможет в решении данной задачи:
1. Настройте необходимые группы номерных серий 2. Добавьте привязку группы номерных серий к номенклатурной группе 3. Модифицируйте форму InventTable так, чтобы номенклатурная группа инициализировалась автоматически (поможет также вариант с шаблонами) 4. Модифицируйте класс NumberSeqFormHandler (переопределите специально для данной формы) так, чтобы id номенклатуры создавался соответственно привязанной к ном. группе группы номерных серий. |
|
18.07.2006, 09:33 | #3 |
Участник
|
Цитата:
Сообщение от Roman777
Данный механизм поможет в решении данной задачи:
1. Настройте необходимые группы номерных серий 2. Добавьте привязку группы номерных серий к номенклатурной группе 3. Модифицируйте форму InventTable так, чтобы номенклатурная группа инициализировалась автоматически (поможет также вариант с шаблонами) 4. Модифицируйте класс NumberSeqFormHandler (переопределите специально для данной формы) так, чтобы id номенклатуры создавался соответственно привязанной к ном. группе группы номерных серий. надо ли для каждой ном.группы создавать свой ExtendedType, править метод loadModule класса NumberSeqReference_Inventory и все остальное... или как то можно создать одну группу номерных серий и к ней каким-то образом привязывать ВСЕ номенкл. группы... |
|
18.07.2006, 09:50 | #4 |
NavAx
|
Вообще-то я имел ввиду вариант, когда для каждой номенклатурной группы создается и настраивается своя группа номерных серий, в этом случае не нужно создавать никаких ExtendedType и править NumberSeqReference_Inventory.
Но если хотите обойтись только одной группой номерных серий... думаю по сравнению с предложенной это задача сложнее и по сути неправильная (IMHO). |
|
18.07.2006, 10:19 | #5 |
Участник
|
Цитата:
Сообщение от Roman777
Вообще-то я имел ввиду вариант, когда для каждой номенклатурной группы создается и настраивается своя группа номерных серий, в этом случае не нужно создавать никаких ExtendedType и править NumberSeqReference_Inventory.
Но если хотите обойтись только одной группой номерных серий... думаю по сравнению с предложенной это задача сложнее и по сути неправильная (IMHO). Каким то образом создается целая группа номерных серий, в которую потом затем включается каждая в отдельности ном. группа и у каждой будет СВОЯ номерная серия... Наверное я себе что-то не так представляю...вот и хочу выяснить что да как и с чего начать... Конечно можно было тупо для каждой ном. группы создавать свою отдельную серию (путем создания ExtendedType и всего прочего), но по-моему это нецелесообразно делать, когда есть механизм групп номерных серий... |
|
18.07.2006, 10:44 | #6 |
Участник
|
ну что никто мне не пояснит сути??
|
|
18.07.2006, 11:04 | #7 |
NavAx
|
Можно объяснить следующиими простыми словами:
Есть в аксапте такие сущности: 1. Серии документов - грубо говоря это счетчики определенного формата, хранящие минимальное, следующее незанятое и максимальное значения ключа. 2. Ссылки на серии - у каждого модуля аксапты определяются контроллируемые значения ключа (как раз в названной Вами NumberSeqReference_Inventory, например) Эти сущности связываются. В параметрах каждого модуля аксапты это делается на закладке "Номерные серии", эту настройку также можно назвать "группой номерных серий по умолчанию". Т.е. именно эта настройка используется для связки ссылки и номерной серии в случае, если не указана альтернативная связка, т.е. группа номерных серий. Это можно проследить в функциональности выписки документов в закупках / заказах, когда в настройках закупки / заказа указывается группа номерных серий. |
|
18.07.2006, 11:16 | #8 |
Участник
|
Цитата:
Сообщение от sparur
ну что никто мне не пояснит сути??
http://axapta.mazzy.ru/lib/numbersequence_using/ http://erpkb.com/Axapta/NomernyeSerii см. также: http://axapta.mazzy.ru/lib/numbersequenceformat/ За и против използувание суфикс/префикс в номерные серии |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
18.07.2006, 11:26 | #9 |
Участник
|
Цитата:
Сообщение от Roman777
Можно объяснить следующиими простыми словами:
Есть в аксапте такие сущности: 1. Серии документов - грубо говоря это счетчики определенного формата, хранящие минимальное, следующее незанятое и максимальное значения ключа. 2. Ссылки на серии - у каждого модуля аксапты определяются контроллируемые значения ключа (как раз в названной Вами NumberSeqReference_Inventory, например) Эти сущности связываются. В параметрах каждого модуля аксапты это делается на закладке "Номерные серии", эту настройку также можно назвать "группой номерных серий по умолчанию". Т.е. именно эта настройка используется для связки ссылки и номерной серии в случае, если не указана альтернативная связка, т.е. группа номерных серий. Это можно проследить в функциональности выписки документов в закупках / заказах, когда в настройках закупки / заказа указывается группа номерных серий. Если так, то вопрос останется только в том как отслеживать именно ту номерную серию для нужной номенкл. группы... |
|
18.07.2006, 11:30 | #10 |
Участник
|
Цитата:
http://erpkb.com/Axapta/NomernyeSerii неохота, все это делать (создавать новый ExtendedType для каждой номенкл. группы, править класс в зависимости от группы и т.п.) если вдруг это можно решить боллее простым способом. вот и создал тему, для того чтобы понять можно ли это решить как-нибудь попроще и поинтереснее, чем тупое дублирование одних и тех же шагов... |
|
18.07.2006, 11:34 | #11 |
NavAx
|
Цитата:
правильно ли я понял что если я создам всего одну номерную серию - ссылку на серию (строку в таблице NumberSequenceReference), грубо говоря для всех номенклатурных групп, задам ей свойство groupEnabled = true (в методе LoadModule() класса NumberSeqReference_Inventory) и ВСЁ! и потом просто для каждой номенклатурной группы я могу задать свою серию (по нажатию кнопки группа в форме InventParameters закладка номерные серии) и все настройки (из таблицы Серии документов), связанные с этой новой ссылкой будут автоматически применимы для всех элементов что я задал на форме InventSequenceGroup (формат, начальное, конечное значение и др.)
|
|
18.07.2006, 11:37 | #12 |
Участник
|
Цитата:
Сообщение от Roman777
Да. Именно про это я и вел речь в первом своем ответе.
Только вот сразу и напрашивается вопрос, как же мне отслеживать ту или иную номерную серию для каждой номенкл. группы... |
|
18.07.2006, 11:39 | #13 |
NavAx
|
Прочтите внимательнее мой 1 ответ (пункты 2, 3 и 4). Если что непонятно, я поясню подробнее.
|
|
18.07.2006, 11:52 | #14 |
Участник
|
Цитата:
Сообщение от Roman777
Прочтите внимательнее мой 1 ответ (пункты 2, 3 и 4). Если что непонятно, я поясню подробнее.
скажем что касается п.2: то каким образом привязать?? я так понимаю в форме NumberSequenceGroup надо каким то образом забивать ссылку (на одноименной закладке) и потом к ней привязывать код серии из таблицы Серий документов. для всех что указывать одно и тоже?? тогда как система будет различать их?? или же надо ссылку указывать одну для всех номенкл. групп (мною созданную одну единственную), а вот код серии для каждой делать разным?? |
|
18.07.2006, 12:16 | #15 |
NavAx
|
Расшифровки:
п 1. Заходим в настройки модуля "Управление запасами" на закладку "Номерные серии". Ищем там ссылку "Номенклатура" (предполагается, что Вы уже поставили для этой ссылки свойство groupEnabled = true). Жмем кнопку [Группа] и в появившейся форме добавляем необходимое количество групп, присваивая каждой из них свою настроенную номерную серию. п 2. в таблицу номенклатурных групп добавляем поле "Группа номерных серий" с сылкой на таблицу групп номерных серий (это есть Extended DataType NumberSequenceGroupId). Привязываем к номенклатурным группам группы номерных серий, настроенные в п.1 п. 3 для того, чтобы выяснить, по какой номерной серии инициализировать код номенклатуры, нам нужно знать код группы номенклатуры до того, как выполниться код метода \Forms\InventTable\Data Sources\InventTable\Methods\create, а в нем element.numberSeqFormHandler().formMethodDataSourceCreate();. Т.е. тут нужно подумать как его инициализировать. п.4 Здесь по ссылке "ном. группа - группа номерных серий" находим номерную серию, и по ней инициализируем код номенклатуры |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
18.07.2006, 12:20 | #16 |
NavAx
|
Да, кстити, что-то подобное сделано в договорах. Там каждой группе договоров присваивается код серии документов. Это вообще намного проще, чем использовать группы номерных серий, причем в Вашей задаче это будет целесообразнее, т.к. Вы нумеруете только один объект (номенклатуру).
|
|
18.07.2006, 12:31 | #17 |
Участник
|
Цитата:
Сообщение от Roman777
Расшифровки:
п 1. Заходим в настройки модуля "Управление запасами" на закладку "Номерные серии". Ищем там ссылку "Номенклатура" (предполагается, что Вы уже поставили для этой ссылки свойство groupEnabled = true). Жмем кнопку [Группа] и в появившейся форме добавляем необходимое количество групп, присваивая каждой из них свою настроенную номерную серию. Последний раз редактировалось sparur; 18.07.2006 в 12:36. |
|
18.07.2006, 12:33 | #18 |
Участник
|
Цитата:
Сообщение от Roman777
Да, кстити, что-то подобное сделано в договорах. Там каждой группе договоров присваивается код серии документов. Это вообще намного проще, чем использовать группы номерных серий, причем в Вашей задаче это будет целесообразнее, т.к. Вы нумеруете только один объект (номенклатуру).
Последний раз редактировалось sparur; 18.07.2006 в 12:36. |
|
18.07.2006, 12:53 | #19 |
NavAx
|
Цитата:
Сообщение от sparur
то есть если пойти по этому пути то надо сделать только п.1 из предыдущего ответа и в настройках для каждой группы указать свой код серии документов?? а как потом в таком случае отслеживать??
|
|
18.07.2006, 12:57 | #20 |
Участник
|
Цитата:
Сообщение от Roman777
В этом случае отслеживаем аналогично, только для объекта numberSeqFormHandler нужно инициализировать параметр numbersequencecode при помощи функции numberSeqFormHandler.parmNumberSequenceCode(_numberSequenceCode) всякий раз, когда создается запись в таблице InventTable, и уже известен код ном. группы.
|
|