Имя: Пароль:
1C
1C 7.7
v7: Есть ли в 7-ке оператор, которому передаётся Строка, содерж. текст исполн. кода?
0 vladimir-boy
 
03.11.12
06:27
Понадобилась консоль команд в 7-ке, наподобие как здесь(http://infostart.ru/public/77200/)это реализовано в 8-ке, где имеется соответствующий искомый оператор:
Выполнить (Execute)
Синтаксис:
   Выполнить(<Строка>)

Параметры:
   <Строка>
   Строка, содержащая текст исполняемого кода.

Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.

Примечание:
В режиме запуска веб-клиент оператор не поддерживается и его вызов игнорируется.

Спасибо большое за ответы.
1 Тихий омут
 
03.11.12
06:29
Шаблон
2 vladimir-boy
 
03.11.12
06:35
(1) Я почему-то думал, что он строку готовит, а как можно его заставить команду в строковом виде (допустим: Сообщить("Привет!");) выполнить???
3 vladimir-boy
 
03.11.12
06:41
(1)Нет. На всякий случай проверил: НЕ взлетела :((((
Может ещё есть варианты?
4 zak555
 
03.11.12
06:44
(3) в шаблон функции нужно передавать
5 vladimir-boy
 
03.11.12
06:51
(4) Если можно пожалуйста в коде показать.
У меня есть
1) поле ввода("Строка" многострочная): ТекстКоманды;
2) кнопка Выполнить()

Как это реализовать?
6 zak555
 
03.11.12
06:53
Функция _Сообщить(Текст)
  Сообщить(Текст);
  Возврат 1;
КонецФункции

Шаблон ("[" + _Сообщить(Текст) +  "]")
7 zak555
 
03.11.12
06:54
что в ТекстКоманды ?
8 vladimir-boy
 
03.11.12
07:00
(7) ТекстКоманды - Это Индетификатор поля ввода, а вот содержимое например: ТекущееВремя();
9 zak555
 
03.11.12
07:02
(8) функцию ты ещё передать сможешь

ты лучше напиши -- зачем это тебе
10 vladimir-boy
 
03.11.12
07:04
Допустим хочу, что вывелось текущее время:

ТекстКоманды="ТекущееВремя();";

Процедура Выполнить()
НеизвестныйМнеИскомыйОператор(ТекстКоманды);
КонецПроцедуры


Результат в окне сообщений: 05:03:37
11 vladimir-boy
 
03.11.12
07:05
(9) Хочу консоль команд как http://infostart.ru/public/77200/
12 zak555
 
03.11.12
07:07
полной аналогии косоли команд нет в 77
13 zak555
 
03.11.12
07:07
хотя, теоретически сделать можно
но для практической части это не нужно
14 vladimir-boy
 
03.11.12
07:09
(12) Спасибо, теперь можно вздохнуть с облегчением и с грустью )))).
15 zak555
 
03.11.12
07:13
(14) она и не нужна
16 vladimir-boy
 
03.11.12
07:14
(15) Да случается потребность иной раз.
17 zak555
 
03.11.12
07:23
(16) пример приведи
мне ииразу не требовалось
18 Chai Nic
 
03.11.12
07:25
Через Шаблон многое можно реализовать - вызов функций, присвоение значений и т.п.. За одним исключением - нельзя присвоить значение неинициализированной ранее переменной.
19 zak555
 
03.11.12
07:27
(18) цикл организуй =)
20 vladimir-boy
 
03.11.12
07:31
(17)
Допустим периодически надо быстро рассчитать регистры:

РегОст.ВременныйРасчет(1);    
РассчитатьРегистрыНа('01.01.2010');

Я пользуюсь альтернативой - внешней обработкой, где меняю кусок кода и запускаю по новой, но думал, что есть штатные инструментальные средства
21 zak555
 
03.11.12
07:35
(20) рассчитать для чего ?
22 vladimir-boy
 
03.11.12
07:40
(21) Для мониторинга и параллельно отладки.
23 zak555
 
03.11.12
07:41
(22) для отладки есть отладчик =)
24 zak555
 
03.11.12
07:41
для какого мониторинга ?
25 vladimir-boy
 
03.11.12
07:45
(24) Это так красное словцо (типа для наблюдения в зависимости от различных условий и параметров), не обращай внимание.
Просто отладчиком очень редко пользуюсь,
а вот консоль команд не помешала бы при отладке в обычном запуске режима "Предприятие".
26 zak555
 
03.11.12
07:47
(25) научись пользоваться отладчиком и не изобретай велосипед
27 vladimir-boy
 
03.11.12
07:51
(26) Ну-да Спасибо, я уже понял, что придётся засукавливать рукава, ну и ленивый же я стал :)))
28 zak555
 
03.11.12
07:52
(27) так в 8ке тоже все активно используют отладчик
29 Chai Nic
 
03.11.12
07:55
(19) Не получится. Присвоить значение в шаблоне можно только вызовом процедуры, которой нужная переменная передается параметром. Однако, в процедуру нельзя передать переменную, которая ранее не была объявлена.
30 vladimir-boy
 
03.11.12
07:55
(28) Я практически обхожусь без него, если вдруг что-то не так фурычит, то временно в код вставляю команду: Сообщить(ИнтересующийОбъектИлиПеременную), а потом анализирую по её содержанию причину багов
31 Chai Nic
 
03.11.12
07:56
(29) + поправка, не процедуры, а функции
32 zak555
 
03.11.12
07:57
(30) значит ты не умеешь пользоваться заложенной функциональностью 1с
33 vladimir-boy
 
03.11.12
07:58
(32) may be :=)
34 zak555
 
03.11.12
08:02
так точно
35 vladimir-boy
 
03.11.12
08:05
(34) Ок. Уговорил
36 zak555
 
03.11.12
08:05
(35) теперь открой отладчик в 77 и забудь про (0) =)
37 vladimir-boy
 
03.11.12
08:06
(36) С удовольствием :)
38 zak555
 
03.11.12
08:18
только есть особенности использования отладчика 77
39 Dolly_EV
 
03.11.12
08:35
(38) И? где продолжение про особенности использования?))
40 vladimir-boy
 
03.11.12
08:43
(39) Саги не будет, так как тема уже исчерпана.
41 zak555
 
03.11.12
08:54
(39) например отладка правил выгрузки
если ставить точку останова с условием -- ждать долго придётся
42 Has
 
03.11.12
10:30
загрузитьизфайла
43 zak555
 
03.11.12
11:00
(42) это для всего модуля
44 ADirks
 
03.11.12
11:40
(0)  1С++, ВыполняемыйМодуль
45 varelchik
 
05.11.12
16:14
(44) Опередил!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс