Всем привет! Подскажите пожалуйста как на УФ программно установить субконто по счету, увидел как это сделано в БП 3.0 но так и не понял как там работает доступность субконт по доп реквизитам Субконто1Доступность,Субконто2Доступность и так далее. То есть у меня субконто проставляются правильно но их доступность не убирается....
// Процедура установки типа и доступности субконто в зависимости от выбранного счета
//
Процедура ПриИзмененииСчета(Счет, Объект, ПоляОбъекта, ЭтоТаблица = Ложь) Экспорт
ДанныеСчета = ПолучитьСвойстваСчета(Счет);
Для Индекс = 1 По 3 Цикл
Если ПоляОбъекта.Свойство("Субконто" + Индекс) Тогда
Если Индекс <= ДанныеСчета.КоличествоСубконто Тогда
Объект[ПоляОбъекта["Субконто" + Индекс]] = ДанныеСчета["ВидСубконто" + Индекс + "ТипЗначения"].ПривестиЗначение(Объект[ПоляОбъекта["Субконто" + Индекс]]);
Иначе
Объект[ПоляОбъекта["Субконто" + Индекс]] = Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ЭтоТаблица Тогда
УстановитьДоступностьСубконто(Счет, Объект, ПоляОбъекта);
КонецЕсли;
Если ПоляОбъекта.Свойство("Подразделение") Тогда
Если ДанныеСчета.УчетПоПодразделениям Тогда
ПодразделениеПоУмолчанию = Неопределено;
ПоляОбъекта.Свойство("ПодразделениеПоУмолчанию", ПодразделениеПоУмолчанию);
Если ЭтоТаблица Тогда
Объект[ПоляОбъекта["Подразделение"] + "Доступность"] = Истина;
КонецЕсли;
Иначе
Объект[ПоляОбъекта.Подразделение] = Неопределено;
Если ЭтоТаблица Тогда
Объект[ПоляОбъекта["Подразделение"] + "Доступность"] = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Процедура установки доступности субконто в зависимости от выбранного счета
//
Процедура УстановитьДоступностьСубконто(Счет, Объект, ПоляОбъекта) Экспорт
ДанныеСчета = ПолучитьСвойстваСчета(Счет);
Для Индекс = 1 По 3 Цикл
Если ПоляОбъекта.Свойство("Субконто" + Индекс) Тогда
Объект[ПоляОбъекта["Субконто" + Индекс] + "Доступность"] = (Индекс <= ДанныеСчета.КоличествоСубконто);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
// Процедура изменяет параметры выбора для ПоляВвода управляемой формы:
//
//Параметры:
// ЭлементФормыСчет - ПолеВвода управляемой формы, для которого изменяется параметр выбора
// МассивСчетов - <Массив> ИЛИ <Неопределено> - счета, которыми нужно ограничить список.
// Если не заполнено - ограничения не будет
// ОтборПоПризнакуВалютный - <Булево> ИЛИ <Неопределено> - Значение для установки соответсвтующего параметра выбора.
// Если неопределено, параметр выбора не устанавливается.
// ОтборПоПризнкуЗабалансовый - <Булево> ИЛИ <Неопределено> - Значение для установки соответсвтующего параметра выбора.
// Если неопределено, параметр выбора не устанавливается.
// ОтборПоПризнакуСчетГруппа - <Булево> ИЛИ <Неопределено> - Значение для установки соответсвтующего параметра выбора.
// Если неопределено, параметр выбора не устанавливается.
//
//
Процедура ИзменитьПараметрыВыбораСчета(ЭлементФормыСчет, МассивСчетов, ОтборПоПризнакуВалютный = Неопределено, ОтборПоПризнкуЗабалансовый = Неопределено, ОтборПоПризнакуСчетГруппа = Ложь) Экспорт
МассивОтборов = Новый Массив;
Если ОтборПоПризнакуСчетГруппа <> Неопределено Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.ЗапретитьИспользоватьВПроводках", ОтборПоПризнакуСчетГруппа));
КонецЕсли;
Если ОтборПоПризнакуВалютный <> Неопределено Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.Валютный", ОтборПоПризнакуВалютный));
КонецЕсли;
Если ОтборПоПризнкуЗабалансовый <> Неопределено Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.Забалансовый", ОтборПоПризнкуЗабалансовый));
КонецЕсли;
Если МассивСчетов <> Неопределено И МассивСчетов.Количество() > 0 Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.Ссылка", Новый ФиксированныйМассив(МассивСчетов)));
КонецЕсли;
ПараметрыВыбора = Новый ФиксированныйМассив(МассивОтборов);
ЭлементФормыСчет.ПараметрыВыбора = ПараметрыВыбора;
КонецПроцедуры
//ткаченко изменен интерфейс полный
Вы хотите программно заполнить субконто и запретить его редактирование?
ДанныеСчета = ПолучитьСвойстваСчета(Счет);
Для Индекс = 1 По 3 Цикл//Максимум 3 субконто на счету
Если ПоляОбъекта.Свойство("Субконто" + Индекс) Тогда //Если есть поле ввода для субконто 1-3
Объект[ПоляОбъекта["Субконто" + Индекс] + "Доступность"] = (Индекс <= ДанныеСчета.КоличествоСубконто); //Если на счету субконто менее чем текущий индекс, тогда досутпность снимается.
КонецЕсли;
КонецЦикла;
Меня тоже волнует этот вопрос.
Поля Субконто1 и дополнительное поле формы Субконто1Доступность как то неявно связаны.
Если нашел решение, отпишись плз.
Я пока в процедуре ИзменитьПараметрыВыбораПолейСубконто добавил строчки:
Форма.Элементы.УслугиСубконто1.Доступность = Форма.Элементы.Услуги.ТекущиеДанные.Субконто1Доступность;
Форма.Элементы.УслугиСубконто2.Доступность = Форма.Элементы.Услуги.ТекущиеДанные.Субконто2Доступность;
Форма.Элементы.УслугиСубконто3.Доступность = Форма.Элементы.Услуги.ТекущиеДанные.Субконто3Доступность;
(6).. Зачем? Если Вы так и не ответили на вопрос в (2)?
Из (1) не ясно что именно необходимо сделать. Назначить тип элементам управления, заполнить их какими-то данными запретить их редактирование.
(14) imbaZeratul,
В свойствах формы видели выделенные категории(основные, Использование, Расположение, оформление, События)
Вот в категории Оформление и открывайте условнойОформление и оформляйте нужные вам поля
Если я правильно поняла, о чем тут речь)