QlikView Qlik Sense

Программирование в 1С:Предприятие 8.3 Внешняя обработка Программный модуль

Contents

Программирование в 1С:Предприятие 8.3 Внешняя обработка Программный модуль

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

1С:Предприятие режим Конфигуратора

В языке программирования 1С все операторы имеют два написания: русское и английское. К примеру, оператор Новый(“”) аналогичен по смыслу и действию оператору New(“”). Обычно все же пишут код на одном языке (чаще русском), однако не возбраняется (хотя и считается плохим стилем программирования) смешивать оба языка в одном модуле. Мы в описании языковых конструкций будем приводить только русский вариант их написания.

Каждая языковая конструкция будет описана в следующем формате:

ЭлементЯзыка(Параметр1, Параметр2,…, ПараметрN) [КлючевоеСлово]

Здесь:

  • Параметр1, Параметр2, …, ПараметрN — список параметров;
  • КлючевоеСлово — дополнительное ключевое слово, которое может присутствовать или отсутствовать в той или иной языковой конструкции.

Если у элемента языка нет параметров, скобки опускаются. Квадратные скобки [ ] означают, что параметр или ключевое слово, заключенные в них, необязательны и могут как присутствовать, так и отсутствовать.
Если среди элементов необходимо выбрать только один, они будут разделены следующим образом:  Элемент1|Элемент2|Элемент3.

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

ПРИМЕЧАНИЕ
В таких текстовых вставках будет приведена дополнительная информация, замечания автора, упоминание о родственных или связанных с рассматриваемой конструкцией элементах языка.

А КАК СДЕЛАТЬ?
В таких текстовых вставках будут представлены примеры использования рассматриваемой языковой конструкции в варианте «Вопрос — ответ»: ставится задача и дается способ ее решения. Программный код, приведенный здесь, является типовым способом решения задачи и может быть использован начинающими программистами в собственных наработках.

Приведенные примеры рекомендуется тут же «проигрывать» на практике. Для этого мы сейчас создадим нашу первую внешнюю обработку, в которой и станем закреплять на практике полученные знания.

Наша первая обработка

В упрощенном определении обработка это программа, написанная на языке 1С и выполняемая в системе «1С:Предприятие».

Обработка может быть как внутренней, входящей в конфигурацию и присутствующей в дереве конфигурации в разделе Обработки, так и внешней, имеющей расширение epf и запускаемой через пункт меню Файл | Открыть.

Мы будем экспериментировать на внешней обработке. Давайте создадим ее. Для этого в режиме Конфигуратора мы должны выбрать команду меню Файл | Новый и в открывшемся списке выбрать вариант Внешняя обработка. Откроется окно создания новой обработки:

Рисунок “Создаем внешнюю обработку”
Создаем внешнюю обработку

Обработка, как и справочник или документ, может иметь реквизиты, несколько форм и печатных форм-макетов. В нашем случае мы пока создадим самую простенькую обработку с одной формой. Нам ее вполне хватит. Дадим нашей обработке имя:

Рисунок “Задаем имя и примечание”
Задаем имя и примечание внешней обработке 1с предприятие 8.3

Имя (идентификатор) обработки, как и имя любого объекта 1С, будь то имя справочника, документа или переменной, не должно содержать пробелов. Регистр не учитывается, т. е. НашаПерваяОбработка и нашаперваяобработка — это один и тот же объект, просто первое читается удобнее.

Синоним — это представление имени, его создают для того, чтобы в окнах системы «1С:Предприятие» вместо имени пользователь мог видеть название объекта в привычном и более читаемом виде. При этом обращение в программном коде, конечно, идет по имени, а не по синониму. Обратите внимание, что при вводе имени обработки синоним заполняется автоматически с правильным разделением слова по прописным буквам. Если бы мы назвали обработку «нашаперваяобработка», это бы не сработало.

Комментарий предназначен для записи дополнительной информации об объекте. Теперь создадим форму обработки. Для этого щелкнем правой кнопкой мыши на пункте Формы окна создания обработки и выберем пункт Добавить. Откроется окно конструктора формы обработки:

Рисунок “Конструктор формы обработки”
Конструктор формы обработки

Конструктор формы обработки 1с предприятие

Здесь мы также можем задать имя, синоним и комментарий — на этот раз для формы, указать тип формы (обычная или управляемая, т. е. для работы через Интернет), определить положение командной панели.
Оставим все по умолчанию и нажмем кнопку Готово.
Готовая пустая форма содержит внизу командную панель, на которой расположены три кнопки:

Рисунок “Так выглядит пустая форма обработки”

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

Ниже командной панели расположены вкладки, относящиеся к создаваемой форме:

  • Диалог (собственно форма с элементами, размещенными на ней),
  • Модуль (здесь пишется программный модуль формы)
  • и вкладка со списком реквизитов.

Программный модуль формы сразу после создания выглядит так, как показано на картинке:

Рисунок “Модуль формы новой обработки с одной-единственной пустой процедурой”
Модуль формы новой обработки с одной-единственной пустой процедурой

На вкладке Модуль присутствует одна-единственная процедура-обработчик нажатия кнопки Выполнить, расположенной на форме. Обработчик пока пуст, в нем только комментарий, который не является исполняемым программным кодом. Поэтому, если мы откроем обработку в режиме «1С:Предприятие» через пункт меню Файл | Открыть и нажмем кнопку Выполнить, то никакие действия не произойдут. Процедуру обработчика (равно, как и другие процедуры модуля) нам предстоит писать самим.
Теперь давайте рассмотрим, какие бывают программные модули и какова их внутренняя структура.

Какие бывают модули 1С Предприятие 8.3?

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

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

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

  • Глобальный контекст. Образуется значениями констант, перечислений, регистров и прочих объектов метаданных, определенных в дереве конфигурации, системными переменными, процедурами и функциями, а также переменными, процедурами и функциями, находящимися в общих модулях конфигурации, объявленными с ключевым словом Экспорт. Данные, образующие глобальный контекст, доступны из любых других модулей конфигурации.
  • Локальный контекст конкретного модуля. Образуется значениями переменных, процедур и функций, находящимися в конкретном программном модуле. Эти значения являются локальными и доступны только внутри модуля, в котором находятся. Исключение — использование в качестве параметров. Например, переменные определены в каком-либо модуле, а потом из этого модуля следует вызов процедуры (или функции), находящейся в одном из общих модулей. В этом случае значения локальных переменных могут быть использованы в качестве параметров.

В отличие от «1С:Предприятие 7.7» в «1С:Предприятие 8.3» имеется больше различных типов модулей:

  • Общие модули. Процедуры и функции, помещенные в такие модули, доступны из любого другого модуля. То есть, при проектировании, скажем, документа, мы всегда можем обратиться к любому из общих модулей. Расположены они в разделе дерева конфигурации Общие | Общие модули.
  • Модуль формы. Предназначен для обработки действий пользователя с объектом, которому принадлежит форма. Например, если мы поместим на форму кнопку Выполнить, то обработчик нажатия этой кнопки помещается в модуль формы. В созданной нами обработке для экспериментов мы уже заходили в модуль формы этой обработки.
  • Модуль объекта. Этот модуль предназначен для обработки общих событий объекта. Например, для документа здесь будут располагаться процедуры записи и проведения документа, а также отмены проведения. Для того чтобы открыть модуль объекта, расположенного в дереве конфигурации, нужно щелкнуть на нем правой кнопкой мыши и выбрать пункт Открыть модуль объекта. Для того чтобы открыть модуль нашей внешней обработки для экспериментов (не путаем с модулем формы), нужно в окне обработки нажать кнопку Действия и выбрать пункт Открыть модуль объекта. Для нашей обработки этот модуль пуст.
  • Модуль приложения. Срабатывает в момент запуска приложения (загрузки конфигурации) и завершения его работы. Сюда помещают программный код, который должен быть выполнен при запуске/закрытии приложения. Модуль доступен в контекстном меню, по щелчку правой кнопкой мыши в самом верхнем пункте дерева конфигурации (там, где название конфигурации). Существуют две разновидности: модуль обычного приложения и модуль управляемого приложения. Модуль обычного приложения предназначен для обычной работы (в режиме «толстого» клиента), режим управляемого приложения — в основном для работы через Интернет (веб-приложение, «тонкий» клиент или «толстый» клиент в режиме управляемого приложения).
  • Модуль сеанса. Это модуль, в котором записаны параметры начала сеанса работы в системе «1С:Предприятие». Содержит единственную процедуру УстановкаПараметровСеанса(). Модуль доступен в контекстном меню по щелчку правой кнопкой мыши в самом верхнем пункте дерева конфигурации (там, где указано название конфигурации).
  • Модуль внешнего соединения. Назначение модуля аналогично назначению модуля приложения, но только в режиме COM-соединения. Модуль доступен в контекстном меню по щелчку правой кнопкой мыши в самом верхнем пункте дерева конфигурации (там, где указано название конфигурации).
  • Модуль менеджера объекта. Существует для многих объектов конфигурации. Модуль предназначен для переопределения стандартного события выбора, которое возникает в момент ввода по строке. Модуль доступен в контекстном меню по щелчку правой кнопкой мыши по объекту в дереве конфигурации. В стандартных конфигурациях для большинства объектов пуст (не используется).
  • Модуль команды. Команды — это объекты, подчиненные объектам дерева конфигурации. У каждой команды есть модуль команды, где можно описать предопределенную процедуру ОбработкаКоманды(), которая будет срабатывать для этой команды. Если мы пройдемся по дереву конфигурации, то увидим, что для каждого из объектов: справочников, документов, перечислений и т. д. имеется пункт Команды. По щелчку на нем правой кнопкой мыши мы можем добавить новую команду и задать для нее обработчик ОбработкаКоманды().

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

Структура программного модуля

Программный модуль делится на три части.

  • Раздел описания переменных. Здесь мы описываем переменные, с помощью оператора Перем. Этот раздел размещается от начала текста модуля до первого оператора Процедура или Функция или любого исполняемого оператора. В общих модулях этот раздел отсутствует.
  • Раздел процедур и функций. Здесь пишутся все процедуры и функции модуля. Этот раздел размещается от первого оператора Процедура или до любого исполняемого оператора вне процедур или функций модуля.
  • Раздел основной программы. Здесь пишутся команды и языковые конструкции, не относящиеся ни к одной из процедур и функций модуля. Этот раздел размещается от первого исполняемого оператора вне процедур или функций модуля до конца модуля. Здесь могут находиться только исполняемые операторы. Раздел основной программы исполняется в момент запуска модуля на выполнение, поэтому есть смысл помещать сюда, например, инициализацию переменных конкретными значениями. На практике раздел основной программы обычно только называется так — основную часть модуля занимают процедуры и функции, а этот раздел может отсутствовать вовсе. В общих модулях раздел основной программы не присутствует никогда.

Наличие всех частей модуля не является обязательным. Например, переменные могут объявляться непосредственно в процедурах (отсутствует раздел описания переменных). Или никакие команды не выполняются в момент выполнения модуля (отсутствует раздел основной программы). Наконец, модуль просто может состоять из одной или нескольких процедур или функций, т. е. второго раздела (кстати, на практике чаще всего так и бывает). И более того, в некоторых объектах модуль вообще может быть пуст.

Пример программного модуля:

Это простенький программный модуль. Тем не менее, он имеет все три части. Сначала объявляются переменные, при открытии модуля они инициализируются числами 2 и 3, а когда выполняется обработка, рассчитывается результат умножения и выдается результат: 6.

Модуль можно написать и по-другому:

В этом примере отсутствуют разделы объявления переменных и раздел основной программы — имеется только процедура. Переменные a и b объявляются прямо в начале процедуры, без использования оператора Перем, не являющегося обязательным, а переменная c вообще объявляется неявно, посредством присваивания.

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

Главное — не забывать меру, чтобы написанные вами программные модули оставались понятными.

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

Ключевые слова — это команды языка программирования, зарезервированные и запрещенные к использованию в качестве имен переменных.

Переменными являются величины, которые мы сами объявляем и используем, присваивая им имена и определенные значения. Именем переменной, процедуры или функции может быть любая последовательность букв, цифр и знаков подчеркивания «_», начинающаяся с буквы или знака подчеркивания «_». Имена не должны повторять ключевые слова, используемые в языковых конструкциях.

Имена являются регистронезависимыми, т. е. Тов, тов и ТоВ — это одна и та же переменная.

Методами переменных называются действия, которые могут выполнять данные такого типа. Например, в конструкции Спр.НайтиПоКоду(“12345”)

  • Спр — переменная типа Справочник (типы переменных мы сейчас рассмотрим подробней),
  • а НайтиПоКоду() — ее метод, где в скобках указывается, какой именно код мы пытаемся найти.

К какому именно справочнику относится переменная Спр, задается отдельно — например, так: Спр = Справочники.Контрагенты. В этом случае последующая строка кода Спр.НайтиПоКоду(“12345”) будет искать контрагента с кодом 12345.

Переменные и константы

Константы — это постоянные (условно-постоянные) величины. Они хранят информацию, которая не изменяется или изменяется достаточно редко. Например, константой может быть название фирмы, ее адрес, ФИО директора и т.д.

Переменная — это величина, которая в ходе выполнения программного модуля может принимать различные значения.

Значения, которые принимаются константой или переменной, имеют один из используемых в системе «1С:Предприятие» типов данных.

Объявление переменной

Оператор Перем объявляет переменную. В процедурах и функциях он не является обязательным, и переменная может быть объявлена путем инициализации — например, присваиванием нуля:

Синтаксис:

Здесь Экспорт — необязательное ключевое слово, означающее, что эта переменная, помещенная в глобальный модуль (в Конфигураторе меню Действия | Глобальный модуль), будет доступна всем остальным модулям конфигурации. Ключ Экспорт имеет смысл использовать только в глобальном модуле.

Пример:

Типы данных

Данные в языке программирования 1С делятся на две категории: базовые и агрегатные.
Базовые типы данных являются общими и не привязаны непосредственно к объектам конфигурации.

Существуют следующие базовые типы данных:

  • числовой — любое десятичное число;
  • строковый — любая последовательность символов, в том числе и пустая;
  • дата — любая дата и время из допустимого диапазона;
  • булево — принимает одно из двух возможных значений: ИСТИНА или ЛОЖЬ;
  • не определено — пустое значение, не принадлежащее ни к какому другому типу.

Базовые типы данных могут быть преобразованы друг в друга функциями преобразования. В разделе, посвященном преобразованию типов данных (далее в этой главе), мы рассмотрим, как это делается.
В значениях типа Число, имеющих дробную часть, в тексте программного целая и дробная части разделяются точкой. Вот так: 5.25.

Значения типа Строка в тексте программного модуля заключаются в кавычки. Вот так: “это — строка”.
Значения типа Дата в тексте программного модуля заключаются в одинарные кавычки. Вот так: ‘20120310’ или ‘20120310195900’. Первый пример означает 10 марта 2012 года (2012 год, 03 месяц, 10 день), второй пример — 10 марта 2012 года 19 часов 59 минут 00 секунд (2012 год, 03 месяц, 10 день, 19 час, 59 минута, 00 секунд).
Агрегатные типы данных — специальные типы данных, соответствующие типам объектов дерева конфигурации системы «1С:Предприятие». Сюда же относятся универсальные коллекции значений, такие как СписокЗначений или Массив, а также специфические типы данных, такие как ТекстовыйДокумент или ТабличныйДокумент.

Для наглядности приведем пример работы с агрегатными типами данных:

Что делает этот код?

  1. Объявляет новую переменную Товары типа Справочники.Номенклатура. Это и есть агрегатный тип данных — тип, представленный в дереве конфигурации конкретным объектом.
  2. Используя метод справочника НайтиПоНаименованию(), ищет конкретное наименование товара в справочнике, присваивая результат переменной РезультатПоиска. У каждого объекта метаданных есть набор собственных методов, которые пишутся в формате ИмяПеременной.Метод, т. е. через точку. Аналогично, если у объекта есть поля (например, в справочнике товаров поле Артикул), к ним также можно обратиться в формате ИмяПеременной.ИмяПоля.

ПРИМЕЧАНИЕ
Далее будут рассматриваться методы агрегатных типов данных. Полный список методов можно найти в синтаксис-помощнике (меню Сервис | Ситаксис-помощник), где команды и методы сгруппированы по типам. На рисунке представлено дерево синтаксис-помощника, открытое как раз на методе НайтиПоНаименованию(), принадлежащем объектам типа Справочник.

Рисунок “Пример использования синтаксис-помощника”
Пример использования синтаксис-помощника

  1. Затем сравнивает переменную РезультатПоиска с пустой ссылкой типа Справочники.Номенклатура (переменная Товары именно этого типа, мы это задали в первой строке программного кода). То есть, если мы что-то нашли, то ссылка не пуста, если не нашли — пуста. Если результат поиска не равен пустой ссылке на элемент справочника номенклатуры (знак <> означает «не равно»), тогда мы сообщаем артикул найденного товара (предваряя его текстовой строкой “Артикул “. Если бы мы этого не сделали, то получили бы в сообщении просто значение артикула, без пояснения, что это). В противном случае (Иначе) выводится предупреждение в центре экрана о том, что такого товара нет.

Агрегатные типы данных могут быть как неопределенные, так и конкретизированные. Например, тип Константа, Справочник, Документ, Перечисление и т. п. — неопределенные агрегатные типы, которые могут обращаться к любому объекту такого типа. Не существует данных типа Отчет или Обработка, потому что эти элементы дерева метаданных не являются данными, а только средствами манипуляции данными и их обработки.
Типы Справочники.Номенклатура, Документы.ПоступлениеТоваровУслуг, Перечисления.ДаНет и т. п. являются конкретизированными агрегатными типами данных, поскольку переменная такого типа ссылается не просто на какой-либо справочник, документ или перечисление, а на конкретно указанный.

Окончание строки: точка с запятой (;)

Точка с запятой не является оператором в полном смысле этого значения. Однако это один из наиболее часто встречающихся элементов в программном модуле. Знаком точки с запятой должна заканчиваться каждая строка программного модуля, за некоторыми исключениями, которые мы рассмотрим далее. Обычно точкой с запятой не закрываются начало и конец процедуры и функции, начало цикла и условия Если…Тогда.

Пример:

Комментарии //

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

Пример:

Несмотря на то, что введена строка на языке 1С, знак комментария перед ней превращает ее в обычный текст.

Процедуры и функции

Процедура

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

Синтаксис:

Здесь:

  • Параметр1, Параметр2, …, ПараметрN — список параметров;
  • Экспорт — ключевое слово, которое может присутствовать или отсутствовать и означает, что эта процедура, помещенная в глобальном модуле (в Конфигураторе меню Действия | Глобальный модуль), будет доступна всем остальным модулям конфигурации. Ключ Экспорт имеет смысл использовать только в глобальном модуле.

Пример:

ПРИМЕЧАНИЕ
Ключевые слова Процедура и КонецПроцедуры являются не операторами, а так называемыми операторными скобками, поэтому их не следует заканчивать точкой с запятой.

Функция

Функция — часть программного модуля, которая может быть выполнена обращением к ней по имени, однако, в отличие от процедуры, функция всегда возвращает какое-либо значение. Например, если имеется функция Расчет(), кнопка на форме, в обработчике нажатия которой прописано имя процедуры: Расчет(), а также два поля типа Число на форме, то по нажатию кнопки можно передать значения числовых полей в функцию и получить результат. Обратите внимание, что скобки ставятся, даже если функция не имеет параметров. В отличие от процедуры, функция обязательно заканчивается оператором Возврат.

Синтаксис:

Здесь:

  • Параметр1, Параметр2, …, ПараметрN — список параметров;
  • Экспорт — ключевое слово, которое может присутствовать или отсутствовать и означает, что эта функция, помещенная в глобальном модуле (в Конфигураторе меню Действия | Глобальный модуль), будет доступна всем остальным модулям конфигурации. Ключ Экспорт имеет смысл использовать только в глобальном модуле.

Пример:

В итоге получим результат: 5.

Мы передаем в функцию значения переменных Первая и Вторая, там они присваиваются параметрам функции A и B, складываются, после чего возвращается результат. Попробуйте ввести подобный код в нашей обработке для экспериментов. При этом модуль формы обработки должен выглядеть так, как показано на рисунке:

Рисунок “Простейшая функция сложения чисел”

Простейшая функция сложения чисел

Сохраните обработку, затем откройте ее в режиме «1С:Предприятие» через меню Файл | Открыть. Будет выдан результат: 5.

ПРИМЕЧАНИЕ
Ключевые слова Функция и КонецФункции являются не операторами, а так называемыми операторными скобками, поэтому их не следует заканчивать точкой с запятой.

ПРИМЕЧАНИЕ
Работу обработки следует проверять в режиме «1С:Предприятие» через меню Файл | Открыть. Если пример отработал, и вы стерли его код в обработке и ввели новый, не забудьте перед выполнением сохранить его, а в режиме предприятия — закрыть обработку, после чего открыть на выполнение снова. Открывать обработку заново следует потому, что уже открытая в режиме предприятия обработка — это старая версия обработки на момент предыдущего открытия. В Конфигураторе вы ее уже изменили и сохранили, но в открытой ранее обработке эти изменения еще не зафиксированы, и будет выполняться старая версия.

Оператор Возврат

Этот оператор завершает выполнение процедуры или функции, причем в функции возвращает значение в формате Возврат ИмяПеременной.

Синтаксис:

Циклы

Операторы циклов предназначены для циклического выполнения заданного программного кода, пока выполняются или пока не выполняются определенные условия.

Оператор Для

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

Синтаксис:

Программный код внутри этой языковой конструкции будет циклически выполняться до тех пор, пока переменная ИмяПеременной больше либо равна Выражение1, но меньше либо равна Выражение2.
Если внутри цикла встречается команда Продолжить, то это означает, что в этом месте выполнение цикла будет остановлено и передано на «новый виток» цикла, т. е. операторы, находящиеся ниже команды Продолжить, выполнены не будут.
Если внутри цикла встречается команда Прервать, это означает, что как только выполнение дойдет до этой команды, работа цикла будет прекращена.

Пример:

В этом примере перебираются элементы от 1 до 100, текущее значение присваивается переменной Счетчик и выводится в виде сообщения. Цикл выполняется «по кругу» до тех пор, пока значение переменной Счетчик не дойдет до 100.

Пример:

Тот же самый цикл, но выполнение его должно прерваться, когда значение счетчика превысит 81. Когда Счетчик будет равняться 82, сработает прерывание цикла. Сообщение о том, что счетчик = 82, выведено уже не будет.

Оператор Для каждого

Этот оператор предназначен для циклического обхода коллекции значений.

Синтаксис:

В этой языковой конструкции осуществляется циклический обход заданной коллекции значений (подборки данных, строк таблицы, какого-то списка и т. д.). Переменная является счетчиком цикла.

Пример:

В этом примере перебираются строки таблицы СписокПлатежей, в которую внесены суммы платежей без НДС и высчитываются суммы платежей с НДС.

Оператор Пока

Этот оператор предназначен для циклического повторения операторов, находящихся внутри языковой конструкции Цикл…КонецЦикла. Цикл выполняется, пока логическое выражение равно ИСТИНА.

Синтаксис:

Программный код внутри этой языковой конструкции будет циклически выполняться до тех пор, пока Выражение остается истинным.
Если внутри цикла встречается команда Продолжить, то это означает, что в этом месте выполнение цикла будет остановлено и передано на «новый виток» цикла, т. е. операторы, находящиеся ниже команды Продолжить, выполнены не будут.
Если внутри цикла встречается команда Прервать, это означает, что как только выполнение дойдет до этой команды, работа цикла будет прекращена.

Пример:

Тот же самый пример с перебором от 1 до 100, который мы рассматривали для оператора Для, но выполненный с помощью оператора Пока. Обратите внимание, что, в отличие от оператора Для, счетчик при каждом проходе цикла увеличивается не автоматически, а прибавлением единицы.

Массивы

Массив — это пронумерованная коллекция значений произвольного типа. К элементу массива можно обращаться по его индексу. Представьте, например, школьную тетрадь «в клеточку». Такую тетрадь можно рассматривать как массив, а значение, записанное в каждую из клеточек, — как элемент массива. У каждой тетрадной клеточки есть номер, называемый индексом. Массивы бывают одномерные и многомерные (состоящие из нескольких коллекций значений).

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

Метод “Добавить”

Добавляет элемент в конец массива.

Синтаксис:

Пример:

В этом примере мы создаем новый массив командой Новый, затем командой Добавить последовательно добавляем к массиву два значения строкового типа. После этого мы даем команду сообщить первый элемент массива. Обратите внимание — нумерация массива начинается с нуля. Поэтому, чтобы обратиться к значению “Наш новый элемент”, мы должны обращаться к элементу НашМассив[0].
Номер элемента массива указывается в квадратных скобках [].

Метод “Вставить”

Вставляет значение в массив по указанному индексу.

Синтаксис:

Пример:

А здесь мы создаем новый массив, добавляем в него элементы, а потом значение одного из элементов меняем на новое.

Метод “Количество”

Определяет количество элементов в массиве.

Синтаксис:

Пример:

При выполнении этот программный код выдаст результат: 2.

Метод “Найти”

Выполняет поиск элемента в массиве.

Синтаксис:

Пример:

При выполнении этот программный код выдаст результат: “Элемент найден”.

Метод “Удалить”

Удаляет из массива значение с указанным индексом.

Синтаксис:

Пример:

Метод “Очистить”

Удаляет все значения из массива.

Синтаксис:

Пример:

Метод “ВГраница”

Получает наибольший индекс массива.

Синтаксис:

Пример:

При выполнении этот программный код выдаст результат: 1 (максимальный из имеющихся двух элементов с индексами 0 и 1).

Практика программирования 1С на примерах с пояснениями и картинками для начинающих

Первая внешняя обработка “Hello 1C (привет 1С)”

В этом разделе статьи я разберу самый простой пример создания внешней обработки. Здесь не будет форм, кнопок. Просто напечатаем фразу в окне сообщения.

Итак, Файл -> Новое -> Внешняя обработка

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Вводим имя внешней обработки, синоним формируется автоматически (но можно поменять). Нажимаем внизу Действия и кликаем на “Открыть модуль объекта”

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

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

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Сохраняем внешнюю обработку в какую-нибудь папку. Для этого нажимаем иконку “Сохранить”:

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Называем файл и кликаем “Сохранить”:

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Открываем Отладка -> Начало отладки -> Толстый клиент (Обычное приложение): начать отладку

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

В запустившемся приложении 1С, выбираем Файл -> Открыть

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Открываем наш файл epf:

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Внешняя обработка отработает и вернет в окне “Служебные сообщения” результат.

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Теперь попробуем вывести текстовое сообщение. Для этого в программе (в модуле) изменим код на:

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Сохраним обработку. Переходим в приложение 1С предприятие 8.3 и выбираем нашу внешнюю обработку. В окне “Служебные сообщения” выведется текст:

Практика программирования 1С на примерах с пояснениями и картинками для начинающих. Первая внешняя обработка привет 1С

Внешняя обработка “Печать перечислений в служебные сообщения”

Что такое перечисления?

Перечисления являются средством для работы с элементами данных, список возможных значений которых жестоко задан в данной прикладной задаче. Ссылки на элементы перечисления могут быть использованы в реквизитах объектов конфигурации.
Например, в конфигурации можно задать перечисление “ВидыКонтрагентов”, определяющее допустимые виды контрагентов, со значениями “Организация” и “ФизЛицо”. Набор значений перечисления задается при конфигурировании.

Простой пример программного кода 1С Предприятие 8.3 для создания внешней обработки для печати Перечислений

Код программы:

Пишем модуль в конфигураторе (внешняя обработка):

Пишем модуль в конфигураторе (внешняя обработка)

Результат печати перечислений в окно Служебные сообщения:

Результат печати перечислений в окно Служебные сообщения

Скачать реализованную внешнюю обработку (архив): prostaya_pechat_perechisleniy_1C_Predpriyatie


Источник: Азбука программирования в 1С:Предприятие 8.3. — СПб.: БХВ-Петербург, 2015. — 288 с.: ил. — (Самоучитель) Ощенко И. А.


QlikView Qlik Sense

Отправить ответ

avatar
  Подписаться  
Уведомление о