[РЕШЕНО] Проверка перед записью

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем IceBeerG, 16 ноя 2015.

  1. TopicStarter Overlay
    IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    Добрый день.
    Подскажите можно ли сделать проверку перед записью документа, так что бы она не срабатывала если изменен 1 конкретный реквизит, а во всех остальных случаях срабатывала?
    Модифицированность, как я понимаю не подходит.
    Спасибо.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Можно, проверять нужно значение по ссылке и сравнивать со значением объекта.
    IceBeerG нравится это.
  3. TopicStarter Overlay
    IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    А где получить гарантию того, что изменен только этот реквизит? Все остальные по отдельности проверять?
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    Если интерактивно это все то есть свойство формы Модифицированность.
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Его значение и проверяйте, если не изменилось, то какая разница, менялись ли значения других реквизитов?
  6. TopicStarter Overlay
    IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    А если изменился не только этот реквизит, а еще по пути пользователь решил поменять другие реквизиты? Нужно делать проверку на то, что измен только конкретный реквизит.
    Видимо нужно по очереди сравнивать реквизиты в ссылке и в объекте, если нет другого выхода...
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну если честно тоне совсем понтна постановка такой задачи. типа если цену поменял, то делай проверку, а если цену и количество поменял то проверку не делай.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    не понятно, для чего проверять изменение других реквизитов, если факт их изменения не важен, судя по условию задачи..........
  9. TopicStarter Overlay
    IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    Почему не важен? Пользователю разрешено поменять только цену, вот он поменял ее, документ провел. А если он поменял цену и количество, тогда проводить нельзя. Может я действительно не допонимаю чего-то, но смысл в том, что пользователь может менять только 1 реквизит, все остальные нет.
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну тогда Вам и пишут в чем проблема при открытии документа прочитать этот реквизит в переменую, при его закрытии ли записи, прочитать еще раз знаечение этого реквизита с формы и сравнить с переменной, если разные то изменял и не проводить
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Если нужно контролировать изменение других реквизитов, то имхо, нужно уже думать про доступность редактирования реквизитов в ролях пользователей.
  12. TopicStarter Overlay
    IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    я читал, что мне пишут)) в том то и дело что не важно, менял он этот реквизит или нет, важно то, что он менял или нет все остальные реквизиты параллельно с тем, который ему можно менять.
    В итоге он может поменять реквизит и провести документ, может не поменять реквизит и провести документ, не может поменять реквизит и еще что-то и провести документ, не может поменять что-то и провести документ.

    Я решил вопрос тем, что написал функцию которая сравнивает объект со ссылкой и возвращает это в ТЗ, а при записи я обхожу циклом ТЗ и смотрю есть ли там этот реквизит, если есть тогда все ок, если другой реквизит тогда отказ. В итоге если у нас хоть раз попадает в выборку не наш реквизит тогда отказ.
    Спасибо nomad_irk, всем остальным тоже спасибо, видимо плохо объяснял, что не донес основной идеи))

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