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

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.

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

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

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

 

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

 

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

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

Костыль, рефакторинг или архитектура - делюсь своим видением того, как выбирать правильный инструмент под конкретную задачу. За годы в 1С я выработал алгоритм "трех зон", который помогает мне не только писать код, но и говорить с бизнесом на его языке. В статье рассказываю, когда временное решение оправдано, а когда оно становится миной замедленного действия. Никаких нотаций, только мой опыт принятия решений, где каждая строчка имеет цену. Буду рад, если моя система поможет вам по-новому взглянуть на привычную рутину.

19.12.2025    1233    GarriSoft    14    

14

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

История о легендарном отчете на 11 000 строк, копеечном расхождении и костыле 2014 года, который пережил все обновления. О том, как Василий спас квартальное закрытие, не тронув ни единой строчки кода монолита

15.12.2025    1070    GarriSoft    21    

19

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

ИИ для код-ревью – не просто модный тренд, а реальный инструмент, который уже помогает разработчикам экономить время и повышать качество кода. В статье разбираемся, как запустить локальную LLM на базе Ollama, подключить ее к Git через Webhook и Python-скрипт, а также какие параметры модели отвечают за точность и галлюцинации. Делимся схемой работы, настройками и результатами тестирования, доказывая, что автоматизированное код-ревью действительно может работать – даже без космического бюджета.

30.10.2025    4098    user2100900    4    

17

Запросы Рефакторинг и качество кода Программист 1С:Предприятие 8 Бесплатно (free)

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

28.10.2025    4721    vaillant    35    

15

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

С ростом качества работы нейросетей и упрощением их интеграции мы решили попробовать внедрить их в процессы обновления 1С. За последний год через сервис обновлений нетиповых конфигураций 1С нашей компании прошло порядка пяти тысяч проектов, четверть из которых включала расширения. Автоматизацию обновления расширений — в частности, методов модулей расширений — мы выбрали в качестве первого шага. В этой статье расскажем про настройку модели и промпта исходя из поставленной задачи и как нейросеть помогла сократить затраты на реальных проектах.

24.10.2025    2749    1c-izh    6    

7

Обновление 1С Рефакторинг и качество кода Механизмы платформы 1С 1С 8.3 Отраслевые 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 1С:Документооборот Абонемент ($m)

Конфигурация "Анализ конфигураций (версия 5)" - позволяет проверять любые конфигурации, расширения, отчеты и обработки на наличие ошибок, связанных с вызовом экспортных функций и процедур общих модулей и модулей менеджеров объектов. Проверяются ошибки: 1) Метод объекта не обнаружен 2) Недостаточно фактических параметров. 3) Слишком много фактических параметров. Рекомендуется выполнять при подготовке обновлений. Анализ расширений - позволяет выводить подробный количественный состав расширений по объектам, определить случаи пересечения одного и того же функционала в разных расширения, выявить использование в модулях аннотации "вместо".

10 стартмани

17.10.2025    5441    26    Suker86    14    

21

Рефакторинг и качество кода Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Абонемент ($m)

Сервер SQL хранит у себя данные по текущему состоянию и выполнению запросов. Например, какой запрос сколько раз выполнялся и сколько времени было потрачено. В топ таких запросов часто будут попадать тяжелые запросы и неоптимальные - которые и нужно будет найти и оптимизировать.

1 стартмани

06.10.2025    1492    8    Alex_Smolensky    25    

4

Рефакторинг и качество кода БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Использование Библиотеки стандартных подсистем позволяет разработчикам 1С значительно ускорить процесс создания решений за счет готового универсального кода, поддерживаемого и обновляемого официальным вендором. В статье рассказывается про роль и применение «Библиотеки стандартных подсистем» (БСП), примеры интеграции и подключения подсистем.

23.09.2025    7107    AlexeyPROSTO_1C    1    

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

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

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

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


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

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

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