Переводим синтаксис 1С на английский язык / Хабр
Когда программисты первый раз видят прикладной язык 1С, многие впадают в ступор. Несмотря на то, что родной русский язык в любом случае ближе и понятнее, читать код на русском языке и понимать, что происходит в нем (когда это в новинку) не так-то просто.
Опытный программист сразу увидит определенные знакомые конструкции (условия, циклы, вызовы функций), но многие моменты в коде все равно будут непонятными и непривычными. А уж если код был написан программистом с даром красивого именования переменных и функций, то процесс первого знакомства с 1С обещает быть еще более ярким. Впрочем, последнее справедливо не только для 1С.
Пример кода от любителя красивого синтаксисаСейчас процесс перевода 1С на английский язык идет полным ходом. К существующим ранее решениям (таким как 1C:Drive) недавно добавился 1С:ERP World Edition, а разработка на английском языке (более привычном и понятном для многих начинающих или не связанных с 1С программистов) стала еще более актуальной.
Как же человеку, уже прикипевшему к русскому языку в коде и / или со знаниями английского на уровне «London is the capital of Great Britain… Microsoft…Coca-Cola…Ok» быстро перестроиться на кодирование на английском языке?
Есть несколько способов:
1. Первое и самое банальное – подтянуть знания английского языка. Даже если удастся запомнить, как писать все нужные конструкции, названия объектов и переменных все равно желательно давать понятными англоговорящему кодеру. И чтобы не сидеть все время в обнимку с гугл-переводчиком, лучше потратить некоторое время на освоение нового языка, благо ресурсов сейчас для этого предостаточно.
Вот пример кода, как не нужно делать:
2. Второй способ – открыть любую типовую конфигурацию и искать название на английском нужной конструкции с помощью синтаксис-помощника. Как правило, там это название будет приведено подобным образом:
Пример типовой конфигурации3. Ну и третий способ – воспользоваться материалом данной статьи, где я приведу примеры наиболее популярных конструкций в стандартном виде и их аналогов на английском языке.
Поехали!
Условный оператор:
Если … Тогда ИначеЕсли … Тогда Иначе КонецЕсли; | If … Then ElsIf … Then Else EndIf; |
Циклы:
Для Счетчик = 1 По 10 Цикл КонецЦикла; | For Counter = 1 To 10 Do EndDo; |
Для Каждого … Из … Цикл КонецЦикла; | For Each … In … Do EndDo; |
Пока … Цикл КонецЦикла; | While … Do EndDo; |
Инструкции препроцессора и директивы компиляции:
#Область | #Region |
Клиент | Client |
Сервер | Server |
МобильноеПриложениеКлиент | MobileAppClient |
МобильноеПриложениеСервер | MobileAppServer |
ТолстыйКлиентОбычноеПриложение | ThickClientOrdinaryApplication |
ТолстыйКлиентУправляемоеПриложение | ThickClientManagedApplication |
ВнешнееСоединение | ExternalConnection |
ТонкийКлиент | ThinClient |
ВебКлиент | WebClient |
&НаКлиенте &НаСервере &НаСервереБезКонтекста &НаКлиентеНаСервереБезКонтекста | &AtClient &AtServer &AtServerNoContext &AtClientAtServerNoContext |
Логические и вспомогательные операторы:
И Или Не | And Or Not |
Продолжить | Continue |
Прервать | Break |
Возврат | Return |
Экспорт | Export |
Знач | Val |
Новый | New |
Перем | Var |
ВызватьИсключение | Raise |
Попытка / исключение:
Попытка Исключение КонецПопытки; | Try Except EndTry; |
Работа с транзакциями:
НачатьТранзакцию | BeginTransaction |
ОтменитьТранзакцию | RollbackTransaction |
ЗафиксироватьТранзакцию | CommitTransaction |
ТранзакцияАктивна | TransactionActive |
Функции / процедуры:
Функция КонецФункции | Function EndFunction |
Процедура КонецПроцедуры | Procedure EndProcedure |
Популярные конструкторы:
Массив | Array |
Структура | Structure |
Соответствие | Map |
СписокЗначений | ValueList |
ТаблицаЗначений | ValueTable |
ДеревоЗначений (Строки, Колонки) | ValueTree (Rows, Columns) |
Запрос | Query |
МенеджерВременныхТаблиц | TempTablesManager |
ТабличныйДокумент | SpreadsheetDocument |
ТекстовыйДокумент | TextDocument |
FTPСоединение HTTPСоединение | FTPConnection HTTPConnection |
COMОбъект | COMObject |
WSПрокси | WSProxy |
БлокировкаДанных | DataLock |
Граница | Boundary |
ДвоичныеДанные | BinaryData |
Диаграмма | Chart |
ДиаграммаГанта | GanttChart |
ДиалогВыбораФайла | FileDialog |
ДокументDOM ДокументHTML | DOMDocument HTMLDocument |
ЗаписьDOM, ЗаписьJSON, … | DOMWriter, JSONWriter, … |
ЧтениеHTML, ЧтениеJSON, … | HTMLReader, JSONReader, … |
ИнтернетПочтовоеСообщение | InternetMailMessage |
Картинка | Picture |
КвалификаторыДаты, КвалификаторыЧисла, … | DateQualifiers, NumberQualifiers, … |
КоллекцияДвижений | RegisterRecordsCollection |
КомпоновщикМакетаКомпоновкиДанных | DataCompositionTemplateComposer |
КомпоновщикНастроекКомпоновкиДанных | DataCompositionSettingsComposer |
МакетКомпоновкиДанных | DataCompositionTemplate |
МоментВремени | PointInTime |
ОписаниеОповещения | NotifyDescription |
ОписаниеТипов | TypeDescription |
ОтборКомпоновкиДанных | DataCompositionFilter |
ПараметрКомпоновкиДанных | DataCompositionParameter |
ПолеКомпоновкиДанных | DataCompositionField |
ПараметрыЗаписиJSON | JSONWriterSettings |
ПараметрыЗаписиXML ПараметрыЧтенияXML | XMLWriterSettings XMLReaderSettings |
ПочтовоеСообщение | MailMessage |
ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений | DataCompositionResultValueCollectionOutputProcessor |
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент | DataCompositionResultSpreadsheetDocumentOutputProcessor |
ПроцессорКомпоновкиДанных | DataCompositionProcessor |
РеквизитФормы | FormAttribute |
СериализаторXDTO | XDTOSerializer |
ФабрикаXDTO | XDTOFactory |
СообщениеПользователю | UserMessage |
СхемаКомпоновкиДанных | DataCompositionSchema |
Файл | File |
ХранилищеЗначения | ValueStorage |
Цвет | Color |
Шрифт | Font |
УникальныйИдентификатор | UUID |
Популярные методы объектов:
Выполнить | Execute |
ВыполнитьПакет | ExecuteBatch |
УстановитьПараметр | SetParameter |
Выбрать | Select |
СоздатьНаборЗаписей | CreateRecordSet |
Прочитать | Read |
Вставить | Insert |
Выгрузить | Unload |
Загрузить | Load |
Добавить | Add |
Записать | Write |
Заполнить | Fill |
Итог | Total |
Количество | Count |
Метаданные | MetaData |
Очистить | Clear |
Получить | Get |
ПроверитьЗаполнение | CheckFilling |
Удалить | Delete |
Переместить | Move |
Найти | Find |
НайтиСтроки | FindRows |
Сортировать | Sort |
Скопировать | Copy |
ПолучитьМакет | GetTemplate |
ПолучитьОбласть | GetArea |
СрезПервых, СрезПоследних | SliceFirst, SliceLast |
НайтиПоНаименованию | FindByDescription |
НайтиПоКоду | FindByCode |
НайтиПоРеквизиту | FindByAttribute |
Популярные функции и процедуры глобального контекста:
НачалоДня, НачалоМесяца, … | BegOfDay, BegOfMonth, … |
КонецДня, КонецМесяца, … | EndOfDay, EndOfMonth, … |
ОписаниеОшибки | ErrorDescription |
ФоновыеЗадания | BackgroundJobs |
ПолучитьИзВременногоХранилища | GetFromTempStorage |
ТекущаяДата | CurrentDate |
ТекущаяДатаСеанса | CurrentSessionDate |
Дата | Date |
ПоказатьВводДаты, ПоказатьВводСтроки, … | ShowInputDate, ShowInputString, … |
ПоказатьВопрос | ShowQueryBox |
ПоказатьЗначение | ShowValue |
ТипЗнч | TypeOf |
Тип | Type |
Вычислить | Eval |
Формат | Format |
ЗаполнитьЗначенияСвойств | FillPropertyValues |
ПолучитьОбщуюФорму | GetCommonForm |
ПолучитьОбщийМакет | GetCommonTemplate |
ПолучитьФорму | GetForm |
ОткрытьФорму | OpenForm |
РольДоступна | IsInRole |
ПустаяСтрока | IsBlankString |
Лев, Прав, Сред | Left, Right, Mid |
Мин, Макс | Min, Max |
Оповестить, ОповеститьОВыборе | Notify, NotifyChanged |
ПредопределенноеЗначение | PredefinedValue |
УстановитьПривилегированныйРежим | SetPrivilegedMode |
ПрочитатьJSON, ПрочитатьXML | ReadJSON, ReadXML |
Окр | Round |
СтрДлина, СтрЗаменить, СтрНайти, … | StrLen, StrReplace, StrFind, … |
ВРег, НРег | Upper, Lower |
ЗначениеЗаполнено | ValueIsFilled |
Популярные системные перечисления:
ВариантЗаписиДатыJSON | JSONDateWritingVariant |
ВариантСтандартногоПериода | StandardPeriodVariant |
ВидГраницы | BoundaryType |
ВидГруппыФормы | FormGroupType |
ВидДвиженияБухгалтерии | AccountingRecordType |
ВидДвиженияНакопления | AccumulationRecordType |
ВидКнопкиФормы | FormButtonType |
ВидПоляФормы | FormFieldType |
ВидСравнения | ComparisonType |
ВидСравненияКомпоновкиДанных | DataCompositionComparisonType |
ДопустимаяДлина | AllowedLength |
ДопустимыйЗнак | AllowedSign |
ДоступКФайлу | FileAccess |
КодВозвратаДиалога | DialogReturnCode |
КодировкаИменФайловВZipФайле | FileNamesEncodingInZipFile |
КодировкаТекста | TextEncoding |
МетодСжатияZIP | ZIPCompressionMethod |
МетодШифрованияZIP | ZIPEncryptionMethod |
ОбходРезультатаЗапроса | QueryResultIteration |
ПротоколИнтернетПочты | InternetMailProtocol |
РежимБлокировкиДанных | DataLockMode |
РежимДиалогаВопрос | QuestionDialogMode |
РежимДиалогаВыбораФайла | FileDialogMode |
РежимЗаписиДокумента | DocumentWriteMode |
РежимПроведенияДокумента | DocumentPostingMode |
РежимОкругления | RoundMode |
РежимСохраненияПутейZIP | ZIPStorePathMode |
РежимУправленияБлокировкойДанных | DataLockControlMode |
Символы | Chars |
СостояниеФоновогоЗадания | BackgroundJobState |
СпособSMTPАутентификации | SMTPAuthenticationMode |
СпособPOP3Аутентификации | POP3AuthenticationMode |
ТипВнешнейКомпоненты | AddInType |
ТипГруппыЭлементовОтбораКомпоновкиДанных | DataCompositionFilterItemsGroupType |
ТипЗначенияJSON | JSONValueType |
ТипТекстаПочтовогоСообщения | InternetMailTextType |
ТипУзлаDOM | DOMNodeType |
ТипУзлаXML | XMLNodeType |
ТипФайлаТабличногоДокумента | SpreadsheetDocumentFileType |
ТипФайлаФорматированногоДокумента | FormattedDocumentFileType |
УровеньЖурналаРегистрации | EventLogLevel |
ЧастиДаты | DateFractions |
Популярные объекты метаданных, упоминаемые в коде:
Справочники | Catalogs |
Документы | Documents |
РегистрыСведений | InformationRegisters |
РегистрыНакопления | AccumulationRegisters |
РегистрыБухралтерии | AccountingRegisters |
РегистрыРасчета | CalculationRegisters |
ПланыВидовХарактеристик | ChartsOfCharacteristicTypes |
ПланыСчетов | ChartsOfAccounts |
ПланыВидовРасчета | ChartsOfCalculationTypes |
Перечисления | Enums |
Константы | Constants |
(Внешние) Обработки | (External) DataProcessors |
(Внешние) Отчеты | (External) Reports |
РегламентныеЗадания | ScheduledJobs |
ПланыОбмена | ExchangePlans |
ПараметрыСеанса | SessionParameters |
ВнешниеИсточникиДанных | ExternalDataSources |
Популярные функции в языке запросов:
ДОБАВИТЬКДАТЕ | DATEADD |
РАЗНОСТЬДАТ | DATEDIFF |
НАЧАЛОПЕРИОДА, КОНЕЦПЕРИОДА | BEGINOFPERIOD, ENDOFPERIOD |
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ) | COUNT(DISTINC) |
ЗНАЧЕНИЕ | VALUE |
ТИП | TYPE |
ЕСТЬNULL | ISNULL |
ПРЕДСТАВЛЕНИЕ | PRESENTATION |
ПРЕДСТАВЛЕНИЕССЫЛКИ | REFPRESENTATION |
ТИПЗНАЧЕНИЯ | VALUETYPE |
В (ИЕРАРХИИ) | IN (HIERARCHY) |
ДАТАВРЕМЯ | DATETIME |
ПОДОБНО | LIKE |
МЕЖДУ … И … | BETWEEN … AND … |
ВЫРАЗИТЬ | CAST |
ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ | CASE WHEN THEN ELSE END |
Все аналоги, конечно, невозможно описать в рамках одной статьи, но наиболее популярные синтаксические конструкции были отражены. Надеюсь, это поможет начинающим программистам и тем, кто только знакомиться с разработкой в 1С на английском языке, чувствовать себя уверенней и писать код быстрее.
Тема+5.+Переменные+и+операторы — презентация онлайн
Похожие презентации:
Конфигурирование в системе 1С :Предприятие 8.3 (комплексный курс). Учебная литература
Основные конструкции языка программирования в 1С: Предприятие
1С:Предприятие 8
Синтаксис языка 1С
Азы программирования
Обзор системы 1С Предприятие
Встроенный язык
Язык программирования и возможности среды разработки 1С
Введение в конфигурирование в системе «1С:Предприятие 8.2» Основные объекты
Процедурное программирование на языке C++
1
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПРОГРАММА
ПРОФЕССИОНАЛЬНОЙ ПЕРЕПОДГОТОВКИ
«1С ПРОГРАММИСТ»
Модуль 1. Азы конфигурирования и программирования в
системе «1С:Предприятие 8.3». Основы программирования
Преподаватель: Шматов Вячеслав Михайлович
Модуль 1. Азы конфигурирования и программирования в
Тема 5. Переменные и операторы
План модуля:
Типы переменных и их использование
встроенные операторы и их применение
2
3
1С объявление переменных
Переменные — это именованное значение данных для хранения и последующего доступа.
Могут быть произвольного допустимого в рамках 1С и контекста типа.
Явное объявление переменных в 1с, в общем случае, не обязательно и может производится непосредственно перед
использованием.
Для явного используется служебное имя «Перем«, которое регистронезависимое (допустимо использование,
например»ПеРЕМ«).
Примеры явного объявления переменной:
// обычная переменная
Перем МояПеременная1;
// экспортная переменная
Перем МояВидимаяПеременная2 Экспорт;
4
1С объявление переменных
Пример объявления в функции:
Функция НекаяФункция(ПараметрФункции)
Перем ПеременнаяФункции1;
//Далее код
КонецФункции
Платформа инициализирует переменные значением «Неопределено» по умолчанию
В момент объявления переменные явно присвоить значение возможно только, если это параметр функции
Функция НекаяФункция(ПараметрФункцииИнициализируемый=»123″)
Перем ПеременнаяФункции2;
ПеременнаяФункции2 = 321;
ПеременнаяФункции3 = «321Пуск»;
КонецФункции
5
1С объявление переменных
Булевы операции
В операторах сравнения очень часто используется булевская логика, которая возвращает значение Истина или
Ложь.

Например, в условном операторе можно сравнивать:
Если Событие = Продажа Тогда алгоритм пойдет по одной ветке (т.е. при значении Истина), по условию Ложь
выполняется другая ветка алгоритма.
Условия могут быть достаточно сложными, они могут комбинироваться, при этом применяются следующие
операторы: И, ИЛИ, и НЕ.
Так, для оператора
И:Истина И Истина = Истина;
Истина И Ложь = Ложь;
Ложь И Ложь = Ложь.
6
1С объявление переменных
Оператор присваивания
Не следует путать оператор присваивания с равенством, не смотря на то, что у них одинаковое написание.
ВременнаяПеременная = Переменная1;
Переменная1 = Переменная2;
Переменная2 = ВременнаяПеременная;
7
1С объявление переменных
Условный оператор
Если Переменная = Истина Тогда
//код
КонецЕсли
И
Если Переменная = Ложь Тогда
//код
КонецЕсли
8
1С объявление переменных
Циклические операторы
Цикл по счетчику – цикл с фиксированным количеством повторений.

превышение граничного значения.
А = 5;
ПеремСчет = 1;
Для Счетчик = 1 По А Цикл
ПеремСчет = ПеремСчет * Счетчик;
КонецЦикла;
9
1С объявление переменных
Цикл по условию – выполняется пока истинно условие данного цикла.
ОстатокСуммы = 1000;
ЦенаДополнительногоТовара = 243;
Количество = 0;
Пока ОстатокСуммы>0 Цикл
Количество = Количество+1;
ОстатокСуммы = ОстатокСуммы – Количество*ЦенаДополнительногоТовара;
ЦенаДополнительногоТовара = ЦенаДополнительногоТовара * 0.8;
КонецЦикла
Количество = Количество-1;
10
Вопросы
11
Домашнее задание
Изучить дополнительный материал по СРС
Познакомится с разделами встроенного помощника
Ознакомится с разделами ИТС из комплекта поставки Глава 4, 5
English Русский Правила
Условный оператор: ?: | Microsoft Узнайте
Обратная связь Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 2 минуты на чтение
Синтаксис
выражение ? выражение : выражение
Условный оператор ( ? : ) является тернарным оператором (требует трех операндов). Условный оператор работает следующим образом:
Первый операнд неявно преобразуется в
bool
. Он оценивается, и все побочные эффекты устраняются перед продолжением.Если первый операнд оценивается как
true
(1), оценивается второй операнд.Если первый операнд оценивается как
false
(0), оценивается третий операнд.
Результатом условного оператора является результат вычисляемого операнда — второго или третьего.
Условные выражения имеют ассоциативность справа налево. Первый операнд должен быть целочисленного типа или типа указателя. Следующие правила применяются ко второму и третьему операндам:
Если оба операнда одного типа, результат будет того же типа.
Если оба операнда относятся к арифметическим или перечисляемым типам, для их преобразования в общий тип выполняются обычные арифметические преобразования (описанные в разделе Стандартные преобразования).
Если оба операнда относятся к типам указателей или если один из них является типом указателя, а другой является константным выражением, значение которого равно 0, выполняется преобразование указателя для преобразования их в общий тип.
Если оба операнда относятся к ссылочным типам, выполняется преобразование ссылок для их преобразования в общий тип.
Если оба операнда имеют тип void, общим типом будет тип void.
Если оба операнда относятся к одному и тому же определяемому пользователем типу, общим типом является этот тип.
Если операнды имеют разные типы и хотя бы один из операндов имеет определенный пользователем тип, то для определения общего типа используются языковые правила. (См. предупреждение ниже.)
Любые комбинации второго и третьего операндов, не указанные в предыдущем списке, недопустимы. Тип результата — общий тип, и это l-значение, если второй и третий операнды одного типа и оба являются l-значениями.
Предупреждение
Если типы второго и третьего операндов не идентичны, то вызываются правила преобразования сложных типов, как указано в стандарте C++. Эти преобразования могут привести к неожиданному поведению, включая создание и уничтожение временных объектов. По этой причине мы настоятельно рекомендуем вам либо (1) избегать использования пользовательских типов в качестве операндов с условным оператором, либо (2) если вы используете пользовательские типы, то явно приводить каждый операнд к общему типу.
Пример
// expre_Expressions_with_the_Conditional_Operator.cpp // компилируем с: /EHsc // Демонстрация условного оператора #include <иопоток> использование пространства имен std; интервал основной () { интервал i = 1, j = 2; cout << ( i > j ? i : j ) << "больше." << конец; }
См. также
Встроенные операторы C++, приоритет и ассоциативность
Оператор условного выражения
Обратная связь
Отправить и просмотреть отзыв для
Этот продукт Эта страница
Просмотреть все отзывы о странице
Условные операторы в C (?:) — синтаксис и примеры
В этой статье мы узнаем больше об условных операторах.
- Условный оператор — это тернарный оператор в C, используемый для условного вычисления. В предыдущей статье были рассмотрены операторы в C и их типы.
- Символ оператора ?:
- Это тернарный оператор, потому что он оперирует тремя операндами.
Синтаксис условного оператора:
Рис. 1. Синтаксис условного оператора
- Условный оператор представляет собой набор из трех операндов .
- выражение1 — это первый операнд, который может быть значением или выражением, или это может быть любой оператор C, например вызов функции или что-то в этом роде.
- Итак, за первым операндом следует вопросительный знак ( ? ), а за вторым операндом следует двоеточие ( : ), а после этого идет третий операнд.
- Здесь, если выражение1 истинно, то выполняется выражение2 ; если выражение1 ложно, тогда выполняется выражение3 .
Теперь давайте разберемся с вычислением условного оператора на примере. На рис. 2 показан пример.
Рисунок 2. Вычисление условного операнда на примере
Здесь есть переменная a и (5+4)? (9-4):99 — условное выражение операции. (5+4) — операнд1, (9-4) — операнд2, 99 — операнд3.
В этом случае сначала вычисляется или выполняется выражение1. При выполнении 5+4, если этот операнд истинен, то будет выполнено выражение 9-4, а результат этого выражения будет сохранен в переменной a .
Если вычисление выражения 5+4 ложно, то будет выполнено или оценено 99, а результат будет сохранен в переменной a. В этом случае a = 5, потому что верно 5+4. Очень простой.
Если выражение1 истинно, то выполняется выражение2; если выражение1 ложно, то выполняется выражение3.
Рисунок 3. Сводка условного операнда
Сводка условного оператора, как показано на рисунке 3. Сначала выполняется операнд выражение1, и если результат истинен, то выражение2 будет окончательным результатом. Таким образом, если оценка выражения 1 ложна, то окончательным результатом будет выражение 3.
Используйте условный оператор для замены операторов if-else
Например, рассмотрим приведенный ниже фрагмент кода.
Рисунок 4. Фрагмент кода
Здесь вы сравниваете переменную age со значением 18, а затем принимаете решение.
Весь код можно записать в одну строку с использованием условного оператора.
Рисунок 5. Использование условного оператора
Здесь оценивается первый (возраст <18). Если оно верно, то будет выполнено выражение printf("вы не имеете права голоса\n"). В данном случае выражение представляет собой вызов функции, то есть printf. Обратите внимание, что в конце printf нет точки с запятой. Поскольку это законченное утверждение, которое заканчивается в конце, не ставьте промежуточную точку с запятой.
Теперь, если оценка (возраст<18) ложна, то будет выполнено printf("Поздравляем!!! Вы можете голосовать\n").
Итак, иногда вы можете использовать условный оператор вместо if-else.
Возьмем другой пример.
Рисунок 6. Пример
Здесь int32_t a = 5. Каков результат a, после выполнения a=0?(a<9): a++; утверждение?
Сначала проверьте первый операнд a=0, который ложен, так как 5 не равно 0. Если первый операнд ложен, то будет выполнен третий операнд и присвоено значение переменной и . Здесь третий операнд — это а++. Эквивалентный код становится a = a++; (это постинкремент). Итак, результат a равен 5.
Некоторые из вас могут удивиться или возразить, что a = 6, но это не так. Итак, позвольте мне объяснить, как это выполняется.
В данном случае это а = а++. Начальное значение а равно 5. Когда мы обсуждали постинкремент и преинкремент, что я сказал? Сначала значение переменной а присваивается левой переменной, а затем значение а увеличивается.