Что значит в 1с
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: сложные логические выражения в 1С
Автор уроков и преподаватель школы: Владимир Милькин
На прошлом уроке мы познакомились с логическим типом данных, который может принимать одно из двух значений Истина или Ложь. Также мы узнали о существовании простейших логических выражений. Они состоят из двух данных (число, строка или дата) и операции сравнения между ними. Результатом логического выражения является Истина или Ложь.
Вы думали самое сложное позади? Как бы не так! Сегодня вам придется сделать ещё один огромный шаг вперед на пути к профессии программиста. И называется этот шаг Сложные логические выражения.
Наберитесь сил, читайте, вчитывайтесь, перечитывайте. Не отчаивайтесь, если что-то не будет ясно с первого раза. Удивительно как раз, если сразу поймёте всё. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. И как всегда тщательно выполняйте задания и задавайте вопросы.
Ещё скажу, что сразу после изучения этого урока, начнутся настоящие чудеса программирования!
Сложные логические выражения
Оказывается из простых логических выражений, изученных нами на прошлом уроке можно составлять сложные логические выражения.
Для этого существуют специальные логические операции: И, Или, Не.
Правила работы логической операции И
А (левая часть) | Б (правая часть) | А И Б | Пример |
---|---|---|---|
Истина | Истина | Истина | (2 < 3) И (10 = 10) |
Истина | Ложь | Ложь | (2 < 3) И (10 <>10) |
Ложь | Истина | Ложь | (10 <> 10) И (2 < 3) |
Ложь | Ложь | Ложь | (1 = 2) И (3 = 5) |
Таким образом, логическое выражение, составленное при помощи операции И, верно тогда и только тогда, когда верны оба выражения, стоящие слева и справа от этой операции.
Для лучшего понимания представьте, что значение Истина это 1, Ложь это 0, а логическая операция И это умножение:
А (левая часть) | Б (правая часть) | А И Б |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
Правила работы логической операции Или
А (левая часть) | Б (правая часть) | А Или Б | Пример |
---|---|---|---|
Истина | Истина | Истина | (2 < 3) Или (10 = 10) |
Истина | Ложь | Истина | (2 < 3) Или (10 <>10) |
Ложь | Истина | Истина | (10 <> 10) Или (2 < 3) |
Ложь | Ложь | Ложь | (1 = 2) Или (3 = 5) |
Таким образом, логическое выражение, составленное при помощи операции Или, истинно, если верно хотя бы одно из выражений, стоящих слева и справа от этой операции. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Для лучшего понимания представьте, что значение Истина это 1, Ложь это 0, а логическая операция Или это сложение:
А (левая часть) | Б (правая часть) | А Или Б |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Правила работы логической операции Не
А | Не А | Пример |
---|---|---|
Истина | Ложь | Не (2 < 3) |
Ложь | Истина | Не (10 = 5) |
Таким образом, логическое выражение, составленное при помощи операции Не, верно, тогда и только тогда, когда неверно выражение, стоящее справа от этой операции. Операцию Не ещё называют логическим отрицанием.
Для лучшего понимания представьте, что значение Истина это 1, а Ложь это 0:
Задание №16. Вычислите (пока без помощи компьютера) результат следующих логических выражений.
- (1 = 1) И (2 = 2)
- Не (10 > 5)
- ("Солнце" = "Луна") Или ("Юпитер" = "Юпитер")
- Не ("Солнце" = "Луна")
- (10 <> 5) Или (5 = 5)
- (Истина) Или (Ложь)
- Не (Истина)
- (Ложь) И (Истина)
- (Ложь) Или (Истина)
Попытайтесь выполнить всё сами и только потом смотрите ответы ниже.
- (1 = 1) И (2 = 2)
Давайте упростим:
1 = 1, это Истина
2 = 2, это Истина
значит (1 = 1) И (2 = 2) равнозначно (Истина) И (Истина),
а "ИстинаИИстина", как мы знаем из правил для операции И, равно Истина. - Не (10 > 5)
Упрощаем:
10 > 5, это Истина
значит Не (10 >5) равнозначно Не (Истина),
а "Не Истина", как мы знаем из правил для операции Не, равноЛожь. - ("Солнце" = "Луна") Или ("Юпитер" = "Юпитер")
Упрощаем:
"Солнце" = "Луна", это Ложь
"Юпитер" = "Юпитер", это Истина
значит ("Солнце" = "Луна") Или ("Юпитер" = "Юпитер") равнозначно (Ложь)Или (Истина)
а "Ложь Или Истина", как мы знаем из правил для операции Или, равно Истина. - Не ("Солнце" = "Луна")
Упрощаем:
"Солнце" = "Луна", это Ложь
значит Не ("Солнце" = "Луна") равнозначно Не (Ложь)
а "Не Ложь", как мы знаем из правил для операции Не, равно Истина. - (10 <> 5) Или (5 = 5)
Упрощаем:
10 <> 5, это Истина
5 = 5, это Истина
значит (10 <> 5) Или (5 = 5) равнозначно (Истина) Или (Истина)
а "Истина Или Истина", как мы знаем из правил для операции Или, равно Истина. - (Истина) Или (Ложь)
Выражение уже упрощено.
"Истина Или Ложь" дают, в соответствии с правилами для операции Или, Истину. - Не (Истина)
Выражение уже упрощено.
"Не Истина" дают, в соответствии с правилами для операции Не, Ложь. - (Ложь) И (Истина)
Выражение уже упрощено.
"Ложь И Истина" дают, в соответствии с правилами для операции И, Ложь. - (Ложь) Или (Истина)
Выражение уже упрощено.
"Ложь Или Истина" дают, в соответствии с правилами для операции Или, Истина.
Домашнее задание
Задание №17. Вычислите все примеры логических выражений из предыдущего задания на компьютере.
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Сколько же всего сложного и таинственного нас окружает.
Черные дыры и сновидения. Темная материя и подсознание. Корпускулярно-волновой дуализм и 1С.
И ведь думаешь, что знаешь эту "1Ску" как свои пять пальцев, но стоит случайно копнуть глубже. И очередная багофича. Да ешё и какая!
В этой статье рассмотрим секретный оператор ?
О нём мало кто знает, хоть он и существует как минимум с версии 8.0.
В последнее время я публикую на своём телеграм-канале разные хитрые задачки с подвохом для программистов 1С. Какие-то беру "по памяти", а какие-то "рождаю" в результате экспериментов. Об этом скоро выйдет отдельная статья. И вот в очередном тесте адекватности платформы случайно натыкаюсь на такую конструкцию:
Синтаксис-проверка прошла успешно. Никаких ошибок не высветилось. И, казалось бы, ошибка тогда должна произойти в момент выполнения.
Код успешно выполнился. Удивительно, но сработало! И тут меня понесло.
Как оказалось, знак ? ведёт себя крайне странно. Давайте посмотрим ещё раз прошлый пример.
Мы создаём новую переменную и назначаем ей значение - ?. И в переменной находится Неопределенно. И, казалось бы, это и есть ответ на вопрос. Знак ? означает Неопределено.
Но что же тогда это:
В данном коде сначала идёт объявление переменной "А". И в А установлено числовое значение "1". А далее идёт наше сравнение с ?. Если бы под знаком вопроса скрывалось Неопределено, то мы бы не попали внутрь условия. А по скрину видно, что попали.
Очень странная ошибка. "Переменная не определена (Сообщить)". Ну допустим. Добавим тогда такую переменную:
Данный код компилируется без ошибок. И при выполнении в 1С сообщает "ТЕСТ". То есть значение переменной Сообщить
Выходит, что символ ? указывает на предыдущее слово в коде. В данном случае, перед ? было слово Сообщить. И поэтому 1С изначально поругалась, что такая переменная не определена. А когда мы добавили переменную Сообщить, то всё стало на свои места.
То есть наш код для 1С выглядит так:
А теперь вернемся к нашим предыдущим примерам и разберём что и как сработало.
В данном коде предыдущее слово перед ? - Если. Но оно является ключевым для 1С. Как "Цикл", "Процедура" и так далее. Поэтому, его оператор ? не учитывает и берет в качестве источника значения переменную А.
Скорректируем же этот код так, как его видит 1С:
Теперь всё логично. А = А и поэтому условие выполняется.
А что с нашим самым первым примером?
На самом деле всё так же. Просто заменяем знак вопроса на предыдущее слово.
Да, такой код тоже странный, но в рамках 1С всё логично. Сначала объявляется переменная и в ней Неопределено. А затем происходит присвоение переменной значения из её самой. То есть опять же Неопределено. Можете проверить такой код - это хоть и выглядит странно, но работает. А почитать чуть подробнее можно в статье на ИТС: МояПеременная = 0; МояПеременная = ? + 1; //1 МояПеременная = ? + 1; //2 МояПеременная = ? * 5; //10 МояПеременная = ? / 2; //5 МояПеременная = ? - 6; //-1
Да, мы так долго ждали и вот он😅
А самое интересное, что такая возможность существовала как минимум ещё с версии 8.0 . Специально скачал старую платформу и проверил.
На самом деле такой код можно ещё упросить:
Но такой вариант становится менее надежным. Ведь всё работает до тех пор, пока перед ? находится МояПеременная. Если же вставить после этого какое-то другое "слово", то всё порушится.
Но вот ещё пример:
Мы же помним, что знак ? берет предыдущее слово. Так вот в нашей строке кода это слово "А". Именно так - без "Структура".
Поэтому 1С в таком коде вместо знака вопроса вставит "А"
Выходит, инкремент хоть и есть, но с особенностями 😁
Но зато появляется новая возможность применения:
В данном коде мы создали структуру и наполнили её объявленными ранее переменными. Тоже бывает удобно, когда нужно передать какой-то набор переменных метода в другой метод через структуру.
А вот ещё пример. Можно передать в какой-то метод или конструктор одно значение несколько раз:
Передавать знак ? можно даже в условный тернарный оператор. Например, этот код приводит отрицательные числа к 0:
А этот приводит отрицательные числа к положительным:
Подобным образом можно присваивать дефолтные значения необязательным параметрам:
Главное помнить, что знак ? берет именно предыдущее слово, поэтому вот так работать НЕ будет:
1С поругается, что Переменная не определена (Структура). Ведь перед последним знаком ? слово Структура
Но что если использовать символ ? в параметрах?
Сделаем процедуру с параметром ? :
Такую процедуру действительно возможно создать. И можно вызывать. Причем 1С понимает, что параметр обязательный и его необходимо передать.
Но мы можем сделать его необязательным:
И параметр не обязан быть единственным. Можно делать разными способами:
А можно использовать Знач
Но вот незадача, ? в параметре метода не использует предыдущее слово (как во всех других случаях). Как обратиться к этому параметру - неизвестно.
В стеке вызовов он отображается:
А попробуем добавить второй параметр ?
1С ругается так:
Формальный параметр с указанным именем уже определен (?)
Опираясь на текст ошибки, мы можем предположить, что 1С объявляет параметр с именем "?"
И когда мы пытаемся добавить ещё один такой параметр, то платформа ругается.
Как обратиться к параметру с именем "?" - неизвестно. Методы Вычислить() и Выполнить() не помогли.
Но, возможно, это всё те вопросы, которые нам ещё предстоит разгадать. Секреты и загадки этой таинственной платформы под кодовым названием 1С.
Понравилась статья?
Поставьте лайк плюс. Пишите свои идеи и комментарии по теме. Статья будет дополняться.
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: простые логические выражения в 1С
Автор уроков и преподаватель школы: Владимир Милькин
На прошлом занятии мы научились давать имена и вводить их значения от пользователя.
Наберитесь сил и терпения. Занятия №5 и №6 будут трудными, но очень важными для дальнейшего понимания программирования в 1С. Поэтому, если хоть что-то останется непонятным или нераскрытым - перечитывайте, вдумывайтесь, задавайте вопросы.
Простые логические выражения
Сегодня, к уже изученным типам данных (строка, число и дата) добавим ещё один - логический тип. Он может принимать всего два значения: Истина или Ложь.
Значение логического типа (Истина или Ложь) является результатом некоторого логического выражения.
Логическое выражение - это выражение, составленное при помощи операций сравнения. Сравнивать можно числа, даты, строки и другие данные. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. О логическом выражении можно сказать, верно оно (Истина) или неверно (Ложь).
Операции сравнения бывают следующие:
Операция | Обозначение в языке 1С |
---|---|
Равно | = |
Не равно | <> |
Больше | > |
Меньше | |
Больше или равно | >= |
Меньше или равно |
Думаю, интуитивно понятно, что обозначает каждая из операций.
Читается, например, так:
- 1 = 1 ("один равен одному").
- 4 <> 5 ("четыре не равно пяти")
- 3 > 1 ("три больше одного").
Обращаю ваше внимание, что перечисленные три примера логических выражений принимают значение Истина, так как все они верны.
Разберем на примере:
Пример логического выражения | Результат | Объяснение |
---|---|---|
1 = 2 | Ложь | неверно, единица на самом деле не равна двойке |
1 = 1 | Истина | верно, единица равна единице |
выражение "Земля" <> "Луна" | Истина | верно, строка "Земля" не равна строке "Луна" |
'18610101' <> '18610101' | Ложь | неверно, дата 01.01.1861 на самом деле равна дате 01.01.1861 |
100 > 50 | Истина | верно, сто действительно больше пятидесяти |
10 < 0 | Ложь | неверно, на самом деле десять больше нуля |
Задание №14. Укажите для каждого логического выражения его результат - Истина или Ложь.
- "Венера" = "Юпитер"
- "Венера" <> "Юпитер"
- 123 = 321
- 123 < 321
- 123
- 123
- '20000101' <> '20140101'
- '20000101' = '20000101'
- '20140101' > '20120101'
- 25 + 25 = 50
- 2 * (10 + 10) > 50
- "Юрий" + " Гагарин" = "Юрий Гагарин"
Попытайтесь ответить на все вопросы самостоятельно. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Затем посмотрите ответы ниже и попытайтесь разобраться, если где-то ошиблись.
- "Венера" = "Юпитер" (Ложь, строки не равны между собой, а в выражении утверждается, что равны).
- "Венера" <> "Юпитер" (Истина, строки не равны между собой, как и утверждается в выражении).
- 123 = 321 (Ложь, так как числа не равны между собой, а в выражении утверждается, что равны).
- 123 < 321 (Истина, так как 123 меньше 321, как и утверждается в выражении).
- 123 Истина, так как 123 меньше 321, а данное утверждение истинно, если левое число меньше или равно правому).
- 123 Истина, так как 123 равно 123, а данное утверждение истинно, если левое число меньше или равно правому).
- '20000101' <> '20140101' (Истина, так как левая дата 01.01.2000 не равна 01.01.2014, как и утверждается в выражении).
- '20000101' = '20000101' (Истина, так как левая дата 01.01.2000 равна 01.01.2000, как и утверждается в выражении).
- '20140101' > '20120101' (Истина, так как первое января 2014 года больше первого января 2012 года, как и утверждается в выражении).
- 25 + 25 = 50 (Истина, так как 25 плюс 25 действительно равно пятидесяти, как и утверждается в выражении).
- 2 * (10 + 10) > 50 (Ложь, так как результат левого выражения равен 40, а 40 меньше 50, хотя в утверждении говорится обратное).
- "Юрий" + " Гагарин" = "Юрий Гагарин" (Истина, так как сумма строк "Юрий" и " Гагарин" образует одну строку "Юрий Гагарин", которая равна строке справа, как и утверждается в выражении).
Заставим считать компьютер
Но, что же мы сами-то считаем "верно" или "неверно ". Ведь у нас под рукой компьютер! Давайте возложим эту задачу на него, а заодно и проверим себя.
К примеру, проверим выражение 2 * (10 + 10) > 50.
Для этого напишем такую программу:
Если мы запустим её, то компьютер выдаст "Нет", что означает - результат равен Ложь.
Как он посчитал это выражение?
- Компьютер увидел команду Сообщить.
- Посмотрел, что за параметр мы передаем этой команде.
- Увидел, что в качестве параметра указано логическое выражение 2 * (10 + 10) > 50.
- Стал вычислять результат логического выражения.
- Увидел, что выражение состоит из левой части 2 * (10 + 10), правой части 50 и знака больше между ними.
- Посчитал результат левой части и выяснил, что он равен сорока.
- Снова взглянул на выражение, только в уже упрощенном виде 40 > 50, а так как 40, конечно же, меньше 50, то он вывел "Нет".
Задание №15. Вычислите все примеры логических выражений из предыдущего задания на компьютере.
Например, выражение "Венера" = "Юпитер", значение которого, как мы выяснили, равно Ложь.
Компьютер при запуске выводит значение "Нет", что означает: результат действительно равен Ложь и мы совершенно верно вычислили его сами.
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: функции и процедуры в 1С часть 1
Автор уроков и преподаватель школы: Владимир Милькин
Сегодня мы приступаем к изучению того, без чего не может обойтись ни одна более менее серьезная программа - функций и процедур.
Функции и процедуры в языке 1С 8.3
Давайте я подведу вас к необходимости функций, заодно вы поймёте что это такое и почему они столь полезны для программистов.
Пусть нам требуется написать программу, которая вычисляет произведение суммы и разности двух введенных чисел. Выглядеть она будет так:
В данном случае формула вычисления результата достаточно проста, но она могла бы быть гораздо сложнее. А что если нам нужно вычислять её не один раз, а несколько? Причем в разных местах программы.
Неужели нам снова и снова придётся писать код для её вычисления:
Это никуда не годится. Нам придётся повторять один и тот же код, что приведёт к раздутости программы. И кроме того, переписывая его очередной раз мы можем допустить ошибку по невнимательности.
Вот бы придумать такое имя, которое будет связано с этой формулой и при обращении к нему мы будем обращаться ко всей этой формуле целиком. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Пусть этим именем будет ПроизведениеСуммыИРазности.
Получается теперь мы можем написать:
И всё? Нет, конечно! Ведь непонятно произведение суммы и разности каких именно чисел нужно считать. Гораздо лучше будет передать эти числа нашему имени в качестве параметров, как мы обычно делаем при вызове команды:
Это, так называемый, вызов функции. Он выглядит точно также как и вызов многих других команд компьютера, которые мы уже неоднократно делали. Только это наша собственная команда, работу которой определяем мы, а не компьютер.
Давайте, наконец, определим нашу функцию, чтобы компьютер, встретив её вызов, не растерялся, а выполнил то, что мы хотим:
Что включает в себя определение этой функции?
Прежде всего ключевое слово Функция следом за которым идёт имя, которое мы придумали сами.
Затем следуют имена параметров, заключенные в круглые скобки. Параметры - это данные, которые мы передадим в нашу функцию при её вызове. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Она с ними что-то сделает и возвратит результат. Каждый параметр имеет своё имя, которое мы также придумываем сами. Это имя можно использовать только внутри функции.
Дальше идёт тело. Это команды компьютеру, которые будут выполняться в тот момент, когда мы сделаем вызов нашей функции. Тело заканчивается ключевым словом КонецФункции.
Внутри функции могут выполняться абсолютно любые знакомые нам команды: условные операторы, циклы и прочее. Но хотя бы один раз внутри каждой функции должна присутствовать команда:
Где вместо Результат может быть любое выражение, которое вернётся из функции в качестве её результата.
Мы можем вызывать функцию столько раз в программе сколько нам потребуется.
Процедуры это те же самые функции, но они не возвращают результат и объявляются при помощи других ключевых слов: Процедура и КонецПроцедуры.
Но функции и процедуры не следует писать лишь бы где! Для определения наших функций мы будем использовать новый модуль. Чтобы его добавить следуйте инструкциям ниже.
1. Раскройте список "Общие" в дереве конфигурации.
2. Найдите в нём пункт "Общие модули" и нажмите на нём правой кнопкой мыши. Выберите "Добавить".
3. Добавился модуль. В правой части окна конфигуратора задайте его имя и свойства, как показано ниже.
Внимание! Пожалуйста, ещё раз убедитесь, что вы поставили галки (Клиент, Сервер, Внешнее соединение) также, как на рисунке выше.
4. Перейдите в этот модуль. Всё! Здесь можно писать наши функции и процедуры. Напишите процедуру с именем Привет, без параметров, после вызова которой компьютер просто здоровается с нами.
Обратите внимание на ключевое слово Экспорт, которое идёт следом за круглыми скобками. Его наличие обязательно, так как мы определяем функцию в одном модуле (Уроки), а использовать будем совсем в другом (модуль управляемого приложения).
5. Теперь вернитесь в модуль управляемого приложения.
6. И сделайте вызов нашей процедуры. Так как она находится в другом модуле к её имени добавляется "Уроки.".
Берется остаток от деления «х» на «а». Результатом всегда будет значение между 0 и а-1
Выражение удобно использовать, например, для определения момента, когда пора переходить на другой лист при выводе таблицы на печать.
Примеры:
Код 1C v 8.х
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Посмотреть все результаты поиска похожих
Еще в этой же категории
Полнотекстовый поиск в 1С (что это и пример использования) 23
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив область поиска до нескольких объектов Формат, функция форматирования значений 21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2" ); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2" ); // Знач Обработчики событий при записи объектов. Зачем и что за чем? 12
Программисту, имеющего немного опыта на платформе 1С 8.2, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта, а-а-а-а-аааа. Именно такое сложное чувство непонимания УстановитьСсылкуНового 11
Установить ссылку нового это специальный механизм программиста, который позволяет присваивать новому объекту нужную ссылку. В основном это задача обмена, во многих типовых обменах используется синхронизация по UID объекта. Рассмотрим этот метод на к МоментВремени, получение остатков до и после проведения 9
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения Остатков, Движений: М Посмотреть все в категории Встроенные Функции
Читайте также: