8.х Движения и его методы

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем pentu, 20 авг 2011.

  1. TopicStarter Overlay
    pentu
    Offline

    pentu

    Регистрация:
    2 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте
    У меня возникло два семантических вопроса, с которыми я не могу разобраться

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

    2. Есть Метод Движения.ОстаткиМатериалов.Выбран().

    Справка:
    "Возвращаемое значение:
    Тип: Булево. Истина - набор не изменялся; Ложь - изменялся, в частности, если набор не считывался и не записывался, а также, если записывался с добавлением записей.
    Описание:
    Определяет, считан ли набор записей."

    Уже тупо пытаюсь анализировать каждое слово из справки:
    Про истину: "Набор не изменялся" - ну значит ничего не было считано
    Про ложь: "изменялся, в частности, если набор не считывался и не записывался" - значит здесь тоже ничего не было считано.
    "... а также если записывался с добавлением записей" - тоже ничего не было считано.

    Тогда как он определяет, что было считано или не было считано?

    Вы не думайте, что я так всерьез считаю (про считывание), я попытался поместил свою логику рассуждений
  2. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Прочитать() - только после применения этого метода можно получить записи набора. Т.е. если установить отбор и посмотреть состав набора, он будет пустой, т.к. его данные еще не считаны из базы. Но важно понимать, что в обработчике проведения использовать Прочитать() мало смысла, т.к. набор еще не записан (записываются в транзакции, после выполнения обработчика проведения). Если например нужно выполнить контроль отрицательных остатков в обработчике проведения, нужно записать набор после заполнения (Движения.ОстаткиМатериалов.Записать()), и в случае если есть отрицательные остатки, флаг отказа выставить в "Истина", тогда транзакция откатится.
    Считывать не туда, а оттуда, т.е. из регистра накопления. Например нужно вне документа программно изменить существующие записи регистра, для этого устанавливаем отбор по регистратору, используем метод Прочитать(), обходим циклом и изменяем нужные записи.
    Метод Выбран() проверяет, актуальны ли данные текущего набора. Метод возвращает Истина если записанный набор равен текущему набору, Ложь если набор не считан из базы или изменялся. С помощью этого метода можно определить, нужно ли записать или прочитать набор.
Похожие темы
  1. Tantor
    Ответов:
    3
    Просмотров:
    2.809
  2. Infinita
    Ответов:
    6
    Просмотров:
    2.590
  3. Алексей1989
    Ответов:
    1
    Просмотров:
    325
  4. nbIpKuH_BaH9I
    Ответов:
    19
    Просмотров:
    554
Загрузка...

Поделиться этой страницей