|
8.2 не понятно с попыткой записи документа.. |
☑ |
0
RomaH
naïve
18.10.11
✎
15:35
|
Есть документ - из него создаем подчиненный документ по команде
перед сосзданием подчиненного надо записать текущий (родителя)
в Родителе есть обязательные к заполнению поля
соответсвенно:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если Не ЗначениеЗаполнено(ЭтаФорма.Элементы.НомерИсторииБолезни.ТекстРедактирования) Тогда
Предупреждение("Укажите номер истории болезни!");
Отказ = истина;
КонецЕсли;
КонецПроцедуры
команда:
&НаКлиенте
Процедура ОткрытьМедКартуПациента(Команда)
Если Не ЗначениеЗаполнено(Объект.Ссылка) ИЛИ Модифицированность Тогда
Попытка
Записать();
Исключение
Возврат;
КонецПопытки;
КонецЕсли;
в исключение не попадает
почему все так плохо и как быть?
|
|
1
RomaH
naïve
18.10.11
✎
15:36
|
в тему:
как проверить необходимость записи объекта?
Если Не ЗначениеЗаполнено(Объект.Ссылка) ИЛИ Модифицированность Тогда //правильно ли делать так?
|
|
2
unregistered
18.10.11
✎
15:37
|
>> в исключение не попадает
А должно? Есть предпосылки?
|
|
3
Error pro
18.10.11
✎
15:37
|
Попытка
Если Не ЗначениеЗаполнено(Объект.Ссылка) ИЛИ Модифицированность Тогда
Записать();
КонецЕсли;
Исключение
Возврат;
КонецПопытки;
а так?
|
|
4
unregistered
18.10.11
✎
15:39
|
(3) Что это?...
|
|
5
RomaH
naïve
18.10.11
✎
15:39
|
(2) а разве Отказ в ПередЗаписью в 8.1. не попадал в исключение? ... или я все забыл за отпуск
|
|
6
RomaH
naïve
18.10.11
✎
15:41
|
получается что после
Записать()
надо еще и проверить записалось ли?
....
Записать();
Если Не ЗначениеЗаполнено(Объект.Ссылка) ИЛИ Модифицированность Тогда
Не записалось
Иначе
Записалось
КонецЕсли
|
|
7
RomaH
naïve
18.10.11
✎
15:43
|
типа так:
&НаКлиенте
Процедура ОткрытьМедКартуПациента(Команда)
Если Не ЗначениеЗаполнено(Объект.Ссылка) ИЛИ Модифицированность Тогда
Записать();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) ИЛИ Модифицированность Тогда
Возврат;
КонецЕсли;
|
|
8
Mort
18.10.11
✎
15:54
|
Если закрыть глаза на остальной ужас то нужно юзать ЗаписатьВФорме()
|
|
9
Mort
18.10.11
✎
15:56
|
А если делать по-человечески, сделайте параметризованную команду "Ввести мед карту". Она и запишет все сама и проверит (если в реквизитах прописана проверка заполнения) и из списка будет работать.
|
|
10
RomaH
naïve
18.10.11
✎
16:08
|
(8) ... это только на толстом клиенте
(9) пока не настолько знаю хорошо 8.2, но за наводку спасибо
я понимаю что есть более оптимальные способы решения задачи, но вопрос сейчас не "КАК?", а "ПОЧЕМУ?"
почему Отказ при записи не выдает иключение
|
|
11
Mort
18.10.11
✎
16:18
|
Не выдает и хорошо.
Зато возвращает булево
Если Записать() Тогда //УРА!
|
|
12
RomaH
naïve
18.10.11
✎
16:27
|
о, а то я перепутал метод объекта и метод формы
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший