8.х Поле ввода выбрать тип

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

  1. TopicStarter Overlay
    Zeta
    Offline

    Zeta Опытный в 1С

    Регистрация:
    8 ноя 2009
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Подскажите пожалуйста как в поле ввода выбрать только тип документа, чтобы он в поле ввода отобразился? сам документ выбирать не нужно. Устанавливаю тип значения ПоляВвода в ОписаниеТипов и потом в событии начало выбора необходимо как-то ограничить тип только ДокументСсылка.
  2. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Так тебе ограничить нужно или сам тип показать?
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    ПолеВвода.Значение = Документы.НУЖНЫЙДОКУМЕНТ.ПустаяСсылка()

    т.е. присвоить значение пустой ссылки документа нужного типа.....

    Кстати, насчет ограничения, как оно работает?

    Пробовал

    элементыФормы.ПолеВвода.ОграничениеТипа = Новый ОписаниеТипов("НужныйТип")

    не робит, вернее, проглатывает(ошибок не вылазит), но и тип не ограничивает.
  4. TopicStarter Overlay
    Zeta
    Offline

    Zeta Опытный в 1С

    Регистрация:
    8 ноя 2009
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Извините, все-таки не ПолеВвода, а ТабличноеПоле нужно использовать, так как типов может быть несколько. Нужно выбирать типы документов из списка всех типов доступных в конфигурации. То есть тип значения должен быть ТаблицаЗначений и там 2 колонки: Булево(выбран/не выбран) и Название Типов. Как в колонку Тип Документа добавить все типы документов конфигурации, чтобы при открытии формы сразу в колонке ТипДокумента Табличного поля появлялись все типы документов?
  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Код:
    Для Каждого Док Из Метаданные.Документы Цикл
    НоваяСтрока = тз.Добавить();
    НоваяСтрока.ТипДокумента = Док.Имя;
    КонецЦикла;
    
    
  6. TopicStarter Overlay
    Zeta
    Offline

    Zeta Опытный в 1С

    Регистрация:
    8 ноя 2009
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Еще один вопрос. В другое табличное поле я заношу все документы, существующие в базе:
    Код:
      
    Выборка =  Документы[ВидДокумента.Имя].Выбрать();
    Пока Выборка.Следующий() Цикл
    ДокСсылка = Выборка.Ссылка;
    НоваяСтрокаДокумент = ЭлементыФормы.ТабличноеПолеДокументы.Значение.Добавить();		
    НоваяСтрокаДокумент.КолонкаДокументы = ДокСсылка;
    КонецЦикла;
    
    
    В итоге выводится все документы как надо. А можно ли сделать так, чтобы еще можно было просматривать основную форму каждого документа (что-то типа КнопкаОткрытия ПоляВвода только у каждой строки колонки Табличного поля). Если можно, то как? Заранее спасибо!
  7. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Всяко можно.
    Например, у табличного поля есть событие "ПриНачалеРедактирования" Можно в его процедуре написать
    Код:
    Процедура ТабличноеПолеДокументыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Элемент.ТекущиеДанные.КолонкаДокументы.ПолучитьФорму().ОткрытьМодально();
    КонецПроцедуры
    
    
    Тогда при двойном щелчке на строке в этом поле будет открываться форма документа из этой строки. Или создать кнопку с действием
    Код:
    Процедура ОсновныеДействияФормыНашаКнопка(Кнопка)
    ЭлементыФормы.ТабличноеПолеДокументы.ТекущиеДанные.КолонкаДокументы.ПолучитьФорму().ОткрытьМодально();
    КонецПроцедуры
    
    
    Тогда по нажатию на нее будет открываться форма из выбранной строки табличного поля.
  8. TopicStarter Overlay
    Zeta
    Offline

    Zeta Опытный в 1С

    Регистрация:
    8 ноя 2009
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Ash, огромное Вам спасибо! Очень помогли.

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