Когда программисты первый раз видят прикладной язык 1С, многие впадают в ступор. Несмотря на то, что родной русский язык в любом случае ближе и понятнее, читать код на русском языке и понимать, что происходит в нем (когда это в новинку) не так-то просто.
Опытный программист сразу увидит определенные знакомые конструкции (условия, циклы, вызовы функций), но многие моменты в коде все равно будут непонятными и непривычными. А уж если код был написан программистом с даром красивого именования переменных и функций, то процесс первого знакомства с 1С обещает быть еще более ярким. Впрочем, последнее справедливо не только для 1С.
Пример кода от любителя красивого синтаксисаСейчас процесс перевода 1С на английский язык идет полным ходом. К существующим ранее решениям (таким как 1C:Drive) недавно добавился 1С:ERP World Edition, а разработка на английском языке (более привычном и понятном для многих начинающих или не связанных с 1С программистов) стала еще более актуальной.
Как же человеку, уже прикипевшему к русскому языку в коде и / или со знаниями английского на уровне London is the capital of Great Britain MicrosoftCoca-ColaOk быстро перестроиться на кодирование на английском языке?
Есть несколько способов:
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С на английском языке, чувствовать себя уверенней и писать код быстрее.