Здравствуйте.
Пытаюсь перенести в базу Галки контрагентов из другой программы учета.
Т.е. из той программы выгрузил в dbf и должен написать vip интерфейс по загрузке. Попытался сделать просто одну команду вставки новой организации:
Insert Into katorg
set NAME:='Проверка вставки', //Наименование организации
CODE:='внут код', //Внутренний код
TIPORG:='ЮЛ', //Тип организации - ФЛ, ЮЛ,
ADDR:='домашний', //Адрес контраген
TEL:='сотовый', //Телефоны контрагента
cCity:=comp('0000000000000002h'),
CSTATE:=comp(0),
CGRAFIK:=comp(0),
CCALENDAR:=comp(0),
LastDate:=Cur_Date(),
LastUser:=username;
Ошибок при выпонение этой команды не происходит.
Теперь при попытки открыть эту организацию в Галке выскакивает сообщение об ошбике "нарушение целостности каталога!"
Подскажите пожалуйста как правильно вставить нового контрагента!
Спасибо.
дело в том что при вставке организации надо вставлять записи не в одну таблицу. мой совет, включите журнализацию.
создайте орагинзацию штатными средствами
просмотрите журнал
Понятно.
А нет ли возможности использовать какую нибудь функцию для вставки нового контрагента? Которая бы и создала автоматом все прилагающиеся для организации.
4 варианта.
1. вы сами создадите katorgdesgr ( определяет вхождение в группы).
2. напишите aqa скрипт по вставке организаций и потом сгенерите его на все организации.
3. выполните проверку каталога в модуле настройка
4. А чем не подходит модуль "обмен-бизнес документами"? Там правда требуется несколько таблиц, но можно указать и одну и туже.
/*--------------------------------------------------------------------*/
/* Создает KatOrgDescr и описатели иерархии для организации с NRec cr */
/* Коды возврата: */
/* 0 - Операция прошла успешно */
/* 1 - KatOrg с переданным NRec не найден */
/* 2 - Ошибка в ссылках на группы контрагентов для пользователя */
/* 3 - Ошибка при вставке новой записи в KatOrgDescr */
/* 4 - Ошибка при вставке нового описателя иерархии KontrIer */
/*--------------------------------------------------------------------*/
function CreateKatOrgDescr(cr:comp):integer;
var
ckodGroup, ckodNRec : comp;
TransResult:word;
{
chkSaveState;
if GetFirst KatOrg where ((cr == KatOrg.NRec)) <> tsOK
{ chkRestoreState;
CreateKatOrgDescr:=1;
exit;
}
TransResult:=BeginConcurrentTransaction(trNoLock);
ClearBuffer(#KatOrgDescr);
KatOrgDescr.Code:=1;
KatOrgDescr.cRec:=KatOrg.NRec;
KatOrgDescr.Name:=KatOrg.Name;
#ifndef GAL8_5
KatOrgDescr.LastUser:=KatOrg.LastUser;
KatOrgDescr.LastDate:=KatOrg.LastDate;
KatOrgDescr.LastTime:=KatOrg.LastTime;
#end
KatOrgDescr.isLeaf:=1;
#ifdef GAL5_80
KatOrgDescr.isArch := 2*KatOrg.isArch;
#end
#ifdef _CheckLinks_VIH_
if NullVipRef(oChkLink) GetVipRef(oChkLink, 'KatOrg');
if oChkLink.CheckLinks(coKatOrgDescr)
#else
if CheckLinks(coKatOrgDescr)
#end
KatOrgDescr.cGroup:=0
else
{ if GetFirst KatLink where (( UserName == KatLink.OwnName and
coKatOrgDescr == KatLink.CodeTable
)) <> tsOk
{ chkRestoreState;
CreateKatOrgDescr:=2;
AbortTransaction;
exit;
}
KatOrgDescr.cGroup:=KatLink.cRec;
}
if insert current KatOrgDescr <> tsOk
{ chkRestoreState;
CreateKatOrgDescr:=3;
AbortTransaction;
exit;
}
var LL: KatOrgFuncsObj;
GetVipRef(LL, 'KatOrgFuncs');
if not LL.InsertAllIerdescr(KatOrgDescr.NRec,KatOrgDescr.Name)
{ CreateKatOrgDescr:=4;
AbortTransaction;
exit;
}
chkRestoreState;
EndTransaction;
CreateKatOrgDescr:=0;
}
Может тебе это поможет...я так понял вставляешь сам katorg, а потом вызываешь эти объектники. Могу ошибаться, времени нет точнее смотреть..
даже не знаю что сказать
Я например планирую в дальнейшем в автоматическом режиме на основе одного документа "Заявка" формировать "ДО", "Накладную" и
"Ордера". Где можно прочитать про эти объектные интерфейсы чтобы знать что вызвать программно для формриования этих документов.
1. В техподдержку обратитесь ...
2. По поиску на форуме попробуйте поискать.Вроде что то было про это.
3. Ну или кто то из присутствующих поделится данной инфой хотя бы по кусочкам