8.х Таблица формы

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

  1. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Привет всем! Подскажите, как заполнить табличную часть формы обработки данными из запроса. Если можно пример. С таблицами в форме обработки раньше дело не имел. Где можно взять инфу с примерами?
    Код:
    	Клиенты = <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/новый')">Новый Запрос;</span>
    Клиенты.Текст = "ВЫБРАТЬ
    | ЗавНомер,
    | АдресУстановки,
    | Клиент,
    | Код,
    | ТипККМ
    | ИЗ
    | Справочник.ККМ КАК Клиент";
    
    Клиенты.УстановитьПараметр("Клиент",Клиент);
    Выборка = Клиенты.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    
    
    Код = Выборка.Код;
    ЗН = Выборка.ЗавНомер;
    Адрес = Выборка.АдресУстановки;
    Касса = Выборка.ТипККМ; 
    КонецЦикла;
    
    
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Из вашего примера можно так:
    Код:
    Пока Выборка.Следующий() Цикл
    Стр = ВашаТаблица.Добавить();
    Стр.Код = Выборка.Код;
    Стр.ЗН = Выборка.ЗавНомер;
    Стр.Адрес = Выборка.АдресУстановки;
    Стр.Касса = Выборка.ТипККМ;
    КонецЦикла;
    
  3. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    параметра в запросе нет
  4. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    А можно кликом мышки по строке открывать форму выбранного элемента?
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    В книге М.Радченко "Практическое пособие разработчика" подробно рассматривается отчет "ПоискДанных".
    Я думаю там вы сможете найти подобное.
  6. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    можно добавить у конкретного поля ввода кнопку открытия
  7. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    А как получить данные поля, чтобы потом использовать их для поиска формы?
  8. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Смотрите события табличного поля ПриАктивизацииСтроки(), ОбработкаВыбора()
  9. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    а можно еще так:
    ТабличнаяЧастьНаФорме = Клиенты.Выполнить().Выгрузить();
    ЭлементыФормы.ТабличнаяЧастьНаФорме.СоздатьКолонки();
  10. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Например так:
    Процедура ТПолеВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    Если Колонка.Имя = "Ссылка" Тогда
    ТекЭлемент = ВыбраннаяСтрока.Ссылка.ПолучитьОбъект();
    ФормаЭлемента = ТекЭлемент.ПолучитьФорму();
    ФормаЭлемента.Открыть();
    КонецЕсли;
    КонецПроцедуры
  11. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Пишет ошибку "Значение не является значением объектного типа (Имя)"
  12. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    "Имя" имеется в виду имя вашей колонки)))
  13. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Нет. Имя это свойство колонки - оно есть всегда.
    А вот сама процедура - это событие табличной части Выбор.
    Ее надо к табличной части "прицепить".
  14. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Если пробовать
    Код:
    Если ЭлементыФормы.ВашаТаблица.Колонки.Имя = "Ссылка" Тогда
    
    тогда ошибка "Поле объекта не обнаружено (Имя)"., а если пробовать
    Код:
    Если ЭлементыФормы.ВашаТаблица.Колонки.Код = "Ссылка" Тогда
    
    то условие не выполняется.
  15. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Создай обработку. Создай форму обработки. Брось на форму табличное поле.
    В модуль скопируй следующее:

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Запрос = Новый Запрос;
    
    Запрос.Текст = "ВЫБРАТЬ
    |    ОстаткиНоменклатурыОстатки.Номенклатура,
    |    ОстаткиНоменклатурыОстатки.КоличествоОстаток
    |ИЗ
    |    РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки";
    
    ТабличноеПоле1 = Запрос.Выполнить().Выгрузить();
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    
    КонецПроцедуры
    
    Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    Если Колонка.Имя = "Номенклатура" Тогда
    ТекНоменклатура = ВыбраннаяСтрока.Номенклатура.ПолучитьОбъект();
    ФормаЭлемента = ТекНоменклатура.ПолучитьФорму();
    ФормаЭлемента.Открыть();
    КонецЕсли;
    КонецПроцедуры
    
    Только последнюю процедуру прицепи как обработчик события Выбор у табличного поля.

    Далее щелкай по колонке Номенклатура - откроется форма текущего элемента.
  16. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    А на моем примере можно по подробнее. Очень хочется разобраться.
  17. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Я вообще то думал, что МОЙ пример по образу и подобию ТВОЕГО ;)
  18. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Как перед следующим выполнением запроса очищать таблицу значений?
    Код:
    Процедура Отбор (Кнопка)
    
    КонтрагентКод = Число(элементыформы.Клиент1.Значение.Код);		 
    //Начинаем сортировать кассы по клиенту
    ККМ = <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/новый')">Новый Запрос;</span>
    ККМ.Текст = "ВЫБРАТЬ
    | ЗавНомер,
    | АдресУстановки,
    | Клиент,
    | КодВладелец,
    | Код,
    | ТипККМ
    | ИЗ
    | Справочник.ККМ КАК Клиент";
    
    
    ККМ.УстановитьПараметр("КодВладелец",Клиент);
    Выборка = ККМ.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    КодВладелец = Выборка.КодВладелец;  
    Если КонтрагентКод = КодВладелец Тогда
    
    Стр = ТабличноеПоле1.Добавить();
    Стр.Колонка1 = Выборка.Код;
    //Стр.ЗН = Выборка.ЗавНомер;
    //Стр.Адрес = Выборка.АдресУстановки;
    //Стр.Касса = Выборка.ТипККМ;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    
  19. cska-fanat-kz
    Offline

    cska-fanat-kz

    Регистрация:
    8 янв 2011
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    RTF[Синтакс-помощник]! :angry:

    ТабличноеПоле1.Очистить();
    конечно же!

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