8.х Составной тип данных - выбор или отмена выбора типа

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

  1. TopicStarter Overlay
    metaltao
    Offline

    metaltao

    Регистрация:
    19 апр 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте, уважаемые программисты 1с! Очень нужна ваша помощь в решении следующего вопроса:
    Есть документ ДокументИзделие. В нем есть поле Операция (тип перечисление), которая зависит от выбранного Сотрудника (каждый сотрудник может выполнять определенную операцию). Есть табличная часть Изделия, в которой в поле Наименование в зависимости от Операции выбирается изделие.
    При выборе Операции могут быть такие варианты:
    1. После Операции можно выбрать изделия одного типа данных.
    2. После Операции можно выбрать изделия двух типов данных.
    Для поля Наименование указываю составной тип данных (несколько справочников) - Изделие1, Изделие2.
    Задача состоит в следующем: необходимо оградить пользователя от лишних действий, то есть если Операция подразумевает один тип данных, то он должен присваиваться полю Наименование автоматически, чтобы пользователь не тратил время на выбор типа данных. Если же операция подразумевает два типа данных, то после выбора типа необходимо автоматически выдать форму выбора изделия по выбранному типу данных.

    После долгих мучений и поисков получилось следующее:
    1. На кнопку добавления нового Изделия вешаю проверку на операцию. если Операция подразумевает, что будет один тип данных, то вызываю функцию, которая меняет тип данных:
    Код:
    Процедура ДобавитьЭлемент(Элемент)
    Изделия.Добавить();
    Если Операция = Перечисления.Операции.Операция1 Тогда
    ПоменятьТипКолонки();
    КонецЕсли; 
    КонецПроцедуры
    
    
    2. Сама процедура ПоменятьТипКолонки такая:
    Код:
    Процедура ПоменятьТипКолонки()
    Массив = Новый Массив();
    ПолеВводаНаименования = ЭлементыФормы.Изделия.Колонки.Наименование.ЭлементУправления;
    ПолеВводаНаименования.ВыбиратьТип = Ложь;
    НужныйТип = Тип("СправочникСписок.Изделие1");
    Массив.Добавить(НужныйТип);
    
    ОписаниеТипов = Новый ОписаниеТипов(Массив);
    ПолеВводаНаименования.ОграничениеТипа = ОписаниеТипов;
    ПолеВводаНаименования.Значение = ОписаниеТипов.ПривестиЗначение(ПолеВводаНаименования.Значение);
    КонецПроцедуры
    
    
    
    Если Операция подразумевает несколько изделий, то всё ок - высвечивается окно выбора типа данных. Но если подразумевает одно изделие, то при автоматической смене типа колонки не высвечивается окно выбора Изделия.
    Тут сразу скажу, что эту функцию пробовала вызывать и из ОперацияПриИзменении, но эффект такой же.
    Строка
    Код:
        ПолеВводаНаименования.ВыбиратьТип = Ложь;
    
    
    первоначально отсутствовала, но в этом случае пользователю все равно предлагается выбирать тип данных.
    Очень надеюсь на вашу помощь!

    П.С. если подскажете, как сделать автоматическую загрузку окна выбора Изделия после выбора типа данных (в случае если его необходимо выбирать), буду также безумно благодарна!
    П.П.С. платформа 8.1
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Сделайте проще:

    Преватите событие НачалоВыбора и открывайте (если только один тип данных) сразу нужный справочник. Не забудьте поставить
    Код:
    СтандартнаяОбработка = Ложь;
    
    В другом случае - ничего не делайте
  3. TopicStarter Overlay
    metaltao
    Offline

    metaltao

    Регистрация:
    19 апр 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое - все получилось! И почему такие простые решения не посещают голову?..
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну, если через неделю читать их - то не странно :)
  5. TopicStarter Overlay
    metaltao
    Offline

    metaltao

    Регистрация:
    19 апр 2008
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    Ну вот, засмущали... :unsure:
    Как обычно и бывает - интернет и желание работать пропадают быстро ;)

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