сейчас в 1С-ном коде множество всяких
#Если Сервер
#Если Клиент
при портировании Json в скриптах
пришлось много вычищать такого кода
P.S. Оставлю здесь чтобы вместе с @EvilBeaver подумать
сейчас в 1С-ном коде множество всяких
#Если Сервер
#Если Клиент
при портировании Json в скриптах
пришлось много вычищать такого кода
P.S. Оставлю здесь чтобы вместе с @EvilBeaver подумать
Вкратце, если мы портируем код, то он не обязательно должен копипаститься. Дефайны Клиент и Сервер либо должны быть по умолчанию заявлены в движке всегда, чтобы код работал копипастом из 1С, либо не должны быть заявлены вообще и “вырезаться” препроцессором. Я за второй вариант, т.к. идеологически дефайны Клиент и Сервер чужеродные, их не может быть в скрипте, если только автор скрипта каким-то образом их явно не объявил и не сообщил движку.
Итого: объявлять по умолчанию символы препроцессора из 1С неверно. Их должно объявлять хост-приложение, выполняющее скрипт.
Позволю себе поделиться, как это работает у меня.
У меня отрабатываются все стандартные 1С-ные клиент/сервер/… и плюсом есть директивы Скрипт/Script, которые позволяют определять, исполняется код внутри 1С или скриптом.
Клиент/Сервер до недавнего времени тоже не использовал, но сейчас начал делать трансляцию скрипта в JavaScript и как-раз тут мне и пригодилось отделение клиентской части кода.
Сами директивы передаются через файл настроек или через командную строку:
–server --thin-client --web-client и т.д.
Вот именно это я и имел в виду. Код препроцессора не надо считать ошибочным (хотя сейчас считается и препроцессор сделан в v2.0) Однако, сами директивы и их конкретное значение Истина или Ложь должно задаваться явно при старте скрипта, каким-то образом. Например, как у Сергея.