Шаг 345 - Что делать когда реквизит не известен

Много задач сводится к тем, которые нельзя формализовать. Ну, например, ввод остатков. Субконто могут быть разные. Кроме того, если речь заходит о универсальных документах, например авансовый отчет, то в нем могут быть совершенно разные корреспонденции счетов, а у счетов могут быть разные субконто. Как тут поступать? Можно сделать неопределенный реквизит.

345_1.gif (7660 b)

А определять его программный путем в зависимости от корреспонденции счетов. Итак, сделаем на документ кнопку, по которой будет меняться тип реквизита. Основа всего функция Назначить тип.

НазначитьТип
Назначить тип для реквизита неопределенного вида.

Синтаксис:

НазначитьТип(<ИмяРеквизита>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetType

Параметры:
<ИмяРеквизита> Строковое выражение — название реквизита документа неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> Строковое выражение — название типа данных (или Вид субконто), который назначается реквизиту документа. Например: "Строка", "Число", "Справочник.Товары", "Документ.РасходнаяНакладная" и т. п.
<Длина> Необязательный параметр. Числовое выражение — длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> Необязательный параметр. Числовое выражение — число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.

Описание:
Метод НазначитьТип позволяет назначить тип для реквизита, которому в конфигураторе назначен тип <Неопределенный>.

Пишем код:

Процедура Изменить()  
	Форма.Субконто.НазначитьТип("Справочник.Номенклатура");
КонецПроцедуры

Пробуем. Если кнопку не нажимать, то выбрать субконто будет нельзя.

345_2.gif (5821 b)

После установки типа субконто уже можно будет выбрать.

345_3.gif (13462 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 20.11.2002