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

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 Бесплатно (free)

Расширяемый форматтер структуры модулей 1С. Умеет автоматически расставлять стандартные области и раскидывать по ним процедуры и функции модуля, оформлять стандартные комментарии к методам с помощью ИИ. Также умеет анализировать модуль - извлекать структуру вызовов, используемые поля и т.д. Реализован в виде расширения (.cfe). Можно использовать как платформу для обработки кода в своих задачах автоматизации разработки.

12.02.2025    5220    349    wonderboy    38    

111

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

В третьей статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, обсудим подходы к рефакторингу платформеннозависимого кода

11.02.2025    789    it-expertise    0    

2

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

Во второй статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, поговорим об особенностях анализа конфигурации 1С на наличие платформеннозависимого кода.

31.01.2025    1459    it-expertise    1    

7

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

В практике нашей специальной команды по проектам сложных обновлений 1С прошел один из самых объёмных проектов: необходимо было обновить «1С: Бухгалтерия предприятия КОРП 3.0 + БИТ.ФИНАНС». Конфигурация содержала доработки практически по всем типам объектов метаданных. Длительность проекта составила 1 год и 2 месяца и обеспечила полной загрузкой 4 разработчиков на 6 месяцев.

31.01.2025    966    1c-izh    3    

5

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

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

16.09.2024    16935    markbraer    66    

43

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

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

10.09.2024    1330    acces969    4    

6

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

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

28.08.2024    1835    Chernazem    3    

6

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

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

22.08.2024    12233    alex_sayan    41    

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

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

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

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


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

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

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