powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Почему создаётся объект плана обмена? Непонятно
24 сообщений из 24, страница 1 из 1
Почему создаётся объект плана обмена? Непонятно
    #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
Почему создаётся объект плана обмена? Непонятно
    #38063612
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно и в каком месте ты увидел что создается экземпляр объекта ПланОбмена? Если тебя смущает процедура Конструктор(), то можно её обозвать по другому.
...
Рейтинг: 0 / 0
Почему создаётся объект плана обмена? Непонятно
    #38063843
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaM,
Интересно и в каком месте ты увидел что создается экземпляр объекта ПланОбмена
Если выполняется конструктор, вызов которого находится в модуле объекта вне процедур, значит создается новый объект. А почему создается, хз. Если в начатьЗапись передается ссылка на объект, возможно внутри процедуры требуется именно объект, поэтому он создается из переданной ссылки. Но это только наивное предположение.
...
Рейтинг: 0 / 0
Почему создаётся объект плана обмена? Непонятно
    #38063965
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerSashaM,
Интересно и в каком месте ты увидел что создается экземпляр объекта ПланОбмена
Если выполняется конструктор, вызов которого находится в модуле объекта вне процедур, значит создается новый объект. А почему создается, хз. Если в начатьЗапись передается ссылка на объект, возможно внутри процедуры требуется именно объект, поэтому он создается из переданной ссылки. Но это только наивное предположение.
Вот вот(((
...
Рейтинг: 0 / 0
Почему создаётся объект плана обмена? Непонятно
    #38065453
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естественно объект создается при старте конфигурации, как и все другие объекты из планы обмена, т.к. скорее всего через этот объект идет регистрация измененных данных. Скорее всего 1С в любом случае создает данные объекты, так же как она создает и менеджеры ( справочников, документов и т.д. ).
...
Рейтинг: 0 / 0
Почему создаётся объект плана обмена? Непонятно
    #38065703
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaM,

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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