7.7 Не работает ПриЗаписиПерепроводить

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Tarukami, 4 окт 2010.

  1. TopicStarter Overlay
    Tarukami
    Offline

    Tarukami

    Регистрация:
    1 сен 2010
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Люди, хелп, мозг кипит уже...
    1С7.7 БУ
    Есть документ, который при записи должен перепроводиться.
    Если я все правильно понимаю (в чем я уже сомневаюсь), для этого у меня должно быть в наличии:
    1) Установлен метод ПриЗаписиПерепроводить(1)
    Код:
    Процедура ПриОткрытии()
    
    ПриЗаписиПерепроводить(1);
    
    КонецПроцедуры//ПриОткрытии()
    
    2) Правильно прописаны в модуле документа две процедуры: ОбработкаПроведения() и ОбработкаУдаленияПроведения() — это тоже в наличии, отмена проведения док-та срабатывает как надо если вызывать из журнала.

    Дальше начинаю маяться с кнопкой сохранения записи.
    Если делаю только #Записать - документ не проводится.
    Если делаю #Записать Провести - проводится второй раз (без отката первой проводки), хоть тресни.

    Выкинул стандартную обработку кнопки, сделал свою — та же бодяга.

    У меня уже мысли полезли насчет СделатьНеПроведенным(), только что-то, имхо, кривая это дорожка.
    Куда рыть-то?
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    ПриЗаписиПерепроводить говорит о том, что если документ проведен и пользователь его пытается записать, то необходимо перепровести документ, а если документ не проведен, то по команде #Записать он просто будет записан. Второй раз делаются движения скорее всего из-за того, что не стоит галка в свойствах документа "Автоматическое удаление движений", снятие этой опции говорит о том, что разработчик сам будет очищать движения перед проведением, если это необходимо.
    В типовых это делается так:
    Код:
        // Удаление движений по регистрам.
    Для Номер = 1 По Метаданные.Регистр() Цикл
    ОчиститьДвижения("Регистр."+Метаданные.Регистр(Номер).Идентификатор);
    КонецЦикла;
    
    
  3. TopicStarter Overlay
    Tarukami
    Offline

    Tarukami

    Регистрация:
    1 сен 2010
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Так нет, как оно "по идее работает, я понимаю, и даже вроде все для этого делаю. Галка "Автоматическое удаление движений стоит".
    Какие еще идеи?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ПриЗаписиПерепроводить сработае если только документ ПРОВЕДЕН. Записывайте сколько угодно - он не проведется. Может у вас что-то в модуле проведения (создаете дубль операции)? Покажите
  5. TopicStarter Overlay
    Tarukami
    Offline

    Tarukami

    Регистрация:
    1 сен 2010
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Так и я о том же.
    Есть ОбработкаПроведения, и она обрабатывается корректно, все отображается как надо, если документ проводится в первый раз.
    И есть ОбработкаУдаленияПроведения - она также обрабатывается корректно, если вызывать ее, например, из журнала документов или из меню операций.

    Дальше, обработка кнопки Сохранить:
    Код:
    Процедура ПоКнопкеОК() 
    
    Если Проведен()=1 Тогда
    Записать();
    Иначе
    Записать();
    Провести();
    КонецЕсли;
    
    КонецПроцедуры //ПоКнопкеОК
    
    И процедура ПриОткрытии():
    Код:
    Процедура ПриОткрытии()
    
    ПриЗаписиПерепроводить(1);
    
    КонецПроцедуры//ПриОткрытии()
    
    Так вот, при нажатии кнопки ОК в форме уже проведенного документа не происходит удаления старого проведения. Ни в какую.
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Такое в бух наблюдалось. Но ИНОГДА. Т.е. проводишь проведенный документ и НИЧЕГО не меняется (не добавляется как у вас, а именно не меняется). Лечилось ТОЛЬКО отменой проведеня с последующим проведением снова
  7. TopicStarter Overlay
    Tarukami
    Offline

    Tarukami

    Регистрация:
    1 сен 2010
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Спасибо, буду думать как интерфейс перекроить тогда. Что-то вроде все логично и правильно, а нифига не работает... Эх, ну ладно
  8. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    А зачем вам обработчик на кнопку ОК, не проще ли пользоваться директивами #Записать #Провести или как они там называются не помню уже :)
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Так и называются)))). Правда глюк с задвоением проводки ни разу не встречал. Возможно что все же ошибка в коде. Думаю если галка "Автоматическое удаление движений стоит". Нужно исключить процедуру ОбработкаУдаленияПроведения() - 1c сама все сделает как надо
Похожие темы
  1. lamer1C
    Ответов:
    6
    Просмотров:
    2.436
Загрузка...

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