Re: Создание и добавление расцеховки к ТП
Здравствуйте, уважаемые!
Как создать и добавить расцеховку к ТП? Версия ТКС 5.02.
Больше интересует добавление к ТП.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
TechnologiCS → TechnologiCS → Использование TechnologiCS API → Создание и добавление расцеховки к ТП
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте, уважаемые!
Как создать и добавить расцеховку к ТП? Версия ТКС 5.02.
Больше интересует добавление к ТП.
так же как и всё остальное...в чём проблема?
INmkTechnology.AddNMkToTechnology (PropertyGet)
--------------------------------------------------------------------------------
Добавить номенклатуру к техпроцессу
Синтаксис:
objectvariable.AddNMkToTechnology( NmkClassId, NMkId, ToTechId )
objectvariable - INmkTechnology
NmkClassId - идентификатор класса
NMkId - идентификатор номенклатуры
ToTechId - идентификатор позиции техпроцесса к которой нужно привязать добавляемую позицию ( 0 - к техпроцессу )
Возвращает: идентификатор позиции техпроцесса
Пытаюсь создать номенклатурную позицию в справочнике Расцеховки:
... 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
Если справочник поменять на Детали, то все создается, подскажите в чем дело?
скопировал Ваш код - работает. создаётся.
Если бы не было прав, то я бы не мог создать позицию и руками, а руками создается
не работает конкретно этот(отдельно взятый) код или до этого прога чтото делает?
Сергей писал(а):
не работает конкретно этот(отдельно взятый) код или до этого прога чтото делает?
Это кусок кода из программы, запустил отдельно этот кусок кода (т.е. только создание Расцеховки), отработал нормально, потом запустил всю программу, тоже все отработало без ошибок, странно... Ну работает и ладно.
Попутно возник еще вопрос, я создал номенклатуру в справочнике Расцеховки, мне нужно добраться до закладки Привязки->Цехов к расцеховке и создать там список цехов, зная ID цехов. Нашел зависимый объект NmkAffix, но как там что то создавать ума не приложу... Подскажите пожалуйста.
Примерно так, но это код 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;
Олег писал(а):
Примерно так, но это код 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;
На сколько я понимаю этот код просто показывает Реквизиты позиции ТП определенной версии ТП... Не пойму как это вяжется к моей теме?
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
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
TechnologiCS → TechnologiCS → Использование TechnologiCS API → Создание и добавление расцеховки к ТП