Вычисление логических выражений в операторах встроенного языка
Состав работы
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
В условных операторах и операторах цикла встроенного языка системы 1С:Предприятие для определения последовательности выполняемых действий используются логические выражения. Логическим выражением может быть элементарное логическое выражение (сравнение двух значений) или более сложные конструкции полученные из элементарных логических выражений при помощи логических операций И/ИЛИ/НЕ.
Логические выражения могут быть весьма сложными и изощренными. И здесь у разработчика конфигурации может возникнуть сложности, связанные с неправильным пониманием правил вычисления логических выражений. Рассмотрим пример.
Предположим, имеется процедура, предназначенная для обработки некоторого реквизита справочника или документа. Тип данного реквизита не определен, а процедура может вызываться для любого значения реквизита вне зависимости от его типа. Процедура может иметь вид:
Процедура Обработать(Об)
Если (ТипЗначенияСтр(Об) = "Справочник") И (Об.Вид() = "Товары") Тогда
// Некоторые действия
КонецЕсли;
...
КонецПроцедуры
Если в качестве значения параметра, передаваемого в данную процедуру, будет фигурировать элемент справочника любого вида, то процедура будет работать нормально, но если в качестве параметра будет передано значение типа "Число" или "Дата", то выполнение процедуры будет аварийно завершено. В логическом выражении, используемом в операторе 'Если' только составляющая ТипЗначенияСтр(Об) = "Справочник" будет корректно функционировать независимо от типа передаваемого параметра, а составляющая Об.Вид() = "Товары" сможет нормально работать только в том случае, если в качестве параметра в процедуру передано значение агрегатного типа и для данного агрегатного типа определен метод Вид(). Дело в том, что при вычислении логических выражений встроенный язык системы 1С:Предприятие 7.х сначала вычисляет элементарные логические выражения (операции сравнения), а затем производит вычисление логического выражения в целом (операции И/ИЛИ/НЕ).
Логические выражения могут быть весьма сложными и изощренными. И здесь у разработчика конфигурации может возникнуть сложности, связанные с неправильным пониманием правил вычисления логических выражений. Рассмотрим пример.
Предположим, имеется процедура, предназначенная для обработки некоторого реквизита справочника или документа. Тип данного реквизита не определен, а процедура может вызываться для любого значения реквизита вне зависимости от его типа. Процедура может иметь вид:
Процедура Обработать(Об)
Если (ТипЗначенияСтр(Об) = "Справочник") И (Об.Вид() = "Товары") Тогда
// Некоторые действия
КонецЕсли;
...
КонецПроцедуры
Если в качестве значения параметра, передаваемого в данную процедуру, будет фигурировать элемент справочника любого вида, то процедура будет работать нормально, но если в качестве параметра будет передано значение типа "Число" или "Дата", то выполнение процедуры будет аварийно завершено. В логическом выражении, используемом в операторе 'Если' только составляющая ТипЗначенияСтр(Об) = "Справочник" будет корректно функционировать независимо от типа передаваемого параметра, а составляющая Об.Вид() = "Товары" сможет нормально работать только в том случае, если в качестве параметра в процедуру передано значение агрегатного типа и для данного агрегатного типа определен метод Вид(). Дело в том, что при вычислении логических выражений встроенный язык системы 1С:Предприятие 7.х сначала вычисляет элементарные логические выражения (операции сравнения), а затем производит вычисление логического выражения в целом (операции И/ИЛИ/НЕ).
Другие работы
Перспективи соціального розвитку України
evelin
: 8 сентября 2013
Прогнозування соціального розвитку України
Стратегічна мета трансформації українського суспільства полягає в розбудові «суверенної і незалежної, демократичної, соціальної, правової держави». Реалізація її потребує кардинальних реформ усіх сфер суспільного життя. Загальнонаціональне незалежне соціологічне дослідження громадської думки, дані якого були оприлюднені Українською освітньою програмою ринкових реформ (УОПРР), засвідчило, що більшість громадян України прагнуть негайного проведення процес
5 руб.
Основы визуального программирования. Контрольная работа. Вариант №4 (выполнена на заказ)
tpogih
: 2 мая 2015
1. Создать базу данных (БД), состоящую из 2-х заданных таблиц. Поля таблиц произвольные, но не менее четырех полей в каждой таблице, включая ключевое поле (поле типа +(Autoincrement)). В таблицу, которая при объединении будет подчиненной, необходимо включить поле, по которому эта таблица будет связана с первичным ключом главной таблицы (в рассматриваемом здесь примере это поле NFcl таблицы grp2).
2. Разработать Приложение для работы с БД, выполняющее те же функции, что и в приведенном ниже прим
100 руб.
Гидровакуумный усилитель тормозов ГАЗ-53А
TOXA32
: 12 мая 2009
Сборочный чертеж гидровакуумного усилителя тормозов автомобиля ГАЗ-53А, выполнен в компасе 8ой версии на формате А1. Прилагается к курсовому проекту по специальности "Ремонт и эксплуатация транспортных средств" по теме "Разработка технологического процесса восстановления тормозной системы автомобиля ГАЗ-53А".
20 руб.
Онлайн Тест 7 по дисциплине: Теория электрических цепей.
IT-STUDHELP
: 4 декабря 2022
Вопрос No1
Выберите ожидаемую характеристику ослабления амплитудного корректора Ak(f), если заданы функция ослабления искажающей цепи Aц(f) и А0 = 18дБ.
f, кГц 0 5 10 15 20 25 30 35 40
Aц(f), дБ 17,9 17,4 16,1 14,6 13,1 11,8 10,7 9,7 8,1
Вопрос No2
Выберите ожидаемую характеристику ослабления цепи Aц(f), если заданы функция ослабления амплитудного корректора Ak(f), и максимальное ослабление цепи Аmax ц. = 15дБ.
f, кГц 0 5 10 15 20 25 30 35 40
Ak, дБ 13,8 12,3 10,8 9,5 8,4 7,0 5,0 3,0 0
Вопро
900 руб.