Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
Задача: есть произвольная обработка для 1с77. Как запустить извне (например, из Delphi) через OLE её на выполнение? Задача2: Как запустить текст произвольной обработки на выполнение. Нужно избежать записи обработки на диск. Заранее признателен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:38 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
1. Так же, как и запуск обработки в 1С - методом ОткрытьФорму(........... Те же проблемы - как сделать так, чтобы обработка сразу выполнялась, а не висела открытой формой. Тот же метод решения - организовать вызов нужного кода прямо в обработчике ПриОткрытии() этой формы. 2. В режиме OLE у 7ки специальный метод есть - ExecuteBatch(Код); Выполняет произвольный код на встроенном языке. Из любого количества строк состоящий. Хоть весь модуль обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:50 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
спасибо, буду разбираться ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:57 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
1. Все получилось, спасибо. 2. К сожалению, не произвольный текст , либо я чего-то не то делаю Написал обработку-белиберду, работающую в 1с77 <code> Перем Перем1; Перем Перем2; //******************************************* Процедура Выполнить() КонецПроцедуры Перем1 = 1; Перем2 = 2; // Сообщить(Перем1); // Сообщить(Перем2); ПутьКФайлу="C:\output.txt"; //сохраняем путь Текст = СоздатьОбъект("Текст"); //создаем объект текст Текст.Открыть(ПутьКФайлу); Док = СоздатьОбъект("Документ.Счет"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент()>0 Цикл Сообщить(Док.НомерДок); Текст.ДобавитьСтроку(Док.НомерДок); КонецЦикла; Текст.Записать(ПутьКФайлу); Форма.Закрыть(0); </code> по OLE вызываться не хочет :(. В чем может быть проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 17:11 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
haliff1. Все получилось, спасибо. 2. К сожалению, не произвольный текст , либо я чего-то не то делаю Написал обработку-белиберду, работающую в 1с77 <code> Перем Перем1; Перем Перем2; //******************************************* Процедура Выполнить() КонецПроцедуры Перем1 = 1; Перем2 = 2; // Сообщить(Перем1); // Сообщить(Перем2); ПутьКФайлу="C:\output.txt"; //сохраняем путь Текст = СоздатьОбъект("Текст"); //создаем объект текст Текст.Открыть(ПутьКФайлу); Док = СоздатьОбъект("Документ.Счет"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент()>0 Цикл Сообщить(Док.НомерДок); Текст.ДобавитьСтроку(Док.НомерДок); КонецЦикла; Текст.Записать(ПутьКФайлу); Форма.Закрыть(0); </code> по OLE вызываться не хочет :(. В чем может быть проблема? в смысле выззыватся не хочет? какая ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 09:00 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
по оле не хочет. Пишу что-то типа ///////////////// var EvalExprStr : string; ... EvalExprStr := <текст обработки, приведенной выше> ... onesobj := createoleobject('V1CEnterprise.Application'); onesobj.initialize(onesobj.rmtrade,'/D' + "C:\Documents and Settings\Администратор\Мои документы\1C\" + ' /M /N' + ''sa + ' /P' + '111' ,''); onesobj.ExecuteBatch(EvalExprStr); /////////////// этот текст молча не выполняется (возвращает 0 (или False по другому говоря)) если же запихнуть в EvalExprStr что-то простое, например ОткрытьФормуМодально("Обработка",,"C:\Обработка77.ert") то все выполняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 10:56 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
haliffпо оле не хочет. Пишу что-то типа ///////////////// var EvalExprStr : string; ... EvalExprStr := <текст обработки, приведенной выше> ... onesobj := createoleobject('V1CEnterprise.Application'); onesobj.initialize(onesobj.rmtrade,'/D' + "C:\Documents and Settings\Администратор\Мои документы\1C\" + ' /M /N' + ''sa + ' /P' + '111' ,''); onesobj.ExecuteBatch(EvalExprStr); /////////////// этот текст молча не выполняется (возвращает 0 (или False по другому говоря)) если же запихнуть в EvalExprStr что-то простое, например ОткрытьФормуМодально("Обработка",,"C:\Обработка77.ert") то все выполняется Возможно, не воспринимает определение процедуры в этом тексте. Попробуй без него обойтись - только набором исполняемых строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 11:04 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
объясню ситуацию. Есть текст большой сложной обработки. С целью зашитить её - оборачиваю все в exe-шник. Хочется хранить в зашифрованном виде обработку, потом через оле создать в себе экземпляр 1С, на лету расшифровать обработку, и подсунуть на выполнение созданному экземпляру. Обработка порядка 20 тысяч строк, причем она такая не одна :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 11:09 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
haliffобъясню ситуацию. Есть текст большой сложной обработки. С целью зашитить её - оборачиваю все в exe-шник. Хочется хранить в зашифрованном виде обработку, потом через оле создать в себе экземпляр 1С, на лету расшифровать обработку, и подсунуть на выполнение созданному экземпляру. Обработка порядка 20 тысяч строк, причем она такая не одна :( Не так все просто - чтобы "простые смертные" легко свои семерочные модули закрывали. Приближенные к 1С разработчики (типа Раруса) прячут свои модули в dll. Есть и КЗК от Альфа (комплекс защиты конфигураций) - вроде недорого стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 11:19 |
|
||
|
Запуск произвольной обработки через OLE в 1С77
|
|||
|---|---|---|---|
|
#18+
haliffобъясню ситуацию. Есть текст большой сложной обработки. С целью зашитить её - оборачиваю все в exe-шник. Хочется хранить в зашифрованном виде обработку, потом через оле создать в себе экземпляр 1С, на лету расшифровать обработку, и подсунуть на выполнение созданному экземпляру. Обработка порядка 20 тысяч строк, причем она такая не одна :( Если ExecuteBatch умеет выполнять последовательность операторов, но не умеет компилировать процедуры, можно и так попробовать сделать: Создать внешнюю компоненту со своими методами, каждый из которых будет соответствовать отдельной процедуре, и вызывать на исполнение этим методом свой код (который расшифровывает перед выполнением). А "главный" модуль этого комплекта - подключает внешнюю компоненту, да и вызывает ее методы в нужном порядке с нужными аргументами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2011, 11:29 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37413069&tid=1521081]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 331ms |

| 0 / 0 |
