Работа с OLE- полный мрак Документации
24.12.2007
11:32
#1
"Хочу работать с документами - СчетЗаказчику. База находится на диске D- в директории ЖДЭ-М
Пишу-
Application = СоздатьОбъект("V77.Application");
Application.Initialize(Application.RMTrade,"DD:\ЖДЭ-М\","""");
СчетСтар = Application.EvalExpr("СоздатьОбъект(""""Документ.СчетЗаказчику"""")");
И где я только кавычки не ставил и не убирал пытаясь разобраться в документации полный крах. Нельзя же так бездарно писать документацию к программе? Может кто поможет!"
Пишу-
Application = СоздатьОбъект("V77.Application");
Application.Initialize(Application.RMTrade,"DD:\ЖДЭ-М\","""");
СчетСтар = Application.EvalExpr("СоздатьОбъект(""""Документ.СчетЗаказчику"""")");
И где я только кавычки не ставил и не убирал пытаясь разобраться в документации полный крах. Нельзя же так бездарно писать документацию к программе? Может кто поможет!"
24.12.2007
12:23
#2
" //Создается объект с OLE идентификатором:
//V1СEnterprise.Application — версия независимый ключ;
//V77.Application — версия зависимый ключ;
//V77S.Application — версия зависимый ключ, SQL версия;
//V77L.Application — версия зависимый ключ, локальная версия;
//V77M.Application — версия зависимый ключ, сетевая версия.
//Выполняется инициализация системы 1С:Предприятие методом Initialize.
//Вызываются атрибуты и методы системы 1С:Предприятие как OLE Automation сервера
V7=СоздатьОбъект("V77.Application");
Польз="Unl";Пароль="un"; // имя пользователя, пароль
// База - путь(каталог) Вашей базы -текстовая переменная- "D:\ЖДЭ-М\"
strApp = "/D"""""+База+""""" /N"""""+Польз+""""" /P"""""+Пароль+"""";
Попытка
Результат = v7.initialize(v7.RMTrade,strApp,"NO_SPLASH_SHOW");
Исключение
Сообщить("Ошибка подключения к базе данных - "+ОписаниеОшибки(),"!");
Возврат;
КонецПопытки;
Если Результат=0 Тогда
Предупреждение("Не прошла инициализация Базы!");
Возврат;
КонецЕсли;
Спр = V7.CreateObject("Справочник.Контрагенты");
СпрТ = V7.CreateObject("Справочник.Номенклатура");
СпрТ.НайтиПоКоду("100000037");
ОкУсл = V7.CreateObject("Документ.ОказаниеУслуг");
СчетФ = V7.CreateObject("Документ.СчетФактура");
ВыбСчет = V7.CreateObject("Счет.Основной");
ВыбСчет.НайтиПоКоду("90.3");
ВыбСч=ВыбСчет.ТекущийСчет();
СчФак = СоздатьОбъект("Документ.ОСчетФактура");
Если Удаление = 1 Тогда
НачатьТранзакцию();
ОкУсл.ВыбратьДокументы(Дата1,Дата2);
Пока ОкУсл.ПолучитьДокумент()=1 Цикл
Если ОкУсл.Комментарий = "Пв" Тогда
ОкУсл.Удалить();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
КонецЕсли;
СчФак.ВыбратьДокументы(Дата1, Дата2);
НачатьТранзакцию();
Пока СчФак.ПолучитьДокумент() > 0 Цикл
Если СчФак.ПометкаУдаления() = 1 Тогда
Продолжить;
КонецЕсли;
......
Если ПустоеЗначение(V7)=0 Тогда
Попытка
V7.EvalExpr("ЗавершитьРаботуСистемы()");
Исключение
КонецПопытки;
КонецЕсли;
Если (ТипЗначенияСтр(V7)="OLE") Тогда
Попытка
V7.ExecuteBatch("ЗавершитьРаботуСистемы(0);");
Исключение
КонецПопытки;
КонецЕсли;
"
//V1СEnterprise.Application — версия независимый ключ;
//V77.Application — версия зависимый ключ;
//V77S.Application — версия зависимый ключ, SQL версия;
//V77L.Application — версия зависимый ключ, локальная версия;
//V77M.Application — версия зависимый ключ, сетевая версия.
//Выполняется инициализация системы 1С:Предприятие методом Initialize.
//Вызываются атрибуты и методы системы 1С:Предприятие как OLE Automation сервера
V7=СоздатьОбъект("V77.Application");
Польз="Unl";Пароль="un"; // имя пользователя, пароль
// База - путь(каталог) Вашей базы -текстовая переменная- "D:\ЖДЭ-М\"
strApp = "/D"""""+База+""""" /N"""""+Польз+""""" /P"""""+Пароль+"""";
Попытка
Результат = v7.initialize(v7.RMTrade,strApp,"NO_SPLASH_SHOW");
Исключение
Сообщить("Ошибка подключения к базе данных - "+ОписаниеОшибки(),"!");
Возврат;
КонецПопытки;
Если Результат=0 Тогда
Предупреждение("Не прошла инициализация Базы!");
Возврат;
КонецЕсли;
Спр = V7.CreateObject("Справочник.Контрагенты");
СпрТ = V7.CreateObject("Справочник.Номенклатура");
СпрТ.НайтиПоКоду("100000037");
ОкУсл = V7.CreateObject("Документ.ОказаниеУслуг");
СчетФ = V7.CreateObject("Документ.СчетФактура");
ВыбСчет = V7.CreateObject("Счет.Основной");
ВыбСчет.НайтиПоКоду("90.3");
ВыбСч=ВыбСчет.ТекущийСчет();
СчФак = СоздатьОбъект("Документ.ОСчетФактура");
Если Удаление = 1 Тогда
НачатьТранзакцию();
ОкУсл.ВыбратьДокументы(Дата1,Дата2);
Пока ОкУсл.ПолучитьДокумент()=1 Цикл
Если ОкУсл.Комментарий = "Пв" Тогда
ОкУсл.Удалить();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
КонецЕсли;
СчФак.ВыбратьДокументы(Дата1, Дата2);
НачатьТранзакцию();
Пока СчФак.ПолучитьДокумент() > 0 Цикл
Если СчФак.ПометкаУдаления() = 1 Тогда
Продолжить;
КонецЕсли;
......
Если ПустоеЗначение(V7)=0 Тогда
Попытка
V7.EvalExpr("ЗавершитьРаботуСистемы()");
Исключение
КонецПопытки;
КонецЕсли;
Если (ТипЗначенияСтр(V7)="OLE") Тогда
Попытка
V7.ExecuteBatch("ЗавершитьРаботуСистемы(0);");
Исключение
КонецПопытки;
КонецЕсли;
"
26.12.2007
12:05
#3
"Спасибо большое.
Значит я в строке- Application.Initialize(Application.RMTrade,"DD:\ЖДЭ-М\","""");
Должен писать перед D косую черту-
Application.Initialize(Application.RMTrade,"/DD:\ЖДЭ-М\","""");
или так
Application.Initialize(Application.RMTrade,/D"D:\ЖДЭ-М\","""");
А где же оператор- EvalExpr?
"
Значит я в строке- Application.Initialize(Application.RMTrade,"DD:\ЖДЭ-М\","""");
Должен писать перед D косую черту-
Application.Initialize(Application.RMTrade,"/DD:\ЖДЭ-М\","""");
или так
Application.Initialize(Application.RMTrade,/D"D:\ЖДЭ-М\","""");
А где же оператор- EvalExpr?
"
27.12.2007
14:04
#4
> А где же оператор- EvalExpr?
Метод EvalExpr вычисляет выражение, записанное в параметре <СтрокаВыражения> на встроенном языке 1С:Предприятие и возвращает результат вычисления. И ДАЛЕЕ ЧИТАЕМ ВНИМАТЕЛЬНО ДО ПОЛНОГО ПРОСВЕТЛЕНИЯ!
Описание встроенного языка. Част 2. Страница 906.
Метод EvalExpr вычисляет выражение, записанное в параметре <СтрокаВыражения> на встроенном языке 1С:Предприятие и возвращает результат вычисления. И ДАЛЕЕ ЧИТАЕМ ВНИМАТЕЛЬНО ДО ПОЛНОГО ПРОСВЕТЛЕНИЯ!
Описание встроенного языка. Част 2. Страница 906.
Читают тему
(гостей: 1)