1С 8.0. У меня документ. В документе табличная часть. В документной части поля "счетдебет""субконто1""субконто2""субконто3". У субконто составной тип данных (справочник документ перечисление)Субконто меняется в зависимости от счета
КредитыСчетДебетаПриИзменении(Элемент)
Стр = ЭлементыФормы.Кредиты.ТекущиеДанные;
Счет = Стр.СчетДебета;
Если Счет.ВидыСубконто.Количество()>0 Тогда
ТипСубк = Счет.ВидыСубконто[0].ВидСубконто.ТипЗначения;
// Стр.Субконто1.ВыбиратьТип = ложь;
Если ТипСубк.ПривестиЗначение(Стр.Субконто1) <> Стр.Субконто1 Тогда
Стр.Субконто1 = ТипСубк.ПривестиЗначение(Стр.Субконто1);
КонецЕсли;
// Иначе Стр.Субконто1.Доступность = ложь;
КонецЕсли;
Если Счет.ВидыСубконто.Количество()>1 Тогда
ТипСубк = Счет.ВидыСубконто[0].ВидСубконто.ТипЗначения;
// Стр.Субконто1.ВыбиратьТип = ложь;
Если ТипСубк.ПривестиЗначение(Стр.Субконто2) <> Стр.Субконто2 Тогда
Стр.Субконто2 = ТипСубк.ПривестиЗначение(Стр.Субконто2);
КонецЕсли;
// Иначе Стр.Субконто2.КнопкаВыбора = ложь;
КонецЕсли;
Если Счет.ВидыСубконто.Количество()>2 Тогда
// Субконто1 имеет индекс 0
ТипСубк = Счет.ВидыСубконто[0].ВидСубконто.ТипЗначения;
// Стр.Субконто1.ВыбиратьТип = ложь;
Если ТипСубк.ПривестиЗначение(Стр.Субконто3) <> Стр.Субконто3 Тогда
Стр.Субконто3 = ТипСубк.ПривестиЗначение(Стр.Субконто3);
КонецЕсли;
// Иначе Стр.Субконто3.
КонецЕсли;
КонецПроцедуры
Если субконто у счета нет хочу чтобы кнопка выборка не работала. пробовала так
"Иначе Стр.Субконто2.КнопкаВыбора = ложь;"
выдает ошибку
"Значение не является значением объектного типа"
это ошибка из-за того что субконо1 неопределено
НО КАК ЗАКРЫТЬ ВЫБОР????
(0) Программировать не надо. Надо задать в свойствах у каждого элемента формы СубконтоN СвязьПоТипу - "ЭлементыФормы.ТабличноПолеМоегоДокумента.ТекущиеДанные.СчетДебет" ЭлементСвязиПоТипу - N
(4) д_е_крета. Если <НетСубконто: Счет.ВидыСубконто.Количество()> Тогда (2)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший