Переменные в управляемой форме #606412


#0 by Baloven
делаю в обработке управляемую форму на форме ставлю поле для ввода удостоверения личности (применительно к УПП аналогичная форма но доработанная мной и управляемая это ФормаВводаНового из справочника КонтактныеЛицаКонтрагентов в ней в начале модуля Перем мНаборЗаписейДокументаУдостоверяющегоЛичность; в конце модуля в обычной все работает, а в управляемой - пишет: {Обработка.Абоненты_Симбиоз.Форма.ФормаНовогоАбонента.Форма(133,1)}: Переменная не определена (мНаборЗаписейДокументаУдостоверяющегоЛичность) <<?>>мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить; это она ругается на последнюю строку еще до запуска каких либо процедур
#1 by Baloven
ps замена Перем мНаборЗаписейДокументаУдостоверяющегоЛичность; на Перем мНаборЗаписейДокументаУдостоверяющегоЛичность Экспорт; не помагает :(
#2 by ZanderZ
добавь мНаборЗаписейДокументаУдостоверяющегоЛичность  как реквизит формы
#3 by aleks-id
а сделать реквизит обработки религия не позволяет?
#4 by ДенисЧ
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) Элементы коллекции: Доступность: Сервер, толстый клиент, внешнее соединение.
#5 by fimanich
кроме того, что сделать реквизит обработки, можно еще объявлять переменную с директивой компиляции
#6 by Baloven
добавлял - не помагает, гурается что нельзя изменять реквизиты формы
#7 by Baloven
в обычной так и есть после определения, а в упраавляемой - не позволяет назначить вот это не пробовал
#8 by MadHead
По умолчанию она и так на сервере объявляется. в тонко намекнули, чтоданныедействия надо выполнять на сервере, а не на клиенте. Сделай серверную процедуру и вызывай ее при созднаиинасервере или причтинеиинасервере
#9 by Rusty Nail
тоже не взлетит, ибо читай
#10 by Baloven
т.е. на УФ не будет работать? и далать тогда свой аналог обычной формы? я правильно понял?
#11 by Rusty Nail
да сделай ты уже процедуру как тебе в написали
#12 by Baloven
прошу прощения как, сорри я только начал использовать УФ
#13 by Baloven
если так: &НаСервере то все равно: {Обработка.Абоненты_Симбиоз.Форма.ФормаНовогоАбонента.Форма(139,1)}: Переменная не определена (мНаборЗаписейДокументаУдостоверяющегоЛичность) <<?>>мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить; (Проверка: Толстый клиент (обычное приложение))
#14 by MadHead
а в отладчике если посмотрить, что присваиваетсяв эту переменную в строке мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей;
#15 by Baloven
в а при переходе на строку: мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить; получаю ошибку: {Обработка.Абоненты_Симбиоз.Форма.ФормаНовогоАбонента.Форма(63,28)}: Переменная не определена (мНаборЗаписейДокументаУдостоверяющегоЛичность)    ФормаВвода.НаборЗаписей = <<?>>мНаборЗаписейДокументаУдостоверяющегоЛичность; {Обработка.Абоненты_Симбиоз.Форма.ФормаНовогоАбонента.Форма(133,1)}: Переменная не определена (мНаборЗаписейДокументаУдостоверяющегоЛичность) <<?>>мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить;
#16 by ДенисЧ
да блин... а) нету глобальных переменных б) в тонком клиенте не набора записей. Меняй логику. Нафига набор создавать заранее?
#17 by Ksandr
Во временное хранилище клади структуру с нужными значениями. И на клиенте ее получишь и на сервере
#18 by Baloven
вот полный код модуля УФ: &НаКлиенте &НаКлиенте я уже писал что прошу помощи так как с УФ не работал и хочу понять в чем загвоздка, так как эта же логика нормально работает на обычных формах - мне не проблема переписать на обычную, но все же хочется разобраться и понять что не так делаю :( простите за глупые вопросы
#19 by ДенисЧ
Отвыкай от нормальной логики...
#20 by Baloven
я бы с радостью, если бы хотябы один пример дали и это не по существу!!!!
#21 by Baloven
мне это не нужно - это попросту форма с пустыми значениями для ввода нового клиента - и она даже не открывается
#22 by Baloven
сделал реквизит формы и сразу указать что это РегистрСведенийНаборЗаписей.ПаспортныеДанныеФизЛиц строку мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей; закоментировал а теперь на строке мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить выдает ошибку что: {Обработка.Абоненты_Симбиоз.Форма.ФормаНовогоАбонента.Форма}: Метод объекта не обнаружен (Добавить)
#23 by Baloven
мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить вернее
#24 by ДенисЧ
Да гипермать!!!!.... Ну нафига тебе _это_ делать на клиенте????? Выноси функцию на сервер, там создавай набор записей и пиши в него!! Зачем ты лепишь на велосипед реактивный двигатель???
#25 by Baloven
да как????????????
#26 by ДенисЧ
&НаСервере
#27 by zak555
зачем сразу же записывать ?
#28 by Baloven
наверно я все же что-то недопонял :( я так понимаю Вы имеете ввиду это написать в процедуре вызова УФ? если так, то не работает если это в моей форме о которой речь - то по сути именно это тоже не работает: это не важно ps еще раз, мне не нужно заполнять форму вообще, она у меня не открывается из-за наличия паспортных данных - это пустая форма ввода нового клиента
#29 by zak555
> она у меня не открывается из-за наличия паспортных данных - это пустая форма ввода нового клиента ????
#30 by Baloven
в код всего модуля формы
#31 by Baloven
мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить; вот здесь затык при открытии формы - взято из формы добавление нового контактного лица контрагента из УПП
#32 by zak555
связать реквизиты несудьба ?
#33 by Baloven
какие??? у меня форма пустая
#34 by Baloven
ок... вот новый код модуля формы все остальное фигня ненужная пока он не работает и говорит что: {Обработка.Абоненты_Симбиоз.Форма.ФормаНовогоАбонента.Форма}: Метод объекта не обнаружен (Добавить) мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить.Добавить;
#35 by fisher
Что за двойное "добавить"? А по существу тебе уже ДенисЧ все рассказал. В твоем конкретном случае реквизит формы не нужен, т.к. нужные тебе типы только на сервере существуют. Поэтому всю работу с ними нужно оформлять через вызовы сервера. Первоначальное заполнение - при создании формы на сервере. Обновление - через серверную процедуру с контекстом формы.
#36 by Baloven
:( вру работает все дело во втором добавить .... буду дальше рыть и включать поочереди процедуры
#37 by vmv
прежде чем создавать переменные или другуие модели данных, нужно задавать себе вопросы И естественно нужно знать как отче наш, что заставить мигрировать менеджеры или наборы записей между клиентом и сервером не удасца. Вывод: нужно ломать психологию привитую 8.1, которая позволяла делать практически все через ж, а к этому быстро привыклы, увы
#38 by Baloven
я -то это прекрасно понимаю :( но я не понимаю этого самого правильного написания кода, т.е. насколько я понял то место где именно он исполняется :( сейчас у меня без комментов код выглядит так: &НаКлиенте и проверка модуля даже говорит что один фиг переменная мНаборЗаписейДокументаУдостоверяющегоЛичность не определена уже и в последней строке :(, блин а без процедур все ок
#39 by fisher
Если ты так все прекрасно понимаешь, то какого хрена обращаешься к мНаборЗаписейДокументаУдостоверяющегоЛичность в клиентской процедуре? Перечитай еще раз все что уже понаписано, но на этот раз вдумчиво.
#40 by Baloven
..... начал писать и увидел сообщение :) вроде хоть что-то начало доходить :) исправил &НаКлиенте на и о чудо УФ наконец-то открылась выдав в поле формы пресловутую надпись "Ввести данные об удостоверении личности" в поле удостоверение всем спасибо огромное буду теперь дальше сам копать :)
#41 by vmv
бесплатный савет в модулях форм используй только переменные для клиента, т.е. с директивой &Клиент. Если в разных серверных методах модуля формы или и серверных и клиентских нужна какая-то постоянная сущность, то для этого используют 1. Добавленные параметры формы 2. Единичные добавленные реквизиты формы 4. Коллекционные реквизиты формы(список значений, таблица значений) 5. Временное хранилище, но оно хранит определенное время В озвученной задаче, если бы так делал я, а я бы так не делал, однако - автор хочет "видеть" мНаборЗаписейДокументаУдостоверяющегоЛичность, кто юзал 8.1 кадровые данные - тому понятно, что это набор записей РС. Так вот, я бы сделал реквизит формы типа "ТаблицаЗначений", Например на закрытой закладке и грузил бы туда этот набор, доступный как данные формы коллекция в любом контестке. но такой подход - дань методике 8.1 и не эффективен. это совершенно разные методы, хоть вы их назвали одинаково, конфликта имен компилятор не дает, так как компилит одельно блок для серва и клиента
#42 by fisher
Нужно один раз понять и дальше все элементарно будет - когда кодишь модуль УФ, ты одновременно кодишь ДВА модуля формы. Серверный и клиентский. Серверный имеет привычный функционал толстого клиента. А клиентский работает только с отдельной специальной предельно упрощенной моделью отображения данных и интерактива (которую даже браузер потянет). По сути - ты одновременно кодишь два разных приложения на разных языках, которые очень плотно взаимодействуют между собой. То, что 1С удалось это сделать настолько прозрачным, что у начинающих прогов оно даже сливается в одну кучу - безусловная их заслуга.
#43 by Baloven
в принципе задачу без проблем решил обычной формой, НО, хочется разобраться с УФ, а посему вопрос: в контексте ТЗ озвученного выше: сделал я реквизит формы мНаборЗаписейДокументаУдостоверяющегоЛичность ТабличноеЗначение, но пока не могу понять что должно быть на сервере а что на клиенте и в том числе передачу данных между ними :( простите за тупость
#44 by vmv
все просто - на сервере должнобыть то, что на нем доступно на клиенте должнобыть то, что на нем доступно в сп пишут контесты для каждого метода или свойства, нужно просто найти денек и пройтись по дереву сп, запоминая ключевые моменты, потом еще раз и еще раз. после трех раз простого листания сп у вас отпадут многие вопросы
#45 by Baloven
собственно как его (мНаборЗаписейДокументаУдостоверяющегоЛичность) увязать теперь с элементом формы и чтобы через него передавать данные между клиентом и сервером? потому как у меня пока что в нем загвоздка
#46 by Baloven
Решение и море примеров по УФ нашел в Документообороте, там и удостоверение и все прочее на УФ реализовано
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С