Вычисление логических выражений в операторах встроенного языка
Состав работы
|
|
|
|
Необходимые программы
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
В условных операторах и операторах цикла встроенного языка системы 1С:Предприятие для определения последовательности выполняемых действий используются логические выражения. Логическим выражением может быть элементарное логическое выражение (сравнение двух значений) или более сложные конструкции полученные из элементарных логических выражений при помощи логических операций И/ИЛИ/НЕ.
Логические выражения могут быть весьма сложными и изощренными. И здесь у разработчика конфигурации может возникнуть сложности, связанные с неправильным пониманием правил вычисления логических выражений. Рассмотрим пример.
Предположим, имеется процедура, предназначенная для обработки некоторого реквизита справочника или документа. Тип данного реквизита не определен, а процедура может вызываться для любого значения реквизита вне зависимости от его типа. Процедура может иметь вид:
Процедура Обработать(Об)
Если (ТипЗначенияСтр(Об) = "Справочник") И (Об.Вид() = "Товары") Тогда
// Некоторые действия
КонецЕсли;
...
КонецПроцедуры
Если в качестве значения параметра, передаваемого в данную процедуру, будет фигурировать элемент справочника любого вида, то процедура будет работать нормально, но если в качестве параметра будет передано значение типа "Число" или "Дата", то выполнение процедуры будет аварийно завершено. В логическом выражении, используемом в операторе 'Если' только составляющая ТипЗначенияСтр(Об) = "Справочник" будет корректно функционировать независимо от типа передаваемого параметра, а составляющая Об.Вид() = "Товары" сможет нормально работать только в том случае, если в качестве параметра в процедуру передано значение агрегатного типа и для данного агрегатного типа определен метод Вид(). Дело в том, что при вычислении логических выражений встроенный язык системы 1С:Предприятие 7.х сначала вычисляет элементарные логические выражения (операции сравнения), а затем производит вычисление логического выражения в целом (операции И/ИЛИ/НЕ).
Логические выражения могут быть весьма сложными и изощренными. И здесь у разработчика конфигурации может возникнуть сложности, связанные с неправильным пониманием правил вычисления логических выражений. Рассмотрим пример.
Предположим, имеется процедура, предназначенная для обработки некоторого реквизита справочника или документа. Тип данного реквизита не определен, а процедура может вызываться для любого значения реквизита вне зависимости от его типа. Процедура может иметь вид:
Процедура Обработать(Об)
Если (ТипЗначенияСтр(Об) = "Справочник") И (Об.Вид() = "Товары") Тогда
// Некоторые действия
КонецЕсли;
...
КонецПроцедуры
Если в качестве значения параметра, передаваемого в данную процедуру, будет фигурировать элемент справочника любого вида, то процедура будет работать нормально, но если в качестве параметра будет передано значение типа "Число" или "Дата", то выполнение процедуры будет аварийно завершено. В логическом выражении, используемом в операторе 'Если' только составляющая ТипЗначенияСтр(Об) = "Справочник" будет корректно функционировать независимо от типа передаваемого параметра, а составляющая Об.Вид() = "Товары" сможет нормально работать только в том случае, если в качестве параметра в процедуру передано значение агрегатного типа и для данного агрегатного типа определен метод Вид(). Дело в том, что при вычислении логических выражений встроенный язык системы 1С:Предприятие 7.х сначала вычисляет элементарные логические выражения (операции сравнения), а затем производит вычисление логического выражения в целом (операции И/ИЛИ/НЕ).
Другие работы
Этническая группа духовных русских христиан (молокан) в Армении
Aronitue9
: 14 декабря 2012
В России в ХVII-ХVIII веках получило широкое распространение сектантство, и в условиях усиления господства царского самодержавия и поддерживающей его православной церкви стало, спасаясь от церковного и полицейского произвола, распространяться в окраинные регионы Российской империи, Русские сектанты сыграли большую роль в хозяйственном освоении многих глухих, отсталых регионов этой империи, распространившись в своём движении из центральных губерний далеко в Сибирь, Алтай, Закавказье» Среднюю Азию
30 руб.
Математические основы цифровой обработки сигналов. Вариант №20
Tetra2
: 6 ноября 2015
Задание на контрольную работу.
Непрерывное сообщение передается по системе связи дискретными сигналами, на стороне передачи исходное сообщение преобразуется в первичные электрический сигнал, который, в свою очередь, преобразуется в цифровую форму. Перед передачей в канал связи сообщения производится так же предварительная обработка его цифрового представления по заданному алгоритму. На стороне приемника восстанавливается непрерывное сообщение ( с учетом представленной обработки на стороне пе
100 руб.
Контрольные работы по гидростатике и гидродинамике ИжГТУ 2014 Контрольная работа 1 Задача 6 Вариант 7
Z24
: 22 ноября 2025
Определить силы, действующие на верхние Fв и нижние Fн болты крышки, которая имеет форму прямоугольника высотой а и шириной b. Показание ртутного вакуумметра hрт, высота h.
150 руб.
Опора. Задание №64. Вариант №10
bublegum
: 10 августа 2021
Опора Задание 64 Вариант 10
Соединить половину фронтального разреза с половиной вида спереди.
3d модель и чертеж (все на скриншотах изображено) выполнены в компасе 3D v13, возможно открыть и выше версиях компаса.
Просьба по всем вопросам писать в Л/С. Отвечу и помогу.
85 руб.