Управляемое приложение это
При выполнении процедуры ПередЗаписью() ОБЪЕКТА ДОКУМЕНТА идет проверка, валюта документа не сходится с валютой расчетного счета контрагента то Реквизит документа КонтрагентБанковскиеСчета надо очистить.
ДокументОбъект.КонтрагентБанковскиеСчета = Неопределено; /// ????????Изменено 18.03.14 10:15:37
Я всё прекрасно понял, что и зачем проверяется, я не понял вопроса,
ДокументОбъект.КонтрагентБанковскиеСчета = Неопределено; /// ????????
вот это не отрабатывает? Так присвойте пустую ссылку!
ПыСы. Надо так и говорить, что не получается Неопределено присвоить реквизиту документаИзменено 18.03.14 13:57:57
я напрямую ставил ЭтотОбъект.КонтрагентБанковскиеСчета = "";
в процедуру ПередЗаписью() все стирает
В этом проблема.
При открытии сообщеня еще вылетает окно предупреждения стандартное
Не удалось провести "поступление товаров 000035 от 18.03.2014"
Знаю что надо Отказ = Истина в конце поставить в ложь, тогда все стирает и окно закрывается
КАК сделать что бы окно не закрывалось и все работало ?
Я извиняюсь, но так и не увидел от автора поста, какую ошибку выдаёт документ перед записью при установке
ДокументОбъект.КонтрагентБанковскиеСчета = Справочники.КонтрагентыБанковскиеСчета.ПустаяСсылка();?
Отказ = Истина
у Вас устанавливается внутри условия, естественно ничего не сохранится!
Обычно Отказ выставляют в Истину тогда, когда действительно нельзя записать документ при определённых условиях, например, после проверки заполненности реквизитов или их соответствия политике...Изменено 19.03.14 10:00:47
(8)
Ошибки не выдавало никакой, просто не ОЧИЩАЕТ ПОЛЕ КонтрагентБанковскиеСчета.
Все эти действия выполняются при Отказ = ЛОЖЬ
ДокументОбъект.КонтрагентБанковскиеСчета = Неопределено;
ДокументОбъект.КонтрагентБанковскиеСчета = "";
ДокументОбъект.КонтрагентБанковскиеСчета = Справочники.КонтрагентыБанковскиеСчета.ПустаяСсылка();
Проблема была о отказ = Истина, что выкидывалось стандартное окно предупреждение (Не удалось провести "поступление товаров 000035 от 18.03.2014")
Отказаться от Отказ=Истина нельзя вот и пытаюсь переделать проверку, что бы отказ = истина осталось, при этом не выкидывалось стандартное окно предупреждения, но при этом стирало поле КонтрагентБанковскиеСчета.Изменено 19.03.14 11:32:33
Делайте проверку и установку реквизита КонтрагентБанковскиеСчета в модуле ФОРМЫ документа, а в модуле объекта только проверку, потому что тут противоречие получается: с одной стороны хотим поменять реквизит, с другой стороны при изменении реквизита надо отказаться от записи документа.Изменено 19.03.14 14:59:07
И ещё, если Вы проводите документ и Отказ = Истина, то обработка проведения в любом случае выдаст предупреждение о том, что документ не удалось провести.
Я то же как раз к этому и прихожу
Думаю разделить на две процдеры. Одна проверяет и затирает в модуле формы, вторая проверяет в объете и останавливает запись (Хотя всегда стараюсь делать все в одной процедура, что бы проще было читать код, а не метаться из одной процедуры в другую)
спасибо, что поддержали мои сомневалющиеся мысли в этом направлении..Изменено 19.03.14 16:46:15
(13) Bell, Всё в одном флаконе - это, конечно, хорошо, но надо ещё и учитывать тот факт, что предопределённые процедуры выполняют строго определённые действия с документом. ПередЗаписью() модуля, в частности, в основном и предназначена для проверки и отмены или разрешения записи объекта в БД.