Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Подскжаите плз по управляемым формам (http://forums.kuban.ru/f1040/podskzhaite_plz_po_upravlyaemym_formam-2011438.html)

megabax 31.12.2011 11:44

Подскжаите плз по управляемым формам
 
Всех с наступающим. И подскжите плз, по 8.2.
Делаю так:
&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)
если Элементы.ВидОперации=СнятиеСБанка() тогда
Элементы.Получатель=БанковскиеСчетаПустаяСсылка();
иначе
Элементы.Получатель=КонтрагентыСчетаПустаяСсылка();
конецесли;
КонецПроцедуры

&НаСервере
функция СнятиеСБанка()
возврат Перечисления.ВидыОперацийПКО.СнятиеСБанка;
конецфункции

функция БанковскиеСчетаПустаяСсылка()
возврат Справочники.БанковскиеСчета.ПустаяСсылка();
конецфункции

функция КонтрагентыСчетаПустаяСсылка()
возврат Справочники.Контрагенты.ПустаяСсылка();
конецфункции

выдает
{Документ.ПКО.Форма.ФормаДокументаУпр.Форма(7)**: Поле объекта недоступно для записи (Получатель)
Элементы.Получатель=КонтрагентыСчетаПустаяСсылка();
подскажите плз, как лечить

VZ 31.12.2011 12:55

[em].Значение[/em] - не?

P.S. И как часто используешь функцию
[em]функция БанковскиеСчетаПустаяСсылка()
возврат Справочники.БанковскиеСчета.ПустаяСсылка();
конецфункции[/em]
:D

Reaper 31.12.2011 13:25

(1) Ты разницы между реквизитами прикладных объектов и элементами форм вообще не понимаешь, да?
(2) Не, надо было ко объекту обращаться.

megabax 31.12.2011 13:26

2, ну вообще, я только только занялся изученим управляемых форм 8.2, и сразу столкнулся с тем, что типичные консрукции 8.1 не работают... Вот и приходиться на начальном этапе изучения в примерах присать такие функции как БанковскиеСчетаПустаяСсылка()

megabax 31.12.2011 13:33

3, А!!! Спасибо, как же я сразу не сообразил... Щас попробую

Reaper 31.12.2011 13:35

Так и на 8.1 так делать было совсем не нада...

Reaper 31.12.2011 13:35

Кстати на клиенте успешно фунциклирует "ПредопределенноеЗначение" а то ты там счас понапишешь...

megabax 31.12.2011 13:41

3, спасибо получилось.
Еще подскажите плз, как мне избаться вот от атких вот функций:
&НаСервере
функция СнятиеСБанка()
возврат Перечисления.ВидыОперацийПКО.СнятиеСБанка;
конецфункции

функция БанковскиеСчетаПустаяСсылка()
возврат Справочники.БанковскиеСчета.ПустаяСсылка();
конецфункции

функция КонтрагентыСчетаПустаяСсылка()
возврат Справочники.Контрагенты.ПустаяСсылка();
конецфункции

попробовал вот так
&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)
если Объект.ВидОперации=СнятиеСБанка() тогда
//Объект.Получатель=БанковскиеСчетаПустаяСсылка();
&НаСервере
Объект.Получатель=Справочники.БанковскиеСчета.ПустаяСсылка();
&НаКлиенте
иначе
Объект.Получатель=КонтрагентыСчетаПустаяСсылка();
конецесли;
КонецПроцедуры

выдает ошибку

megabax 31.12.2011 13:42

6, почему?
на 8.1 я бы сделал так:
Процедура ВидОперацииПриИзменении(Элемент)
если ВидОперации=Перечисления.ВидыОперацийПКО.СнятиеСБанка тогда
Получатель=Справочники.БанковскиеСчета.ПустаяСсылка();
иначе
Получатель=Справочники.Контрагенты.ПустаяСсылка();
конецесли;
КонецПроцедуры

Разве это неправильно, если стоит задача менять тип объекта при измении реквизита?

megabax 31.12.2011 13:42

7, спасибо, попробую

Reaper 31.12.2011 13:45

(9) Так какого лешего в упр. форме у тебя появились "Элементы" вместо "Объекта"?

megabax 31.12.2011 13:52

7, спасибо, функция помогла, теперь ПредопределенноеЗначение, теперь пример выглядит так:
&НаКлиенте
Процедура ВидОперацииПриИзменении(Элемент)
//если Объект.ВидОперации=ПредопределенноеЗначение("Перечисления.ВидыОперацийПКО.СнятиеСБанка") тогда
если Объект.ВидОперации=СнятиеСБанка() тогда
Объект.Получатель=ПредопределенноеЗначение("Справочник.БанковскиеСчета.ПустаяСсылка");
иначе
Объект.Получатель=ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка");;
конецесли;
КонецПроцедуры

&НаСервере
функция СнятиеСБанка()
возврат Перечисления.ВидыОперацийПКО.СнятиеСБанка;
конецфункции

Еще бы только от
&НаСервере
функция СнятиеСБанка()
возврат Перечисления.ВидыОперацийПКО.СнятиеСБанка;
конецфункции

как то бы избавитьюся. На строку
если Объект.ВидОперации=ПредопределенноеЗначение("Перечисления.ВидыОперацийПКО.СнятиеСБанка") грит что нет такого передопределенного значения

megabax 31.12.2011 13:54

11, дык методом научного тыка изучаю 8.2, вот и появились элементы. Экспериментирую...

Reaper 31.12.2011 13:55

(12) Потому что "ПеречислениЕ". не читаешь СП - хотя бы установи 8.2.14 - там контекстная подсказка в строковых литералах работает.

megabax 31.12.2011 16:41

Reaper, спасибо большое. И с новым годом!


Текущее время: 12:25. Часовой пояс GMT +3.