powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Значения по умолчанию, конструктор
5 сообщений из 5, страница 1 из 1
Значения по умолчанию, конструктор
    #37319122
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Звиняйте за глупый вопрос, не нашёл поиском.

Можно ли определить для классов каше конструктор по умолчанию? Или если нет, то как это обойти?
Конкретный пример:
Есть класс ClassDocument, у него есть поле:

Код: plaintext
Property DocType As ClassDocType [ Required ];

От класса ClassDocument наследуется класс ClassBill. У всех экземпляров класса ClassBill поле DocType нужно сделать равным одному и тому же значению. Хорошо бы было это сделать в конструкторе, но как его определить в каше не понимаю.
...
Рейтинг: 0 / 0
Значения по умолчанию, конструктор
    #37319132
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть
Код: plaintext
Property EDate As %Date [ InitialExpression = {+$h} ];

есть
Код: plaintext
Method %OnNew(init As %Library.String = "") As %Status
...
Рейтинг: 0 / 0
Значения по умолчанию, конструктор
    #37319166
Vixler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, спасибо.

А вот ещё вопрос, создал я конструктор:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Method %OnNew(init As %Library.String = "") As %Status
{
	
	s ..DocType = ##class(DocType).GetDocTypeByCode("ClassBill")
	if ..DocType '= "" 
	{
		quit $$$OK
	}
	else
	{
		quit $$$ERROR("Не удалось создать объект: отсутствует тип документа")
	}
}

Потом либо через терминал, либо через C# создаю экземпляр класса. Как отловить ошибку, если тип документа не найден? То есть, код
Код: plaintext
1.
s a = ##class(ClassDocument).%New()
Возвращает не статус, а экземпляр, что логично, а как получить статус? Или вызвать исключение? В параметре статус не передать
...
Рейтинг: 0 / 0
Значения по умолчанию, конструктор
    #37319209
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VixlerПотом либо через терминал, либо через C# создаю экземпляр класса. Как отловить ошибку, если тип документа не найден? То есть, код
Код: plaintext
1.
s a = ##class(ClassDocument).%New()
Возвращает не статус, а экземпляр, что логично, а как получить статус? Или вызвать исключение? В параметре статус не передать
Если объект невозможно создать, то %New() вернет $$$NULLOREF (пустую строку), а в переменной %objlasterror будет текст, который Вы указали в макросе $$$ERROR.
...
Рейтинг: 0 / 0
Значения по умолчанию, конструктор
    #37319589
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
q:'$IsObject(..DocType)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Значения по умолчанию, конструктор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]