![]() |
![]() |
![]() |
|
Как определить пустую Структуру? | ☑ | ||
---|---|---|---|---|
0
Bobroff
31.08.06
✎
16:27
|
Есть код:
ОтборПоТекущемуВрачу = Новый Структура("Врач",Ссылка); ПоследнееМестоРаботыВрача=РегистрыСведений.ТрудоваяДеятельностьВрачей.ПолучитьПоследнее(,ОтборПоТекущемуВрачу); В ПоследнееМестоРаботыВрача может содержать структуру без значений. Как её отловить? |
|||
1
Scooter
31.08.06
✎
16:28
|
Структура (Structure)
Количество (Count) Синтаксис: Количество() Возвращаемое значение: Тип: Число. Описание: Получает количество элементов структуры |
|||
2
Bobroff
31.08.06
✎
16:29
|
(1) - количество не предлагать - не работает...
|
|||
3
Bobroff
31.08.06
✎
16:30
|
написал вот так
ОтборПоТекущемуВрачу = Новый Структура("Врач",Ссылка); ПоследнееМестоРаботыВрача=РегистрыСведений.ТрудоваяДеятельностьВрачей.ПолучитьПоследнее(,ОтборПоТекущемуВрачу); Если ПоследнееМестоРаботыВрача.Количество()=0 Тогда Если ЭтоНовый() Тогда Записать(); КонецЕсли; НоваяЗапись=РегистрыСведений.ТрудоваяДеятельностьВрачей.СоздатьМенеджерЗаписи(); НоваяЗапись.Врач=Ссылка; НоваяЗапись.Период=РабочаяДата; НоваяЗапись.МестоРаботы=Справочники.МедицинскиеУчреждения.НайтиПоКоду(1); НоваяЗапись.Отделение=Справочники.ОтделенияМедицинскихУчреждений.НайтиПоКоду(1); НоваяЗапись.Должность=Справочники.ДолжностиВрачей.НайтиПоКоду(1); НоваяЗапись.МедицинскийПредставитель=Справочники.МедицинскиеПредставители.НайтиПоКоду(1); НоваяЗапись.Записать(); ЭлементыФормы.ТрудоваяДеятельность.Значение.Отбор.Врач.Установить(Ссылка); КонецЕсли; Если в ПоследнееМестоРаботыВрача нет записей, то ПоследнееМестоРаботыВрача.Количество()=0 не ловиться... |
|||
4
Scooter
31.08.06
✎
16:32
|
(2) чё значит не работает
|
|||
5
Bobroff
31.08.06
✎
16:34
|
(4) - если возвращаеться пустая структура, то код после ПоследнееМестоРаботыВрача.Количество()=0 не выполняеться
|
|||
6
airyashov
31.08.06
✎
16:39
|
а что содержит ПоследнееМестоРаботыВрача.Количество()
|
|||
7
Bobroff
31.08.06
✎
16:41
|
(6) - выдаёт 4 - это количество полей структуры
|
|||
8
airyashov
31.08.06
✎
16:42
|
(7) так значение в поле структуры проверить проше на путоту
|
|||
9
Bobroff
31.08.06
✎
16:43
|
Вообщем сне надо определять, есть ли в ПоследнееМестоРаботыВрача=РегистрыСведений.ТрудоваяДеятельностьВрачей.ПолучитьПоследнее(,ОтборПоТекущемуВрачу) хоть одно значение, если нет, то добавлять...
|
|||
10
Bobroff
31.08.06
✎
16:44
|
(8) - хочеть как-то попроще, т.к. надо будет проверять все поля..
|
|||
11
airyashov
31.08.06
✎
16:47
|
советую посмотреть значение полей в структуре в разных случаях
|
|||
12
Scooter
31.08.06
✎
16:52
|
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
ПолучитьПоследнее (GetLast) Возвращаемое значение: Тип: Структура. Возвращает структуру, содержащую значения ресурсов. Скорее всего у тебя возвращается структура со значениями NULL |
|||
13
Ыуув
31.08.06
✎
16:53
|
Пиши через запрос.
Что-то типа: Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ПоследнееМестоРаботыВрача.Период, | ПоследнееМестоРаботыВрача.Регистратор, | ПоследнееМестоРаботыВрача.НомерСтроки, | ПоследнееМестоРаботыВрача.Активность, | ПоследнееМестоРаботыВрача.Врач, | ПоследнееМестоРаботыВрача.МестоРаботы |ИЗ | РегистрСведений.ПоследнееМестоРаботыВрача.СрезПоследних(,Врач=&Врач) КАК ПоследнееМестоРаботыВрачаСрезПоследних"; Запрос.УстановитьПараметр("Врач",Ссылка); Результат = Запрос.Выполнить; Если Результат.Пустой() Тогда ....... |
|||
14
Bobroff
31.08.06
✎
16:53
|
(12) - наверное да
|
|||
15
Bobroff
31.08.06
✎
16:56
|
(13) -да, думаю это более правильный вариант...
|
|||
16
Aldour
31.08.06
✎
17:43
|
а что ЗначениеНеЗаполнено уже отменили?
|
|||
17
Bobroff
31.08.06
✎
17:45
|
(16) - спасибо, но я уже по другому сделал... в следующий раз, вспомню и этот вариант...
|
|||
18
Ыуув
31.08.06
✎
17:46
|
(16) Дополнительный вызов функции.... в данной ситуации не обязательный..
плюс не факт, что она есть в этой конфе. |
|||
19
Bobroff
31.08.06
✎
17:47
|
(18) - у меня в конфе есть... я УТ дорабатываю...
|
|||
20
Aldour
31.08.06
✎
18:30
|
(18) Значит надо перенести.
Можно сделать Если ПроверяемоеЗначение = Новый Структура() Тогда // Это новая структура КонецЕсли |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |