29.07.2009, 19:39 | #1 |
Возьми свет!!!
|
Дублирование складских аналитик
У нас в организации возникла такая ситуация была заведена конфигурация для нескольких спецификаций(номенклатур) A2, причем насколько я посмотрел в складских аналитиках есть записи и по русски и по английски. Т.е. у номенклатуры склад и конфигурация одинаковые но с разным наименованием A2 и A2 по русски и по английски. Есть соответственно складские операции по заказу на продажу которые ссылаются на конфигурацию которая не существует для данной номенклатуры. Когда пользователь попытался переименовать существующую для номенклатуры конфигурацию А2 по английски в А2 по русски (updatePrimaryKey) аксапта выдала ошибку что inventtrans уже заблокирован пользователем... Попытавшись но особо не копаясь в коде я так понял что концы ведут куда то в эти самые складские аналитики. Я не асс в аксапте и единственное что мог предложить это проитись по всем таблицам и изменить если встречается где либо комбинация ItemId и InventDimId с нужной номенклатурой и ненужной конфигурацией изменить аналитику на правильную...
Есть ли какой либо другой путь??? |
|
29.07.2009, 19:47 | #2 |
Banned
|
Нельзя переименовывать что-либо, если уже есть "цель" с таким же идентификатором. В данном случае, однако, можно пройтись скриптом по таблице InventDim и переименовать поле ConfigId средствами SQL. По окончании можно будет удалить лишнюю конфигурацию. Есть, правда, некоторые другие таблицы, в которых конфгурация лежит в "голом виде", не в составе InventDimId.
|
|
29.07.2009, 19:58 | #3 |
Возьми свет!!!
|
Цитата:
Сообщение от EVGL
Нельзя переименовывать что-либо, если уже есть "цель" с таким же идентификатором. В данном случае, однако, можно пройтись скриптом по таблице InventDim и переименовать поле ConfigId средствами SQL. По окончании можно будет удалить лишнюю конфигурацию. Есть, правда, некоторые другие таблицы, в которых конфгурация лежит в "голом виде", не в составе InventDimId.
|
|
29.07.2009, 20:03 | #4 |
Banned
|
да ничего страшного не произойдет. Делаете, например, в обозревателе таблиц
X++: update_recordset InventDim setting ConfigId = "A1" where InventDim.ConfigId == "А1"; |
|
|
За это сообщение автора поблагодарили: Murlin (1). |
29.07.2009, 20:28 | #5 |
Возьми свет!!!
|
Цитата:
Вернее запрос то не сработает там ведь уник. индекс по всему набору аналитик, жаль аксапты нет под рукой, да и просто поменять аналитику у всех таблиц не пол-тся ведь есть таблица inventSum... Мда.. Последний раз редактировалось Murlin; 29.07.2009 в 20:40. |
|
29.07.2009, 21:55 | #6 |
MCITP
|
Цитата:
Сообщение от Murlin
Это конечно хорошо но и что тогда будет, если у нас будет две складские аналитики абсолютно одинаковые... Как это будет отражаться на функциональность чем это может грозить???
Вернее запрос то не сработает там ведь уник. индекс по всему набору аналитик, жаль аксапты нет под рукой, да и просто поменять аналитику у всех таблиц не пол-тся ведь есть таблица inventSum... Мда.. Например класс InventSumReCalcItem. Или просто проверка целостности данных компании. Куда важнее проблема уникальности набора аналитик в InventDim-е, отмеченная выше. Большая вероятность, что вы с этим столкнётесь, т.к. всё таки ваши 2 конфигурации использовались как одна и та же. Тут всё сильно усложняется, придётся одну удалять и перебивать все ссылки на этот инвентДим по всей базе.
__________________
Zhirenkov Vitaly |
|
30.07.2009, 10:37 | #7 |
сибиряк
|
Цитата:
Сообщение от ZVV
Куда важнее проблема уникальности набора аналитик в InventDim-е, отмеченная выше.
Большая вероятность, что вы с этим столкнётесь, т.к. всё таки ваши 2 конфигурации использовались как одна и та же. Тут всё сильно усложняется, придётся одну удалять и перебивать все ссылки на этот инвентДим по всей базе. Старое значение конфигурации сохраняли лишь для истории, можно было использовать любые значения для обеспечения уникальности ("1","2","3" и т.п.). Использовали такой подход для объединения/удаления конфигураций и складов, вроде особых проблем не было.
__________________
С уважением, Вячеслав. |
|
30.07.2009, 10:44 | #8 |
MCITP
|
Цитата:
Сообщение от slava
Есть еще вариант. В таблице InventDim старое значение аналитики конфигурация перенести в поле с неиспользуюмой аналитикой, например Ячейка (если не используется расш. склад). После этого обновить поле configId в соответствии с новым, уже существующим, значением.
Старое значение конфигурации сохраняли лишь для истории, можно было использовать любые значения для обеспечения уникальности ("1","2","3" и т.п.). Использовали такой подход для объединения/удаления конфигураций и складов, вроде особых проблем не было. Хотя не совсем понятно как работал потом InventSum -- у вас получалось несколько записей для по сути одной аналитики... :-\ С этим точно не было никаких проблем??
__________________
Zhirenkov Vitaly |
|
30.07.2009, 10:55 | #9 |
сибиряк
|
Цитата:
Хотя.. Если же аналитика была в наличии и ее нужно было схлопнуть с другой , то эту "неиспользуемую" аналитику приходилось делать активной с флагами "пропускать для приходов и расходов".
__________________
С уважением, Вячеслав. |
|
|
За это сообщение автора поблагодарили: ZVV (2). |
30.07.2009, 10:57 | #10 |
сибиряк
|
Лишнюю аналитику можно добавить
__________________
С уважением, Вячеслав. |
|
Теги |
inventdim, складская аналитика, уникальность |
|
|