Некоторые модули могут быть скомпилированы как на Клиенте, так и на Сервере, а некоторые только на Сервере.
Модуль может состоять из нескольких разделов. Раздел объявления переменных и основной программы существуют не для всех модулей, а раздел описания процедур и функций может быть абсолютно в любом.
Типы модулей:
- Модуль приложения
- Модуль внешнего соединения
- Модуль сеанса
- Общие модули
- Модуль формы
- Модуль объекта
- Модуль менеджера
Модуль приложения
Предназначен для того, чтобы обработать события запуска приложений и завершения его работы. Например, при запуске приложения можно загружать курсы валют из Интернета. При завершении приложения можно удостовериться у пользователя о его намерениях завершить работу. Также в модуле приложения существуют специальные обработчики, которые позволяют перехватить внешние события от оборудования.
В модуле приложения отслеживается именно интерактивный запуск системы.
Как писать код в 1С
Модуль формы
Предназначен для того, чтобы обработать действия пользователя. Например, описать алгоритм реакции программы при нажатии кнопки. Или в момент ввода в поле значения сразу же выполнять проверку на корректность. Кроме событий, связанных с элементами управления формы (кнопки, поля ввода) существуют события, связанные с самой формой.
Можно обработать событие открытия формы и произвести некую начальную инициализацию. Существуют формы управляемые и формы обычные. В обычной форме весь код исполняется на Клиенте.
Модуль объекта
Предназначен для обработки стандартных событий. Например, событие на ввод элемента справочника, событие на запись элемента, удаление, проведение документа и т.д. Модуль данного объекта можно вызывать через контекстное меню, из Палитры свойств объекта и из окна редактирования объекта.
У некоторых объектов конфигурации не существует Модулей объектов. Это связано с особенностями самих объектов. К таким объектам относятся Константы и Регистры.
Язык программирования 1C
Язык программирования 1С не имеет названия, на официальных источниках обозначен как «встроенный язык программирования». Предварительно компилируемый предметно-ориентированным язык высокого уровня. По синтаксису напоминает VisualBasic в сочетании с языком запросов T-SQL. Создание новых классов программно в языке 1С:8.3 запрещено (нет наследования, инкапсуляции, полиморфизма).
Хорошо подходит для работы с календарем, для обработки текстовых данных, но имеет слабые математические функции, а также невнятную обработку времени.
Особенностью является двуязычный синтаксис команд: русский и английский.
//Это комментарий | Так оформляются комментарии. Комментарий — это подсказки, пометки разработчика, которые помогают разобраться или вспомнить логику работы программного кода. Каждая новая строка комментария должна начинаться с символов //. |
Перем ФИО; | Явное объявление переменной. ФИО — имя переменной. |
А = 3; | Переменную можно не объявлять явно. При первом присвоении значения система создает данную переменную. |
ЭтоЧисло = 23.5+12*2; | Переменной ЭтоЧисло присваивается числовое значение. С данными числового типа можно выполнять арифметические операции: сложение, вычитание, умножение и деление. В качестве разделителя целой и дробной части используется точка! |
А = -0.123; | Числовые значения могут быть отрицательными. |
А = (2+7) * 3; // в результате А=27 | Приоритет выполнения арифметических операций: А = Сначала вычисляем 2 + 7, затем полученное значение умножаем на 3; |
В = 2 * ((2+7) — 4); // в результате В = 10 | Приоритет выполнения арифметических операций: В = Сначала вычисляем 2 + 7, затем от полученного значения отнимаем 4, затем полученное значение умножаем на 2. |
ЭтоСтрока = «Пугачева»; | Переменной ЭтоСтрока присваиваем строковое значение. Значение строкового типа пишется в кавычках. |
ФИО = «Пугачёва» + » » + «Алла» + » «+»Борисовна»; // результат: ФИО = «Пугачёва Алла Борисовна» | Сложение строк. Символ » » мы прибавляем, чтобы между фамилией, именем и отчеством были пробелы. Вторая строчка кода это просто комментарий. |
ДатаОтчета = ‘2013.01.01’; | Переменная, которая хранит дату. Значение типа Дата записывается в одинарных кавычках. |
НоваяДата = ‘2013.01.01’+86400; //НоваяДата = ‘2013.01.02’ | К дате можно прибавлять и вычитать число. В результате к дате либо прибавится, либо отнимется число секунд. |
Процедура РассчитатьЦену (Товар) КонецПроцедуры | Простая процедура. Между словами Процедура и КонецПроцедуры записывается текст процедуры. |
Функция РассчитатьНалог(Сотрудник, НекаяДата) Возврат Налог; КонецФункции | Функция должна возвращать результат в место ее вызова. |
Если Доход > 20000 Тогда Результат = «Жить можно»; Иначе Результат = «Так жить нельзя!»; КонецЕсли; | Простое условие. После слова КонецЕсли должна быть точка с запятой, потому что так заканчивается оператор Если. |
Результат = ?(Доход > 20000, «Жить можно «, «Так жить нельзя!»); | Сокращенное Если. Краткая запись предыдущего простого условия. |
Если Доход > 20000 Тогда Результат = «Жить можно»; ИначеЕсли Доход > 10000 Тогда Результат = «Плохо»; Иначе Результат = «Так жить нельзя!»; КонецЕсли; | Множественное условие. Если первое условие не выполняется, то проверяется второе. Если ни одно из условий не выполняется то выполняется блок Иначе. |
Если (Доход > 20000) И (КодКатегории = 2) Тогда КонецЕсли; | Составное логическое выражение. |
Пока Номер | Простой цикл Пока (с неизвестным числом повторений). После слова КонецЦикла должна быть точка с запятой, потому что так заканчивается оператор Пока. |
Для Номер = 1 По 15 Цикл КонецЦикла; | Простой цикл Для (цикл с известным числом повторений). |
Для каждого СтрокаТаблицы Из Таблицы Цикл КонецЦикла; | Еще одна разновидность цикла. Оператор цикла Для каждого предназначен для циклического обхода коллекций значений (табличных частей справочников, документов и т.д.). При каждой итерации цикла возвращается новый элемент коллекции. Обход осуществляется до тех пор, пока не будут перебраны все элементы коллекции. |
Пока Цикл Если Тогда Продолжить; КонецЕсли; КонецЦикла; | Оператор Продолжить передает управление в начало цикла. |
Пока Цикл Если Тогда Прервать; КонецЕсли; КонецЦикла; | Пока Цикл Если Тогда Прервать; КонецЕсли; КонецЦикла; |
Структура программных модулей
Обычно программный модуль состоит из трех разделов:
Решение задачи по 1С с собеседования (видео 1)
- Область объявление переменных;
- Область описания процедур и функций;
- Основной текст программы.
Пример
//***************** ОБЛАСТЬ ОБЪЯВЛЕНИЯ ПЕРЕМЕННЫХ **********************
Перем Фамилия Экспорт; / /это глобальная переменная
Перем Имя , Отчество ; //это переменная модуля
Перем ФИО ; //это тоже переменная модуля и к ней можно обращаться
//из любой процедуры и функции нашего модуля
//*************** ОБЛАСТЬ ОПИСАНИЯ ПРОЦЕДУР И ФУНКЦИЙ ****************
Процедура Процедура1 ( )
Перем Итог ; / /Итог это локальная переменная (переменная процедуры)
Итог = Фамилия + » » + Имя + » » + Отчество ;
Источник: statelycode.blogspot.com
Про циклы в 1С:Предприятие 8 с примерами
Пока условие равно Истина, код, написанный после ключевого слова Цикл, будет выполняться.
Например, цикл, указанный ниже будет выполняться до тех пор, пока значение в счетчике не станет меньше 1:
//Данный цикл выводит значения в счетчике: 5,4,3,2,1. Счетчик = 5; Пока Счетчик >= 1 Цикл Сообщить («Значение в счетчике: » + Счетчик); Счетчик = Счетчик — 1; КонецЦикла;
Если в цикле указанном выше отсутствовала бы запись:
«Счетчик = Счетчик — 1;», то цикл длился бы вечно.
Цикл «Для»
Синтаксис цикла «Для» представлен ниже:
Для ИмяПеременной = Выражение1> По Выражение2> Цикл // Вставить обработку цикла КонецЦикла;
— начальное числовое значение, которое мы задаем для счетчика.
— максимальное числовое значение счетчика, которое нельзя изменить внутри цикла.
По – служит для связки Выражения1 и Выражения2.
В данном случае нам не надо писать в программном коде:
Например, цикл, указанный ниже, будет выполняться до тех пор, пока значение в счетчике не превышает максимальное значение (в данном случае число 5):
//Данный цикл выводит значения в счетчике: 1,2,3,4,5. Для Счетчик = 1 По 5 Цикл Сообщить(Счетчик); КонецЦикла;
Цикл «Для Каждого»
Синтаксис цикла «Для Каждого» представлен ниже:
Для Каждого ИмяПеременной1> Из ИмяПеременной2> Цикл // Вставить обработку цикла КонецЦикла;
— при каждом повторении цикла, присваивается значение очередного элемента коллекции.
— коллекция, из которой мы хотим получить элемент.
Из – служит для связки параметров и .
Программный код, который написан внутри цикла выполняется для каждого элемента.
Например, цикл, указанный ниже будет выполнятся до тех пор, пока не обойдет всю коллекцию:
//Данный цикл перебирает все элементы массива и выводит их. //На экран пользователя выведется числа: 5,10. МассивЧисел = Новый Массив; МассивЧисел.Добавить(5); МассивЧисел.
Добавить(10); Для Каждого ЭлементМассива Из МассивЧисел Цикл Сообщить («Элемент массива: » + ЭлементМассива); КонецЦикла;
Операторы циклов
Оператор «Прервать»
Инструменты разработчика 1С шаблоны/подсветка/помощники
Основной инструмент разработчика 1С — это сама среда разработки, конфигуратор.
- Что предлагает конфигуратор для быстрой и продуктивной разработки?
- Во вторых, контекстная подсказка
- В третьих, шаблоны текста
- В четвертых, это синтаксис помощник — самый главный инструмент разработчика.
- Что есть в синтаксис помощнике:
Что предлагает конфигуратор для быстрой и продуктивной разработки?
Во первых, подсветку синтаксиса. Это позволяет удобно, визуально отделять объекты и конструкции языка, наименования служебных строк и переменных. Разработчик не может кардинально управлять расцветкой, а лишь менять предустановленные элементы синтаксиса. Для изменения настроек подсветки необходимо зайти в меню «СервисПараметрыМодулиРедактирование» (изменить цвет, запретить выделение цветом)
При установке системы 1С, настройки уже сразу заданы. Дополнительно отмечу, что данные настройки не переносятся с конфигурацией, а являются пользовательскими настройками, в месте установки программы, т.е. если вы под себя настроите раскраску, то в новом месте вам придется делать повторно, что не всегда правильно, т.к это повлияет на всех пользователей конфигуратора (под данной учетной записью OS).
Во вторых, контекстная подсказка
Механизм дополнения и подсказки свойств и методов объектов, в момент ввода кода.
Производится при наборе символа «.». В момент присвоения значения свойства производится автоматический подбор типа значения (например системного перечисления) — при наборе «=» или «<>». Внесение предопределенных строковых представлений объекта или ссылок на прикладные объект — в момент ввода «(двойной кавычки»).
Управление данными настройками в меню «СервисПараметрыМодулиКонтекстная подсказка»
В третьих, шаблоны текста
Является подвариантом предыдущей подсказки — происходит в момент ввода текста. Это предустановленные пользователем или 1с, последовательности и конструкции языка, которые можно создать и отредактировать в меню «СервисШаблоны текста»
Как видно из рисунка, фирма 1С уже заложила некоторые предустановленные конструкции для подсказки. Данные конструкции будут отображаться в момент ввода при установленный настройке «Включать шаблоны в список подсказок» из рисунка предыдущего раздела. Разработчик может создать свой файл шаблонов, а также переносить и подключать его в конфигураторе при необходимости.
Управление списками шаблонов производится по кнопке «Действия/Настройка шаблонов»
Также возможно отключить использование стандартных шаблонов.
Редактирование строки шаблонов доступно по кнопке «Действия/Изменить»
В четвертых, это синтаксис помощник — самый главный инструмент разработчика.
Вызывается по кнопке меню, либо по двум из вариантов горячих клавиш:
- Ctrl+Shift+F1 — вызов начального окна синтаксис помощника
- Выделение фрагмента кода и нажатие Ctrl+F1
В последнем случае откроется окно синтаксис помощника с поиском по выделенному слову:
Что есть в синтаксис помощнике:
- Описание всех встроенных функций и процедур.
- Описание прикладных объектов и их свойств, методов, способы их создания (конструкторы)
- Примеры использования некоторых объектов
- Упорядоченная структура этой справочной информации с возможностью поиска
- Информация по месту исполнения данной процедуры (или наличия объекта в данном контексте) — наКлиенте, НаСервере и прочие
При обновлении конфигурации тексты синтаксис помощника обновляются, иногда указывается применительно к какой версии такое действие применимо, режимы совместимости.
В рамках одного режима совместимости, использование кода стабильно, и не требует модификации синтаксиса — он является как раз межой в написании кода либо формирования интерфейса. Исходя из выше сказанного, если вы не можете найти описание какой-либо функции, то либо у вас не та версия платформы, либо неверное написание имени.
В пятых, это конструкторы кода в конфигураторе, на них не буду заострять внимание сейчас, просто перечислю основные.
- конструктор текста запроса
- конструктор форматной строки
- конструктор движений документов
- конструктор кода заполнения объекта
- конструкторы системы компоновки данных
- конструктор событийных функций и процедур объектов
- команды форматирования текстов модуля
- команды поиска и замены в коде модуля или всей конфигурации
Вот и все основные, встроенные средства для продуктивной разработке.
Как уже понятно есть и другие: альтернативные средства для контекстной подсказки, консоли для разработки и отладки кода.
Реклама — это искусство делать из полуправды целую ложь.
— Эдгар Шоафф
Источник: capitally.ru