Разработка в 1С 8.0

         

Цикл


//тело цикла  

Если СтрокаТЗ.Товар = ПустаяСсылка Тогда  


Если Выборка.ПометкаУдаления Тогда  

Продолжить; //возьмем следующий элемент  

КонецЕсли;  

н = н + 1;  

Если н > 10 Тогда  

Прервать; //досрочный выход из цикла  

КонецЕсли;  

Сообщить("Товар: " + Выборка.Наименование);  



Другой пример:


Если Цена = 10 ИЛИ Цена = ПолучитьЦенуСоСкидкой () Тогда  

Сначала проверяется первое условие «Цена = 10». Допустим, оно выполняется (дает значение Истина), тогда следующую часть условия можно не вычислять, поскольку результат всего выражения будет Истина, независимо от второго условия. Обратите внимание, что в этом случае функция ПолучитьЦенуСоСкидкой не будет вызвана! Если по проектной логике она должна вызываться в любом случае, тогда это следует сделать



Функция




 ЕстьПравоИспольэования(ИмяОтчета)

//возвращаемое значение функции  

Возврат ПравоДоступа("Использование", Отчеты[ИмяОтчета]);  

КонецФункции

//_______________________

Процедура КнопкаПечатьНажатие(Элемент)

Если НЕ ЕстьПравоИспользования(ИмяОтчета) Тогда  

Возврат; //досрочный выход из процедуры  

КонецЕсли  

   

ТабДок = Новый ТабличныйДокумент;  



Глобальный контекст


доступный во всех остальных контекстах, состоит из следующих частей:

·свойства, методы и события глобального контекста (например, свойство РабочаяДата),  

·   системные перечисления и системные наборы значений (например, КодВозвратаДиалога и Символы).  



Группировки конструкций языка


Наверное, вы уже заметили, что слева от слова Процедура есть кнопки «развернуть» и «свернуть» (Big). Эти кнопки позволяют свернуть блок операторов (в данном случае процедуру) и работать с ним, как с единым целом, например, скопировать, перенести или удалить.

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



Исключение


//Возникла ошибка деления на ноль.  

//Будем считать, что количество равно 1.  

Количество = 1;  

СредняяЦена = СуммаВсего;  

КонецПопытки;

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


Сообщить("Не удалось записать файл!");  



Исключение...КонецПопытки


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

 

Кроме того, есть команда ВызватьИсключение, которая может применяться только внутри блока обработки исключения. Хотя программист и обработал ошибку, но он может ее пропустить (передать обработчику вышестоящего уровня), например, если она неисправима:  


, тогда она обрабатывается внешним обработчиком, а если его нет, выдается системное сообщение об ошибке.  

 

 



Изменения во встроенных функциях, свойствах и методах глобального контекста:


 

·Добавлены математические функции Sin, Cos, Tan, ASin, ACos,ATan, Exp, Log (натуральный логарифм), LoglO (десятичный логарифм), Pow (возведение в степень), Sqrt (квадратный корень).  

·Для получения типа значения используется функция ТипЗнч(), которая возвращает объект специального типа «Тип». Для получения типа по его строковому представлению используется функция Тип().  

·Вместо команды ОткрытьФорму для просмотра значений или объектов (справочников, документов и т.д.) можно применять команду ОткрытьЗначение. Для открытия нужной формы объекта также применяются методы, аналогичные ПолучитьФорму() и метод Открыть() объекта Форма. Доступ к внешним обработкам производится не через ОткрытьФорму, как было в версии 7.7, а через менеджер внешних обработок, который содержится в свойстве ВнешниеОбработки глобального контекста.  

·Расширены возможности форматирования, для чего существуют функции Формат, НСтр, ПредставлениеПериода. Добавлены или изменены события ПередНачаломРаботыСистемы, ПриНачалеРаботыСистемы, ПередЗавершениемРаботыСистемы и ПриЗавершенииРаботыСистемы. Добавлены процедуры ПрекратитьРаботуСистемы и ЗаблокироватьРаботуПользователя.  

·Функции КаталогИБ и КаталогПользователя удалены, поскольку теперь эти каталоги существуют не всегда. Изменена функция ПравоДоступа и введена новая функция РольДоступна.  

·Функция ЗаголовокСистемы заменена на функции УстановитьЗаголовокСистемы и ПолучитьЗаголовокСистемы.  

·Приемы работы с монопольным режимом изменились. Введена функция МонопольныйРежим и процедура УстановитьМонопольныйРежим.  

·Для работы с объектами, помеченными на удаление, существуют процедуры и функции НайтиПомеченныеНаУдаление, НайтиПоСсьшкам, УдалитьОбъекты.  

·Вместо функции ОбработкаОжидания введены функции ПодключитьОбработчикОжидания и ОтключитьОбработчикОжидания.  

·Для работы со справочной системой по конфигурации введены новые функции ОткрытьСправку, ОткрытьСодержаниеСправки, ОткрытьИндексСправки.  

<
·Функция РабочаяДата() заменена на свойство глобального контекста РабочаяДата, которое доступно для записи в случае, если свойство ИспользованиеРабочейДаты имеет значение РежимРабочейДаты.Назначать.  



· Функции ПустоеЗначение больше не существует. Функции ДатаЧисло, ДатаМесяц, ДатаГод заменены на День, Месяц, Год. Так как значения типа «дата» включают в себя время, то добавлены аналогичные функции для извлечения времени из даты: Час, Минута, Секунда.  




table width="100%" cellpadding="0" cellspacing="0"><


table width="100%" cellpadding="0" cellspacing="0">  

<


table width="100%" cellpadding="0" cellspacing="0">

Экспорт


, то она будет видна вне модуля. Экспортируемые переменные модуля приложения называются глобальными переменными, потому что они доступны в любом месте программы (кроме общих модулей). Чем меньше в вашей программе будет глобальных переменных, тем лучше.



Код:


//экспортируемыепеременные

Перем НачДата Экспорт;

Перем КонДата Экспорт;

 

Перем мПериодСтрокой; //локальная переменная модуля

...

//далее идут процедуры и функции

...

//а затем раздел основной программы

...

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

 

Например, ниже приведен модуль документа:  


Перем НачДата Экспорт;

Перем КонДата Экспорт;

Перем мПериодСтрокой;

Процедура Печать(ТабДок=Неопределено) Экспорт

//эта процедура будет доступна как метод объекта ДокументОбъект 

КонецПроцедуры 

Функция ПолучитьГруппировку(РезультатЗапроса, ИмяГруппировки)

//это локальная процедура модуля

КонецФункции

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

 

В самом конце модуля, после всех процедур или функций, следует раздел основной программы, состоящий из выполняемых операторов. Эти операторы будут исполнены при инициализации модуля, например, для модуля справочника ? при создании объекта типа СправочникОбъект, для модуля формы ? при создании объекта Форма. Обычно в этом блоке операторов производится инициализация переменных модуля и заполнение полей начальными значениями.  

 




ФункцияСокращенноеЕсли(РезультатУсловия, выражение1,выражение2)

Если РезультатУсловия Тогда //Истина

   Возврат выражение1;

Иначе //Ложь

   Возврат выражение2;

КонецЕсли;

КонецФункции




ПустаяСсылка= Справочники.Номенклатура.ПустаяСсылка();




н= 0;

Для Каждого СтрокаТЗ Из тзСостав Цикл

н = н + 1 ;  

 

//действия  

КонецЦикла;

Для некоторых коллекций по элементу можно определить его индекс:  




Для Каждого СтрокаТЗ Из тзСостав Цикл

ИндексСтроки = тзСостав.Индекс(СтрокаТЗ);  

КонецЦикла;

Если элемент не принадлежит данной коллекции, то метод Индекс возвращает -1 (минус единицу).  




н = 0;

Выборка = Справочники.Номенклатура.Выбрать();




н= 0;

Выборка = Справочники.Номенклатура.Выбрать();

Пока Выборка.Следующий() Цикл

н = н + 1;  

Если н <= 10 Тогда  

//пропускаем первые 10 элементов справочника  



КонецЦикла;


Переменная Меc называется переменной цикла или счетчиком цикла. Не следует изменять значение переменной цикла внутри него. Это нарушает принципы структурного программирования и может привести к трудно обнаруживаемым ошибкам.


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



КонецЕсли


Выполнение фрагмента модуля на сервере 1С: Предприятие 8.0


Эта инструкция позволяет включить возможность использования процедур и функций в сессии СОМ-соединения

 

Место выполнения общего программного модуля также может регулироваться установкой его свойств. Подробнее об инструкциях препроцессора и свойствах общих модулей написано в документации.  

 



Конструкция «?(..., ..., ...)»


Данная конструкция позволяет записать условный оператор в одну строку и вычислить его как выражение.



Конструкция «Для Каждого ... Из ... Цикл»


В 1С:Предприятии 8.0 была введена новая конструкция «Для Каждого», предназначенная для обхода элементов коллекции. В таких циклах в качестве переменной цикла выступает не число, а объект ? элемент коллекции, например, объект СтрокаТаблицыЗначений в следующем примере:



Конструкция «Для ... По ... Цикл»


Цикл «Для...По» применяется для записи циклов с известным числом повторений. Например, следующий цикл 12 раз выведет номер месяца в окно служебных сообщений:



Конструкция «Если ... Тогда»


Оператор Если предназначен для проверки логических выражений и полностью аналогичен подобным операторам в других языках программирования. Когда результат логического выражения равен Истина, то выполняется блок операторов после ключевого слова Тогда. Оператор Если может иметь ветви ИначеЕсли, а также ветвь Иначе.



Конструкция «Попытка...Исключение»


Обработка исключений предназначена для перехвата ошибок (исключительных ситуаций), возникающих в процессе работы программы. Если возникла ошибка, и она не была перехвачена, то выдается системное сообщение об ошибке, и выполнение модуля прерывается.

Однако разработчик может перехватывать возникающие ошибки и обрабатывать их по своему усмотрению,



Контекстная подсказка


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

Например, после написания строки «Документы.» появляется контекстное меню. Набираем первые буквы имени документа ? «расх» ? и курсор устанавливается на документ Расходная-Накладная.

Остается нажать Enter и имя документа будет подставлено в текст модуля. Затем можно опять ввести точку и появится уже список свойств и методов документа РасходнаяНакладная. Необходимо учитывать, что область действия контекстной подсказки ограничена: она работает не во всех случаях и не для всех объектов.



Логические выражения


В операторе Если, конструкциях «?(...)», а также в цикле Пока применяются логические выражения, т.е. такие, результат которых имеет тип «булево» с двумя значениями: Истина и Ложь. В логических выражениях могут применяться логические сомножители НЕ, И, ИЛИ (в порядке приоритета). Для задания правильного порядка вычисления рекомендуется расставлять скобки,



Модуль приложения


Это модуль, который относится ко всей конфигурации в целом и может быть только один. Модуль приложения является аналогом глобального модуля в версии 7.7. Он отвечает за пользовательскую сессию (сеанс) работы с 1С: Предприятием 8.0.  



Модуль внешнего соединения


 

Если конфигурация запускается не в режиме клиентской сессии, а через СОМ-соединение, то вместо модуля приложения используется модуль внешнего соединения, который в конфигурации может быть только один.  



Модули форм


 

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

На следующем рисунке показано расположение всех этих модулей.  

 

 



Модули прикладных объектов


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



Например:


//следующуюконструкцию:  

Если НЕ Страна = ВыбСтрана ИЛИ Цена > 100 И Цена < 1000 Тогда   

//лучше записать так:  

Если (НЕ Страна = ВыбСтрана) ИЛИ (Цена > 100 И Цена < 1000) Тогда  

В 1C: Предприятии 8.0 введено сокращенное вычисление логических выражений. Это означает, что если по части выражения можно определить конечный результат, тогда остаток логического выражения не вычисляется.  

 


 

Если Цена > 10 И Цена < 20 Тогда  

При вычислении результата составного логического выражения проверяется первое условие «Цена > 10». Допустим, цена равна 5, тогда первое условие не выполняется (дает значение Ложь) и следующую часть вычислять уже не нужно, поскольку в любом случае результат всего выражения будет Ложь.  

 




//следующая процедура принимает табличный документ,

//а если ничего не передано,

//то она его создает и показывает на экране

Процедура Печать(ТабДок = Неопределено) Экспорт

Если ТабДок = Неопределено Тогда  

ТабДок = Новый ТабличныйДокумент;  

флПоказывать = Истина;  

Иначе  

флПоказывать = Ложь;  

КонецЕсли;  

Макет = ПолучитьМакет("Основной");  

ТабДок.Вывести(Макет.ПолучитьОбласть("Бланк"));  

 

Если флПоказывать Тогда  

ТабДок.Показать();  

КонецЕсли;  

КонецПроцедуры

Замечание.  

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

 

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



Null


.  

 

Операторы встроенного языка должны разделяться точкой с запятой («;»), но после ключевых слов КонецПроцедуры или КонецФункции точка с запятой не ставится, поскольку это не операторы, а операторные скобки.  

 

Далее описаны основные конструкции встроенного языка 1 С: Предприятия 8.0.  



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


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



Общие модули


 

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



Окно редактора


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

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



Оператор Новый


Оператор Новый предназначен для создания объектов определенных типов, например, СписокЗначений, Структура и т.д. Заметьте, что данный оператор применяется только для тех типов, для которых допустимо создание новых значений. При объявлении переменных, ссылающихся на прикладные объекты, оператор Новый не используется.

Ниже показываются различные варианты объявления переменных:



Печать


(ТабДок);//вызов процедуры Печать  

ТабДок.Показать();  

КонецПроцедуры

//_______________________

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



Перейти


. Метка может быть у любого исполняемого оператора. Она начинается со знака тильды («~»), далее идет имя метки, а затем двоеточие («:»), например:

function doExpand(paraNum, imageNum) { if (paraNum.style.display=="none") {paraNum.style.display=""; imageNum.src="arrowdn.gif"} else {paraNum.style.display="none"; imageNum.src="arrowrt.gif"} }

 


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

 

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




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

 



Перем


.

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

Если переменную модуля объявить с ключевым словом



Поиск и замена текста


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

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

С помощью меню «Правка

Заменить», или по кнопке
, которую можно сразу поместить на панель инструментов, производится замена одной строки текста на другую. Аналогично глобальному поиску, поддерживается глобальная замена строки по всей конфигурации или только по заданным объектам.



Пока


предназначено для реализации циклов с неизвестным числом повторений. Цикл выполняется до тех пор, пока логическое выражение истинно. Если на очередном витке Цикла оно перестает выполняться (дает значение Ложь), то цикл прекращается.

Ниже показан пример реализации цикла Пока:



Попытка


СредняяЦена= СуммаВсего / Количество;  


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

 

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



Прервать;


 //досрочный выход из цикла  

КонецЕсли;  

КонецЕсли;  


, а для перехода на следующий виток цикла нужно применять оператор



и работает как следующая функция:


 

   

Комментарий=?(Количество=0,"Пусто",Строка(Количество)+"шт ." );  

 

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





Следующий пример показывает нежелательное форматирование


//1-йпример

Если Состав.Количество()=0 Тогда

   Предупреждение("Не указано ни одной строки!");

КонецЕсли;

//2-й пример

Если Сотр.Категория = Перечисления.Категории.Совместитель Тогда

   //обработаем как совместителя

Иначе

   //обычный сотрудник

КонецЕсли;

//3-й пример

Если выбор = 1 Тогда

   Сообщить("Выбран 1-й пункт");

ИначеЕсли выбор = 2 или выбор = 3 Тогда

   Сообщить("Выбран 2-й или 3-й пункт");

Иначе

   Сообщить("Обработка этого пункта не предусмотрена");

КонецЕсли;

Ключевые слова ИначеЕсли, Иначе и КонецЕсли желательно записывать с новой строки. Следующий пример показывает нежелательное форматирование оператора Если:  

   

//

//явноеобъявление переменной модуля или процедуры/функции 

Перем Итог;  

//экспортируемая переменная модуля

Перем Количество Экспорт;  

//неявное объявление переменных (при первом присвоении значения) 

ном = 0;  





Приведение типов


При программировании часто требуется преобразовать значение одного типа в значение другого типа, например, число 10 преобразовать в строку «10».

Приведение типов может быть явное и неявное. Для явного приведения типов существуют следующие функции:

·   Число(),  

·   Строка(),  

·   Дата(),  

·   Булево().  


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



Процедура


Печать(ТабДок)

Макет = ПолучитьМакет("Основной");  

ТабДок.Вывести(Макет.ПолучитьОбласть("Бланк"));  

КонецПроцедуры

//_______________________



Продолжить;


//возьмем следующую строку  

Иначе  

Если СтрокаТЗ.Товар = ВыбТовар Тогда  



Разделение и слияние окон


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

Другой возможностью управления окнами является их соединение друг с другом. Если перетащить окно с нажатой клавишей Shift, то его можно соединить с другим окном, например, для редактирования модуля отчета и его формы в одном окне. Соединять окна можно горизонтально или вертикально, а также в виде закладок внизу.

 

 

 

 

 

 

 



Шаблоны


Для ускорения ввода часто используемых конструкций можно использовать шаблоны, например, для блока «Если...КонецЕсли;» или «Процедура...КонецПроцедуры».

Список всех шаблонов можно просмотреть в следующем окне.

Шаблоны можно разделить на группы. Двойной щелчок на шаблоне открывает окно для его редактирования. После набора нескольких символов, заданных в качестве строки замены, можно нажать Ctrl-Q и активизируется соответствующий шаблон, т.е. введенная строка будет заменена на текст шаблона.



Синтакс-помощник


При программировании часто возникает потребность вспомнить имя свойства или метода, а также параметры методов и возвращаемые значения функций. Эта информация содержится в Синтакс-помощнике, который можно вызвать по Ctrl-Fl или через контекстное меню.



Синтаксический контроль


По кнопке

можно произвести проверку модуля на наличие синтаксических ошибок. Если даже таких ошибок не будет найдено, то это не гарантирует, что программа будет работать правильно, поскольку могут возникать ошибки времени выполнения, которые невозможно обнаружить на этапе синтаксического контроля. Рекомендуется в параметрах включить автоматическую проверку модуля на синтаксические ошибки, которая будет всегда выполняться при его сохранении. Это позволит раньше обнаружить ошибку, и, следовательно, ее исправление обойдется дешевле. В 1С:Предприятии 8.0, как и в версии 7.7, есть возможность проверить все программные модули конфигурации на наличие синтаксических ошибок. Для этого нужно выбрать команду в меню «Конфигурация
Синтаксический контроль модулей».



Системные перечисления и наборы значений


В 1 С:Предприятии 8.0 для улучшения понятности программ были введены системные перечисления и системные наборы значений.

Например, ниже используется системное перечисление ОриентацияСтраницы и его значение Портрет:



~След


;

КонецЕсли;  

Сообщить(Выборка.Наименование);  



Так делать не рекомендуется!


 

Если Состав. Количество () =0 Тогда ... Иначе ... КонецЕсли;  

 

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

 

Если результат выражения имеет тип «булево» и требуется сравнить его со значением Истина, то следующие конструкции полностью эквивалентны:  

   

Если Выборка.Следующий() = Истина Тогда //так не рекомендуется  

Если Выборка.Следующий() Тогда       //это рекомендуемый вариант  

 

Логический оператор НЕ позволяет инвертировать результат логического выражения и подобным же образом заменить сравнение со значением Ложь. Следующие конструкции делают одно и то же:  

   

Если ВыбФирма.Пустая() = Ложь Тогда  

Если НЕ ВыбФирма.Пустая() Тогда  



В контексте модуля формы


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

Необходимо помнить правила видимости экспортируемых переменных, процедур и функций различных модулей:  

 

·   В общем модуле недоступны экспортируемые переменные, процедуры и функции модуля приложения (модуля внешнего соединения).  

 

·   В модуле приложения (модуле внешнего соединения) доступ-ны экспортируемые процедуры и функции общих модулей  

 

·   В общих модулях доступны экспортируемые процедуры и функции других общих модулей  

 

·   В модулях прикладных объектов и модулях форм доступны экспортируемые переменные, процедуры и функции модуля приложения (модуля внешнего соединения), а также экспортируемые процедуры и функции общих модулей.  

 

·   Если у формы назначен основной реквизит, то контекст модуля формы содержит дополнительные свойства и методы, свя-занные с основным реквизитом Например, в модуле формы элемента справочника Номенклатура доступны свойства и методы объекта СправочникОбъект.Номенклатура.  

 

 

Схематично взаимосвязь контекстов можно изобразить следующим образом  

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

 

 

 

 

Контекст может быть дополнен новыми свойствами и методами. Это происходит, если вы объявляете переменную, процедуру или функцию Если она объявлена с ключевым словом Экспорт, тогда она становится видна вне объекта, иначе она будет доступна только внутри этого модуля.  

<
table width="100%" cellpadding="0" cellspacing="0">  

<

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




table width="100%" cellpadding="0" cellspacing="0"><



 




table width="100%" cellpadding="0" cellspacing="0">

В контексте модуля прикладного объекта


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



В контексте модуля приложения (или модуля внешнего соединения)


доступны экспортируемые переменные, процедуры и функции общих модулей.



В контексте общего модуля


доступны экспортируемые процедуры и функции других общих модулей. В этом контексте недоступны экспортируемые переменные, процедуры и функции модуля приложения.



В разделе объявления переменных определяются


 

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

ВызватьИсключение;


 

КонецПопытки;

Обработчики исключений могут быть вложенными друг в друга. Если ошибка не обработана во внутреннем блоке



Закладки по тексту


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

Механизм закладок по тексту реализуется с помощью следующих кнопок на панели инструментов:

1.Установить / снять закладку (Alt-F2),  

2.Перейти к следующей закладке (F2),  

3.Перейти к предыдущей закладке (Shift-F2),  

4.Убрать все закладки в тексте.