|  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 | 
| Участник | 
			
			А разве он вызывается при разноске? При создании и модификации - вызывается. При разноске - не отрабатывает. Чистого приложения для проверки под рукой нет.
		 | 
|  | 
| Теги | 
| блокировка номенклатуры, инвентаризация, склад | 
|  | 
| 
 |