- •1.Основные сведенья системы 1с: Предприятия
- •3.Возможности компоненты «Бухгалтерский учет»
- •4. Возможности компоненты «Оперативный учет»
- •5. Возможности компоненты «Расчет»
- •6. Всю работу с системой можно разделить на два этапа:
- •15. Учёт кассовых операций.
- •16. Документ Приходный кассовый ордер
- •25. Учет финансово-расчетных операций
- •1. Платежное поручение.
- •3. Выписка банка. Документы - Выписка
- •26. Платежное поручение.
- •34. Создание нового объекта метаданных
- •Редактирование объекта метаданных
- •Редактирование подчиненного интерфейса
- •Редактор пользовательских прав
- •Виды программных модулей
- •40. Выражения
- •41. Операции
- •43. Математические функции
- •44. Функции для дат
- •46. Пользовательские процедуры и функции
- •6.2. Структура процедур и функций
- •6.3. Параметры процедур и функций
- •6.4. Вложенные вызовы процедур и функций
- •6.5. Оператор возврат
- •47. Форматирование данных
- •48. Ветвления "если"
- •49. “Попытка"
- •50. Циклы
- •5.5 Переход по метке
- •51. Программирование "сверху вниз"
- •52. Структура процедур и функций
- •53. Параметры процедур и функций
- •54. Вложенные вызовы процедур и функций
- •55. Оператор возврат
48. Ветвления "если"
В ветвлениях "если - то", "если - то - иначе" и "если - то - иначе - если" для записи условий используется логическое выражение (ЛВ), результатом которого может быть истина (И) или ложь (Л). Графически ветвления проиллюстрирует рис. 2.5.
Рис. 2.5. Ветвления: а - ветвление "если - то";
б - ветвление "если - то - иначе"
Ветвление "если - то" работает так:
вычисляется значение ЛВ;
если оно истинно, то выполняется БОК1;
если оно ложно, то управление передается БОК2.
Запись ветвление "если - то" в 1С:
если ЛВ тогда
БОК // Некоторые операторы
конецЕсли;
Например:
Если (РабочаяДата() > '01.01.95') и (Сег = "Понедельник") Тогда
Сообщить("Сегодня" + " " + Сег + " " + РабочаяДата());
КонецЕсли;
Ветвление "если - то - иначе" работает так:
вычисляется значение ЛВ;
если оно истинно, то выполняется БОК1
если оно ложно, то выполняется БОК2;
далее управление передается БОК3.
Запись ветвления "если - то - иначе" в 1С:
если ЛВ тогда
БОК1 // Некоторые операторы
иначе
БОК2 // Некоторые операторы
конецЕсли;
Если БОК1 и БОК2 в ветвлении "если - то - иначе" являются выражениями, то для выбора вычисляемого выражения лучше употреблять функцию, вычисляющую выражение по условию. Ее синтаксис:
результат = ?(ЛВ, выражение1 , выражение2 );
Пример:
у = ?(х > 0, Лог(х), х); // Вернет Лог(х), если х >0, или х - в противном случае
Приведенный оператор заменяет следующее ветвление:
если х > 0 тогда
у = Лог(х);
иначе
у = х;
конецЕсли;
Запись ветвление "если - то - иначе - если" в 1 С:
если ЛВ1 тогда
БОК1 // Некоторые операторы
иначеЕсли ЛВ2 тогда
БОК2 // Некоторые операторы
………….
иначеЕсли ЛВк тогда
БОКк // Некоторые операторы
[иначе // Последние два элемента конструкции
БОКк+1] // являются необязательными
конецЕсли;
49. “Попытка"
Ветвление Попытка служит для обработки исключений и реализуется в 1С виде следующей конструкции:
попытка
БОК1,
исключение
БОК2
конецПопытки;
где
БОК1 - последовательность операторов, в которых может возникнуть исключение;
БОК2 - последовательность операторов, обрабатывающих исключение.
Исключение - это ошибка, возникающая при исполнении программы, например деление на нуль или выход за границы массива. В первом случае система выдаст сообщение "Деление на 0", во втором - "Значение индексного выражения". Работа программы, если не используется обработка исключений, при возникновении ошибки прекращается.
Некоторые ошибки, приводящие к останову программы, могут быть, однако, устранены. Например, ошибка блокировки данных, возникающая при обращении к файлу, захваченному в настоящий момент другим приложением, устраняется после завершения работы этого приложения.
Применение конструкции Попытка целесообразно, если ошибка, не искажает конечного результата. Например, выход за границы массива. В таких случаях целесообразно использовать конструкцию Попытка с тем, чтобы при возникновении ошибки выполнить ее обработку, например, просто сообщить об ошибке, и продолжить расчеты.
Например. Вычислить сумму элементов вектора. В процедуре при обращении к вектору умышленно введена ошибка - выход за границы вектора. Для ее преодоления применяется конструкция Попытка.
процедура Выполнить() // Запускаем процедуру из обработки Проба
перем а[5], ин, сум;
// Инициализация вектора а
а[1] = 0; а[2] = 1.5; а[3] = 2.5; а[4] = -1; а[5] = 7;
// Сумма элементов массива а. Ожидаемый результат: сум = 10 сум = 0;
// Умышленно для иллюстрации работы конструкции Попытка
// задаем верхний параметр цикла большим числа элементов вектора а
для ин = 1 по 7 цикл
попытка // При выходе за границы вектора
сум = сум + а[ин]; // произойдет обработка исключения;
исключение // исполнение программы не прекратится
Сообщить(ОписаниеОшибки() + ". Вычисления будут продолжены.");
конецПопытки;
конецЦикла; // для
Сообщить("сум = " + сум); // Напечатает 10
конецПроцедуры // Выполнить
Встроенная функция ОписаниеОшибки возвращает описание ошибки в том виде, в каком оно выдается системой в окно сообщений при отсутствии обработки исключений.
