Показать сообщение отдельно
Старый 14.09.2011, 12:12   #1  
niksen is offline
niksen
Участник
Самостоятельные клиенты AX
 
284 / 28 (1) +++
Регистрация: 05.07.2011
Адрес: Татарстан
Переименование полей в одной таблице на основе данных из другой
Есть простая задача, интересно, как можно сделать её изящнее и правильнее, чтобы увеличилась скорость работы.
Вот постановка задачи:
В спецификациях забыли указать правильный тип строки, иногда пользователи могут сами это забывать, соответственно не происходит правильный заказ на производство, точнее неполный, т.к. в нём нет производства той самой подспецификации, т.к. тип строки стоит "номенклатура", а не "производство".
Теперь нужно исправить это поле в соответствии с тем, что, если в таблице InventTable стоит тип спецификация, то в таблице BOM для данной строки будет стоять производство.
Решение:
Сделать всё в цикле, который будет перебирать все строки спецификаций, т.е. таблицу BOM и для каждой строки искать соответствующее значение ItemId в InventTable, проверять его тип, если он спецификация, то обновляем значение строки в таблице BOM с "номенклатура" на "производство".
Возможное решение:
Сделать всё в цикле, который будет перебирать строки таблицы InventTable, искать там номенклатуры с типом BOM, при нахождении данного типа он должен найти все связанные записи в таблице спецификаций BOM и изменить тип строки с "номенклатура" на "производство".

Конечно же возможны и другие решения. Интересно мнение, какое решение лучше, не только сейчас, но и в дальнейших ситуациях, когда что-то требуется поменять из одной таблице в соответствии с записями в другой. Может какие-то другие решения?

Заранее благодарен.

С уважением, Николай