8.х Скрыть "лишние" субконто на поле формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем roofless, 10 май 2016.

  1. TopicStarter Overlay
    roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29
    БП 3.0, не могу применить типовой механизм к новому документу

    БП 3.0
    Добавляю новый документ с ТЧ.
    Поля ТЧ: счет затрат, субконто1, субконто2, субконто3, подразделение.
    На форме при выборе счета мне нужно скрыть "лишние" субконто, если таковые имеются (если на счете их 1 или 2).
    Нашел в других формах документов, например "КорректировкаПоступления" подобные механизмы, но легко перенести их не удается.
    Например код
    Код:
    &НаСервере
    Процедура УстановитьУсловноеОформлениеВидимость()
       
        // Субконто БУ и НУ
        // Первое субконто не скрываем, чтобы не мигала колонка в разных строках.
       
        Для Сч = 1 По 3 Цикл
           
            ЭлементУО = УсловноеОформление.Элементы.Добавить();
            КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(ЭлементУО.Поля, "ТабличнаяЧасть1Субконто" + Сч);
           
            ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор,
            "Объект.ТабличнаяЧасть1.Субконто" + Сч + "Доступность", ВидСравненияКомпоновкиДанных.Равно, Ложь);
           
            ЭлементУО.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
           
        КонецЦикла;
       
       
        // Субконто БУ
        // Первое субконто не скрываем, чтобы не мигала колонка в разных строках.
       
        ЭлементУО = УсловноеОформление.Элементы.Добавить();
        КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(ЭлементУО.Поля, "ТабличнаяЧасть1Субконто1");
       
        ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор,
        "Объект.ТабличнаяЧасть1.Субконто1Доступность", ВидСравненияКомпоновкиДанных.Равно, Ложь);
        ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор,
        "Объект.ТабличнаяЧасть1.Субконто2Доступность", ВидСравненияКомпоновкиДанных.Равно, Ложь);
        ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор,
        "Объект.ТабличнаяЧасть1.Субконто3Доступность", ВидСравненияКомпоновкиДанных.Равно, Ложь);
       
        ЭлементУО.Оформление.УстановитьЗначениеПараметра("Видимость", Истина);
       
        ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НедоступныеДанныеЦвет);
       
        ЭлементУО.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
       
        ЭлементУО.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не требуется>'"));
    
        ЭлементУО.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
       
    КонецПроцедуры
    
    успешно отрабатывает, но в строки таблицы эти поля не добавляются.
    В результате имею ошибку в процедуре БухгалтерскийУчетКлиентСервер.ПриИзмененииСчета(СтрокаТаблицы.СчетЗатрат, СтрокаТаблицы, ПоляОбъекта, Истина, ЗначенияСубконто) тк объект СтрокаТаблицы не содержит поля Субконто1Доступность.
    Уже затупил совсем, может кто-то кратко рассказать алгоритм решения подобных задач, возможно я пошёл не тем путем или у меня какой-то шаг пропущен.
  2. TopicStarter Overlay
    roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29

Поделиться этой страницей