Записка по работе в 1С с управляемой форме.
- ЭтоНовый() в увправляемой форме
- Заполнение реквезитов
- Получение пустой ссылки или предопределенного значения
- Открыть форму
- Функции отвечающие за обмен данных с формой на сервере
- На сервере обратиться к функции находящейся в модуле объекта
- Внешняя обработка: из модуля формы вызвать процедуру в модуле объекта
- ПолучитьМакет
- Получение расшифровки для текущей ячейки СКД
- Обратиться к «видимым» строкам таблицы значения
- Получить данные из текущей строки таблицы
ЭтоНовый() в увправляемой форме
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда ... КонецЕсли;
Наверх
Заполнение реквезитов
Для реквезитов в документеобработкеотчете:
Объект.Реквизит = "значение";
Для реквезитов на форме:
ЭтаФорма.Реквизит = "значение";
Наверх
Получение пустой ссылки или предопределенного значения.
ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка")
Наверх
стрПараметры = Новый Структура("Ключ", СсылкаНаКонтрагента); ФормаОснования = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", стрПараметры); ФормаОснования.Открыть();
или по умолчанию
ОткрытьЗначение(СсылкаНаКонтрагента);
Наверх
Фунции отвечающие за обмен данных с формой на сервере.
- РеквизитФормыВЗначение- Преобразует указанный реквизит формы в объект прикладного типа.
- ЗначениеВРеквизитФормы — Преобразует объект прикладного типа в реквизит управляемой формы
- ДанныеФормыВЗначение — Преобразует данные формы в объект прикладного типа.
- ЗначениеВДанныеФормы — Преобразует объект прикладного типа в универсальный объект данных.
Наверх
На сервере обратиться к функции находящейся в модуле объекта.
Пример для обработки. Функция в модуле объекта зовется ОбсчитатьДанные.
&НаСервере Процедура ПересчитатьНаСервере() ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.ОбсчитатьДанные(); ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); КонецПроцедуры
Наверх
Внешняя обработка: из модуля формы вызвать процедуру в модуле объекта
&НаСервере Процедура СерверПроцедура(); ЭтотОбъект = РеквизитФормыВЗначение("Объект"); ЭтотОбъект.МодульОбъектаПроцедура(); КонецПроцедуры &НаКлиенте Процедура КомандаНаКлиенте(Команда) СерверПроцедура(); КонецПроцедуры
Наверх
&НаСервере Функция ПолучитьМакетНаСервере(ИмяМакета) ЭтотОбъект=РеквизитФормыВЗначение("Объект"); Макет = ЭтотОбъект.ПолучитьМакет(ИмяМакета); Возврат Макет; КонецФункции
Наверх
Получение расшифровки для текущей ячейки СКД
«Результат» — поле табличного документа.
&НаСервере Функция ПолучитьЗначениеРасшифровки(КодРасшифровки) Если КодРасшифровки = Неопределено тогда Возврат Неопределено; КонецЕсли; ДР=ПолучитьИзВременногоХранилища(ДанныеРасшифровки); КоллекцияПолей = ДР.Элементы[КодРасшифровки].ПолучитьПоля(); Если КоллекцияПолей.Количество() = 0 тогда Возврат Неопределено Иначе Возврат КоллекцияПолей[0].Значение ; КонецЕсли; КонецФункции &НаКлиенте ... РасшифровкаЗначение = ПолучитьЗначениеРасшифровки(Результат.ТекущаяОбласть.Расшифровка); ...
Наверх
Обратиться к «видимым» строкам таблицы значения
На форме расположен таблица «табДанные». Берет данные из таблицы значения «тзДанные».
Имееться булевое поле «Выбран» которое надо проставить в Истина для тех строк которые видны после поиска.
НомСтроки = -1; МаксНомер = тзДанные.Количество(); Пока НомСтроки < МаксНомер цикл НомСтроки = НомСтроки + 1; ДанныеСтрока = Элементы.табДанные.ДанныеСтроки(НомСтроки); Если ДанныеСтрока <> Неопределено тогда ДанныеСтрока.Выбран = Значение; КонецЕсли; КонецЦикла;
Наверх
Получить данные из текущей строки таблицы
Таблица «ОтклонениеПоВыручке» ссылаеться на одноименную табличную часть в документе.
ИдСтроки = Элементы.ОтклонениеПоВыручке.ТекущаяСтрока; ДанныеСтроки = Объект.ОтклонениеПоВыручке.НайтиПоИдентификатору(ИдСтроки);