Технические вопросы
7.x

Реестр записей раздела

Здравствуйте. Подскажите пожалуйста, ситуация такая: Создал объект для создания нового раздела( родитель базовый объект). В мастере разделов создал раздел "ТС" . Далее была создана деталь, в этой детали есть поле "ТС" (тип справочник) - ссылка на объект раздела. Добавляю деталь во вкладку(не важно куда), нажимаю добавить деталь, открывается форма добавления и поле "ТС" выглядит как справочник, но когда я на него нажимаю, то получаю пустую страницу.
Как я понимаю, то нужно для объекта раздела нужно создать схему или страницу? Я не сильно опытен в этом деле и если можно подскажите как это сделать.

Нравится

6 комментариев

Здравствуйте, Павел.

1) Рекомендуем Вам создать раздел через [Мастер разделов]
http://academy.terrasoft.ru/documents/?/docs/product/bpm%27online%20cus…

Далее, создать деталь:
http://academy.terrasoft.ru/documents/docs/product/bpm%27online%20custo…

2) Создать объект в конфигурации, унаследовать базовый объект
3) Через [мастер деталей] -создать деталь, выбрав созданный объект в первом пункте
4) Сохраните, без перехода на редактирование страницы детали
5) Зайдите в раздел [Справочники] , добавьте новый справочник, выбрав Ваш раздел
http://academy.terrasoft.ru/documents/docs/product/bpm'online%20sales/t…

6) Зайдите в созданный раздел, [мастер раздела] , добавьте деталь созданную на шаге № 3
7) Cохраните
8) Зайдите в ваш раздел, найдите деталь и настройте её, добавьте справочник созданный на шаге №5

Спасибо, Александр, что так быстро ответили, но что-то не работает или я не так понял.
Во первых зачем пункт 2?
По 1 пункту - если у меня уже есть созданный раздел и деталь, то нужно снова создать?
5 - создал справочник с объектом раздела "ТС". Когда жму наполнения, то отображает нормально.

мб меня не правильно поняли тк много лишнего)
коротко - нужно что бы в детали, во вкладке или ещё где то все объекты из раздела "ТС" можно вывести справочником. Сейчас если я делаю это, то поле справочника появляется, но при нажатии на него открывается картинка вот штука (snimok2.png), есть раздел продукты и вот у него словарем открывается нормально вот так (snimok.png)

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

Так же, приложите, пожалуйста, скриншот с "пустым" открытым справочником и консолью браузера.

вот с консолькой и кусок кода
[javascript]
var core = require("core");
core.setModuleDescriptor('CardModule', {path: "../../configuration/dd7bd5282557e5e7e4594abe18148617", css: ["CardModule"],
"messages": {
"LoadData": { "direction": "publish", "mode": "broadcast" },
"DetailInfo": { "direction": "subscribe", "mode": "broadcast" },
"GetHistoryState": { "direction": "publish", "mode": "ptp" },
"SaveDetails": { "direction": "publish", "mode": "ptp" },
"LookupInfo": { "direction": "subscribe", "mode": "ptp" },
"ResultSelectedRows": { "direction": "subscribe", "mode": "ptp" },
"OpenLookupPage": { "direction": "subscribe", "mode": "broadcast" },
"GetCardSchemaName": { "direction": "subscribe", "mode": "ptp" },
"ReplaceHistoryState": { "direction": "publish", "mode": "broadcast" },
"PushHistoryState": { "direction": "publish", "mode": "broadcast" },
"BackHistoryState": { "direction": "publish", "mode": "broadcast" },
"SaveRecord": { "direction": "subscribe", "mode": "broadcast" },
"GetRecordInfo": { "direction": "subscribe", "mode": "ptp" },
"RequestDetailItems": { "direction": "publish", "mode": "ptp" },
"GetDetailItems": { "direction": "subscribe", "mode": "ptp" },
"FindDuplicatesResult": { "direction": "subscribe", "mode": "broadcast" },
"GetPredefinedRecords": { "direction": "subscribe", "mode": "ptp" },
"ChangeRemindingsCounts": { "direction": "publish", "mode": "broadcast" },
"GetContextHelpId": { "direction": "subscribe", "mode": "ptp" },
"LookupPageInfo": { "direction": "publish", "mode": "ptp" },
"DoNotUseCommunication": { "direction": "subscribe", "mode": "ptp" },
"ShowLookupPage": { "direction": "subscribe", "mode": "ptp" },
"LookupResultSelected": { "direction": "publish", "mode": "ptp" },
"GetProcessExecData": { "direction": "publish", "mode": "ptp" },
"GetProcessExecDataCollection": { "direction": "publish", "mode": "ptp" },
"GetEntityName": { "direction": "subscribe", "mode": "ptp" },
"CardModuleEntityInfo": { "direction": "publish", "mode": "ptp" },
"OpenCardModule": { "direction": "subscribe", "mode": "ptp" },
"UpdateDetail": { "direction": "publish", "mode": "ptp" },
"OpenGridSettings": { "direction": "subscribe", "mode": "ptp" },
"CardModuleResponse": { "direction": "publish", "mode": "ptp" },
"ProcessExecDataChanged": { "direction": "publish", "mode": "ptp" },
"DetailChanged": { "direction": "subscribe", "mode": "broadcast" },
"LoadCustomModule": { "direction": "subscribe", "mode": "ptp" },
"UpdateCommentCounter": { "direction": "subscribe", "mode": "ptp" },
"GetAdditionalFilterValue": { "direction": "subscribe", "mode": "ptp" },
"DestroyCommentModule": { "direction": "publish", "mode": "ptp" },
"GetParentContainer": { "direction": "publish", "mode": "ptp" },
"IncomingPtp": { "direction": "subscribe", "mode": "ptp" },
"IncomingBroadcast": { "direction": "subscribe", "mode": "broadcast" },
"OutcomingPtp": { "direction": "publish", "mode": "ptp" },
"OutcomingBroadcast": { "direction": "publish", "mode": "broadcast" },
"GetEntityColumnValues": { "direction": "subscribe", "mode": "ptp" },
"ReloadDetail": { "direction": "publish", "mode": "ptp" },
"SetDetailReadOnly": { "direction": "publish", "mode": "ptp" },
"GetProcessEntryPointsData": { "direction": "publish", "mode": "ptp" },
"GetMapsConfig": { "direction": "subscribe", "mode": "ptp" },
"ColumnSelected": { "direction": "subscribe", "mode": "ptp" },
"GetStructureExplorerSchemaName": { "direction": "subscribe", "mode": "ptp" },
"StructureExplorerInfo": { "direction": "subscribe", "mode": "ptp" },
"GetIsDetailReadonly": { "direction": "subscribe", "mode": "ptp" },
"GetCardModuleSandboxId": { "direction": "subscribe", "mode": "ptp" },
"DetailSaved": { "direction": "subscribe", "mode": "ptp" },
"RefreshFiles": { "direction": "publish", "mode": "broadcast" },
"DestroyFilesModule": { "direction": "publish", "mode": "ptp" },
"FileDeleted": { "direction": "subscribe", "mode": "ptp" },
"RefreshWorkplace": { "direction": "publish", "mode": "ptp" },
"GetWidgetParameters": { "direction": "publish", "mode": "ptp" },
"PushWidgetParameters": { "direction": "publish", "mode": "ptp" },
"CardProccessModuleInfo": { "direction": "subscribe", "mode": "ptp" }
}});
core.setModuleDescriptor('ProcessProgressSpinnerImage', {path: "../../configuration/a1fa921decbb5aee03170d3b7bc1e92b"});
core.setModuleDescriptor('RightUtilities', {path: "../../configuration/c10b9dd2b99cd6a574464459291852c5"});
core.setModuleDescriptor('MaskHelper', {path: "../../configuration/27d32cf9403d46187b97829dd8728c00"});
core.setModuleDescriptor('LookupPageViewGenerator', {path: "../../configuration/07929e6cc749d51c88f646c68f210ee8"});
core.setModuleDescriptor('LookupPageViewModelGenerator', {path: "../../configuration/6e41c42262df83b8220fea5c27b8e8fb",
"messages": {
"GetGridSettingsInfo": { "direction": "subscribe", "mode": "ptp" }
}});
core.setModuleDescriptor('LookupPageResources', {path: "../../configuration/6b9d74cc8f03aec01bf47e0892f3c779", css: ["LookupPage"],
"messages": {
"LookupInfo": { "direction": "publish", "mode": "ptp" },
"ResultSelectedRows": { "direction": "publish", "mode": "ptp" },
"GetHistoryState": { "direction": "publish", "mode": "ptp" },
"ReplaceHistoryState": { "direction": "publish", "mode": "broadcast" },
"BackHistoryState": { "direction": "publish", "mode": "broadcast" },
"PushHistoryState": { "direction": "publish", "mode": "broadcast" },
"CardModuleEntityInfo": { "direction": "subscribe", "mode": "ptp" },
"MacrosInfo": { "direction": "subscribe", "mode": "ptp" },
"GridSettingsInfo": { "direction": "subscribe", "mode": "ptp" },
"GridSettingsChanged": { "direction": "subscribe", "mode": "ptp" },
"CardProccessModuleInfo": { "direction": "publish", "mode": "ptp" },
"CardModuleResponse": { "direction": "subscribe", "mode": "ptp" },
"OpenCard": { "direction": "publish", "mode": "ptp" },
"getCardInfo": { "direction": "subscribe", "mode": "ptp" },
"GetGridSettingsInfo": { "direction": "subscribe", "mode": "ptp" },
"UpdateDetail": { "direction": "subscribe", "mode": "ptp" }
}});
define('LookupPageResources', ['terrasoft'], function(Terrasoft) {
var localizableStrings={
SelectButtonCaption: 'а’б‹аБб€аАб‚бŒ',
CancelButtonCaption: 'аžб‚аМаЕаНаА',
ActionButtonCaption: 'а”аЕаЙбб‚аВаИб',
AddButtonCaption: 'а”аОаБаАаВаИб‚бŒ',
DeleteButtonCaption: 'аЃаДаАаЛаИб‚бŒ',
EditButtonCaption: 'а˜аЗаМаЕаНаИб‚бŒ',
CopyButtonCaption: 'аšаОаПаИб€аОаВаАб‚бŒ',
SelectedRecordsLabelCaption: 'а’б‹аБб€аАаНаО аЗаАаПаИбаЕаЙ',
SettingsColumnButtonCaption: 'ааАбб‚б€аОаЙаКаА аКаОаЛаОаНаОаК',
SearchButtonCaption: 'аŸаОаИбаК',
CountSelectedRecord: 'а’б‹аБб€аАаНаО аЗаАаПаИбаЕаЙ:',
CaptionLookupPage: 'а’б‹аБаОб€: ',
OnDeleteWarning: 'а’б‹ аДаЕаЙбб‚аВаИб‚аЕаЛбŒаНаО б…аОб‚аИб‚аЕ бƒаДаАаЛаИб‚бŒ аВб‹аДаЕаЛаЕаНаНб‹аЕ баЛаЕаМаЕаНб‚б‹?',
DependencyWarningMessage: 'а’б‹аБб€аАаНаНб‹аЕ баЛаЕаМаЕаНб‚б‹ бƒаДаАаЛаИб‚бŒ аНаЕаВаОаЗаМаОаЖаНаО, б‚аАаК аКаАаК аОаНаИ аИбаПаОаЛбŒаЗбƒбŽб‚бб аВ аДб€бƒаГаИб… аОаБбŠаЕаКб‚аАб….',
StartProcessButtonCaption: 'а—аАаПбƒбб‚аИб‚бŒ',
ShowProcessLogButtonCaption: 'а–бƒб€аНаАаЛ аПб€аОб†аЕббаОаВ'
};
var localizableImages={
'MenuButtonImage': {source: Terrasoft.ImageSources.SOURCE_CODE_SCHEMA, params: { schemaName: 'LookupPage', resourceItemName: 'MenuButtonImage' }}
};
return {localizableStrings:localizableStrings,localizableImages:localizableImages};
});
define("LookupPage", ["ext-base", "MaskHelper", "LookupPageViewGenerator", "LookupPageViewModelGenerator",
"LookupUtilities"],
function(Ext, MaskHelper, LookupPageViewGenerator, LookupPageViewModelGenerator, LookupUtilities) {

var lookupPage = Ext.define("Terrasoft.configuration.LookupPage", {
extend: "Terrasoft.BaseObject",
alternateClassName: "Terrasoft.LookupPage",

Ext: null,

sandbox: null,

Terrasoft: null,

/**
* аŸб€аИаЗаНаАаК б‚аОаГаО, б‡б‚аО аМаОаДбƒаЛбŒ аИаНб†аИаАаЛаИаЗаИб€бƒаЕб‚бб аАбаИаНб…б€аОаНаНаО
* @private
* @type {Boolean}
*/
isAsync: true,

/**
* аšаОаНб„аИаГ Lookup-аА
* @private
* @type {Object}
*/
lookupInfo: null,

/**
* аЁбб‹аЛаКаА аНаА ViewModel LookupPage-аА
* а˜аНаИб†аИаАаЛаИаЗаИб€бƒаЕб‚бб аПаЕб€аЕаД аОб‚б€аИбаОаВаКаОаЙ
* @private
* @type {Object}
*/
viewModel: null,

/**
* аЁбб‹аЛаКаА аНаА аКаОаНб‚аЕаЙаНаЕб€ аВ аКаОб‚аОб€аОаМ аБбƒаДаЕб‚ аОб‚б€аИбаОаВаАаН ModalBox.
* а˜аНаИб†аИаАаЛаИаЗаИб€бƒаЕб‚бб аПаЕб€аЕаД аОб‚б€аИбаОаВаКаОаЙ
* @private
* @type {Object}
*/
renderContainer: null,

/**
* аЄаЛаАаГ, аКаОб‚аОб€б‹аЙ аИаМаЕаЕб‚ аЗаНаАб‡аЕаНаИаЕ аЕбаЛаИ аМаОаДбƒаЛбŒ аБб‹аЛ аЗаАаГб€бƒаЖаЕаНаИ аИаЗ CardProcessModule
* @private
* @type {Boolean}
*/
processModuleFlag: false,

/**
* а˜аНаИб†аАаЛаИаЗаИб€бƒаЕб‚ аНаАб‡аАаЛбŒаНб‹аЕ аЗаНаАб‡аЕаНаИб аМаОаДбƒаЛб,
* аВ аЗаАаВаИбаИаМаОбб‚аИ аОб‚ б€аЕаЗбƒаЛбŒб‚аАб‚аА аПбƒаБаЛаИаКаАб†аИаИ баОаОаБб‰аЕаНаИб 'CardProccessModuleInfo'
* аМаОаДбƒаЛбŒ аИаНаИб†аИаАаЛаИаЗаИб€бƒаЕб‚бŒбб аДаЛб б€аАаБаОб‚б‹ аВ аМаОаДаАаЛбŒаНаОаМ аОаКаНаЕ аИаЛаИ аВ centerPanel
* @private
*/
init: function(callback, scope) {
callback = callback || function() {};
if (this.viewModel) {
callback.call(scope);
return;
}

this.lookupInfo = this.sandbox.publish("LookupInfo", null, [this.sandbox.id]);
this.processModuleFlag = this.sandbox.publish("CardProccessModuleInfo", null, [this.sandbox.id]);

this.initHistoryState();

this.getSchemaAndProfile(function(entitySchema, profile) {
if (this.isDestroyed) {
return;
}

this.lookupInfo.searchColumn = {
value: entitySchema.primaryDisplayColumn.name,
displayValue: entitySchema.primaryDisplayColumn.caption
};
this.lookupInfo.entitySchema = entitySchema;
this.lookupInfo.gridProfile = profile;

var viewModel = this.viewModel = this.generateViewModel();
viewModel.init();
if (this.lookupInfo.selectedValues) {
viewModel.set("RestoreSelectedData", this.lookupInfo.selectedValues);
}
if (profile &&
!((profile.captionsConfig && profile.listedColumnsConfig) || profile.tiledColumnsConfig)) {
var newProfile = viewModel.getDefaultProfile();
Terrasoft.utils.saveUserProfile(newProfile.key, newProfile, true, function(response) {
if (!response.success) {
return;
}
this.lookupInfo.gridProfile = newProfile;
viewModel.set("gridProfile", newProfile);

viewModel.updateSortColumnsCaptions();
viewModel.load();
callback.call(scope);
}, this);
} else {
viewModel.updateSortColumnsCaptions();
viewModel.load();
callback.call(scope);
}

});
},

/**
* а’б‹аПаОаЛаНбаЕб‚ аОб‚б€аИбаОаВаКбƒ аМаОаДбƒаЛб аВ аКаОаНб‚аЕаЙаНаЕб€
* @protected
* @param {Object} renderTo аКаОаНб‚аЕаЙаНаЕб€ аВ аКаОб‚аОб€б‹аЙ аБбƒаДаЕб‚ аОб‚б€аИбаОаВаАаН аМаОаДбƒаЛбŒ
*/
render: function(renderTo) {
this.renderContainer = renderTo.id;
this.renderLookupView(this.lookupInfo.entitySchema, this.lookupInfo.gridProfile);
},

generateViewModel: function() {
var viewModelConfig = LookupPageViewModelGenerator.generate(this.lookupInfo);
if (!this.lookupInfo.columnValue && this.lookupInfo.searchValue) {
viewModelConfig.values.searchData = this.lookupInfo.searchValue;
viewModelConfig.values.previousSearchData = this.lookupInfo.searchValue;
}
var viewModel = Ext.create("Terrasoft.BaseViewModel", viewModelConfig);
viewModel.Ext = this.Ext;
viewModel.sandbox = this.sandbox;
viewModel.Terrasoft = this.Terrasoft;

if (this.lookupInfo.updateViewModel) {
this.lookupInfo.updateViewModel.call(viewModel);
}
viewModel.initCaptionLookup();
viewModel.initHasActions();
viewModel.initLoadedColumns();
if (!Ext.isEmpty(this.lookupInfo.filterObjectPath)) {
viewModel.updateFilterByFilterObjectPath(this.lookupInfo.filters, this.lookupInfo.filterObjectPath);
}
if (this.lookupInfo.hideActions) {
viewModel.set("hasActions", false);
}
return viewModel;
},

initHistoryState: function() {
if (!this.processModuleFlag) {
return;
}
var state = this.sandbox.publish("GetHistoryState");
var currentHash = state.hash;
var currentState = state.state || {};
if (currentState.moduleId === this.sandbox.id) {
return;
}
this.sandbox.publish("ReplaceHistoryState", {
stateObj: {
moduleId: this.sandbox.id
},
pageTitle: null,
hash: currentHash.historyState,
silent: true
});
},

/**
* аŸаОаЛбƒб‡аАаЕб‚ бб…аЕаМбƒ аИ аНаАбб‚б€аОаЙаКаИ аПб€аОб„аИаЛб аДаЛб баПб€аАаВаОб‡аНаИаКаА
* @private
* @param {Function} callback б„бƒаНаКб†аИб аКаОб‚аОб€аАб аБбƒаДаЕб‚ аВб‹аПаОаЛаНаЕаНаА аПаО аОаКаОаНб‡аАаНаИаИ аЗаАаГб€бƒаЗаКаИ аВ аКаОаНб‚аЕаКбб‚аЕ баАаМаОаГаО аМаОаДбƒаЛб
*/
getSchemaAndProfile: function(callback) {
var entitySchemaName = this.lookupInfo.entitySchemaName;
this.sandbox.requireModuleDescriptors([entitySchemaName], function() {
var columnsSettingsProfileKey = "GridSettings_" + this.lookupInfo.entitySchemaName;
var me = this;
require([entitySchemaName, "profile!" + columnsSettingsProfileKey], function(entitySchema, profile) {
var fixedProfile = me.actualizeProfile(entitySchema, profile);
callback.call(me, entitySchema, fixedProfile);
});
}, this);
},

/**
* а’б‹аПаОаЛаНбаЕб‚ аОб‚б€аИбаОаВаКбƒ Lookup-аА аВ баОаОб‚аВаЕб‚бб‚аВаИаИ баО бб…аЕаМаОаЙ аИ аНаАбб‚б€аОаЙаКаОаЙ аПб€аОб„аИаЛб
* а”аЛб аПб€аОб†аЕбаОаВ аОб‚б€аИбаОаВб‹аВаАаЕб‚бб аНаА аВбаЕ аОаКаНаО, аДаЛб баПб€аАаВаОб‡аНаИаКаОаВ аВ modalBox
* @private
* @param {Object} schema EntitySchema аОаБбŒаЕаКб‚аА
* @param {Object} profile аНаАбб‚б€аОаЙаКаА аПб€аОб„аИаЛб
*/
renderLookupView: function(schema, profile) {
var configArgs = {};
configArgs.actionsMenuConfig = LookupPageViewGenerator.getActionsMenuConfig(schema.name);
configArgs.captionConfig = schema.columns[schema.primaryDisplayColumnName].caption;
configArgs.entitySchema = schema;
configArgs.isRunProcessPage = this.lookupInfo.isRunProcessPage;
configArgs.columnsSettingsProfile = profile;
Ext.apply(configArgs, this.lookupInfo);
var fixedViewConfig = LookupPageViewGenerator.generateFixed(configArgs);
var fixedView = Ext.create(fixedViewConfig.className || "Terrasoft.Container", fixedViewConfig);
fixedView.bind(this.viewModel);
fixedView.render(LookupUtilities.GetFixedHeaderContainer());
var gridViewConfig = LookupPageViewGenerator.generateGrid(configArgs);
var gridView = Ext.create(gridViewConfig.className || "Terrasoft.Container", gridViewConfig);
gridView.bind(this.viewModel);
gridView.render(LookupUtilities.GetGridContainer());
if (this.processModuleFlag) {
this.loadCommandLine();
}
MaskHelper.HideBodyMask();
},

/**
* аЃбб‚аАаНаАаВаЛаИаВаАаЕб‚ б„аОаКбƒб аНаА бб‚б€аОаКаЕ аПаОаИбаКаА аПаОбаЛаЕ аОб‚б€аИбаОаВаКаИ
* @private
*/
loadCommandLine: function() {
var commandLineContainer = Ext.get("module-command-line");
if (!this.lookupInfo.commandLineEnabled || Ext.isEmpty(commandLineContainer)) {
return;
}
this.sandbox.loadModule("CommandLineModule", {
renderTo: commandLineContainer
});
},

actualizeProfile: function(entitySchema, profile) {
if (profile.listedConfig) {
var viewGenerator = Ext.create("Terrasoft.ViewGenerator");
viewGenerator.viewModelClass = this;
this.entitySchema = entitySchema;
this.columns = entitySchema.columns;
var newProfile = {
listedConfig: Ext.decode(profile.listedConfig),
tiledConfig: Ext.decode(profile.tiledConfig),
isTiled: profile.type === "tiled",
type: profile.type,
key: profile.key
};
viewGenerator.actualizeGridConfig(newProfile);
this.clearLinks(newProfile);
return {
isTiled: newProfile.isTiled,
key: newProfile.key,
listedColumnsConfig: Ext.encode(newProfile.listedConfig.columnsConfig),
captionsConfig: Ext.encode(newProfile.listedConfig.captionsConfig),
tiledColumnsConfig: Ext.encode(newProfile.tiledConfig.columnsConfig),
type: newProfile.type
};
}
return profile;
},

clearLinks: function(profile) {
Terrasoft.each(profile.listedConfig.columnsConfig, function(item) {
if (item.hasOwnProperty("link")) {
delete item.link;
}
}, this);
Terrasoft.each(profile.tiledConfig.columnsConfig, function(rowItem) {
Terrasoft.each(rowItem, function(item) {
if (item.hasOwnProperty("link")) {
delete item.link;
}
}, this);
}, this);
}
});

return lookupPage;
});

[/javascript]

Судя по ошибке в консоли- Вы по-прежнему используете вручную созданный объект раздела.
ошибка нам сообщает: primaryDisplayColumn is undefined.- не определена первичная колонка в объекте для отображения.

В таком случае, откройте Ваш объект- и заполните значение: "Отображаемое значение" на любую текстовую колонку существующую в объекте. Не забудьте отобразить "все" свойства объекта.

"Александр Зубков" написал:

Судя по ошибке в консоли- Вы по-прежнему используете вручную созданный объект раздела.

ошибка нам сообщает: primaryDisplayColumn is undefined.- не определена первичная колонка в объекте для отображения.

В таком случае, откройте Ваш объект- и заполните значение: "Отображаемое значение" на любую текстовую колонку существующую в объекте. Не забудьте отобразить "все" свойства объекта.


Спасибо огромное. Это видать я сам накосячил тк удалил поле которое создалось по умолчанию когда объект создался (я вспомнил , что объект создался при создании раздела через конструктор).

Показать все комментарии