1С глобальные переменные

1. Задача передачи параметров 1С

2. Реализация с модулем объекта документа 1С

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

1. Задача передачи параметров 1С

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

2. Реализация с модулем объекта документа 1С

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

В модуле основной формы документа в обработчике события 1С кнопки, открывающей форму с выбором настроек, необходимо указать процедуру Новый ОписаниеОповещения(). Это определяет результат после закрытия формы настроек в 1С 8.3.

В форме настроек для сохранении и передачи параметров 1С (в нашем случаи это структура) необходимо указывать процедуру ОповеститьОВыборе()

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

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

Цикл – это конструкция, которая предназначена для многократного исполнения неких инструкций. Во встроенном языке 1С существует три вида циклов «Пока», «Для» и «Для Каждого». Рассмотрим на примерах работу с каждым из них.

Цикл «Пока»

Синтаксис:

Пока <Логическое выражение> Цикл
// Операторы
КонецЦикла;

Принцип работы такого цикла заключается в том, что операторы находящиеся после ключевого слова «Цикл», будут выполнятся пока логическое выражение будет равно ИСТИНА.

Пример:

Счётчик = 1;Пока Счётчик <= 5 Цикл Сообщить(Счётчик); Счётчик = Счётчик + 1; КонецЦикла;

В результате выполнения такого цикла, в окно сообщений будут последовательно выведены цифры от 1 до 5.

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по .
Будем рады помочь Вам!

Цикл «Для»

Синтаксис:

Для <Имя переменной> = <Начальное значение> По <Конечное значение> Цикл
// Операторы
КонецЦикла;

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

Пример:

Для Счётчик = 1 По 5 ЦиклСообщить(Счётчик);КонецЦикла;

Результат:

Цикл «Для Каждого»

Синтаксис:

Для Каждого <Элемент> Из <Коллекция> Цикл
// Операторы
КонецЦикла;

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

Пример кода:

// Создание массиваМассив = Новый Массив();// Наполнение массиваМассив.Добавить("Элемент №1");Массив.Добавить("Элемент №2");Массив.Добавить("Элемент №3");// Обход массива по элементамДля Каждого Элемент Из Массив ЦиклСообщить(Элемент);КонецЦикла;

Визуальное представление созданного массива в 1С:

Результат работы цикла:

Вложенные циклы

Во встроенном языке программирования 1С доступна возможность использования вложенных циклов. К классическому примеру использования таких конструкций можно отнести один из способов последовательного перебора всех ячеек таблицы значений.

Пример:

КоллекцияКолонок = ТаблицаЗначений.Колонки;Для Каждого ТекущаяСтрока Из ТаблицаЗначений ЦиклДля Каждого ТекущаяКолонка Из КоллекцияКолонок Цикл// Получаем значение ячейкиТекущаяЯчейка = ТекущаяСтрока;КонецЦикла;КонецЦикла;

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

Как организовать обратный цикл

Пример:

Счётчик = 5;Пока Счётчик >= 1 ЦиклСообщить(Счётчик);Счётчик = Счётчик - 1;КонецЦикла;

Результат:

Как принудительно продолжить цикл

Принудительный переход к следующей итерации в циклах 1С осуществляется с помощью оператора «Продолжить» (Continue).

Пример:

Для Счетчик = 1 По 5 ЦиклЕсли Счетчик = 2 ТогдаПродолжить;КонецЕсли;Сообщить(Счетчик);КонецЦикла;

В таком примере с помощью операторов «Если» и «Продолжить» пропускаем цифру «2».

Результат:

Как прервать цикл

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

Пример:

Для Счетчик = 1 По 5 ЦиклЕсли Счетчик = 2 ТогдаПрервать;КонецЕсли;Сообщить(Счетчик);КонецЦикла;

Такой цикл перестанет выполняться, как только значение переменной «Счётчик» будет равно «2».

Результат:

Добавить комментарий