Команда Выполнить

1. Vladiimir 25.09.19 15:58 Сейчас в теме
Здравствуйте!

Подскажите пожалуйста, почему команда "Выполнить" не хочет выполнять следующий код
Попытка¶ Если Прав(Строка(3),1) = "1"¶ И (3*2) <> 11 Тогда¶ Результат = "часа";¶ Иначе¶ Результат = "часов";¶ КонецЕсли; ¶Исключение¶КонецПопытки;


Выдаёт ошибку:
{ОбщийМодуль.CRM_ОбщегоНазначения.Модуль(332)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,1)}: Ожидается последовательность операторов


А здесь он вообще не увидел оператора "Исключение":
Попытка ¶ Результат = рбсДополнительныеПроцедуры.ЧислоПрописьюВРодительномПадеже(3); ¶Исключение¶КонецПопытки;


{ОбщийМодуль.CRM_ОбщегоНазначения.Модуль(332)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,9)}: Ожидается ключевое слово 'Исключение' ('Except')
По теме из базы знаний
Найденные решения
2. SlavaKron 25.09.19 16:00 Сейчас в теме
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 25.09.19 16:00 Сейчас в теме
8. Vladiimir 25.09.19 16:19 Сейчас в теме
(2) Спасибо! Странно, но у меня были примеры, в которых эти символы тоже присутствовали, но при этом все работало
14. Vladiimir 27.09.19 11:24 Сейчас в теме
(2)А вот здесь, что ему может не нравится?

Результат = Новый ТаблицаЗначений; Результат.Колонки.Добавить("Представление"); Результат.Колонки.Добавить("НаименованиеОбъекта"); Результат.Колонки.Добавить("Адрес"); Результат.Колонки.Добавить("ВозможностьВыездаСтоимость"); Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | рбсДоговорОбъектыКонтрагентаДляОбслуживания.Ссылка КАК Ссылка, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.ОбъектКонтрагентаДляОбслуживания КАК Объект, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.ВыездНеПредусмотрен КАК ВыездаНет, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.ВыездПлатный, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.СтоимостьВыезда | ИЗ | Документ.рбсДоговор.ОбъектыКонтрагентаДляОбслуживания КАК рбсДоговорОбъектыКонтрагентаДляОбслуживания | ГДЕ | рбсДоговорОбъектыКонтрагентаДляОбслуживания.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл СтрокаТаблицаРезультат = Результат.Добавить(); СтрокаТаблицаРезультат.НаименованиеОбъекта=Выборка.Объект.Наименование; СтрокаТаблицаРезультат.Адрес=Выборка.Объект.Адрес; Если Выборка.ВыездаНет=Истина Тогда СтрокаТаблицаРезультат.ВозможностьВыездаСтоимость="Не предоставляется"; ИначеЕсли Выборка.ВыездПлатный=Истина Тогда СтрокаТаблицаРезультат.ВозможностьВыездаСтоимость=Строка("Неограниченно в период действия договора." +Выборка.СтоимостьВыезда+"руб."); Иначе СтрокаТаблицаРезультат.ВозможностьВыездаСтоимость=Строка("Неограниченно в период действия договора. Бесплатно"); КонецЕсли; КонецЦикла;


:{(1)}: Ошибка при вызове метода контекста (Выполнить): {(1, 9)}: Синтаксическая ошибка "|"
ВЫБРАТЬ <<?>>| рбсДоговорОбъектыКонтрагентаДляОбслуживания.Ссылка КАК Ссылка, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.ОбъектКонтрагентаДляОбслуживания КАК Объект, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.ВыездНеПредусмотрен КАК ВыездаНет, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.ВыездПлатный, | рбсДоговорОбъектыКонтрагентаДляОбслуживания.СтоимостьВыезда | ИЗ | Документ.рбсДоговор.ОбъектыКонтрагентаДляОбслуживания КАК рбсДоговорОбъектыКонтрагентаДляОбслуживания | ГДЕ | рбсДоговорОбъектыКонтрагентаДляОбслуживания.Ссылка = &Ссылка
3. VmvLer 25.09.19 16:00 Сейчас в теме
это кара небесная за рукоягодничный код.
можно обсудить только ужесточение такой кары
4. VmvLer 25.09.19 16:03 Сейчас в теме
я думал, что время когда отраслевки пестрели такими перлами уже прошло(
6. Ditron 191 25.09.19 16:10 Сейчас в теме
(4)иногда никак без "Выполнить"
7. VmvLer 25.09.19 16:17 Сейчас в теме
9. Ditron 191 25.09.19 16:25 Сейчас в теме
10. VmvLer 25.09.19 16:34 Сейчас в теме
(9) Объективно

Запустил глобальный поиск по общим модулям ЗУПа.
Там строк не знаю сколько: может сотни тысяч, может миллионы...

Результат: не нашел использования системной команды Выполнить()
как-то без неё обошлись разрабы.

А вот в костыльных поделках без нее никак не обойтись)
11. SlavaKron 25.09.19 16:40 Сейчас в теме
(10) Не долго думая, ОбщегоНазначения.ВыполнитьВБезопасномРежиме
12. VmvLer 25.09.19 17:04 Сейчас в теме
13. Ditron 191 25.09.19 17:14 Сейчас в теме
(10) то есть искать в одной!! из многих конфигураций, метод который там может не использоваться (тем более в ЗУП), это объективно?
смешно
5. Ditron 191 25.09.19 16:09 Сейчас в теме
Попытка Исключение делайте вне команды выполнить:
Попытка
   Выполнить(<Выражение>)
Исключение
КонецПопытки

это во первых а во вторых, там непечатные символы в тексте выражения, не нужно переводы строк использовать, в одну строчку и желательно проще выражения...
Vladiimir; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот