Когда разработчик платформы не добавил проверку препроцессоров

18.03.24

Разработка - Рефакторинг и качество кода

Когда разработчик платформы решил пойти на кухню за кофе, а проверку препроцессоров не добавил, и вот тут-то и началось: "Что, опять все сломалось? Ну и кофе же я забыл сделать!".😅

Небольшой диалог между программистами 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.

Поддержите лайками плюсами.

И всем спасибо за внимание!

С вами был Илон Маск Макс!

 

П.С. На данную тему уже было несколько статей, однако никто не затрагивал ее так глубоко и детально. Итак, все описанное выше - это недокументированное поведение. Использование в коде нежелательно. Собственные инструкции препроцессора конфигуратор не проверяет и операторы между блоками препроцессоров. Ну и результат, как же без него.

 

пока постусловие инкремент декремент выбор препроцессор символ

См. также

Рефакторинг и качество кода Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В последнее время термин «чистый код» стал очень популярным. Появились даже курсы по данной тематике. Так что же это такое?

16.09.2024    14009    markbraer    64    

38

Рефакторинг и качество кода Программист Бесплатно (free)

В статье рассматривается отказ от использования процедур и унификация формата ответа функций. Способ описывается на примере развития абстрактной информационной системы, работающей с PDF файлами.

10.09.2024    920    acces969    4    

6

Рефакторинг и качество кода Бесплатно (free)

Для быстродействия большой базы данных важно не только оптимизировать запросы, но и соблюдать стандарты при разработке подписок на события, обработок для массового изменения данных, в реализации обработчиков обновления, расширений, регламентных заданий и в архитектуре СКД-отчетов. Расскажем о нюансах разработки компонентов большой системы.

28.08.2024    1168    Chernazem    3    

6

Рефакторинг и качество кода Программист Бесплатно (free)

SOLID – принципы проектирования программных структур (модулей). Акроним S.O.L.I.D. образован из первой буквы пяти принципов. Эти принципы делают код более гибким, упрощают разработку. Принято считать, что принципы SOLID применимы только в объектно-ориентированном программировании. Но их можно успешно использовать и в 1С. Расскажем о том, как разобраться в принципах SOLID и начать применять их при работе в 1С.

22.08.2024    10211    alex_sayan    41    

52

Рефакторинг и качество кода Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим основные принципы шаблона проектирования "Стратегия" на простом примере.

25.06.2024    4202    MadRave    34    

27

Рефакторинг и качество кода Программист Платформа 1С v8.3 Абонемент ($m)

В статье расскажу и покажу процесс проведения Code-review на примере обработки с GitHub.

1 стартмани

04.06.2024    6277    mrXoxot    55    

42

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Поделюсь своим опытом аудита кода авторских продуктов с Infostart.ru как одним из элементов применения DevOps-практик внутри Инфостарт. Будет настоящий код, боевые скриншоты, внутренние мемы от команды ИТ-лаборатории Инфостарт и прочее мясо – все, что любят разработчики.

10.04.2024    13359    artbear    85    

108

Рефакторинг и качество кода Программист Платформа 1С v8.3 Россия Бесплатно (free)

Предлагаю вашему вниманию советы мастеров древности. Программисты прошлого использовали их, чтобы заострить разум тех, кто после них будет поддерживать код. Гуру разработки при найме старательно ищут их применение в тестовых заданиях. Новички иногда используют их ещё лучше, чем матёрые ниндзя. Прочитайте их и решите, кто вы: ниндзя, новичок или, может быть, гуру? (Адаптация статьи "Ниндзя-код" из учебника JavaScript)

01.04.2024    4239    DrAku1a    15    

39
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. insurgut 208 18.03.24 08:03 Сейчас в теме
Пример какой-то странный. А чем старый добрый "бесконечный" цикл с условием в конце не угодил?

Пока Истина Цикл

   ...действия...
   ...действия...
   ...действия...

   Если ОноСлучилось Тогда
      Прервать;
   КонецЕсли;
КонецЦикла;
Показать


Потому-что строчек кода больше? Суть-то не меняется.

Если речь не о коде, а о том, что хочется, чтобы 1С "кодировалась" в стиле других ЯП, то это крайне странное желание. Как хотеть, чтобы автомобиль летал как самолет, чтобы фломастер стал яблоком.
2. ZhokhovM 755 18.03.24 08:31 Сейчас в теме
3. TerveRus 25.03.24 15:43 Сейчас в теме
Ну вы сами поняли какой текст сообщения будет выдавать.

Я ничего не понял. Можно понятнее объяснить что в итоге?
4. ZhokhovM 755 26.03.24 08:28 Сейчас в теме
(3)Скриншот формы обработки в конце статьи.
Оставьте свое сообщение