Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Почему создаётся объект плана обмена? Непонятно / 24 сообщений из 24, страница 1 из 1
03.12.2012, 14:07
    #38062560
Taekwonder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
Здравствуйте, есть такой код для выгрузки изменённых данных. Код находится в Модуле объекта плана обменов.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
&НаСервере
Процедура ВыгрузитьЗарегистрированные() Экспорт
	ВыполненУспешно = Истина;
	
	Попытка
		XML = Интерфейс.СоздатьXML(Интерфейс.ТипСообщения.Зарегистрированные);
		СсылкаНаТекущий = ЭтотОбъект.Ссылка;
		Сообщить("Ссылка получена");
		//Создать выгрузку изменённых данных
		Сообщение = ПланыОбмена.СоздатьЗаписьСообщения();
		Сообщение.НачатьЗапись(XML,СсылкаНаТекущий);
		
		//Начнём запись самих данных
		НаборДанных = ПланыОбмена.ВыбратьИзменения(Сообщение.Получатель, Сообщение.НомерСообщения); 
		Пока НаборДанных.Следующий() Цикл
			Данные = НаборДанных.Получить();
		    ЗаписатьXML(XML, Данные);
		КонецЦикла;
		
		Сообщение.ЗакончитьЗапись();
		
	Исключение
		ВыполненУспешно = Ложь;
		Обработки.ИнтерфейсОбмена.УстановитьСообщение(ЭтотОбъект, ОписаниеОшибки());
	КонецПопытки;	
	
КонецПроцедуры
........................................................................
........................................................................
//Конструктор объекта. Создаются и заполняются начальные свойства объекта.
Процедура Конструктор()
	Сообщить("Запущен конструктор ОбменСФилиалами");
	
	Интерфейс = Обработки.ИнтерфейсОбмена.Создать();
	
	Интерфейс.УстановитьОбъектОбмена(ЭтотОбъект); //Жаль нет инкапсуляции
	
	УзелВладельца = ПланыОбмена.ОбменСФилиалами.ЭтотУзел();
	
	UseTree = False;
	
	//Сформирую таблицу пустых значений
		
	ПустыеЗначения = ЗаполнитьПустыеЗначения();
	Коллизии = Новый ТаблицаЗначений;
	ЗаменаСсылок = Новый ТаблицаЗначений;
	
КонецПроцедуры	

Конструктор();


1С 8.2.15.268 Работает в тонком клиенте (УТ11) На строке:
Код: vbnet
1.
Сообщение.НачатьЗапись(XML,СсылкаНаТекущий);


Запускается конструктор. То есть создается экземпляр объекта ПланОбмена. Почему? Очень интересно, кто что знает? Поделитесь.
...
Рейтинг: 0 / 0
04.12.2012, 02:40
    #38063612
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
Интересно и в каком месте ты увидел что создается экземпляр объекта ПланОбмена? Если тебя смущает процедура Конструктор(), то можно её обозвать по другому.
...
Рейтинг: 0 / 0
04.12.2012, 10:38
    #38063843
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,
Интересно и в каком месте ты увидел что создается экземпляр объекта ПланОбмена
Если выполняется конструктор, вызов которого находится в модуле объекта вне процедур, значит создается новый объект. А почему создается, хз. Если в начатьЗапись передается ссылка на объект, возможно внутри процедуры требуется именно объект, поэтому он создается из переданной ссылки. Но это только наивное предположение.
...
Рейтинг: 0 / 0
04.12.2012, 11:30
    #38063965
Taekwonder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
javapeckerSashaM,
Интересно и в каком месте ты увидел что создается экземпляр объекта ПланОбмена
Если выполняется конструктор, вызов которого находится в модуле объекта вне процедур, значит создается новый объект. А почему создается, хз. Если в начатьЗапись передается ссылка на объект, возможно внутри процедуры требуется именно объект, поэтому он создается из переданной ссылки. Но это только наивное предположение.
Вот вот(((
...
Рейтинг: 0 / 0
05.12.2012, 04:10
    #38065453
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
Естественно объект создается при старте конфигурации, как и все другие объекты из планы обмена, т.к. скорее всего через этот объект идет регистрация измененных данных. Скорее всего 1С в любом случае создает данные объекты, так же как она создает и менеджеры ( справочников, документов и т.д. ).
...
Рейтинг: 0 / 0
05.12.2012, 10:52
    #38065703
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,

при чем тут старт конфигурации? посмотрите в код
...
Рейтинг: 0 / 0
05.12.2012, 11:04
    #38065721
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
Ткните пальцем где вы в коде увидели создание экземпляра объекта ПланОбмена?
...
Рейтинг: 0 / 0
05.12.2012, 11:08
    #38065735
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,

вы издеваетесь?
...
Рейтинг: 0 / 0
05.12.2012, 11:09
    #38065738
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,

1С 8.2.15.268 Работает в тонком клиенте (УТ11) На строке:
Сообщение.НачатьЗапись(XML,СсылкаНаТекущий);

Запускается конструктор. То есть создается экземпляр объекта ПланОбмена. Почему? Очень интересно, кто что знает? Поделитесь.
...
Рейтинг: 0 / 0
05.12.2012, 13:47
    #38066196
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
javapecker,

Для эксперимента выполните два раза
Код: sql
1.
Сообщение.НачатьЗапись(XML,СсылкаНаТекущий);


Возможно это просто отложенная инициализация плана обмена была, а во втором вызове модуль объекта не сработает.
...
Рейтинг: 0 / 0
05.12.2012, 14:32
    #38066290
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,
Если вы заметили, процедура вызывается из уже созданного и инициализированного плана обмена. Что там отложено? И причем тут второй раз? мы говорим про первый. Если бы был кэш, в котором лежали объекты, план обмена не создавался бы и в первый раз при вызове записи.
...
Рейтинг: 0 / 0
05.12.2012, 15:09
    #38066363
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
javapeckerSashaM,
Если вы заметили, процедура вызывается из уже созданного и инициализированного плана обмена.
С чего вы взяли что строка
Код: sql
1.
Сообщение = ПланыОбмена.СоздатьЗаписьСообщения();

создаёт объект ПланОбмена и его инициализирует? Может это статическая функция объекта, которая просто выделяет память для последующей записи данных.
...
Рейтинг: 0 / 0
05.12.2012, 15:18
    #38066381
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,
С чего вы взяли что строка
Сообщение = ПланыОбмена.СоздатьЗаписьСообщения();
создаёт объект ПланОбмена и его инициализирует?
Ни с чего я не брал, и такого не говорил. Я сказал:Если вы заметили, процедура вызывается из уже созданного и инициализированного плана обмена Имея ввиду, что процедура Сообщение.НачатьЗапись(XML,СсылкаНаТекущий) вызывается из модуля объекта уже созданного экзепляра плана обмена, внутри процедуры ВыгрузитьЗарегистрированные(). Зачем и почему вы приплели сюда СоздатьЗаписьСообщения() я не понимаю.
...
Рейтинг: 0 / 0
05.12.2012, 15:21
    #38066386
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
Ну хорошо на эта строка ни о чём не говорит
Код: sql
1.
&НаСервере
...
Рейтинг: 0 / 0
05.12.2012, 15:24
    #38066391
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,

в контексте темы ни о чем не говорит. Модуль объекта и так выполняется на сервере.
...
Рейтинг: 0 / 0
05.12.2012, 15:36
    #38066418
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
javapecker,

Хорошо допустим с тонкого клиента вызывается процедура
Код: sql
1.
ПланыОбмена.ВыгрузитьЗарегистрированные() 


С чего вы взяли что объект был инициализирован до строчки
Код: sql
1.
Сообщение.НачатьЗапись(XML,СсылкаНаТекущий);

?
...
Рейтинг: 0 / 0
05.12.2012, 16:07
    #38066483
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,
Хорошо допустим с тонкого клиента вызывается процедура
ПланыОбмена.ВыгрузитьЗарегистрированные()
Не допустим. ВыгрузитьЗарегистрированные() находится в модуле объекта, а не менеджера. А чтобы вызвать процедуру модуля объекта, нужно этот объект для начала создать.
...
Рейтинг: 0 / 0
06.12.2012, 02:26
    #38067186
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
javapeckerНе допустим. ВыгрузитьЗарегистрированные() находится в модуле объекта, а не менеджера. А чтобы вызвать процедуру модуля объекта, нужно этот объект для начала создать.
Это понятно что объект создан. Но где уверенность что была до этой строчки его инициализация? Да и если была почему у вас такая уверенность что это новый объект, а не повторная к примеру инициализация?
...
Рейтинг: 0 / 0
06.12.2012, 10:07
    #38067388
Taekwonder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaMjavapeckerНе допустим. ВыгрузитьЗарегистрированные() находится в модуле объекта, а не менеджера. А чтобы вызвать процедуру модуля объекта, нужно этот объект для начала создать.
Это понятно что объект создан. Но где уверенность что была до этой строчки его инициализация? Да и если была почему у вас такая уверенность что это новый объект, а не повторная к примеру инициализация?
А что есть инициализация...??? Это вроде и есть создание объекта

С чего вы взяли что объект был инициализирован до строчки Сообщение.НачатьЗапись(XML,СсылкаНаТекущий);
?

Если бы объект не был инициализирован то ничего бы не выполнялось. Так как это не менеджер, оно же в чистом ООП Статик Метод (если не ошибаюсь)
...
Рейтинг: 0 / 0
06.12.2012, 10:23
    #38067412
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
Создание объекта - выделение памяти под него не означает автоматической его инициализации, т.е. выполнение строчки кода Конструктор(); В отложенной инициализации эта строчка будет запущена лишь тогда когда вызываемый метод или инициализация переменной из вне происходит. По этому этот кусок кода нужно просто проверить на то а была ли инициализация плана обмена ранее.
...
Рейтинг: 0 / 0
06.12.2012, 10:40
    #38067437
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,
тут ветка по 1С, какая отложенная инициализация? где тут выделение памяти?
В отложенной инициализации эта строчка будет запущена лишь тогда когда вызываемый метод или инициализация переменной из вне происходит Где вы этого набрались? Что такое по вашему вообще отложенная инициализация? И главное, какое это отношение имеет к теме?
...
Рейтинг: 0 / 0
06.12.2012, 10:52
    #38067465
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,

Написано же, раз 5 уже, что конструктор выполняется два раза.
...
Рейтинг: 0 / 0
06.12.2012, 11:08
    #38067496
SashaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
javapeckerНаписано же, раз 5 уже, что конструктор выполняется два раза.
Вы это экспериментально проверили?
Если есть возможность дописать в Конструктор() выгрузку "Ссылка" в файл для последующего сравнения тогда можно точно определитель что объекты создаются разные.
...
Рейтинг: 0 / 0
06.12.2012, 11:40
    #38067570
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему создаётся объект плана обмена? Непонятно
SashaM,
Вы это экспериментально проверили?
//Конструктор объекта. Создаются и заполняются начальные свойства объекта.
Процедура Конструктор()
Сообщить("Запущен конструктор ОбменСФилиалами");

Если есть возможность дописать в Конструктор() выгрузку "Ссылка" в файл для последующего сравнения тогда можно точно определитель что объекты создаются разные. Если их два, то они уже разные. Ссылка не идентифицирует объект в памяти, она идентифицирует сущность в базе данных.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Почему создаётся объект плана обмена? Непонятно / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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