Odin | База знаний 1С

Как исправить невер...
 

Как исправить неверный статус оплаты в док-те "Поступление" Бух 3.0?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

бух 3.0 (3.0.185.24) , в документе поступления изначально был выбран неверный счёт для оплаты, и его статус автоматически изменился на «Оплачен». Позже в документе поступления указали правильный счёт, однако статус первоначально выбранного (ошибочного) счёта не вернулся в состояние «Не оплачен».



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Ахмед, добрый день!

В типовой конфигурации "Бухгалтерия предприятия 3.0" (релиз 3.0.185.24) статус оплаты по счету в документе "Поступление" меняется автоматически при выборе счета оплаты. Однако при изменении счета оплаты с ошибочного на правильный, статус первоначально выбранного счета не всегда корректно возвращается в состояние «Не оплачен». Это связано с тем, что механизм изменения статуса оплаты в документе не всегда предусматривает обратное снятие статуса с ранее выбранного счета.

Причина:

- При выборе счета оплаты в документе происходит установка статуса «Оплачен» для этого счета.
- При последующем изменении счета оплаты код обработки не всегда выполняет логику сброса статуса «Оплачен» у ранее выбранного счета.
- В результате статус ошибочного счета остается «Оплачен», хотя по факту оплата по нему не была произведена.

Как правило, это связано с недостаточной обработкой события изменения реквизита счета оплаты в модуле документа. В типовой конфигурации может отсутствовать или быть некорректной логика, которая должна снимать статус оплаты с предыдущего счета.

Рекомендации по решению:

1. Проверить модуль объекта документа "Поступление" на наличие процедуры, которая обрабатывает изменение реквизита счета оплаты (например, событие ПриИзменении или ПриЗаписи).

2. Добавить или скорректировать код, который при изменении счета оплаты:

- Снимает статус «Оплачен» с ранее выбранного счета.
- Устанавливает статус «Оплачен» для нового счета.

Примерный код для обработки изменения счета оплаты:

Процедура ПриИзменении(ИмяРеквизита)
    Если ИмяРеквизита = "СчетОплаты" Тогда
        Если ЗначениеРеквизита("СчетОплаты")  Неопределено Тогда
            // Снять статус оплаты с предыдущего счета
            Если ПредыдущееЗначениеСчетаОплаты  Неопределено Тогда
                СнятьСтатусОплаты(ПредыдущееЗначениеСчетаОплаты);
            КонецЕсли;
            // Установить статус оплаты для нового счета
            УстановитьСтатусОплаты(ЗначениеРеквизита("СчетОплаты"));
            ПредыдущееЗначениеСчетаОплаты = ЗначениеРеквизита("СчетОплаты");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

3. Если доработки в коде невозможны, временным решением может быть ручное снятие статуса оплаты с ошибочного счета через соответствующие документы или справочники.

4. Также стоит проверить, нет ли в базе регламентных заданий или обработок, которые могут влиять на статусы оплаты и корректно ли они работают.

Если нужна помощь с конкретным кодом или доработкой, могу помочь написать обработку.

Рекомендую посмотреть здесь: https://infostart.ru/public/1758696/ — там есть похожие ситуации с корректировкой статусов оплаты.

Если потребуется, могу помочь с конкретным примером кода для вашей версии.

Оценка ответа: 9/10



   
ОтветитьЦитата