Какому ключевому слову в языке запросов 1с соответствуют два варианта в английском варианте
При работе с языком запросов 1С, иногда возникает ситуация, когда требуется проверить выражение, является ли оно ЛОЖЬ или Истина. В случае положительного результата присвоить ему значение выражения для замены.
Конструкция оператора ВЫБОР
Несколько примеров
Пример №1
Есть таблица «Таблица1», в которой перечислены все дни с понедельника по воскресенье.
ДеньНедели |
Понедельник |
Вторник |
Среда |
Четверг |
Пятница |
Суббота |
Воскресенье |
Необходимо, для строк со значениями «Суббота» и «Воскресенье» в отдельном поле указать, что это выходной. Во всех остальных случаях, рабочий день. Реализуем поставленную задачу в виде запроса к исходной таблице.
Текст запроса может выглядеть так:
ВЫБРАТЬ
ДеньНедели,
ВЫБОР
КОГДА ДеньНедели =»Суббота »
ИЛИ ДеньНедели = «Воскресенье »
ТОГДА «Выходной»
ИНАЧЕ «Рабочий день»
КОНЕЦ КАК ВидДня
ИЗ
Таблица1. ДеньНедели КАК ДеньНедели
ДеньНедели | ВидДня |
Понедельник | Рабочий день |
Вторник | Рабочий день |
Среда | Рабочий день |
Четверг | Рабочий день |
Пятница | Рабочий день |
Суббота | Выходной |
Воскресенье | Выходной |
В данном примере, используя оператор ВЫБОР, мы перебираем все строки из «Таблица1». Параллельно проверяя каждую на соответствие условию.
КОГДА ДеньНедели =»Суббота »
ИЛИ ДеньНедели = «Воскресенье «
Если сработает одно из них, то в колонку «ВидДня» произойдёт запись выражения замены, расположенного после ключевого слова ТОГДА. Во всех остальных случаях будет записано выражение расположенное после слова ИНАЧЕ. Причём если убрать секцию ИНАЧЕ, программа примет такую конструкцию и не выдаст ошибку. Однако если проверяемое выражение вернёт ЛОЖЬ, тогда строки, в которые должно было подставится выражение замены, получать значение NULL. Рассмотрим подробнее подобную ситуацию.
Пример №2
Возьмём уже известную нам таблицу из первого примера.
ДеньНедели |
Понедельник |
Вторник |
Среда |
Четверг |
Пятница |
Суббота |
Воскресенье |
Получите понятные самоучители по 1С бесплатно:
Необходимо вывести в отдельную таблицу количество выходных дней. Причём информацию о количестве рабочих дней, будем считать излишней. Для наглядности решим задачу в несколько этапов. За основу возьмём запрос из примера №1. Уберём из него секцию ИНАЧЕ, а поле для вывода оставим только то, которое получаем конструкцией оператора ВЫБОР.
ВЫБРАТЬ
ВЫБОР
КОГДА ДеньНедели =»Суббота »
ИЛИ ДеньНедели = «Воскресенье »
ТОГДА «Выходной»
КОНЕЦ КАК ВидДня
ИЗ
Таблица1. ДеньНедели КАК ДеньНедели
Из результата запроса видно, что все строки, не вошедшие в условие после ключевого слова КОГДА получили . Как известно это отсутствие значения. Таким образом, нам остаётся только сгруппировать полученную таблицу. Применив к группировке агрегатную функцию КОЛИЧЕСТВО ( ).
Текст запроса может выглядеть так:
ВЫБРАТЬ
КОЛИЧЕСТВО(ВЫБОР
КОГДА ДеньНедели =»Суббота »
ИЛИ ДеньНедели = «Воскресенье »
ТОГДА «Выходной»
КОНЕЦ) КАК ВидДня
ИЗ
Таблица1. ДеньНедели КАК ДеньНедели
В заключении хочется сказать, что оператор ВЫБОР хоть и не часто находит свое применение при написании запросов в 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. Ну и третий способ – воспользоваться материалом данной статьи, где я приведу примеры наиболее популярных конструкций в стандартном виде и их аналогов на английском языке.
1С:ERP Управление предприятием 2
Легендарную российскую программу «1С» переводят на английский язык с выпуском международной версии системы ERP (Enterprise Resource Planning, планирование ресурсов предприятия). Об этом рассказал руководитель разработки «1С:ERP» Алексей Моничев на VIII международной конференции «1С», прошедшей в середине июня 2019 года.
«Мы поставили себе цель из российской ERP выделить ядро, очищенное от „российского законодательства”, которое можно использовать в разных странах как основу для разработки локальных решений», — сказал он.
Таким образом, с уникальной российской разработкой познакомятся и иностранные программисты. В России «программирование 1С» уже стало фактически отдельной профессией, которая очень востребована на рынке. По
В комментарии для CNews Алексей Моничев рассказал, что решение о разработке международной версии было принято в связи с соответствующими запросами партнёров «1С», занимающихся внедрением продукта компании за пределами страны. По его словам, «1С:ERP» пользуется неплохим спросом в странах СНГ, во многих государствах Восточной Европы и даже отдельных странах Западной Европы: в частности, в Германии и Италии.
Бета-версия международной ERP (версия 2.5.3) выйдет в августе или сентябре 2019 года. Затем начнётся её финальная доработка на основе поступающих требований партнёров.
Английский интерфейс начали тестировать начиная с версии 1С:ERP 2.4.8 в начале июня: «Мы организовали полностью автоматическую технологию перевода, — говорит Моничев. — Мы пользуемся услугами профессиональных переводчиков, работающих на портале Smartcat». Как только в конфигурации появляются новые фразы или слова, они сразу загружаются в Smartcat, а после обработки также автоматически возвращаются в систему обратно на английском языке. «Это позволило нам полностью исключить отставание в разработке английского интерфейса от русского. Принимаем замечания по точности перевода», — сказал руководитель разработки программы.
Но самая интересная задача — перевод кода, который исторически писался на русском языке.
Речь идёт о встроенном языке программирования «1С», на котором написана конфигурация ERP:
- названия объектов (метаданные) конфигурации,
- переменные,
- процедуры,
- функции.
Язык «1С» создан компанией с нуля и является предметно-ориентированным языком, предназначенным для быстрого решения бизнес-задач. Как сказано в Википедии, рабочее название языка — «1Сик» («одинэсик»), по своему синтаксису он подобен Visual Basic.
В компании пояснили, что на языке «1С» с момента его появления можно было пользоваться как русским («если…то»), так и английским (if…then) синтаксисом, на выбор разработчика.
Пример программы на языке 1С
Проекты на встроенном языке «1С: Предприятия» называются конфигурациями. Распространение (продажа) и внедрение таких конфигураций — это основная коммерческая деятельность фирм-партнёров 1С.
Представители «1C» в разговоре с CNews отметили, что сама платформа «1С: Предприятие» написана на С++ и Java, но включает компилятор собственной разработки «1С». С помощью этой платформы можно писать и исполнять бизнес-приложения на языке «1С»; она выступает средой для быстрой разработки кросс-платформенных бизнес-приложений и средой их выполнения (runtime environment) в разных ОС и СУБД: «Мы считаем язык „1С: Предприятия” и в целом технологию и архитектуру системы очень эффективными для разработки бизнес-приложений, безотносительно страны, для которой они разрабатываются, — сказали они. — А для удобства международных разработчиков мы выпустили и развиваем среду разработки 1С:Enterprise Development Tools (EDT) на основе платформы Eclipse».
Интересно, что для встроенного языка 1C cуществует несколько дополнительных компонентов, расширяющих основные классы, их свободное добавление и изменение. Фирмой-разработчиком эти компоненты не рекомендованы к использованию. Например, компонента 1С++ расширяет язык 1С средствами полноценного объектно-ориентированного программирования. Её использование значительно расширяет возможности конфигурирования 1С. Это свободный программный продукт, распространяемый под лицензией GPL.
Доброе утро,
мне нравится англоязычная версия языка запросов,
можно ли сделать, чтобы конструктор запросов после нажатия на ОК формировал запрос английскими операторами?
например:
select Ref from Document.Заказы order by ref
(3) crabzzy, В принципе можно не менять языка а поменять только язык скриптов
Для того чтобы запрос был на английском необходимо нажать на конфигураци правой кнопокй- пропертиес (либо алт+ентер) и выбрать там Script variant- english
Если в файле conf.cfg (у меня он лежит в C:\Program Files\1cv82\conf) прописываете SystemLanguage=EN то язык менятся на инглиш но запросы все равно по русски)
Для того чтобы запрос был на английском необходимо нажать на конфигураци правой кнопокй- пропертиес (либо алт+ентер) и выбрать там Script variant- english
(2) Shooroopik111, большое спасибо, хотя хотел именно запросы, можно ли так.
Не подскажите, где для 8.1 где лежит conf.cfg ?
(3) crabzzy, В принципе можно не менять языка а поменять только язык скриптов
Для того чтобы запрос был на английском необходимо нажать на конфигураци правой кнопокй- пропертиес (либо алт+ентер) и выбрать там Script variant- english
У Вас получилось?
Если язык русский то необходимо клацнуть на конфигурации правой кнопкой мышки- свойства - Вариант встроенного языка- Английский.
(6) Shooroopik111, да, получилось:)
всё как надо! Спасибо!
примерно так:
"SELECT
| Doc1.Ref AS ref,
| Doc1.Реквизит1 AS ra
|INTO zaya
|FROM
| Document.Документ1 AS Doc1
|WHERE
| Doc1.Date >= DATETIME(2013, 1, 1)
| AND Doc1.Posted
| AND (NOT Doc1.DeletionMark) index by ref"
(9) juntatalor, речь о заявках в метаданных, поэтому выбрал zaya :)) впоследствии они стали appl :)
(zaya тоже хорошо было, красиво. )
Классно, что вам нравится английский синтаксис.
Только вот что будет с теми, кто будет это поддерживать после вас.
(12) crabzzy, нет ничего более постоянного, чем временное :)
Внешние обработки часто улучшаются и модифицируются впоследствии
Но запрос обработав конструктором в базе, где св-во конфигурации Вариант встроенного языка - Русский - даст русскоязычную версию.
Добавлю, что разработка на англ. накладывает ограничение - необходимо менять св-во конфигурации, в хранилище это не выйдет; это возможно в своей разработческой базе, например, только развернув конфигурацию в ней.
После разработки запроса можно перевести его на русский, просто запустив конструктор в базе, где св-во конфигурации . Единственное, необходимо делать псевдонимы Ref и прочие, если делать временные таблицы (например в запросе "select Ref into t1 from . ; select Ref from t1" - тут нужно сделать псевдоним "select ref as ref into t1 from . " - иначе на русском это будет называться ссылка в таблице t1 и следующий select ref from t1 не увидит поля ref в таблице t1, т.к. поле будет "ссылка" в таблице t1.).
Оператор «ПОДОБНО», в языке запросов 1С 8.3, предназначен для сравнения строковых выражений с заданным шаблоном. Результатом такой проверки будет «Ложь» или «Истина». Отличие от оператора « = », заключается в возможности использования спецсимволов.
Синтаксис:
Следует понимать, что спецсимволы оператора ПОДОБНО несут служебный характер и их смысл (назначение) отличается от обычных символов.
Пояснение спецсимволов:
- « % » — любое количество обычных произвольных символов;
- « _ » — один любой обычный символ;
- « […] » — в таких скобках, возможно, указать последовательность обычных символов или диапазон (а-д, 0-5 и подобные);
- « [^…] » — с помощью знака « ^ » в квадратных скобках, можно исключить последовательность обычных символов или диапазон (а-д, 0-5 и подобные).
Рассмотрим работу такого оператора на примерах.
Оператор «ПОДОБНО» в полях выборки запроса
ВЫБРАТЬ
Номенклатура.Наименование ПОДОБНО «Мол%» КАК Молоко,
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
Результат:
В данном примере проверяем каждую строку, начинается ли она на «Мол», для наглядности выводим такое же поле без применения оператора «ПОДОБНО».
Оператор «ПОДОБНО» в конструкции условного оператора «Где»
Получите понятные самоучители по 1С бесплатно:
ВЫБРАТЬ
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО «_о%»
Результат:
Из результата запроса понятно, что были отобраны поля, у которых вторая буква « о », а после неё любые произвольные символы.
Оператор «ПОДОБНО» в конструкции условного оператора «ВЫБОР»
ВЫБРАТЬ
ВЫБОР
КОГДА Номенклатура.Наименование ПОДОБНО «%[л]%»
ТОГДА Номенклатура.Наименование
ИНАЧЕ «Не соответствует шаблону»
КОНЕЦ КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
Результат:
В таком примере помечаем поля, в которых не содержится буква « л ».
Как сравнивать текст по спецсимволу (%. )
Для реализации таких задач требуется пользоваться ключевым словом СПЕЦСИМВОЛ. Указав любой символ после такого ключевого слова, система, в шаблоне конструкции ПОДОБНО, будет воспринимать следующий символ за ним как обычный.
ВЫБРАТЬ
Номенклатура.Наименование КАК Наименование
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Наименование ПОДОБНО «%/%» СПЕЦСИМВОЛ «/»
В таком примере были выбраны все поля содержащие знак « % » в конце.
Использование параметров в конструкции «ПОДОБНО»
Результат:
Установив параметр запроса в значение «М%», отбираем все поля, которые начинаются на символ « М ».
Возможные ошибки
Следует учитывать, что шаблон из конструкции оператора «ПОДОБНО» должен иметь исключительно строковый тип данных так же недопустимо формировать шаблон путём сложений строк.
Читайте также: