Форум ДИЦ

Пользовательский и Дилерский форум ДИЦ
Текущее время: Ср дек 13, 2017 1:08 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: SELF в расширениях
СообщениеДобавлено: Пн фев 27, 2017 4:51 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
Есть стандартный бланк, в нем используется SELF. Когда пишу SELF в расширении бланка, он его не понимает и на него ругается. Расширение extends. Как сделать Self понятным в расширении?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пн фев 27, 2017 7:21 pm 
Не в сети

Зарегистрирован: Вт мар 30, 2004 12:30 pm
Сообщения: 4753
Откуда: Москва, Кустарь-одиночка с мотором
А можно фрагмент кода, на который ругается? И текст ругательства?

Кстати, если Вы расширяете бланк (EXTENDS), то Self указывает на экземпляр расширяемого бланка

_________________
Андрей Булетов, Москва
PS Не стесняйтесь, поправьте меня, если я не прав!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Вт фев 28, 2017 12:51 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
extends УчетТМЦ.Документы.УчетТМЦ.редДвижениеТМЦ "РасшредДвижениеТМЦ1";

Import СИС2 Classes Константы, Функции, ФункцииДокумента, СтроковыеФункции;
Import Базовый Classes Функции, Пересчет;
Import Первичка Classes Константы, Нумератор, Переменные, Функции, ФункцииДокументов, Библио;

Import УчетТМЦ Classes Документы.УчетТМЦ.интДвижениеТМЦ,Библиотеки.ОбщийИнтерфейс,Константы, Функции;

InObject public

proc ОбработкаВидимостиОбъектов;
var i :Integer;
var Value :Logical;
var локТипДокумента :integer;

proc ПоказатьКолонкуДопРасх(Start :Integer; EndCol :Integer; Value :Logical);
var i :Integer;

for i = Start .. EndCol do
секДопРасхПозиции.Column[i]. Visible = Value;
секДопРасхШапка. Column[i]. Visible = Value;
end;
секДопРасхПозиции.Column[17].Printed = false;
end;

inherited ОбработкаВидимостиОбъектов;

Template.BeginModify;
try
локТипДокумента = Интерфейс.ТипДокумента;

if ТипСоб = 11 then
ОтНа = "по состоянию на";
стлбОтНа.Width = 28;
Template.HelpContext = 'БухУчет.Бухгалтерия.Бухгалтерский учет ТМЦ.Ведение оперативного учета ТМЦ.Инвентаризация';
else
стлбОтНа.Width = 10;
ОтНа = "от";
Template.HelpContext = 'БухУчет.Бухгалтерия.Бухгалтерский учет ТМЦ.Ведение оперативного учета ТМЦ.Заполнение операционного документа';
end;
--далее код бланка до строки на которую ругается:
клВалюта_Суммы. Enabled = УчетДолгов<>1 and not ПолучитьТолькоДляПросмотра(Self);
--а вот и сообщение об ошибке:
Значение типа "МойПроект.Расширения.УчетТМЦ.Документы.УчетТМЦ.РасшредДвижениеТМЦ1" используется как "СИС2.БазовыйБланкРедактор"


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Вт фев 28, 2017 12:54 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
Buletov писал(а):
Кстати, если Вы расширяете бланк (EXTENDS), то Self указывает на экземпляр расширяемого бланка

Я надеялся что так и будет, но в моем случае этого не происходит. Отсюда и вопрос что не так и где подкрутить?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Ср мар 01, 2017 6:20 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
Не воспроизводиться? UP!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Ср мар 01, 2017 8:01 pm 
Не в сети

Зарегистрирован: Вт мар 30, 2004 12:30 pm
Сообщения: 4753
Откуда: Москва, Кустарь-одиночка с мотором
System писал(а):
--а вот и сообщение об ошибке:
Значение типа "МойПроект.Расширения.УчетТМЦ.Документы.УчетТМЦ.РасшредДвижениеТМЦ1" используется как "СИС2.БазовыйБланкРедактор"

Если нажать Ctrl+ЛКМ на слове ПолучитьТолькоДляПросмотра, то попадёте в код, где этот метод описан
И там увидите (если у Вас есть соответствующая лицензия, конечно), что в этом методе написано так:
func ПолучитьТолькоДляПросмотра (aBlankForm :СИС2.БазовыйБланкРедактор) :Logical;
Как видите, класс передаваемого параметра определён жёстко - что и показано в сообщении об ошибке

Похоже, что Вы пытаетесь использовать метод ПолучитьТолькоДляПросмотра не по его назначению...

PS ЛКМ - Левая Кнопка Мыши

_________________
Андрей Булетов, Москва
PS Не стесняйтесь, поправьте меня, если я не прав!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Ср мар 01, 2017 8:14 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
Попробуйте у себя перекрыть процедуру ОбработкаВидимостиОбъектов из бланка редДвижениеТМЦ
Скопируйте ее в свой бланк и попробуйте откомпилировать.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Чт мар 02, 2017 9:17 pm 
Не в сети

Зарегистрирован: Вт мар 30, 2004 12:30 pm
Сообщения: 4753
Откуда: Москва, Кустарь-одиночка с мотором
System писал(а):
Попробуйте у себя перекрыть процедуру ОбработкаВидимостиОбъектов из бланка редДвижениеТМЦ
Скопируйте ее в свой бланк и попробуйте откомпилировать.

Не буду спрашивать, зачем Вам нужен именно этот метод
Но намекаю: в своей копии процедуры закомментируйте вызовы мешающего Вам метода (5 мест)
-- and not ПолучитьТолькоДляПросмотра(Self);
Может, лично Вам он и не нужен ;)

_________________
Андрей Булетов, Москва
PS Не стесняйтесь, поправьте меня, если я не прав!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пт мар 03, 2017 3:49 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
Buletov писал(а):
System писал(а):
Попробуйте у себя перекрыть процедуру ОбработкаВидимостиОбъектов из бланка редДвижениеТМЦ
Скопируйте ее в свой бланк и попробуйте откомпилировать.

Не буду спрашивать, зачем Вам нужен именно этот метод
Но намекаю: в своей копии процедуры закомментируйте вызовы мешающего Вам метода (5 мест)
-- and not ПолучитьТолькоДляПросмотра(Self);
Может, лично Вам он и не нужен ;)

Спасибо за совет. Но в целом я хотел бы узнать, чем вызвана такая ошибка и что я делаю неправильно. Прошу ответа разработчиков.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пн мар 06, 2017 2:24 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
UP!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пн мар 06, 2017 4:20 pm 
Не в сети

Зарегистрирован: Пт июн 29, 2012 12:18 am
Сообщения: 382
Откуда: Москва
Вы все делаете правильно. В 9.5 версии Self в расширениях поломался, в 9.4 - работает (я проверил).

_________________
ТБ.Бюджет


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пн мар 06, 2017 5:22 pm 
Не в сети

Зарегистрирован: Пт июн 29, 2012 12:18 am
Сообщения: 382
Откуда: Москва
Не пропускает именно компилятор, потому что под отладчиком тип объекта возвращаемый через Self - верный.
А компилятор можно обойти следующим читом:

код
Код:
клВалюта_Суммы. Enabled = УчетДолгов<>1 and not ПолучитьТолькоДляПросмотра(Self);

заменить на
Код:
клВалюта_Суммы. Enabled = УчетДолгов<>1 and not Evaluate("ПолучитьТолькоДляПросмотра(Self)");

или даже так
Код:
клВалюта_Суммы. Enabled = УчетДолгов<>1 and not ПолучитьТолькоДляПросмотра(Evaluate("Self"));


вот еще способ нашел
Код:
клВалюта_Суммы. Enabled = УчетДолгов<>1 and not ПолучитьТолькоДляПросмотра(Self as Variant);

_________________
ТБ.Бюджет


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пн мар 06, 2017 7:57 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
Спасибо попробую у себя как временное решение. Так как нужно менять стандартный код разработчика, а я то только свой дописать хотел. Надеюсь это поправят.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Пн мар 06, 2017 9:04 pm 
Не в сети

Зарегистрирован: Пт июн 29, 2012 12:18 am
Сообщения: 382
Откуда: Москва
Проблема серьезная! Большая просьба, донести её до разработчиков Студии.

_________________
ТБ.Бюджет


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SELF в расширениях
СообщениеДобавлено: Ср апр 19, 2017 6:03 pm 
Не в сети

Зарегистрирован: Вт фев 14, 2012 11:38 am
Сообщения: 754
UP!


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB