Когда программисты первый раз видят прикладной язык 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
#EndRegion

Клиент

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С на английском языке, чувствовать себя уверенней и писать код быстрее.