ПредишенСледващото

V1CEnterprise.Application - независима версия на ключа
V77.Application - зависим версия на ключа
V77S.Application - зависим версия на ключа, SQL-версия
V77L.Application - зависим версия на ключа, местната версия
V77M.Application - зависим версия на ключа, версията на мрежа
Така например, създаване на OLE-обект на "1C: Enterprise" сървър. За простота, ние се създаде обект, без да бъде обвързан с определена версия и вид на програмата:

процедура TForm1. Create1C;

onesobj: = createoleobject # 40; "V1CEnterprise.Application" # 41; ;

onesobj: = неприсвоен;
Все пак, това не е необходимо, тъй като в края на вашата кандидатура OLE-обект ще бъдат пуснати автоматично.
Обобщете придобитите знания: създаване OLE-обект "1C: Enterprise", тя се инициализира и освободи правилно:

процедура TForm1. Create1C;

onesobj: = createoleobject # 40; "V1CEnterprise.Application" # 41; ;

onesobj. инициализира # 40; onesobj. rmtrade,

Как да се справим с получения обект
Разумен въпрос. Всъщност, в името на всички и е започнала, не е това. ) Всъщност, всичко е много просто. След като създадете и инициализиране на OLE-обект, можете да работите с него, както следва:
По метод EvalExpr ()
метод EvalExpr изчислява израз писмено параметър в 1C: Enterprise, и връща резултата от изчисление. Резултатът от израза може да бъде число, низ, дата или общата стойност на всякакъв вид данни.
Използване CreateObject () метод
метод CreateObject създава обект от тип на инертните 1C информация: Enterprise и връща препратка към него. Тази функция обикновено се използва във връзка с ясно определяне на променлива от тип OLEVariant и определяне позоваване на обект тип агрегат данни.
С (метод ExecuteBatch)
метод ExecuteBatch изпълнява последователност от отчети записани в параметър 1С: Enterprise. Методът се връща -1 ако последователността оператор е успешно, или 0 в противен случай.
Повикване система атрибути и методи 1C: Enterprise като OLE Automation сървър
Има няколко клопки, че аз просто искам да предупредя:
Когато се обадите на системата и за методите на 1С: Enterprise трябва да използват своите англоезични синоними (те са посочени за всеки метод в книгата "Описание на езика на скрипта")
За генерирани тип данни агрегация Delphi среда трябва да започне тип променлива OLEVariant
Ако наречения метод на OLE-обект отнема не параметри (или един от параметрите, то не е задължително), като параметър, който се изпраща го EmptyParam (или - за Delphi 3 - празен низ).
За достъп до идентификаторите на обекти видове руски език агрегат (например, наръчници подробности) трябва да използват метод обект тип агрегат getattrib на (), за да получите стойността на атрибута и setattrib (), за да настроите стойността.
За цялостна илюстрация на всички по-горе, ще дам един пример, в който съдържанието на директорията "номенклатура" изцяло се изнася в таблица от база данни (в този пример се приема, че вече сте създали таблица 1 таблица, чиито полета са адекватни директория. Таблица 2 Таблица отнася до една и съща физическа таблицата, която таблица 1 и служи само за да търсите вече са добавили артикули):

процедура TForm1. exportsprav;

брояч: цяло число; // Брояч на вносните записи

onesobj: Olevariant; // OLE-обект 1С: Enterprise

фаянс, ware2: olevariant; // Обобщените обекти

Вал. edizm, NDS, NP: olevariant;

PF: цяло число; // междинни променливи

таблица 1. отвори; // Open tablitsu1

Таблица 2. отвори; // Open tablitsu2

брояч: = 0; // нула брой рекорд

onesobj: = createoleobject # 40; "V1CEnterprise.Application" # 41; ; // Създаване на OLE-обект

// Създаване на подходящи инертни обекти

изделия: = onesobj. CreateObject # 40; "Spravochnik.Nomenklatura" # 41; ;

ware2: = onesobj. CreateObject # 40; "Spravochnik.Nomenklatura" # 41; ;

edizm: = onesobj. CreateObject # 40; "Spravochnik.EdinitsyIzmereny" # 41; ;

NDS: = onesobj. CreateObject # 40; "Spravochnik.StavkiNDS" # 41; ;

NP: = onesobj. CreateObject # 40; "Spravochnik.StavkiNP" # 41; ;

фаянс. selectgroup # 40; 1 # 41; ; // Задаване на режим на проба група

фаянс. selectitems # 40; 1 # 41; ; // Отваряне елементи проба указател

докато фаянс. GetItem # 40; 1 # 41;> 0 направя // Изберете всички елементи

ако фаянс. ниво # 40; '' # 41; = 1 тогава // Ако ние избрахме групата първостепенен,

// В противен случай, ние търсим елемент родител

ware2. FindItem # 40; фаянс. getattrib # 40; "Майка" # 41; # 41; ;

ако Таблица 2. findkey # 40; # 91; ware2. getattrib # 40; "Код" # 41; # 93; # 41; след това

// Ако елемента, които вече сме внесени

PF: = Таблица 2. fieldbyname # 40; "ID" # 41. AsInteger //, получаваме своя код

PF: = 1; // казано по друг елемент в групата първо ниво

ако фаянс. deletemark # 40; '' # 41; = 0, тогава // Ако елементът не е отстранена,

таблица 1. добавяне; // добавяне на ново поле в таблицата

// Попълнете полетата на стойностите на масата на съответните директория елемент атрибути

таблица 1. fieldbyname # 40; "CODE_1S" # 41. AsInteger: = изделия. getAttrib # 40; "Код" # 41; ;

// Попълнете името на полето

таблица 1. fieldbyname # 40; "NAME" # 41. AsString: = изделия. getAttrib # 40; "Име" # 41; ;

таблица 1. fieldbyname # 40; "PARENT_FOLDER" # 41. AsInteger: = PF;

таблица 1. fieldbyname # 40; "FULLNAME" # 41. AsString: = изделия. getAttrib # 40; "PolnNaimenovanie" # 41; ;

// Търсим съответното вписване в "блокове"

edizm. finditem # 40; фаянс. getattrib # 40; "EdinitsaIzmereniya" # 41; # 41; ;

// Моля въведете звена

таблица 1. fieldbyname # 40; "EDIZM" # 41. AsString: = edizm. getattrib # 40; "Име" # 41; ;

// така получаваме стойността на периодичните детайлите

таблица 1. fieldbyname # 40; "SEBESTOIM" # 41. AsFloat: =

фаянс. getAttrib # 40; "Себестойност" # 41. GetValue # 40; datetostr # 40; сега # 41; # 41; ;

таблица 1. fieldbyname # 40; "PRICEOPT" # 41. AsFloat: = изделия. getAttrib # 40; "Цена" # 41; ;

NDS. finditem # 40; фаянс. getAttrib # 40; "StavkaNDS" # 41. GetValue # 40; datetostr # 40; сега # 41; # 41; # 41; ;

NP. finditem # 40; фаянс. getAttrib # 40; "StavkaNP" # 41. GetValue # 40; datetostr # 40; сега # 41; # 41; # 41; ;

// Попълнете в областта на ДДС

таблица 1. fieldbyname # 40; "STNDS" # 41. AsFloat: = NDS. getAttrib # 40; "Bet" # 41; ;

// Напълнете кутията на цени NP

таблица 1. fieldbyname # 40; "STNP" # 41. AsFloat: = NP. getAttrib # 40; "Bet" # 41; ;

таблица 1. fieldbyname # 40; "ARTICUL" # 41. AsString: = изделия. getAttrib # 40; "Референтен" # 41; ;

ако Уеър. IsGroup # 40; '' # 41; = 1 тогава // Ако са избрани група на стоките,

таблица 1. fieldbyname # 40; "IS_FOLDER" # 41. AsInteger: = 1

таблица 1. fieldbyname # 40; "IS_FOLDER" # 41. AsInteger: = 0;

вкл # 40; брояч # 41; ;

заключение
За съжаление, не е възможно да се настанят в една статия цялата информация, която би била полезна за вас. Опитах се да дам само минимума, който е необходим, за да се получи някои основни познания и може да бъде в основата на собствените си малки открития в областта на интеграцията на Delphi и "1C: Enterprise".
Пишете ми, да зададете въпроси, и това е възможно, че скоро ще бъде продължение на статията.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!