|
Как открыть форму РегистрСведенийМенеджерЗаписи | ☑ | ||
---|---|---|---|---|
0
dddonnn
21.03.13
✎
14:14
|
Сначало на сервере выполняется
&НаСервере Функция СоздатьЗаписьДоговорЗайма(МассивОбъектов) РегистрСведенийМенеджерЗаписи = РегистрыСведений.ДоговорЗайма.СоздатьМенеджерЗаписи(); ОбъектОснование = МассивОбъектов[0].ПолучитьОбъект(); РегистрСведенийМенеджерЗаписи.Организация = ОбъектОснование.Организация; РегистрСведенийМенеджерЗаписи.ДоговорЗайма = ОбъектОснование.Ссылка; РегистрСведенийМенеджерЗаписи.Прочитать(); Если НЕ РегистрСведенийМенеджерЗаписи.Выбран() Тогда РегистрСведенийМенеджерЗаписи.ДоговорЗайма = ОбъектОснование.Ссылка; РегистрСведенийМенеджерЗаписи.Организация = ОбъектОснование.Организация; РегистрСведенийМенеджерЗаписи.Заимодавец = ОбъектОснование.Владелец; КонецЕсли; Возврат РегистрСведенийМенеджерЗаписи; КонецФункции Затем нужно открыть форму данной записи, я пытался сделать так: &НаКлиенте Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт//, КоллекцияПечатныхФорм, ОбъектыПечати = Неопределено, ПараметрыВывода = Неопределено) Экспорт РегистрСведенийМенеджерЗаписи = СоздатьЗаписьДоговорЗайма(ОбъектыНазначенияМассив); Форма = ПолучитьФорму(РегистрСведенийМенеджерЗаписи); Форма.ОткрытьМодально(); КонецПроцедуры но выходит ошибка "Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа." Тогда что мне передать, чтобы можно было открыть форму? |
|||
1
dddonnn
21.03.13
✎
14:14
|
Делаю на БП 3.0
|
|||
2
cw014
21.03.13
✎
14:17
|
Читай СП про "ПолучитьФорму"
|
|||
3
cw014
21.03.13
✎
14:17
|
Но только очень внимательно теперь
|
|||
4
dddonnn
21.03.13
✎
14:23
|
(3) а подсказка будет?)
|
|||
5
cw014
21.03.13
✎
14:25
|
За 300 рублев будет
|
|||
6
cw014
21.03.13
✎
14:26
|
Глобальный контекст.ПолучитьФорму (Global context.GetForm)
Глобальный контекст (Global context) ПолучитьФорму (GetForm) Синтаксис: ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>) Параметры: <ИмяФормы> (обязательный) Тип: Строка. Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора"). Имена форм по умолчанию: ФормаОбъекта (ObjectForm) - форма объекта по умолчанию; ФормаГруппы (FolderForm) - форма группы по умолчанию; ФормаЗаписи (RecordForm) - форма записи регистра по умолчанию; ФормаСписка (ListForm) - форма списка по умолчанию; ФормаВыбора (ChoiceForm) - форма выбора по умолчанию; ФормаВыбораГруппы (FolderChoiceForm) - форма выбора группы по умолчанию; ФормаКонстант (ConstantsForm) - форма констант по умолчанию для обычного режима, установленная как форма констант для конфигурации; Форма (Form) - форма константы, отчета и обработки по умолчанию; ОбщаяФорма (CommonForm) - общая форма; ФормаНастроек (SettingsForm) - форма настроек отчета по умолчанию; ФормаЗагрузки (LoadForm) - форма загрузки настроек; ФормаСохранения (SaveForm) - форма сохранения настроек; ФормаВарианта (VariantForm) - форма редактирования варианта отчета; ФормаЗагрузкиПользовательскихНастроекОтчетов (ReportUserSettingsLoadForm) - форма загрузки настроек отчета; ФормаСохраненияПользовательскихНастроекОтчетов (ReportUserSettingsSaveForm) - форма сохранения настроек отчета; ФормаЗагрузкиВариантовОтчетов (ReportVariantsLoadForm) - форма загрузки варианта отчета; ФормаСохраненияВариантовОтчетов (ReportVariantsSaveForm) - форма сохранения варианта отчета; ФормаЗагрузкиНастроекДанныхФорм (FormDataSettingsLoadForm) - форма загрузки настроек данных форм; ФормаСохраненияНастроекДанныхФорм (FormDataSettingsSaveForm) - форма сохранения настроек данных форм. Например, для получения общей формы "ОбщиеНастройки" следует в модуле написать код: Форма = ПолучитьФорму("ОбщаяФорма.ОбщиеНастройки"); Имена ФормаЗагрузкиПользовательскихНастроекОтчетов, ФормаСохраненияПользовательскихНастроекОтчетов, ФормаЗагрузкиВариантовОтчетов, ФормаСохраненияВариантовОтчетов, ФормаЗагрузкиНастроекДанныхФорм и ФормаСохраненияНастроекДанныхФорм нужно использовать без имени объектов метаданных. Для внешних отчетов и обработок имя формы задается следующим образом: ВнешнийОтчет.<имя отчета>.Форма.<имя формы>; ВнешнийОтчет.<имя отчета>.<имя стандартной формы>; ВнешняяОбработка.<имя обработки>.Форма.<имя формы>; ВнешняяОбработка.<имя обработки>.<имя стандартной формы>. При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе. <Параметры> (необязательный) Тип: Структура. Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры. П = Новый Структура("Ключ", Поставщик); Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П); Форма.Открыть(); <Владелец> (необязательный) Владелец формы - форма или элемент управления другой формы. <Уникальность> (необязательный) Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма. Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск. Значение по умолчанию: Ложь <Окно> (необязательный) Тип: ОкноКлиентскогоПриложения; ВариантОткрытияОкна. Окно приложения, в котором будет открыта форма. Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы. Если указан тип ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту. Возвращаемое значение: Тип: Форма; УправляемаяФорма. Описание: Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы. Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности. Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: В тонком и веб-клиенте получает только управляемую форму. Обычные формы внешних обработок не поддерживаются. Если при получении обычной формы в параметре <ИмяФормы> указано не стандартное имя формы, передаваемые параметры не обрабатываются. В процессе выполнения может быть несколько обращений к серверу. Часть из них кэшируются. Как минимум одно обращение к серверу есть всегда и оно не кэшируется. Кэширование зависит от версии платформы и версии конфигурации в целом. Если установлена низкая скорость соединения и не указывается текущая строка, то кэшируется форма выбора. Очистка кэша осуществляется с периодичностью в 20 мин. Удаляются формы, которые не использовались в этот период времени. См. также: Глобальный контекст, метод ОткрытьФорму Глобальный контекст, метод ОткрытьФормуМодально Глобальный контекст, метод ПолучитьОбщуюФорму |
|||
7
cw014
21.03.13
✎
14:26
|
Почему это первый реквизит вдруг "строка"???
|
|||
8
Reset
21.03.13
✎
14:27
|
РегистрСведенийМенеджерЗаписи.ПолучитьФорму()
|
|||
9
Reset
21.03.13
✎
14:28
|
(8) Только в толстом, сорри
|
|||
10
cw014
21.03.13
✎
14:29
|
(9) Не тут тоненький
|
|||
11
Lys
21.03.13
✎
14:34
|
&НаКлиенте
Процедура ОткрытьЗаписьРегистраСведений() ОтборКлюча = Новый Структура; ОтборКлюча.Вставить("Организация", Объект.Организация); ОтборКлюча.Вставить("Период", НачалоМесяца(Объект.Период)); ПараметрыКлюча = Новый Массив; ПараметрыКлюча.Добавить(ОтборКлюча); КлючЗаписи = Новый(Тип("РегистрСведенийКлючЗаписи.УчетнаяПолитикаОрганизаций"), ПараметрыКлюча); Если Не КлючЗаписи.Пустой() Тогда ОткрытьФорму("РегистрСведений.УчетнаяПолитикаОрганизаций.ФормаЗаписи", Новый Структура("Ключ", КлючЗаписи), ЭтаФорма, УникальныйИдентификатор); КонецЕсли; КонецПроцедуры |
|||
12
cw014
21.03.13
✎
14:35
|
(11) Воопсче за такие вещи тут деньги платят
|
|||
13
Lys
21.03.13
✎
14:41
|
(12) Кто? Кому?
|
|||
14
cw014
21.03.13
✎
14:43
|
(13) Он тебе
|
|||
15
Lys
21.03.13
✎
14:44
|
(14) Я не жадный)
|
|||
16
dddonnn
21.03.13
✎
14:53
|
(11) я не могу получить объект на клиенте, а именно сделать так:
Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт//, КоллекцияПечатныхФорм, ОбъектыПечати = Неопределено, ПараметрыВывода = Неопределено) Экспорт ОбъектОснование = ОбъектыНазначенияМассив[0].ПолучитьОбъект(); Объясню, что это внешняя обработка, где ОбъектыНазначенияМассив это ДоговорКонтрагента из которого вызывается обработка |
|||
17
cw014
21.03.13
✎
15:00
|
(16)
&НаСервере Функция СоздатьЗаписьДоговорЗайма(МассивОбъектов) бла бла бла... Возврат Новый Структура("Организация, ДоговорЗайма", РегистрСведенийМенеджерЗаписи.Организация, РегистрСведенийМенеджерЗаписи.ДоговорЗайма); КонецФункции &НаКлиенте Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт//, КоллекцияПечатныхФорм, ОбъектыПечати = Неопределено, ПараметрыВывода = Неопределено) Экспорт РегистрСведенийМенеджерЗаписи = СоздатьЗаписьДоговорЗайма(ОбъектыНазначенияМассив); ОтборКлюча = Новый Структура; ОтборКлюча.Вставить("Организация", РегистрСведенийМенеджерЗаписиОрганизация); ОтборКлюча.Вставить("ДоговорЗайма", РегистрСведенийМенеджерЗаписи.ДоговорЗайма); ПараметрыКлюча = Новый Массив; ПараметрыКлюча.Добавить(ОтборКлюча); КлючЗаписи = Новый(Тип("РегистрСведенийКлючЗаписи.ДоговорЗайма"), ПараметрыКлюча); Если Не КлючЗаписи.Пустой() Тогда ОткрытьФорму("РегистрСведений.ДоговорЗайма.ФормаЗаписи", Новый Структура("Ключ", КлючЗаписи), ЭтаФорма, УникальныйИдентификатор); КонецЕсли; Форма.ОткрытьМодально(); КонецПроцедуры |
|||
18
cw014
21.03.13
✎
15:00
|
ОтборКлюча.Вставить("Организация", РегистрСведенийМенеджерЗаписи.Организация);
|
|||
19
dddonnn
21.03.13
✎
16:01
|
Уважаемые! Сделал следущим образом:
&НаКлиенте Процедура Печать(ИдентификаторКоманды , ОбъектыНазначенияМассив) Экспорт //СоздатьЗаписьДоговорЗайма(ОбъектыНазначенияМассив); КлючЗаписи = СоздатьКлючЗаписи(ОбъектыНазначенияМассив) ; ПараметрыКлюча = Новый Структура; ПараметрыКлюча.Вставить("Ключ",КлючЗаписи); Если Не КлючЗаписи.Пустой() Тогда ПолучитьФорму("РегистрСведений.ДоговорЗайма.ФормаЗаписи",ПараметрыКлюча).ОткрытьМодально(); КонецЕсли; КонецПроцедуры &НаСервере Функция СоздатьКлючЗаписи(ОбъектыНазначенияМассив) ОбъектОснование = ОбъектыНазначенияМассив[0].ПолучитьОбъект(); ОтборКлюча = Новый Структура; ОтборКлюча.Вставить("Организация", ОбъектОснование.Организация); ОтборКлюча.Вставить("ДоговорЗайма", ОбъектОснование.Ссылка); КлючЗаписи = РегистрыСведений.ДоговорЗайма.СоздатьКлючЗаписи(ОтборКлюча); Возврат КлючЗаписи; КонецФункции Форма открывается, если есть такой ключ, но если нет то пишет ОбъектНеНайден, то есть условие Если Не КлючЗаписи.Пустой() Тогда всегда говорит что ключ не пустой. Почему КлючЗаписи.Пустой() всегда возвращает истину? |
|||
20
dddonnn
22.03.13
✎
07:10
|
У меня КлючЗаписи.Пустой() всегда показывает ложь, даже когда не находит запись с таким ключом
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |