УФ 8.2

1. imbaZeratul 16 27.05.13 11:59 Сейчас в теме
Всем привет! Подскажите пожалуйста как на УФ программно установить субконто по счету, увидел как это сделано в БП 3.0 но так и не понял как там работает доступность субконт по доп реквизитам Субконто1Доступность,Субконто2Доступность и так далее. То есть у меня субконто проставляются правильно но их доступность не убирается....

// Процедура установки типа и доступности субконто в зависимости от выбранного счета
//
Процедура ПриИзмененииСчета(Счет, Объект, ПоляОбъекта, ЭтоТаблица = Ложь) Экспорт

ДанныеСчета = ПолучитьСвойстваСчета(Счет);

Для Индекс = 1 По 3 Цикл
Если ПоляОбъекта.Свойство("Субконто" + Индекс) Тогда
Если Индекс <= ДанныеСчета.КоличествоСубконто Тогда
Объект[ПоляОбъекта["Субконто" + Индекс]] = ДанныеСчета["ВидСубконто" + Индекс + "ТипЗначения"].ПривестиЗначение(Объект[ПоляОбъекта["Субконто" + Индекс]]);
Иначе
Объект[ПоляОбъекта["Субконто" + Индекс]] = Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Если ЭтоТаблица Тогда
УстановитьДоступностьСубконто(Счет, Объект, ПоляОбъекта);
КонецЕсли;

Если ПоляОбъекта.Свойство("Подразделение") Тогда
Если ДанныеСчета.УчетПоПодразделениям Тогда
ПодразделениеПоУмолчанию = Неопределено;
ПоляОбъекта.Свойство("ПодразделениеПоУмолчанию", ПодразделениеПоУмолчанию);
Если ЭтоТаблица Тогда
Объект[ПоляОбъекта["Подразделение"] + "Доступность"] = Истина;
КонецЕсли;
Иначе
Объект[ПоляОбъекта.Подразделение] = Неопределено;
Если ЭтоТаблица Тогда
Объект[ПоляОбъекта["Подразделение"] + "Доступность"] = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;

КонецПроцедуры
// Процедура установки доступности субконто в зависимости от выбранного счета
//
Процедура УстановитьДоступностьСубконто(Счет, Объект, ПоляОбъекта) Экспорт

ДанныеСчета = ПолучитьСвойстваСчета(Счет);

Для Индекс = 1 По 3 Цикл
Если ПоляОбъекта.Свойство("Субконто" + Индекс) Тогда
Объект[ПоляОбъекта["Субконто" + Индекс] + "Доступность"] = (Индекс <= ДанныеСчета.КоличествоСубконто);
КонецЕсли;
КонецЦикла;

КонецПроцедуры


// Процедура изменяет параметры выбора для ПоляВвода управляемой формы:
//
//Параметры:
// ЭлементФормыСчет - ПолеВвода управляемой формы, для которого изменяется параметр выбора
// МассивСчетов - <Массив> ИЛИ <Неопределено> - счета, которыми нужно ограничить список.
// Если не заполнено - ограничения не будет
// ОтборПоПризнакуВалютный - <Булево> ИЛИ <Неопределено> - Значение для установки соответсвтующего параметра выбора.
// Если неопределено, параметр выбора не устанавливается.
// ОтборПоПризнкуЗабалансовый - <Булево> ИЛИ <Неопределено> - Значение для установки соответсвтующего параметра выбора.
// Если неопределено, параметр выбора не устанавливается.
// ОтборПоПризнакуСчетГруппа - <Булево> ИЛИ <Неопределено> - Значение для установки соответсвтующего параметра выбора.
// Если неопределено, параметр выбора не устанавливается.
//
//
Процедура ИзменитьПараметрыВыбораСчета(ЭлементФормыСчет, МассивСчетов, ОтборПоПризнакуВалютный = Неопределено, ОтборПоПризнкуЗабалансовый = Неопределено, ОтборПоПризнакуСчетГруппа = Ложь) Экспорт

МассивОтборов = Новый Массив;
Если ОтборПоПризнакуСчетГруппа <> Неопределено Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.ЗапретитьИспользоватьВПроводках", ОтборПоПризнакуСчетГруппа));
КонецЕсли;

Если ОтборПоПризнакуВалютный <> Неопределено Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.Валютный", ОтборПоПризнакуВалютный));
КонецЕсли;

Если ОтборПоПризнкуЗабалансовый <> Неопределено Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.Забалансовый", ОтборПоПризнкуЗабалансовый));
КонецЕсли;

Если МассивСчетов <> Неопределено И МассивСчетов.Количество() > 0 Тогда
МассивОтборов.Добавить(Новый ПараметрВыбора("Отбор.Ссылка", Новый ФиксированныйМассив(МассивСчетов)));
КонецЕсли;

ПараметрыВыбора = Новый ФиксированныйМассив(МассивОтборов);
ЭлементФормыСчет.ПараметрыВыбора = ПараметрыВыбора;

КонецПроцедуры
//ткаченко изменен интерфейс полный
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. M.Shalimov 200 27.05.13 16:16 Сейчас в теме
(1) imbaZeratul,

Вы хотите программно заполнить субконто и запретить его редактирование?

ДанныеСчета = ПолучитьСвойстваСчета(Счет); 

Для Индекс = 1 По 3 Цикл//Максимум 3 субконто на счету 
Если ПоляОбъекта.Свойство("Субконто" + Индекс) Тогда //Если есть поле ввода для субконто 1-3
Объект[ПоляОбъекта["Субконто" + Индекс] + "Доступность"] = (Индекс <= ДанныеСчета.КоличествоСубконто); //Если на счету субконто менее чем текущий индекс, тогда досутпность снимается.
 КонецЕсли; 
КонецЦикла;
3. iBotinok 17.06.13 15:30 Сейчас в теме
Меня тоже волнует этот вопрос.
Поля Субконто1 и дополнительное поле формы Субконто1Доступность как то неявно связаны.
Если нашел решение, отпишись плз.

Я пока в процедуре ИзменитьПараметрыВыбораПолейСубконто добавил строчки:
Форма.Элементы.УслугиСубконто1.Доступность = Форма.Элементы.Услуги.ТекущиеДанные.Субконто1Доступность;
Форма.Элементы.УслугиСубконто2.Доступность = Форма.Элементы.Услуги.ТекущиеДанные.Субконто2Доступность;
Форма.Элементы.УслугиСубконто3.Доступность = Форма.Элементы.Услуги.ТекущиеДанные.Субконто3Доступность;
9. NordDron 24.10.13 19:15 Сейчас в теме
(3) iBotinok,
Такое решение визуально будет отличаться, тем, что нельзя будет встать на эти ячейки :)

Сам вчера пол дня ковырялся и такое тоже делал, но не давала покоя первоначальная реализация...
4. imbaZeratul 16 23.10.13 10:18 Сейчас в теме
поднимаю тему...решения так и не нашел как связать
Поля Субконто1 и дополнительное поле формы Субконто1Доступность
5. imbaZeratul 16 23.10.13 10:19 Сейчас в теме
Просмотрел как реализовано в БП 3.0 в документе Авансовый отчет, но так и не понял как эти поля связать друг с другом
6. imbaZeratul 16 23.10.13 11:05 Сейчас в теме
7. zarucheisky 23.10.13 14:26 Сейчас в теме
(6).. Зачем? Если Вы так и не ответили на вопрос в (2)?
Из (1) не ясно что именно необходимо сделать. Назначить тип элементам управления, заполнить их какими-то данными запретить их редактирование.
8. NordDron 24.10.13 13:00 Сейчас в теме
И не зря апнул.

Решение тебе говорить не буду, но подскажу как я это понял:

На работающей форме поменяй реквизит "Субконто1Доступность" на "Субконто1_Доступность"

Сохрани конфигурацию и сравни её с конфигурацией ИБ :)

И ты увидишь, где явно прописана логика.

Удачи!

P.S.: Далее вспоминаем СКД ;)
imbaZeratul; Bukaska; +2 Ответить
10. Z_Denis 06.11.13 11:47 Сейчас в теме
(8) Два дня бодался и только после твоего намека нашел как эти чертовы <...> вставляются и устанавливается доступность
11. dctvghbdtn 20.11.13 17:02 Сейчас в теме
Я так и не понял :(
Можете разъяснить? Как сделать? Все перерыл. :(
12. dctvghbdtn 20.11.13 17:08 Сейчас в теме
Нашел!
На форме Условное оформление.
13. NordDron 26.11.13 16:55 Сейчас в теме
14. imbaZeratul 16 12.12.13 15:46 Сейчас в теме
так и не понял я как там сделано через условное оформление. ткните носом плиз)
15. Bukaska 140 12.12.13 16:07 Сейчас в теме
(14) imbaZeratul,
В свойствах формы видели выделенные категории(основные, Использование, Расположение, оформление, События)
Вот в категории Оформление и открывайте условнойОформление и оформляйте нужные вам поля
Если я правильно поняла, о чем тут речь)
user639498_dar8313; Torin57; 00alenka00; CrazyBear; headMade; malets; imbaZeratul; +7 Ответить
16. imbaZeratul 16 12.12.13 16:11 Сейчас в теме
(15) Bukaska, огромное тебе спасибо
17. Bukaska 140 12.12.13 16:20 Сейчас в теме
19. malets 2 10.10.14 17:19 Сейчас в теме
(15) Bukaska, Спасибо огромное! Вы существенно сократили мое время на поиски этой информации!
18. iBotinok 26.03.14 19:55 Сейчас в теме
Только сейчас вдруг вспомнил мучавший меня вопрос.
Спасибо!
На будущее буду знать.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот