Re: Создание и добавление расцеховки к ТП

Здравствуйте, уважаемые!
Как создать и добавить расцеховку к ТП? Версия ТКС 5.02.
Больше интересует добавление к ТП.

Re: Создание и добавление расцеховки к ТП

так же как и всё остальное...в чём проблема?


INmkTechnology.AddNMkToTechnology (PropertyGet)

--------------------------------------------------------------------------------

Добавить номенклатуру к техпроцессу

Синтаксис:

objectvariable.AddNMkToTechnology( NmkClassId, NMkId, ToTechId )

objectvariable - INmkTechnology

NmkClassId - идентификатор класса

NMkId - идентификатор номенклатуры

ToTechId - идентификатор позиции техпроцесса к которой нужно привязать добавляемую позицию ( 0 - к техпроцессу )

Возвращает: идентификатор позиции техпроцесса

Re: Создание и добавление расцеховки к ТП

Спасибо

Re: Создание и добавление расцеховки к ТП

Пытаюсь создать номенклатурную позицию в справочнике Расцеховки:

...
    Set NmkRasceh = TCSApp.Nomenclatures(3)
    
    Call NmkRasceh.CreateNew
        NmkRasceh.Properties("NOTE").Value = Null
        NmkRasceh.Properties("NAME").Value = "test"
        NmkRasceh.Properties("NMK_CODE").Value = Null
        NmkRasceh.Properties("NODE_ID").Value = 812
        NmkRasceh.Properties("MESUR_ID").Value = 0
        NmkRasceh.Properties("ISNOT_USED").Value = Null
    On Error Resume Next
    Call NmkRasceh.SaveChanges 
    Call NmkRasceh.CancelChanges

    Set NmkRasceh = Nothing
...

На строчке Call NmkRasceh.CreateNew вылетает ошибка:

Данная операция не доступна в режиме добавления
CSDN.Nomenclatures

Если справочник поменять на Детали, то все создается, подскажите в чем дело?

Re: Создание и добавление расцеховки к ТП

скопировал Ваш код - работает. создаётся.

Re: Создание и добавление расцеховки к ТП

Хмм, шайтан...

Re: Создание и добавление расцеховки к ТП

Может права проверить?

Re: Создание и добавление расцеховки к ТП

Если бы не было прав, то я бы не мог создать позицию и руками, а руками создается

Re: Создание и добавление расцеховки к ТП

не работает конкретно этот(отдельно взятый) код или до этого прога чтото делает?

Re: Создание и добавление расцеховки к ТП

Сергей писал(а):
не работает конкретно этот(отдельно взятый) код или до этого прога чтото делает?

Это кусок кода из программы, запустил отдельно этот кусок кода (т.е. только создание Расцеховки), отработал нормально, потом запустил всю программу, тоже все отработало без ошибок, странно... Ну работает и ладно.
Попутно возник еще вопрос, я создал номенклатуру в справочнике Расцеховки, мне нужно добраться до закладки Привязки->Цехов к расцеховке и создать там список цехов, зная ID цехов. Нашел зависимый объект NmkAffix, но как там что то создавать ума не приложу... Подскажите пожалуйста.

Re: Создание и добавление расцеховки к ТП

Примерно так, но это код DLL на Delphi.
var
Versions,Nmk,NmkTechnology: OleVariant;
Form: Integer;
begin
    Module.Refresh;
    Versions:=Module.Properties[SelectPropertiesId(Module,'Versions')].AsIDispatch;
   Versions.UserModuleName := Versions.UniqueUserModuleName;
    If Versions.Locate['ID',Module.Properties[SelectPropertiesId(Module,'VER_ID')].AsInteger,0] then begin
       NmkTechnology:=Versions.Properties[SelectPropertiesId(Versions,'NmkTechnology')].AsIDispatch;
       If NmkTechnology.Locate['TECH_ID',exDBGrid1.DataSource.DataSet.FieldByName('TECH_ID').AsString,0] then begin
          Nmk:=NmkTechnology.Properties[SelectPropertiesId(NmkTechnology,'TechnologyAttributes')].AsIDispatch;
          Form := Nmk.ShowModal['Реквизиты '+exDBGrid1.DataSource.DataSet.FieldByName('NMK_NOTE').AsString+' '+exDBGrid1.DataSource.DataSet.FieldByName('NMK_NAME').AsString];
       End;
    end;
     TCSApp.DeleteModuleByUserModuleName(Versions.UserModuleName);
end;

Re: Создание и добавление расцеховки к ТП

Олег писал(а):
Примерно так, но это код DLL на Delphi.

var
 Versions,Nmk,NmkTechnology: OleVariant;
 Form: Integer;
begin
   Module.Refresh;
   Versions:=Module.Properties[SelectPropertiesId(Module,'Versions')].AsIDispatch;
   Versions.UserModuleName := Versions.UniqueUserModuleName;
   If Versions.Locate['ID',Module.Properties[SelectPropertiesId(Module,'VER_ID')].AsInteger,0] then
   begin
      NmkTechnology:=Versions.Properties[SelectPropertiesId(Versions,'NmkTechnology')].AsIDispatch;
      If NmkTechnology.Locate['TECH_ID',exDBGrid1.DataSource.DataSet.FieldByName('TECH_ID').AsString,0] then
      begin
         Nmk:=NmkTechnology.Properties[SelectPropertiesId(NmkTechnology,'TechnologyAttributes')].AsIDispatch;
         Form := Nmk.ShowModal['Реквизиты '+exDBGrid1.DataSource.DataSet.FieldByName('NMK_NOTE').AsString+' +exDBGrid1.DataSource.DataSet.FieldByName('NMK_NAME').AsString];
      end;
   end;
   TCSApp.DeleteModuleByUserModuleName(Versions.UserModuleName);
end;

На сколько я понимаю этот код просто показывает Реквизиты позиции ТП определенной версии ТП... Не пойму как это вяжется к моей теме?

Re: Создание и добавление расцеховки к ТП

AlexB писал(а):

Сергей писал(а):
не работает конкретно этот(отдельно взятый) код или до этого прога чтото делает?

Это кусок кода из программы, запустил отдельно этот кусок кода (т.е. только создание Расцеховки), отработал нормально, потом запустил всю программу, тоже все отработало без ошибок, странно... Ну работает и ладно.
Попутно возник еще вопрос, я создал номенклатуру в справочнике Расцеховки, мне нужно добраться до закладки Привязки->Цехов к расцеховке и создать там список цехов, зная ID цехов. Нашел зависимый объект NmkAffix, но как там что то создавать ума не приложу... Подскажите пожалуйста.


        Dim TechnologyAttributes : Set TechnologyAttributes = NmkTechnology.Properties("TechnologyAttributes").AsIDispatch
        Dim OperationRoutingSequence : Set OperationRoutingSequence = TechnologyAttributes.Properties("OperationRoutingSequence").AsIDispatch
        Call OperationRoutingSequence.AppendAction.Execute
        Set RoutingOperations = OperationRoutingSequence.Properties("RoutingOperations").AsIDispatch
        NmkTechnology.ClassType = ctOperation
        If NmkTechnology.RunModuleForSelect("Select position",False) Then
            Call RoutingOperations.CreateNew
            RoutingOperations.Properties("OPER_ID").Value = NmkTechnology.Properties( "ID" ).AsInteger
            Call RoutingOperations.SaveChanges
        End If

Re: Создание и добавление расцеховки к ТП

Спасибо