14.05.2009, 09:40 | #1 |
Участник
|
Блокировка склада
Есть в системе ликвидированный склад. Необходимо сделать блокировку этого склада, т.е. пользователи немогли бы ни брать, ни ложить, ни производить остальные операции.
Подскажите может есть какие-то стандартные методы в Аксапте по блокированию склада? |
|
14.05.2009, 10:46 | #2 |
Программатор
|
Инвентаризацию на нем провести может? Он по идее заблокируется. Или там номенклатура блокируется. Что то на вскидку не помню. Может номенклатура в соответствующих аналитиках заблокируется. Как то так.
|
|
14.05.2009, 11:09 | #3 |
Программатор
|
Можно завести каоай нить параметр в системе типа "блокированный склад" и немного докодить, чтоб по этому складу никаких физ операций низя было сделать. Но когда появиться такой второй склад - то это уже не выход. Заводить кучу таких параметров низя.
|
|
14.05.2009, 11:24 | #4 |
AX*****
|
Получится создавать строки в заказах.. вплоть до журналов прибытия и маршрутов комплектации.. единственное ограничение, которое работает при установленой галке "Блокировать номенклатуру при инвентаризации" в "Параметрах запасов" -- запретит закрывать маршруты/журналы прибытия. Т.е. в любом случае необходимо допиливать.
__________________
О, как беден, как груб наш русский язык! [c] А.С.Пушкин Последний раз редактировалось aidsua; 14.05.2009 в 11:42. |
|
14.05.2009, 11:31 | #5 |
Участник
|
Цитата:
А вообще, изначально была речь про СТАНДАРТ Я в стандарте не знаю таких способов. Для отключения сводного планирования есть галка "Вручную". Можно извратиться и настроить доступ на уровне записей, фильтровать доступные склады, например, по полю "Вид деятельности", а туда для старых складов писать что-нибудь а-ля "Заблокировано".
__________________
Ivanhoe as is.. |
|
14.05.2009, 11:43 | #6 |
Участник
|
Цитата:
1. Включить галочку "Блокир. номенкл. при инвентаризации" в настройках управления запасами (см. скриншот) 2. В настройках номенклатур добавить строчки с этим складом в справочнике Местонахождение номенклатуры 3. Начать инвентаризацию номенклатур. Не завершать и не удалять ее пока склад заблокирован. Обратите внимание, что этот способ блокирует не склад, а номенклатуры на складе. См. Инвнтаризация по складской аналитике Не надо Точно. |
|
14.05.2009, 11:48 | #7 |
Участник
|
Цитата:
А журналы и заказы пусть создают. Во-первых, ничего страшного в этом нет (особенно, если выключить сводное планирование по складу) Во-вторых, у автора в требованиях не было ограничения на журналы/заказы |
|
14.05.2009, 11:59 | #8 |
AX*****
|
Цитата:
Сообщение от mazzy
По заблокированной номенклатуре нельзя выполнить ни резервирование, ни физические, ни финансовые движения.
А журналы и заказы пусть создают. Во-первых, ничего страшного в этом нет (особенно, если выключить сводное планирование по складу) Во-вторых, у автора в требованиях не было ограничения на журналы/заказы - Резервировать в "Заказе на продажу" позволяет - "Маршрут комплектации" можно содать, активировать и начать, но не дает его завершить - Комплектовать не разрешает зы Доработок на приложении нет.
__________________
О, как беден, как груб наш русский язык! [c] А.С.Пушкин |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
14.05.2009, 12:21 | #9 |
Участник
|
Цитата:
Сообщение от mazzy
Нужно сделать три действия:
.... Обратите внимание, что этот способ блокирует не склад, а номенклатуры на складе. См. Инвнтаризация по складской аналитике Цитата:
Мне кажется, в системе должен быть достаточно универсальный (с точки зрения понятности для пользователя) механизм блокировки записей в справочниках. Идейно удалять "старые" записи неправильно, их нужно блокировать, но вот, почему-то, возможность блокировки есть не везде.
__________________
Ivanhoe as is.. |
|
14.05.2009, 12:23 | #10 |
Участник
|
А если номенклатура используется не на одном складе?
|
|
14.05.2009, 12:27 | #11 |
Участник
|
Если сделать по шагам, как описал mazzy, то блокировка будет именно на том складе, который добавлен в Местонахождении номенклатуры.
P.S. галку "Инвентаризация начата" можно и руками поставить/снять.
__________________
Ivanhoe as is.. Последний раз редактировалось Ivanhoe; 14.05.2009 в 12:30. |
|
14.05.2009, 12:30 | #12 |
Программатор
|
Ну вот... Механизм инвентаризации позволяет заблочить номенклатуры на складе, единственное с новыми номенклатурами косяк. Нужно допиливать. Думаю там не сложно.
|
|
14.05.2009, 15:07 | #13 |
Участник
|
Цитата:
Если так, то возможно стоит обратить внимание на настройки безопасности на уровне записей (если есть лицензия на RLS) - создать группу, определить для нее условие RLS на таблице InventLocation (InventLocation.InventLocationId == !'ликвидированный склад') и добавить эту групу нужным пользователям? P.S. этот вариант не поможет в случае если пользователи привыкли набивать коды складов 'руками' а не выбирать из списка доступных.
__________________
Dynamics AX 4.0 SP2 |
|
14.05.2009, 16:17 | #14 |
Участник
|
|
|
14.05.2009, 17:29 | #15 |
Участник
|
Если предложенные стандартные средства не подойдут, то я бы предложил следующее:
1. Галочка на InventLocation - признак "склад заблокирован" 2. Модифицировать форму InventLocationIdLookup, чтобы в лукап не попадали заблокированные склады. 3. В методе InventDim::findOrCreate(InventDim _inventDim) - приверять св-ов _inventDim.isFormDataSource() и если это дата сорс формы и склад заблокирован, сообщать об ошибке. 4. Проверить, работает ли этот подход, если встать на старый заказ (когда еще склад не был заблокирован) и нажать Ctrl+S. (Возможно еще придется проверить _inventDim.RecId == 0) |
|
|
За это сообщение автора поблагодарили: KpecT (1). |
14.05.2009, 19:13 | #16 |
Administrator
|
Цитата:
По крайней мере - с другими таблицами именно так и работает.
__________________
Возможно сделать все. Вопрос времени |
|
15.05.2009, 10:11 | #17 |
Участник
|
Если принимать подход с флагом блокировке на складе, то проверку логично делать в методе checkDimSearchFieldId таблицы InventDim. В большинстве случаев вызывается именно она (не напрямую, но в итоге проверки в ней). Все таки, на мой взгляд, findOrCreate для других целей.
|
|
|
За это сообщение автора поблагодарили: petr (1). |
15.05.2009, 11:11 | #18 |
Участник
|
Извините, если уклонился от функционала к программированию.
Цитата:
Сообщение от Raven Melancholic
Если принимать подход с флагом блокировке на складе, то проверку логично делать в методе checkDimSearchFieldId таблицы InventDim. В большинстве случаев вызывается именно она (не напрямую, но в итоге проверки в ней). Все таки, на мой взгляд, findOrCreate для других целей.
|
|
15.05.2009, 11:24 | #19 |
Участник
|
Еще немного подумал, наверное, надо править метод checkDimSearchFieldId таблицы InventDim, как предложил Raven Melancholic.
|
|
02.06.2009, 15:31 | #20 |
Участник
|
А разве он вызывается при разноске? При создании и модификации - вызывается. При разноске - не отрабатывает. Чистого приложения для проверки под рукой нет.
|
|
Теги |
блокировка номенклатуры, инвентаризация, склад |
|
|