Присвоить значения одного поля ввода другому полю в 1С:8.2 Управляемое приложение
Вызов кнопок по горячим клавишам с поля ввода Управляемое приложение
Добрый день, нид хелп. Имеем управляемую форму , на ней поле ввода, и нескольно кнопок. На кнопки.
Как присвоить значение одного поля другому?
Здравствуйте, подскажите пож-ста, в форме Хозяева есть подчиненная таблица Карта_Животного, в ней.
Занесение значения поля из связанной таблицы другому полю
Есть две таблицы DataTable — основная с именем DT_MAIN, в составе которой есть поля KEY и VL, и.
Из значения поля вычитать значение, добавленное в табличную часть в 1С 8.2 Управляемое приложение
Есть на форме поле СуммаКОплате с числовым значением, я должен записать в табличной части Платежи.
Особенности работы с формами (1Cv8)
Как назначить конкретный тип элементу управления, который связан с реквизитом формы, имеющим составной тип?
Для этого можно присвоить реквизиту формы значение пустой ссылки нужного типа. Например, для поля ввода, связанного с реквизитом, который может принимать значение ссылки на справочники физических и юридических лиц, назначение нужного типа может выглядеть следующим образом:
Однако если в этом случае в поле ввода нажать кнопку очистки, снова будет предложен выбор типа значения из двух возможных типов. Избежать этого можно двумя способами:
Во-первых, можно запретить выбор типа в поле ввода (свойство ВыбиратьТип). В этом случае нажатие на кнопку очистки не будет приводить к сбросу типа в поле ввода.
Во-вторых, можно использовать свойство поля ввода ОграничениеТипа, задающее возможные типы данных, которые могут быть введены в поле ввода, и приводить значение соответствующего реквизита к нужному типу:
Какие существуют особенности работы с составными типами данных?
Вопрос: Какие существуют особенности работы с составными типами данных?
Этот вопрос имеет два стороны:
1) Сторона элемента формы.
Для элемента формы мы можем установить только ограничение на типы которые можно выбрать.
Т.е. с помощью кода:
Мы ограничиваем возможный типы только одним «СправочникСсылка.Контрагенты».
НО это не действует на значение которое хранится в источнике данных.
Поэтому если реквизит который связан с «ПолеВвода1» имеет «составной» тип, например Любая ссылка, он будет неопределенного типа даже после «ЭлементыФормы.ПолеВвода1.ОграничениеТипа=Новый ОписаниеТипов(МассивТипов);»
2) Сторона источника данных.
Здесь ограничение на тип накладывается либо в конфигураторе, либо в момент создания этого элемента из языка.
Но если у реквизита установлен «составной» тип значение реквизита будет неопределенно до тех пор, пока ему не будет присвоено значение конкретного типа.
Присвоить конкретное значение можно либо из языка, либо выбрав это значение в форме.
Как положить значение в элемент формы в УФ
Нубский вопрос:
Как в УФ положить значение в элемент формы — на клиенте в нем даже путь к данным не доступен?
Подробности:
У меня есть событие "начало выбора", входные параметры Элемент формы (поле ввода) и еще парочка.
Я отменяю стандартное поведение, открываю нужную мне форму выбора, в колбэке преобразую выбор в нужное мне значение (строковое, если кому важно) и хочу его записать.
В стародавние времена у элементов формы АФАИР был реквизит "Значение" куда все и писалось. Теперь нету, и даже на "путь к данным" отладчик на клиенте пишет "нет доступа" а на сервере вообще не может с элементом формы работать.
Я пока вышел из положения пользуясь тем, что у реквизита формы и элемента формы название одинаковое, и делаю "ЭтаФорма[ЭлементФормы.Имя] = Рез". Но так же не дело, у одного реквизита формы может быть несколько представлений на разных страницах например. И тогда такой костыль не пройдет.
Вот как мне значение записать куда надо, имея только элемент формы?
&НаКлиенте
Процедура ХХХХ_НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбора = ОткрытьФорму("Справочник.ХХХХ.ФормаВыбора"
, Новый Структура("МножественныйВыбор", Истина)//Параметры
, ЭтаФорма//Владелец
, //Уникальность
, //Окно
, //НавСсылка
, Новый ОписаниеОповещения("СтроковыйДопРеквизит_НачалоВыбора_Колбэк", ЭтаФОрма, Элемент) //ОписаниеОповещения
, //РежимОткрытия
);
КонецПроцедуры
&НаКлиенте
Процедура СтроковыйДопРеквизит_НачалоВыбора_Колбэк(РезультатЗакрытия, ЭлементФормы) Экспорт
Перем Рез;
Рез = "";
Если ТипЗнч(РезультатЗакрытия) = Тип("Массив") тогда
Для Каждого Элемент из РезультатЗакрытия цикл
РЕз = рез + Элемент + "; ";
КонецЦикла;
ИначеЕсли ЗначениеЗаполнено(Рез) тогда//одиночный элемент
Рез = Рез + РезультатЗакрытия;
КонецЕсли;
Если Рез <> "" Тогда //очистка делается отдельной кнопкой
ЭтаФорма[ЭлементФормы.Имя] = Рез;
КонецЕсли
КОнецПроцедуры
Элемент ПолеФормы ПолеФормы
АвтоВыборНезаполненного Неопределено
АвтоВысотаЯчейки Ложь Булево
АвтоМаксимальнаяВысота Истина Булево
АвтоМаксимальнаяШирина Истина Булево
АвтоОтметкаНезаполненного Ложь Булево
АвтоПереносСтрок Истина Булево
АктивизироватьПоУмолчанию Ложь Булево
БыстрыйВыбор Неопределено
ВертикальноеПоложение Авто ВертикальноеПоложениеЭлемента
ВертикальноеПоложениеВГруппе Авто ВертикальноеПоложениеЭлемента
Вид Поле ввода ВидПоляФормы
Видимость Истина Булево
ВыбиратьТип Истина Булево
ВыборГруппИЭлементов Авто ГруппыИЭлементы
ВыделенныйТекст "" Строка
ВыделятьОтрицательные Неопределено
Высота 0 Число
ВысотаЗаголовка 0 Число
ВысотаСпискаВыбора 0 Число
ГиперссылкаЯчейки Ложь Булево
ГоризонтальноеПоложение Авто ГоризонтальноеПоложениеЭлемента
ГоризонтальноеПоложениеВГруппе Авто ГоризонтальноеПоложениеЭлемента
ГоризонтальноеПоложениеВПодвале Авто ГоризонтальноеПоложениеЭлемента
ГоризонтальноеПоложениеВШапке Лево ГоризонтальноеПоложениеЭлемента
Доступность Истина Булево
ДоступныеТипы ОписаниеТипов
Заголовок "" Строка
Имя "ДополнительныйРеквизитЗначение_5D931007xABE5x11E6xB911x005056B68044_E8DE829Ex3644x11E7x8282x40B89A6EAD46" Строка
ИсторияВыбораПриВводе Авто ИсторияВыбораПриВводе
КартинкаКнопкиВыбора Картинка Картинка
КартинкаПодвала Картинка Картинка
КартинкаШапки Картинка Картинка
КнопкаВыбора Истина Булево
КнопкаВыпадающегоСписка Неопределено
КнопкаОткрытия Неопределено
КнопкаОчистки Истина Булево
КнопкаРегулирования Неопределено
КнопкаСоздания Неопределено
КнопкаСпискаВыбора Неопределено
КонтекстноеМеню ГруппаФормы ГруппаФормы
МаксимальнаяВысота 0 Число
МаксимальнаяШирина 0 Число
МаксимальноеЗначение Неопределено
Маска "" Строка
МинимальноеЗначение Неопределено
МногострочныйРежим Неопределено
ОбновлениеТекстаРедактирования Авто ОбновлениеТекстаРедактирования
ОграничениеТипа ОписаниеТипов
ОтметкаНезаполненного Ложь Булево
ОтображатьВПодвале Истина Булево
ОтображатьВШапке Истина Булево
ОтображениеКнопкиВыбора Авто ОтображениеКнопкиВыбора
ОтображениеПодсказки Авто ОтображениеПодсказки
ОтображениеПредупрежденияПриРедактировании Авто ОтображениеПредупрежденияПриРедактировании
ПараметрыВыбора ФиксированныйМассив ФиксированныйМассив
Подсказка "" Строка
ПодсказкаВвода "" Строка
ПоложениеЗаголовка Авто ПоложениеЗаголовкаЭлементаФормы
ПредупреждениеПриРедактировании "" Строка
ПропускатьПриВводе Неопределено
ПутьКДанным Свойство недоступно
ПутьКДаннымПодвала Свойство недоступно
РазрешитьСоставнойТип Истина Булево
РастягиватьПоВертикали Неопределено
РастягиватьПоГоризонтали Неопределено
РасширеннаяПодсказка ДекорацияФормы ДекорацияФормы
РасширенноеРедактирование Неопределено
РедактированиеТекста Ложь Булево
РежимВыбораИзСписка Ложь Булево
РежимВыбораНезаполненного При нажатии Enter РежимВыбораНезаполненного
РежимПароля Неопределено
РежимРедактирования Вход РежимРедактированияКолонки
Родитель ГруппаФормы ГруппаФормы
СвязиПараметровВыбора ФиксированныйМассив ФиксированныйМассив
СвязьПоТипу СвязьПоТипу СвязьПоТипу
СочетаниеКлавиш СочетаниеКлавиш СочетаниеКлавиш
СписокВыбора СписокЗначений
ТекстПодвала "" Строка
ТекстРедактирования "" Строка
ТолькоПросмотр Ложь Булево
ФиксацияВТаблице Нет ФиксацияВТаблице
ФормаВыбора Свойство "ФормаВыбора" не поддерживается этим элементом
Формат "" Строка
ФорматРедактирования "" Строка
ЦветРамки Авто Цвет
ЦветТекста Авто Цвет
ЦветТекстаЗаголовка Авто Цвет
ЦветТекстаПодвала Авто Цвет
ЦветФона Авто Цвет
ЦветФонаЗаголовка Авто Цвет
ЦветФонаПодвала Авто Цвет
Ширина 0 Число
ШиринаВыпадающегоСписка 0 Число
Шрифт Авто Шрифт
ШрифтЗаголовка Авто Шрифт
ШрифтПодвала Авто Шрифт
То есть вот такая грусть тоска? Это в "перед созданием на сервере" табличку городить и не забывать ее обновлять всегда при программном добавлении реквизитов?
(с учетом того, что это типовой БСП-блок по работе с доп реквизитами, и я не все добавления контролирую становится особенно грустно)
Q
Есть элемент формы и мне нужно на клиенте обратиться к его данным. Конечно есть свойство ПутьКДанным, которое доступно на сервере. Однако делать в каждой форме реквизит для хранения этого свойства для всех элементов формы для обеспечения доступности сопоставления на клиенте довольно неудобно.
A
"Однако делать в каждой форме реквизит для хранения этого свойства для всех элементов формы" — хотелось бы знать зачем это может понадобиться "в каждой форме"?
В принципе, у вас правильная гипотеза. На клиенте недостаточно информации для полноценной поддержки метаинформации о реквизитах. Для того чтобы это реализовать на клиент пришлось передавать много дополнительной информации, что нам не кажется целесообразным.
Основной вопрос я сформулировал — зачем это нужно в сколь нибудь типовом случае?
(17) Я не работаю с элементами, их уже сделали. Я реализую событие "при начале выбора" для некоторого множества динамически сформированных (не мной) реквизитов формы.
(16) Тогда зайдем с другой стороны. Если это нельзя делать на клиенте, можно засунуть колбэк на сервер (с контекстом)
А зачем это нужно — ну вот задача. Собственная обработка выбора для неизвестного заранее реквизита формы.
Спасибо за помощь. Вместо
ПутьКДанным = ЭтаФорма.Элементы[ИмяЭлементаФормы].ПутьКДанным;
Если Найти(ПутьКДанным, ".") = 0 тогда
ЭтаФорма[ПутьКДанным] = Рез;
Иначе
ВызватьИсключение "Значение может быть присвоено только реквизиту формы";
//Если есть точка, то это либо Объект.ИмяРеквизита, либо ТЗ.ИмяКолонки, да мало ли еще что. Пока забьем
КонецЕсли;
1с доступ к элементу
Надо кое-что подправить на одной форме. В справочниках есть управление складами. При редактировании или создании склада открывается форма: ФормаЭлемента. Там я создал кнопку и текстовое поле. На кнопку сделал обработчик нажатия. После нажатия в текстовом поле должно написаться сообщение.
Полный путь к форме:
Справочники-Склады-Формы-ФормаЭлемента.
Забыл вопрос задать. ) Как добраться до этого текстового поля, чтобы задать ему какой-то текст? Текстовое поле пусть будет называться: МоёТекстовоеПоле.
В обработчике события можно написать:
если МоёТекстовоеПоле — это элемент управления, а если реквизит формы, связанный с элементом управления, тогда:
Считаю, это некорректно. Как минимум по причине: попытался выполнить предложенный код, в результате получил ошибку:
<Форма.Форма(4)>: Поле объекта не обнаружено (значение) ЭлементыФормы.ПолеТекстовогоДокумента.значение = «11111»;
Обстоятельства. Создал внешнюю обработку. На форме внешней обработки разместил поле текстового документа. Код по кнопке выполнить:
Для того, чтоб в текстовое поле (поле текстового документа) вывести текст необходимо использовать метод этого текстового поля «УстановитьТекст(Текст)». Например:
Если же автор вопроса под текстовым полем имел ввиду просто поле ввода, тип значения переменной которого равен «Строка» тогда:
1) Не рекомендую обращаться к значению поля ввода через элементы формы, т.е. так:
2) При создании поля ввода автоматичсески создается реквизит формы, который содержит его значение. Вот как раз текст, который надо присвоить, и надо присваивать этой переменной:
Обстоятельства. Есть поле ввода: Имя поля ввода:»ПВМоёТекстовоеПоле», Имя реквизита формы(Данные):»РеквизитПВМоёТекстовоеПоле». Тип реквизита РеквизитПВМоёТекстовоеПоле — Строка. При этих обстоятельствах код для присвоения этому полю ввода текста будет такой: