Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Непонятное поведение метода УстановитьКартинку() (число прочтений - 1926 )
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Непонятное поведение метода УстановитьКартинку()
22. Апреля 2008 :: 14:19
Печать  
Прикладываю отчет, в котором можно пронаблюдать поведение СТАНДАРТНОГО метода УстановитьКартинку() для объекта Картинка.

Этот метод работает в функции, вызываемой из объекта Картинка в таблице, но в любой другой процедуре модуля отчета не работает. Хотя объект Картинка я получаю и он глобален для данного модуля. Из-за такого поведения невозможно один раз вызвать ПолучитьСекцию(), чтобы потом с ней работать и дальше ее только выводить.  

Хотя можно использовать метод Загрузить(), он работает, но гараздо дольше выполняется (можно проверить в отладчике).

1С v7.7 релиз 27.

Или я что не так делаю?
  

ProbaKartinki.zip ( 9 KB | Загрузки )

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Непонятное поведение метода УстановитьКартинку
Ответ #1 - 22. Апреля 2008 :: 15:54
Печать  
Наверное, тут дело в деталях работы метода "УстановитьКартинку". Скорее всего, объект "Картинка" - обертка над некоторым служебным объектом. Метод "УстановитьКартинку" привязывает объект "Картинка" к ДРУГОМУ внутреннему объекту. А объект "Секция" содержит ссылку на старый объект. В результате, после вызова "УстановитьКартинку" методы "Загрузить" как бы перестают работать. А на самом деле они работают для другого объекта, а в таблицу выводится старый неинициализированный объект. Вот такой набор бесполезных предположений Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Непонятное поведение метода УстановитьКартинку
Ответ #2 - 22. Апреля 2008 :: 17:26
Печать  
Видимо, нужно использовать несколько секций - по числу картинок.
При этом картинку достаточно установить один раз - независимо от числа строк, в которых секция будет использоваться.

Ну, а если картинок много и их число сочетаний велико - то, наверное, не получится так оптимизировать.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать