8.х Обновление формы документа

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

  1. TopicStarter Overlay
    ivanoa
    Offline

    ivanoa

    Регистрация:
    14 апр 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Есть открытая форма документа. Из него открывается подчиненная форма, которая меняет документ основание. После этого нельзя провести открыый документ-основание, выдается сообщение "Операция не может быть выполнена из-за неоответствия версии или отсутствия записи базы данных... ".
    Как можно программно перечитать данные в форму документа-основания?
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    У меня возникала подобная проблема.
    1. Не проводите документ.
    2. Закрывайте форму после вызова подчиненной формы, а если так уж нужно, то снова открывайте ее.
    Может есть и другой способ, но я решил свою проблему так.
  3. TopicStarter Overlay
    ivanoa
    Offline

    ivanoa

    Регистрация:
    14 апр 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Да, это позволяет закрыть документ. Но хотелось бы обойти это программно при проведении второго документа.

    Помогает способ: на форме документа-основания нажать кнопку "Перечитать". Но как вызвать эту процедуру программно?
  4. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Вы неправильно просто систему разработали. Факт.
    1. Некорректно менять что либо в уже открытом документе
    2. Лучше сделать так:
    а. Открываете ваш основной документ
    б. Открываете подчиненный или какой он там у вас
    в. ТОЛЬКО ПОСЛЕ ЗАКРЫТИЯ формы подчиненного документа - заполняете что либо в основном!

    Тогда проблем не будет. Если у вас кем-то доработанная конфигурация - трясите разработчиков, что они схалтурили.
  5. TopicStarter Overlay
    ivanoa
    Offline

    ivanoa

    Регистрация:
    14 апр 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Да, здесь не совсем коректная логика. Но так получается
    Подчиненный документ меняет движения документа-основания, поэтому получаем такое сообщение. Если конкретно: документ-основание - это платежное поручение, подчиненный - авизо.
  6. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Если у вас один документ меняет движения другого документа, то реализуйте это как корректировку движений, но никак не то, что происходит.

    Простой пример, сделаете аналогично, если захотите.
    1 документ - поступление товара
    2 документ - корректировка поступления (в которой указывается, сколько по факту товара пришло)
    1 документ сделал приход на 100 единиц товара
    2 документ не поменял движения первого, а сделал движения на разницу в приходе (расход, либо приход отрицательного количества).

    Если ну никак не обойти, а надо менять движения того документа, то лучше вот что сделать:
    Проводим Авизо (движения документа первого не меняем, он у нас открыт). Отсылаем при закрытии формы Авизо какой-то параметр или знак документу Платежное поручение, что "пора бы тебе перепровестись". Платежка собирает данные по подчиненному Авизо и делает движения с определенными корректировками - уже только в момент своего проведения.

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