Код программы 1 с

Это именованное значение данных для хранения и последующего доступа.

Могут быть произвольного допустимого в рамках 1С и контекста типа.

Далее под «модулем» будет подразумеваться блок исполнения кода, который связан с объектами системы (приложение,форма, справочник, документ и другие), детально будут рассмотрены в других разделах.

Под «контекстом» будет подразумеваться модуль и окружение которому этот модуль принадлежит.

Объявление переменных

Явное объявление переменных в 1с, в общем случае, не обязательно и может производится непосредственно перед использованием.

Для явного используется служебное имя «Перем«, которое регистронезависимое (допустимо использование, например»ПеРЕМ«).

Примеры явного объявления переменной:

// обычная переменная Перем МояПеременная1; // экспортная переменная Перем МояВидимаяПеременная2 Экспорт;

Пример объявления в функции:

В данном случае мы видим две переменные :

  • «ПараметрФункции«, которую нам передали при вызове, она объявлена в месте вызова, и возможно с другим именем.
  • «ПеременнаяФункции1» — новая переменная, которая действует только в рамках функции

Функция НекаяФункция(ПараметрФункции) Перем ПеременнаяФункции1; //Далее код КонецФункции

Именование переменных

Переменные должны именоваться, начинаясь с символов русского или английского алфавита или символа подчеркивания(«_»).

1С программирование для новичков. Урок 1-8. Пишем код

Не могут начинаться на цифру, но могут ее содержать.

Не рекомендуется именовать переменные используя имена конструкций языка, свойств реквизитов объектов, в некоторых случаях система не даст этого сделать, в других может привести к неявным ошибкам.

Имя должно быть понятным, запоминаемым. Допускается использование префиксов для удобства восприятия, например: лЛокальнаяПеременная, фПеременнаяФормы.

Обычно применяется выделение регистром для визуального осмысления: ВременнаяПеременнаяДляХраненияПромежуточныхРасчетов

Длина имени переменных не ограничена в разумных пределах, опирайтесь на удобство чтения кода.

Инициализация переменных

Платформа инициализирует переменные значением «Неопределено» по умолчанию

В момент объявления переменные явно присвоить значение возможно только, если это параметр функции

  • ПараметрфункцииИнициализируемый — если не передан параметр в функцию он будет инициализирован строковым значением 123
  • ПеременнаяФункции2 — переменная инициализирована после объявления
  • ПеременнаяФункции3 — переменная инициализирована по имени и значением, без явного объявления

Функция НекаяФункция(ПараметрФункцииИнициализируемый=»123″) Перем ПеременнаяФункции2; ПеременнаяФункции2 = 321; ПеременнаяФункции3 = «321Пуск»; КонецФункции

Последний вариант ничем не хуже второго и повсеместно используется, но явная инициализация, признается более «правильной«

Также не является обязательным инициализация ранее объявленной переменной сразу, это может быть сделано непосредственно перед использование.

Как писать код в 1С

Допустимо не переопределять значение «Неопределено«, т.к. всегда можно проверить тип значение или содержимое

Видимость переменных

В версии 8 в отличии от 7.7. глобальных переменных не существует и их видимость определяется контекстом исполнения

  • под контекстом в данном случае понимается модуль текущего объекта
  • в некоторых модулях допустима инициализация переменных в начале, что позволит использовать переменных неограниченно в любой точке данного модуля (модуль приложения, формы, объекта и другие)
  • в других такое недопустимо (модуль команды, модуль веб-сервисов)
  • допустима передача значений или ссылки на значение переменой в функции(процедуры)
  • к экспортным переменным допустимо обращение из других объектов (модулей, объявляются служебным регистронезависимым словом «Экспорт» через пробел от имени)
Читайте также:
Как называется клиент программа для работы пользователя с www

Передача значений переменных

  • Не ограничивается передача значений внутри процедуры или функции
  • Передача значений между процедурами внутри модуля объекта, допустимо при совместимых местах исполнения («клиентклиент»,»серверсервер»)
  • Ограниченная передача при несовместимых местах выполнения кода или передача в другие объект
  • примитивные типы: строка, число, дата переносятся без ограничений
  • объектные типы и коллекции переносятся, если в среде возможно использование данных типов, либо не запрещается их передача («мутабельные» типы)

Более подробно на последнем случае останавливаться не буду, т.к. это один уроков, который вы должны пройти самостоятельно. Система вам сообщит, когда вы наступите на «грабли«, а объяснить простыми не получится.

В случае, если вам все-таки требуется передать значение, необходимо:

  • подумать над тем, верный ли выбрали тип или место исполнения (возможно вы гоняете не те данные или не туда)
  • использовать более универсальный тип для передачи
  • преобразовывать тип в более простой перед транспортировкой, и обратно преобразовывать в месте получения

Конвертация значений будет рассмотрена в других разделах.

Замечу лишь, что примитивные типы конвертируется более просто, при соблюдении условий «авто-приведения», объекты обычно через их методы, либо уже написанием кода преобразования.

Реклама должна объяснить нам, без каких излишеств мы не можем прожить.

— Э.Макензи , 14 фраз

Источник: capitally.ru

Операторы встроенного языка в конфигурации системы 1С: Предприятие

Для полноценной работы в версии платформы 1С: Предприятие программисту потребуется специальный встроенный язык программирования, созданный разработчиками компании 1С. На текущий момент данный язык поддерживает написание основных операторов систем на русском и английском языках. Однако в связи с тем, что ранее встроенный язык программирования был доступен только на русском языке, многие типовые конфигурации 1С: Предприятие написаны с применением операторов на русском языке, доработка, как правило, ведется также на русском языке.
Если коротко то, встроенный язык программирования обладает следующими возможностями: · Предварительная компиляция; · Кэширование; · Мягкая типизация; · Событийная ориентированность; · Наличие сборщика мусора.
В то же время в нем нет классов, наследования, инкапсуляции классов, полиморфизма классов, анонимных функций и многого другого, что так часто ставят ему в минус, однако с возложенными на него задачами язык платформы справляется и не претендует на универсальность.

2. Операторы встроенного языка программирования в конфигурации системы 1С: Предприятие

Под оператором встроенного языка программирования понимают элемент языка 1С, представляющий собой законченную фразу, описывающую определенное действие, которое необходимо выполнить. Каждый оператор имеет строго установленный синтаксис (как написать) и семантику (что делает).
Все операторы можно условно разделить на логические группы: · Оператор присваивания; · Операторы условного выбора; · Операторы цикла; · Операторы вызова процедур и функций; · Оператор безусловного перехода. Оператор присваивания графически представлен в виде знака равенства и позволяет динамически изменять связь имени объекта базы данных 1С (как правило, переменных) с их значением. Не надо путать знак равенства и оператор присваивания, несмотря на то, что у них одинаковое написание. К операторам условного выбора относятся следующие конструкции:

Счетчик
В рассмотренном примере переменная «Счетчик» сравнивается со значением 1, и в зависимости от полученного результата переменной «Значение» оператором присваивания устанавливается новое значение. Также существует расширенный вариант указанного оператора с добавлением необходимого количества дополнительных условий выбора:

Счетчик
Существует также сокращенная форма оператора условного выбора, имеющая следующую форму синтаксической связи:

Выражение
В случае с первым примером можно оператор условного выбора записать следующим образом, что по своей сути будет аналогичным:


Счетчик
Для ключевых слов, используемых в операторе условного выбора, есть соответствующие в 1С ключевые слова на английском языке: Если (If) Тогда (Then) ИначеЕсли (Elsif) Иначе (Else) КонецЕсли (End If) Операторы цикла можно разделить на циклы по счетчику, циклы по условию и циклы перебора элементов. Циклы по счетчику – это циклы с заранее известным количеством повторений:

Для Счетчик
Цикл по условию выполняется, пока выполняется условие цикла:

Пока Остаток
Будьте внимательны и осторожны, данный цикл может стать бесконечным, если условие цикла выполняется всегда. Цикл перебора элементов предназначен для последовательного прохода по всем элементам коллекции:

КонецЦикла
Кроме того в теле любого фрагмента программы оператора цикла можно использовать следующие ключевые слова: — Прервать – прерывает цикл выполнение команды и передает управление оператору, следующему за ключевым словом КонецЦикла. — Продолжить – передает управление в начало цикла, где производится проверка условия выполнения тела цикла, начинается новая итерация цикла.
Для ключевых слов, используемых в операторах цикла, также есть соответствующие ключевые слова на английском языке: Для (For) Пока (While) Каждого (Each) Из (In) По (To) Цикл (Do) Продолжить (Continue) Прервать (Break) КонецЦикла (End Do) Подпрограммы процедуры и функции – это подпрограммы, выполняющие какую-либо последовательность операций с данными. Основное отличие функции от процедуры в том, что функция возвращает значение, а процедура нет. Для возврата значения используется ключевое слово Возврат.
Перед вызовом процедуры, либо функции их необходимо объявить:
forma operatora 1s.png

Процедура
Ключевые слова Процедура — КонецПроцедуры и Функция – КонецФункции, строго говоря, являются не операторами, а операторными скобками, поэтому проставление после них точки с запятой приводит к появлению ошибки.
Операторы вызова процедуры и функции используются для вызова объявленных ранее процедур и функций с передачей в них аргументов.

ИмяПроцедуры
Ключевое отличие между аргументом и параметром заключается в том, что аргумент – это данные, переданные во время вызова процедуры, либо функции, а параметр – это переменная, определяемая при объявлении процедуры и функции, которая получает значение при вызове.
Ключевые слова, используемые при объявлении процедур и функций, также имеют соответствующие значения на английском языке: Процедура (Procedure) КонецПроцедуры (EndProcedure) Функция (Function) Возврат (Return) КонецФункции (EndFunction) Оператор безусловного перехода позволяет при необходимости переместить выполнение в любую точку программного кода 1С в пределах области действия, однако этой возможностью следует пользоваться с осторожностью, так как использование данного оператора может серьезно затруднить чтение и понимание программного кода 1С. Область действия оператора ограничивается программным модулем 1С, процедурой или функцией. Переход осуществляется на помеченную меткой строку программного кода. Метка может располагаться как до оператора безусловного перехода, так и после него. Обычно данный оператор используется для быстрого выхода из многократно вложенных циклов.

Перейти
В английском варианте данный оператор выглядит следующим образом: Перейти (Goto) В данной статье были рассмотрены основные операторы встроенного языка 1С.
Специалист компании «Кодерлайн»
Сергей Сотников

Читайте также:
Какие программы относятся к издательским системам

Источник: www.koderline.ru

1с форматирование блока кода

Для того что бы программный код было удобно читать и разбираться в нем, следует использовать форматирование кода. Заключается оно установке одного или нескольких отступов размером в 4 пробела(Tab) перед строкой кода в зависимости от ее иерархии в пределах модуля.

Например код внутри условного оператора находится на следующем уровне иерархии от самого условного оператора и должен отстоять от его начала на один Tab. Такие же условия действуют и для операторов внутри цикла, процедуры, функции, попытки и т.д.

Функция ОткрытьФайл(Путь, Файл) Экспорт Файл = Новый XBase; Файл.ОткрытьФайл(Путь); Если Не Файл.Открыта() Тогда Возврат Ложь; КонецЕсли; Файл.Кодировка = КодировкаXBase.OEM; Возврат Истина; КонецФункции

В данном примере Функция находится на первом уровне иерархии кода и для нее не требуется отступов, операторы внутри функции образуют второй уровень иерархии и перед ними ставится один отступ, оператор внутри условия находится на третьем уровне иерархии и перед ним ставится два отступа относительно функции или один относительно условного оператора.

Правильно отформатировать программный код можно не только вручную, а также выделив блок кода и нажав сочетание клавиш Alt + Shift + F (или Меню Текст -> Блок -> Форматировать).

Источник: 1cguide.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru