Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 мая 2024, 08:40

Автозаполнение реквизита

Автор Ирина1109, 05 мар 2016, 23:24

0 Пользователей и 1 гость просматривают эту тему.

Ирина1109

Да. Как обратиться к реквизиту группы из формы элемента

Hedinnk

Цитата: Ирина1109 от 06 мар 2016, 12:03
Да. Как обратиться к реквизиту группы из формы элемента
В таком случае самый простой вариант решения:
На форму элемента добавляем декорацию с именем ИмяДекорации и видом Надпись.

В событие формы ПриСозданииНаСервере добавим код:
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
Элементы.ИмяДекорации.Заголовок = Объект.Родитель.РеквизитГруппыКоторыйНадоОтобразить;
КонецЕсли;
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Ирина1109

Спасибо! Сделала вот так:


Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Элементы.ГруппаСкидки.Маска = Объект.Родитель.ГруппаСкидки;
КонецЕсли;

Hedinnk

Цитата: Ирина1109 от 06 мар 2016, 12:59
Спасибо! Сделала вот так:


Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Элементы.ГруппаСкидки.Маска = Объект.Родитель.ГруппаСкидки;
КонецЕсли;

Маска - это не то. Если уж Вы так хотите именно заполнить реквизит, то Вам надо:
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Объект.ГруппаСкидки = Объект.Родитель.ГруппаСкидки;
КонецЕсли;

Но тут возникают другие вопросы:
1. При создании элемента мы заполняем значение реквизита по значению реквизита родителя?
2. При изменении значения реквизита родителя, что должно происходить со значениями реквизитов подчиненных элементов?
3. При изменении родителя элемента, что должно происходить со значением реквизита подчиненного элемента?
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Ирина1109

Цитата: Hedinnk от 06 мар 2016, 13:22Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Объект.ГруппаСкидки = Объект.Родитель.ГруппаСкидки;
КонецЕсли;

Цитата: Hedinnk от 06 мар 2016, 13:22
Цитата: Ирина1109 от 06 мар 2016, 12:59
Спасибо! Сделала вот так:


Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Элементы.ГруппаСкидки.Маска = Объект.Родитель.ГруппаСкидки;
КонецЕсли;

Маска - это не то. Если уж Вы так хотите именно заполнить реквизит, то Вам надо:
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Объект.ГруппаСкидки = Объект.Родитель.ГруппаСкидки;
КонецЕсли;

Но тут возникают другие вопросы:
1. При создании элемента мы заполняем значение реквизита по значению реквизита родителя?
2. При изменении значения реквизита родителя, что должно происходить со значениями реквизитов подчиненных элементов?
3. При изменении родителя элемента, что должно происходить со значением реквизита подчиненного элемента?


Почему маска не то? Работает вроде бы.

Вот так не работает

Если ЗначениеЗаполнено(Объект.Родитель) Тогда
    Объект.ГруппаСкидки = Объект.Родитель.ГруппаСкидки;
КонецЕсли;



Hedinnk

Покажите код модуля, где вы пытаетесь это сделать.

P.S. Про маску:
ЦитироватьРасширение поля формы для поля ввода (Form field extension for a text box)
Маска (Mask)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Содержит посимвольную строку маски интерактивного ввода текста в поле.
В строке маски допустимо использование следующих специальных символов:
! - любой введенный символ преобразуется в верхний регистр;
9 - допустимо ввести произвольный символ цифры;
# - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;
N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);
U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;
X (латинского алфавита) - допустимо ввести произвольный символ;
^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;
h - допустим ввод символов обозначения шестнадцатеричных цифр;
@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.
При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ "@", а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2".
Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\".
Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". В этом случае использоваться будет та маска, к которой подходит введенный текст.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Ирина1109

Код модуля копировать - это очень много. Конфигурация бухгалтерия 3.0, справочник номенклатура - формаЭлемента - модуль

Hedinnk

Вы меня совсем запутали... Сейчас перечитал тему с самого начала:
Цитата: Ирина1109 от 05 мар 2016, 23:24
...В справочнике Номенклатура на форму группы добавила новый реквизит с типом СправочникСсылка, в форме элемента добавила одноименный реквизит...
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
Форма = Объект.Родитель.ПолучитьФорму("ФормаГруппы");

ГруппаСкидки = Форма.ГруппаСкидки;
КонецЕсли;

Добавлено: 06 мар 2016, 14:39


Цитата: Hedinnk от 06 мар 2016, 14:18
Вы меня совсем запутали... Сейчас перечитал тему с самого начала:
Цитата: Ирина1109 от 05 мар 2016, 23:24
...В справочнике Номенклатура на форму группы добавила новый реквизит с типом СправочникСсылка, в форме элемента добавила одноименный реквизит...
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
Форма = Объект.Родитель.ПолучитьФорму("ФормаГруппы");

ГруппаСкидки = Форма.ГруппаСкидки;
КонецЕсли;


Не работает.
Добавлено: 06 мар 2016, 15:11


Значение реквизита формы не сохраняются в БД.
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Ирина1109

Цитата: Hedinnk от 06 мар 2016, 14:18
Вы меня совсем запутали... Сейчас перечитал тему с самого начала:
Цитата: Ирина1109 от 05 мар 2016, 23:24
...В справочнике Номенклатура на форму группы добавила новый реквизит с типом СправочникСсылка, в форме элемента добавила одноименный реквизит...
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
Форма = Объект.Родитель.ПолучитьФорму("ФормаГруппы");

ГруппаСкидки = Форма.ГруппаСкидки;
КонецЕсли;

Добавлено: 06 мар 2016, 14:39


Цитата: Hedinnk от 06 мар 2016, 14:18
Вы меня совсем запутали... Сейчас перечитал тему с самого начала:
Цитата: Ирина1109 от 05 мар 2016, 23:24
...В справочнике Номенклатура на форму группы добавила новый реквизит с типом СправочникСсылка, в форме элемента добавила одноименный реквизит...
Если ЗначениеЗаполнено(Объект.Родитель) Тогда
Форма = Объект.Родитель.ПолучитьФорму("ФормаГруппы");

ГруппаСкидки = Форма.ГруппаСкидки;
КонецЕсли;


Не работает.
Добавлено: 06 мар 2016, 15:11


Значение реквизита формы не сохраняются в БД.


Да, не работает..Так и не нашла решение, для того чтобы значение сохранялось в БД((

Hedinnk

Цитата: Ирина1109 от 07 мар 2016, 23:29
Да, не работает..Так и не нашла решение, для того чтобы значение сохранялось в БД((

Значение реквизита формы нельзя сохранить в БД.
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск