Язык комплекса 1с предприятие обеспечивающий необходимый набор типов данных
Неотъемлемой частью любой конфигурации является программный модуль. Программным он называется потому, что содержит в себе исходные тексты алгоритмов, написанных на встроенном языке, или, проще — код. Строительными элементами программного модуля являются операторы и комментарии.
Операторы – это конструкции языка, выполняющие определенные действия.
Комментарии – фрагменты текста, содержащие пояснительную информацию.
Иными словами, программный модуль представляет собой последовательность операторов встроенного языка и комментариев.
Для наглядности материала, излагаемого далее, я покажу как мог бы выглядеть модуль «Hello world!», реализованный на встроенном языке 1С:Предприятие версии 7.7:
Операторы
Каждый оператор может располагаться на одной строке или занимать несколько идущих подряд строк модуля. Для обозначения конца оператора используется символ ; (точка с запятой). Он же используется для разделения операторов друг от друга. Обратите внимание, что признак конца строки не является окончанием оператора. Он лишь указывает на то, что оператор перешел на следующую строку. Справедливо и обратное утверждение: в одной строке могут располагаться несколько идущих подряд операторов, разделенных точкой с запятой.
Комментарии
В коде могут содержаться фрагменты произвольного текста, иначе называемые комментариями. В отличие от операторов, комментарии не являются исполняемым кодом, хотя и могут содержать его элементы. Они нужны для пояснения действий операторов программы. Комментарий может начинаться в любом месте строки текста программы с двух идущих подряд символов косой черты // и заканчивается символом конца строки:
Во встроенном языке отсутствует привычный для многих программистов многострочный комментарий. Вместо него используются несколько, идущих подряд, однострочных:
Идентификаторы
Идентификаторы используются в качестве символьных имен переменных и исполняемых операторов. Идентификаторы должны быть уникальными в своем окружении, не должны повторять зарезервированные слова встроенного языка, а также идентификаторы других исполняемых операторов.
Идентификатором может быть любая последовательность букв, цифр и знаков подчеркивания, начинающаяся с буквы или знака подчеркивания. Вновь создаваемые имена не должны совпадать с зарезервированными словами языка, а также с именами других переменных и исполняемых операторов.
Распознавание идентификаторов во встроенном языке является регистро-независимым. Т.о. имена переменных имяпеременной и ИмяПеременной будут эквивалентны, а попытка повторного объявления вызовет синтаксическую ошибку «Переменная с указанным именем уже определена!»
Зарезервированные слова
Во встроенном языке на платформе 1С:Предприятие 7.7 есть перечень ключевых слов, которые зарезервированы и не могут выступать в роли идентификаторов переменных, и определяемых разработчиком процедур и функций. Перечень зарезервированных слов, а также их англоязычных синонимов, приведен в таблице:
Возврат (Return) | КонецПроцедуры (EndProcedure) | Продолжить (Continue) |
Дата (Date) | КонецФункции (EndFunction) | Процедура (Procedure) |
Для (For) | КонецЦикла (EndDo) | Разм (Dim) |
Если (If) | Контекст (Context) | Строка (String) |
Знач (Val) | Не (Not) | Тогда (Then) |
И (And) | Перейти (Goto) | Формат (Format) |
Или (Or) | Перем (Var) | Функция (Function) |
Иначе (Else) | По (To) | Цикл (Do) |
ИначеЕсли (ElseIf) | Пока (While) | Число (Number) |
КонецЕсли (EndIf) | Прервать (Break) |
Алфавит встроенного языка
Как любой другой язык программирования, встроенный язык на платформе 1С:Предприятие версии 7.7 имеет свой алфавит – набор допустимых символов, из которых создаются идентификаторы переменных, процедур и функций, составляются выражения и комментарии.
Алфавит встроенного языка включает буквы, цифры и специальные символы. Ниже приведен полный набор допустимых символов языка:
Язык 1С считается самым простым в изучении. Одно из его конкурентных преимуществ – возможность написания кода на русском, что значительно упрощает процесс его освоения. Хотя имеются и англоязычные варианты языка, предназначенные для внедрения на зарубежных предприятиях.
Программирование на 1С – создание алгоритма или программного кода, который позволяет пользователю без проблем работать в программном интерфейсе. Основной инструмент языка – команды (слова), которые в определённой последовательности создают общую функциональную оболочку программы. Команды бывают следующих видов:
3. Функции и процедуры;
Давайте разберём все их более детально.
Переменные
Допустим, имеется число 15. Это есть значение. Изначально оно нигде не сохраняется. Чтобы поместить её в информационную базу (ИБ) программы, необходимо выполнить сохранение в переменной, которая может именоваться хоть как, скажем, результат.
Переменная, которая относится к объекту 1С (поле справочника, допустим) и сохраняется в информационную базу – это реквизит. К любой переменной допускается присвоение разных типов данных: можно сначала присвоить тип «число», а затем – тип «строка». Но для реквизитов язык 1С предусматривает только один тип данных. Если указать в нём другое значение, допустим, вместо цифры – строку, то программа сначала попробует выполнить преобразование в цифровой формат. Если она не сможет это сделать, значение будет пустым.
Строка в стандартной переменной не ограничена по длине, в реквизите – чётко определена (но если требуется выставить неограниченную длину – устанавливается значение длины 0). Выполнять обращение к отдельным буквам в слове нельзя, но можно искать целые части (Лев(), Прав(), Сред()).
Сложные переменные
Давайте разберём пример, когда переменной присвоено несколько значений.
По виду массив аналогичен колонке в Excel. Каждая ячейка – переменная, которая имеет только одно название. Чтобы перейти к определённой ячейке, нужно ввести её номер.
Ячейки в 1С нумеруются с 0, а не с 1.
Аналогичные ячейки, но с возможностью добавления комментария.
Здесь программирование таблиц значений на 1С аналогично Excel – страничке со множеством строк и колонок.
Древовидная таблица, самый простой пример – окно конфигурации.
Строки программы
В конце любой строчки стоит «;», а комментарий добавляется после знака «//». Значение пишется в кавычках, например «14». Если требуется ввести кавычку в значении, её пишут два раза: «14 ««o»»!».
Значение может быть разделено на две строки, для этого язык 1С имеет знак «|»:
Для указания специфических символов используется объект: «Символы.»:
Операторы
Это средства, встроенные в язык 1С. Используются для создания простейшей последовательности.
Те или иные строки выполняются при наличии необходимых условий.
Строчки выполняются установленное количество раз или пока выполняется определённое условие.
Для прерывания цикла язык 1С имеет команду «Прервать». Для прерывания только одной итерации – «Продолжить».
Объекты
Любой объект в 1С полноценен, то есть ему могут присваиваться уникальные от остальных методы и данные.
Для создания объекта используется параметр «Новый».
Для создания объектов применяются менеджеры. Их называют в соответствии с ветками конфигурации: Документы, Справочники и т.д. Методы в менеджере можно расширять:
Собственные объекты конфигурации 1С неизменяемы.
Ошибки в 1С
Программирование на 1С отличается тем, что при написании программы не всегда понятно, появится ли ошибка при выполнении той или иной строчки. Так, если во внешней обработке ввести:
и открыть её в базе, где указанного справочника нет – возникнет ошибка.
Чтобы она не выскочила, можно применять такой алгоритм:
Если при выполнении кода между «Попытка» и «Исключение» будет ошибка, то выполнение остановится и программа перейдёт к строчке между «Исключение» и «КонецПопытки». Если ошибка не появится, строчки выполняться не будут.
Функция ОписаниеОшибки() запускается только между «Исключение» и «КонецПопытки» и выдаёт сведения о содержании возникшей ошибки.
Функции и Процедуры
Данные методы предназначены для одноимённого наименования сразу нескольких строчек. Затем, при написании этого названия в тексте кода, будет активирована соответствующая функция. Функции и процедуры – это стандартные методы и обработчики в языке 1С:
Отличие функции от процедуры в том, что последняя не может вернуть значение, которое было посчитано при выполнении данных строк:
Как программировать?
Программирование на 1С подразумевает использование модулей. Найдя подходящий модуль, можно приступать к написанию своего кода.
Язык программирования 1С — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.
Платформа 1С Предприятие 8 имеет полноценный функционал для разработки собственных решений для разработчика. Главный инструмент разработки — это встроенный язык программирования 1С 8.3.
Язык программирования 1С не имеет названия, на официальных источниках он обозначен как «встроенный язык программирования».
На что похож язык программирования 1С
Встроенный язык программирования 1С — язык программирования, который используется для разработки приложения на базе платформы 1С Предприятие. Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня. Язык более всего напоминает по синтаксису Visual Basic в сочетании с языком запросов T-SQL.
Создание новых классов программно в языке 1С 8.3 запрещено. Так как платформа 1С Предприятие специализирована для задач учета, состав классов заранее предопределен:
На основании типовых классов можно в конфигураторе создать любое количество подклассов, имеющих свои наборы. С помощью модулей менеджеров можно незначительно расширить функционал подкласса.
Сложный ли язык программирования 1С?
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Вопрос достаточно спорный и относительный. Если рассматривать его относительно других языков, возможно, он покажется немного проще. Однако помимо самого программирования, Вам придется изучать предметную область — бухгалтерию, производство, налоговый учет и т.д., что делает в совокупности язык программирования 1С не таким простым, как может показаться с первого взгляда.
Если Вы имели до знакомства с 1C солидный опыт на других предметно-ориентированных языках программирования, Вам не составит труда разобраться и в тонкостях конфигурирования 1С 8.2, главное — желание. Всё что Вам нужно — найти хороший самоучитель по языку программированию 1С.
Русский синтаксис языка 1С
Интересной особенностью встроенного языка программирования 1С является двуязычный синтаксис команд: русский и английский. Русский язык программирования сильно удивляет новичков в сфере 1С программирования 8.2.
Сообщить ( «Привет, Мир!» ) ;
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Интерфейс 1С полностью или частично может отображаться на разных языках, что, безусловно, актуально для многоязычных конфигураций.
Виды языков 1С и для чего они используются
Виды языков в 1С
- Язык разработки
- Язык интерфейса платформы
- Язык интерфейса конфигурации
Кроме этих языков, также существуют региональные настройки, которые влияют на формат чисел, дат, времени.
Несколько языков в одной программе
Разберем детально каждый из языков 1С и выясним как изменить тот или иной язык 1С
Язык разработки
Язык разработки (Вариант встроенного языка) - язык, используемый для написания исходного кода конфигурации.
Назначение: Выбор определяет, на каком языке будут формироваться языковые конструкции в модулях и выдаваться информация о базовых типах данных. От него зависит, шаблоны какого языка будут использовать при добавлении данных или использовании конструкторов.
При этом независимо от выбранного языка разработки, код можно писать на любом. В том числе и вперемешку на русском и английском.
Настройка: Язык разработки указывается в свойствах конфигурации в поле "Вариант встроенного языка"
Встроенный язык 1С
Для определения встроенного языка конфигурации из кода 1С можно обратиться к метаданным командой
Менять данный язык после начала разработки нельзя. Никаких изменений в интерфейсе это не принесет, но может сделать неработоспособным написанный ранее код.
Язык интерфейса платформы
В стандартный дистрибутив платформы входят следующие языки интерфейса платформы:
английский, азербайджанский, болгарский, венгерский, вьетнамский, китайский, грузинский, казахский, латышский, литовский, немецкий, польский, румынский, русский, турецкий, украинский, французский.
Определить текущий язык интерфейса платформы мы можем с помощью функции:
Настройка: Есть несколько способов установить язык платформы. Наиболее простой и наиболее часто используемый это указать язык платформы в целом для всех баз 1С на данном компьютере, прописав его в файле conf.cfg.
Способ 1. Эту настройку легче всего указать при установке платформы. Для этого достаточно на этапе "Язык интефейса по умолчанию" указать нужный язык.
Способ 2. Если платформа уже установлена, то можно перезапустить установку параметров. Для этого выбираем "Пуск"-"Панель управления"-"Программы и компоненты". Находим нужную установку 1С и нажимаем "Изменить"
Способ 3. Еще можно напрямую прописать настройку в файл. Обычно он лежит по адресу "C:\Program Files (x86)\1cv8\conf\conf.cfg". Открываем файл, добавляем строчку "SystemLanguage=RU", сохраняем.
Способ 4. Если язык платформы не прописан, то используются настройки операционной системы по умолчанию. Для их изменения выбираем "Пуск"-"Панель управления"-"Язык и региональные стандарты".
Способ 5. При работе в веб-клиенте по умолчанию используется язык, установленный как "предпочитаемый язык" в браузере. Соответственно и менять его нужно в настройках браузера.
Все прошлые способы устанавливают язык платформы в целом для всех баз на компьютере пользователя. Рассмотрим указание языка для конкретного сеанса.
Способ 6. Если для разных баз нужно использовать разные языки интерфейса, то нужный код языка можно указать в строке запуска 1C после ключа /L.
Способ 7. Если при запуске информационной базы выполняется выбор базы через 1CEStart.exe. То параметрзапуска /L можно указать в окне "Редактирование информационной базы" в поле "Дополнительные параметры запуска"
Параметр запуска языка 1С
Способ 8. При запуске отладки из конфигуратора язык запуска можно указать в параметрах конфигуратора. "Сервис" - "Параметры" - "Запуск 1С:Предприятия" - "Дополнительные" - "Яык интерфейса системы".
Способ 9. При работе в браузере язык, отличный от языка по умолчанию, можно указать суффиксом адресной строки вида "/en_US/"
Способ 10. На самом деле указание кода языка в строке запуска это самый надежный вариант. Он работает всегда. Если он не сработал, значит, нужный язык просто не установлен в платформе. Возвращаемся на этап установки платформы и выбираем нужный язык.
Язык конфигурации
Язык интерфейса конфигурации - это языки интерфейса, созданные разработчиком конфигурации. Для каждого языка разработчик прописывает свой вариант всех текстов, синонимов, заголовков и т.д. В отличии от языков интерфейса платформы (жестко прописанных разработчиками платформы), языки интерфейса конфигурации могут быть абсолютно любыми. В том числе мы можем создать язык, не существующий в реальности. Количество языков ничем не ограничено.
Языки интерфейса конфигурации
Коды языков никак не связаны с кодами интерфейса платформы. Мы можем использовать любой удобный код языка. Язык интерфейса также никак не связан с настройками операционной системы. Он зависит только от разработчика конфигурации и администратора.
Единственное исключение, это разработка приложения для мобильных устройств. В этом случае рекомендуется указывать коды языков в соответствии со стандартом ISO 639 . Это позволит мобильной платформе устанавливать язык интерфейса конфигураци в зависимости от установленного у пользователя в мобильном телефоне основного языка. В противном случае при проверке конфигурации будет выдаваться предупреждение.
Определить текущий язык интерфейса платформы мы можем с помощью функции:
Есть всего два способа установки языка интерфейса:
Способ 1. Указать язык для конкретного пользователя в свойствах пользователя информационной базы.
Способ 2. Если у пользователя язык по умолчанию не указан, то будет использоваться язык, указанный в свойствах конфигурации в реквизите "Основной язык".
Основной язык конфигурации
При работе в конфигураторе для полей, в которых поддерживается многоязычный ввод, появляется значок лупы. При нажатии на данный значок мы можем корректировать тексты на нескольких языках одновременно. Однако также можем и просто корректировать тексты в любом многоязычном поле напряму без нажатия лупы. В этом случае мы редактируем текст текущего языка, не затрагивая второй язык. Чтобы переключить текущий язык в конфигураторе есть следующие способы:
Способ 3: Выбрать в меню пункт "Конфигурация" - "Язык редактирования конфигурации". Выбрать язык, со значениями которого мы хотим работать в ближайшее время.
Способ 4: Также язык можно переключить мышкой в строке статуса в правом нижнем углу окна конфигуратора.
Способ 5: Для множественного редактирования полезно использовать режим конфигуратора "Правка" - "Редактирование текстов интерфейсов"
Региональные настройки
Последними стоит упомянуть региональные настройки. Есть региональные настройки Информационной базы в целом и региональные установки текущего сеанса. Режим настройки региональных установок информационной базы позволяет управлять форматом отображения даты, времени, чисел, логических констант и влияет на порядок сортировки строк в списках информационной базы данных.
Варианты языков региональных настроек не зависят от платформы или конфигурации. Они зависят только от операционной системы. Полный список допустимых вариантов языка региональных настроек можно получить с помощью функции:
Используемые базой региональные настройки можно определить с пощью функци:
Способ 1: При создании базы. На этапе "Добавление информационной базы" необходимо выбрать язык, который будт использоваться для хранения данных.
Региональные настройки языка ИБ
Способ 2. Из конфигуратора. В пункте меню Администрирование – Региональные установки ИБ. Для смены языка информационной базы обязательно использование монопольного режима.
Примечания: Если в качестве СУБД используется PostgreSQL, то для существующей информационной базы изменение языка (страны) не может быть выполнено произвольным образом. Установленное значение языка (страны) можно изменить только на такое, которое будет использовать тот же порядок сортировки строк (collation) СУБД, что и существующее значение. Например, русский (Россия) может быть изменен на белорусский (Беларусь), но не может быть изменен на украинский (Украина).
Если в качестве СУБД используется IBM DB2, то смена значения языка (страны) не поддерживается.
Региональные установки конкретного сеанса влияют на отображение дат, чисел, времени при работе с ИБ. Есть несколько способов установки настройки для конкретного сеанса.
Способ 1: Установка общих настроек для всех сеансов. Для вызова режима нужно выбрать пункт Администрирование – Региональные установки ИБ и указать региональные параметры.
Способ 2. Если общие значения по умолчанию не установлены, то используются настройки операционной системы. Поэтому можно установить нужные настройки, сменив язык операционной системы.
Способ 3. Если для разных баз нужно использовать разные региональные настройки, то нужный код языка можно указать в строке запуска 1C после ключа /VL.
Способ 4. Если при запуске информационной базы выполняется выбор базы через типовой стартер. То ключ запуска /VL можно указать в окне "Редактирование информационной базы" в поле "Дополнительные параметры запуска"
Региональные настройки сеанса
Способ 5. При запуске отладки из конфигуратора язык запуска можно указать в параметрах конфигуратора. "Сервис" - "Параметры" - "Запуск 1С:Предприятия" - "Дополнительные" - "Код локализации сеанса".
В процессе работы региональные настройки текущего сеанса можно определить с помощью функции:
Теперь ответить на вопросы Где меняется язык 1С ? Как изменить язык в 1С? уже не проблема.
Табличка ниже послужит хорошей шпаргалкой при необходиомсти настройки языка 1С. Нужно лишь понимать, что именно мы меняем в данный момент.
Привет, Хабр!
В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.
Нативные приложения
- STL (в частности, строки, контейнеры и алгоритмы)
- множественное наследование, в т.ч. множественное наследование реализации
- шаблоны
- исключения
- умные указатели (собственная реализация)
Компоненты
- Разделение способствует лучшему проектированию, в частности лучшей изоляции кода
- Из набора компонентов можно гибко собирать разные варианты поставки:
- Например, инсталляция тонкого клиента будет содержать wbase, но не будет backend
- а на сервере wbase, наоборот, не будет
- оба варианта будут, конечно, содержать nuke и bsl
- Предоставляет фабричные методы, позволяющие создать класс из другой компоненты зная только его название (без раскрытия реализации)
- Предоставляет инфраструктуру умных указателей с подсчетом ссылок. За временем жизни SCOM-класса не нужно следить вручную
- Позволяет узнать реализует ли объект конкретный интерфейс и автоматически привести указатель на объект к указателю на интерфейс
- Создать объект-сервис, всегда доступный через метод get_service и т.д.
Этот макрос опишет специальный статический класс-регистратор, конструктор которого будет вызван при загрузке компоненты в память.
После это можно создать его экземпляр в другой компоненте:Для поддержки сервисов SCOM предлагает дополнительную, достаточно сложную инфраструктуру. Центральным в ней является понятие SCOM-процесса, который служит контейнером для запущенных сервисов (т.е. выполняет роль Service Locator), а также содержит привязку к локализуемым ресурсами. SCOM процесс привязывается к потоку ОС. Благодаря этому внутри приложения можно вот так получать сервисы:
Более, того переключая логические (SCOM) процессы привязанные к потоку, можно получить практически независимые с точки зрения информационного пространства приложения, выполняющиеся в рамках одного потока. Так устроен наш тонкий клиент, работающий с файловой базой — внутри одного процесса ОС находятся два SCOM-процесса, один связан с клиентом, а второй — с сервером. Такой подход позволяет унифицировать написания кода, который будет работать как на локальной файловой базе, так и в «настоящем» клиент-серверном варианте. Цена за такое единообразие — накладные расходы, но практика показывает, что они того стоят.
На основе компонентной модели SCOM реализована и бизнес-логика и интерфейсная часть 1С: Предприятия.
Пользовательский интерфейс
Кстати, об интерфейсах. Мы не используем стандартные контролы Windows, наши элементы управления реализованы напрямую на Windows API. Для Linux-версии сделана прослойка, работающая через библиотеку wxWidgets.
Библиотека элементов управления не зависит от других частей «1С:Предприятия» и используется нами еще в нескольких небольших внутренних утилитах.За годы развития 1С:Предприятие внешний вид контролов менялся, но серьезное изменение принципов произошло только один раз, в 2009 году, с выходом версии 8.2 и появлением «управляемых форм». Помимо изменения внешнего вида, фундаментально изменился принцип компоновки формы — произошел отказ от попиксельного позиционирования элементов в пользу flow-компоновки элементов. Кроме того, в новой модели элементы управления работают не напрямую с доменными объектами, а со специальными DTO (Data Transfer Objects).
Эти изменения позволили создать веб-клиент «1С:Предприятия», повторяющий С++ логику контролов на JavaScript. Мы стараемся поддерживать функциональную эквивалентность между тонким и веб клиентами. В том случае, когда это невозможно, например, из-за ограничений доступных из JavaScript API (например, возможности работы с файлами очень ограничены), мы часто реализуем нужную функциональность при помощи расширений браузеров, написанных на C++. На данный момент мы поддерживаем Internet Explorer и Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows и Linux) и Safari (MacOS).Кроме того, технология управляемых форм используется для создания интерфейса мобильных приложений на платформе 1С. На мобильных устройствах отрисовка контролов реализована с использованием «родных» для операционной системы технологий, но уже для логики компоновки формы и реакции интерфейса используется тот же код, что и в «большой» платформе «1С:Предприятие».
Интерфейс 1С на ОС Linux
Интерфейс 1С на мобильном устройстве
Интерфейс 1С на ОС Windows
Интерфейс 1С — веб-клиентOpen source
Заключение
В статье мы коснулись нескольких основных аспектов разработки платформы «1С: Предприятие». В ограниченном объеме статьи мы затронули лишь некоторые интересные, на наш взгляд, аспекты.
Общее описание различных механизмов платформы можно посмотреть тут.
Какие темы были бы интересны Вам в следующих статьях?Как реализована мобильная платформа 1С?
Описание внутреннего устройства веб-клиента?
Или, может быть, Вам интересен процесс выбора фич для новых релизов, разработки и тестирования?Читайте также:
- Как зарегистрировать в системе 1с компоненту sbrfcom dll
- 1с этп настройка браузера
- Ошибка after effects в файле отсутствуют данные 33 4
- Outlook не удается отобразить связанный рисунок возможно этот файл был перемещен
- Как прочитать чужую переписку в одноклассниках бесплатно с телефона сейчас без программ