Показать сообщение отдельно
Старый 03.02.2005, 10:39   #4  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
привет Георгий!
Я если честно не понял нифига что ты предлагаешь, но все посмотрел - ссылки я уже эти читал...
Вообщем все равно спасибо!
2glibs
Ну добавлю Постановка задачи вполне жизненная
К сожалению нельзя сделать так- эта аналитика должна быть обезательная и сразу - если бы можно было ждать пока все операции завершаться и только потом сделать ее обезательной - не задавал бы вопрос.
Итак если кому то интересно - решение "как можно добавить аналитику ко всем остаткам, Спецификациям, строкам журналов и закупок и т.д., везде, при условии что раньшее аналитика не была определена" (в моем случае был только склад, а добавить нужно Серийный Номер):
Используя класс InventDimRenameDimValue мы можем переименовать код аналитики, т.е. добавить пустую а потом ее переименовать - что я и сделал:
PHP код:
static void inventSerialCreate(Args _args)
{
    
InventDimRenameDimValue inventDimRenameDimValue;
    
InventSerial            inventSerial;
    ;
    
inventSerial.clear();
    
inventSerial.initValue();
    
inventSerial.ItemId         "Номенклатура";
    
inventSerial.ConfigId       "Конфигурация - если надо"// в 3.0 это поле "к удалению" - DEL_ConfigId
    
inventSerial.ProdDate       today();
    
inventSerial.InventSerialId ""// добовляем запись с пустой аналитикой
    
inventSerial.doInsert();
    
inventSerial.InventSerialId "Не опр."//  нужный код аналитики
    // переименовываем все проводки у которых Серийный номер не определен;
    
inventDimRenameDimValue InventDimRenameDimValue::newInventSerial(inventSerial);
    
ttsbegin;
    
inventDimRenameDimValue.parmUpdateCaller(true); // Для того чтобы обновить справочник с аналитиками (inventSerial)
    // по умолчанию InventDimRenameDimValue::newInventSerial(inventSerial) - взведет этот параметр в false
    
inventDimRenameDimValue.run();
    
ttscommit;

Все корректно отрабатывает, после этого все запасы и все соответствующие таблицы где есть эта номеклатура имеют аналитику Серийный Номер = "Не опр.".
Естественно нужно перед выполнением кода у номенклатуры поставить нужную группу Складской аналитики. Ну это уже техника...
Да кстати в 2.5 нет этого класса, и вообще на метод renamePrimaryKey() стоит error, так что нужно этот класс "перетащить" из 3.0 если кому надо могу выложить уже готовый.