Небольшой диалог между программистами 1С:
Чел: Псс, коллега, как использовать оператор Пока с постусловием в 1С как на языке Ada, Pascal, C++ и т.д.?
>Пишите код в 1С.
>Пример кода:
Цикл
Сообщить("Вжух!");
Прервать;
Пока (Истина) КонецЦикла;
Чел: Хорошо, спасибо! Вырезал пример кода, вставил его в модуль, сохранил. Ошибка при сохранении кода в модуле:
Неопознанный оператор
<<?>>Цикл
>Обрамляй препроцессорами.
Чел: Какими еще препроцессорами?
>Пример кода:
#Если Скрипт Тогда
// Код
#КонецЕсли
Чел: Ничего себе, а что за символ препроцессора Скрипт?
>Это новый секретный символ препроцессора Скрипт в 1С.
Чел: А какие есть еще операторы, которые включены в новый символ препроцессора в 1С?
>Можно использовать инкременты/декременты или старый добрый оператор "?" в 1С, который неоднократно изменялся.
>Пример кода:
ПеременнаяИнкремент = 0;
++ПеременнаяИнкремент;
ПеременнаяИнкремент += 1;
ПеременнаяИнкремент = ? + 1;
? = ? + 1;
Чел: Ого... Синтаксис-проверка проходит успешно и никаких ошибок не высветилось.
>Так же можно использовать литералы коллекций как на встроенном языке 1С:Исполнитель.
>Пример кода:
ИменаПолей = ["Идентификатор", "Размер", "Цвет"];
КурсыВалют = {"RUB": 1, "BYN": 31.01};
МножествоСДанными = {1, 2, 3};
Чел: Тоже нет никаких ошибок.
>Можно еще, например, оператор Выбор как на языке запросов 1С:Предприятие или на встроенном языке 1С:Исполнитель.
>Пример кода:
Значение = 0;
Выбор Значение
Когда 1 Тогда
Сообщить("Вжух");
Когда 2 Тогда
Сообщить("Вжух");
Иначе
Сообщить("Вжух");
КонецВыбора;
Чел: С подсветкой синтаксических конструкций тут что-то явно не так, но и ошибок нет никаких. Хм, интересно.
>И еще вот что можно.
>Пример кода:
/* многострочный комментарий
как на языке 1С:Исполнитель */
(* многострочный комментарий
как на языке Глагол *)
{ многострочный комментарий
как на языке Pascal }
Чел: О! Как же мне их не хватает.
>А вообще можно что угодно писать, а не только код на разных языках программирования.
>Пример кода:
якобы да кабы безценная информация
Чел: Лол, что?
>Пример кода:
за лол и кек стреляю в чебурек
Чел: Аа-а, все понятно. Насмешило меня. Теперь хочу попробовать запустить код в режиме предприятия.
Пример кода в модуле внешней обработки:
На форму добавили кнопку "СообщиЧтоНибудь", при нажатии которого будет выдавать сообщение пользователю из переменной модуля "Текст". Ну вы сами поняли какой текст сообщения будет выдавать.
Большинство примеров кода 1С было обнаружено инструментом.
Надеемся, что не сломаются многие популярные анализаторы кода.
Тестировалось на платформе 8.3.24.1368.
Поддержите лайками плюсами.
И всем спасибо за внимание!
С вами был Илон Маск Макс!
П.С. На данную тему уже было несколько статей, однако никто не затрагивал ее так глубоко и детально. Итак, все описанное выше - это недокументированное поведение. Использование в коде нежелательно. Собственные инструкции препроцессора конфигуратор не проверяет и операторы между блоками препроцессоров. Ну и результат, как же без него.