8.х Отбор в ТЧ Обработки

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

  1. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    Есть форма. на ней 2 ТЧ с одинаковыми колонками. В первой тч я используя кнопку отбор на командной панели отбираю нужные мне строки.
    И как теперь отобранные мною строки (пусть 20 шт из 100) добавить в ТЧ2. Ну как добавить я знаю, вот как имменно те которые остались после отбора.

    Пишу так:
    Для Каждого Стр изТабличнаяЧасть1 цикл
    Новстр = ТабличнаяЧасть2.Добавить();
    новстр.абонент = стр.абонент;
    новстр.полныйадрес= стр.полныйадрес;
    КонецЦикла;

    Добавляет все 100 строк, отбор не учитывается, как его учитывать ???

    (зы: вручную по одной строке не предлагать...)...)
  2. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Используйте проверку

    ...
    Если ЭлементыФормы.изТабличнаяЧасть1.ПроверитьСтроку(Стр) Тогда

    //здесь копируете строку

    КонецЕсли;
    ...
  3. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    нечего не понял.. использовать проверку на "что" ???
  4. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    попробуйте так: парметры отбора вы же знаете?! забейте их в структуру, далее выгрузите из ТЧ только строки с отбором. Примрено конструкция такая :
    Код:
    Отбор = Новый структура;
    отбор.вставить("рек1", рек1); //опишите свою структуру
    тз = ТабЧасть.Выгрузить(отбор); //тут будут только ваши строки с отбором
    ну а как добавить их в другую таб часть - вы знаете
  5. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    На соответствие отбору! ;+)
  6. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    Параметры отбора надо вбивать не програмно! они задаются в динамическом режиме.

    В ТЧ1 например 100 строк (две колонки - абонент и адрес), я нажимаю кнопку отбор и там ввожу по колонке адрес "ВХОДИТ" ул.Чехова у меня в ТЧ1 все абоненты по улице чехова и их надо скопировать в ТЧ2.
  7. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    ну блин для особо тугих программистов

    Для Каждого Стр из ТабличнаяЧасть1 цикл
    Если ЭлементыФормы.ТабличнаяЧасть1.ПроверитьСтроку(Стр) Тогда
    ЗаполнитьЗначенияСвойств(ТабличнаяЧасть2.Добавить(),Стр);
    КонецЕсли
    КонецЦикла;

    так понятно?
  8. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    это я поняла, то что пользователь определит, все равно можно получить, ну или воспользуйтесь тем, что вам предложили
  9. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    СПАСИБО!!! не знал этого метода:
    ПроверитьСтроку (CheckRow)

    Синтаксис:
    ПроверитьСтроку(<Строка>)

    Параметры:

    <Строка> (обязательный)
    Тип: Произвольный.
    Строка таблицы. Тип параметра зависит от типа редактируемого значения.

    Возвращаемое значение:
    Тип: Булево.


    Описание:
    Проверяет, соответствует ли строка, установленному в таблице отбору.

    зы: пытался его сам изобрести...) хех, а уже накрутил:
    //Отбор = Новый структура;
    //отбор.вставить("ПолныйАдрес", Полеввода1); //опишите свою структуру
    //отбор.Вставить("ВидСравнения",ВидСравнения.Содержит);
    ////отбор.Вставить("Использование",ИСТИНА);
    //тз = ТабличнаяЧасть1.Выгрузить(отбор);
    ////ТабличнаяЧасть1.Очистить();
    //Для каждого Стр из тз цикл
    // НовСтр = ТабличнаяЧасть1.Добавить();
    // НовСтр.Абонент=стр.Абонент;
    // новСтр.ПолныйАдрес=стр.Абонент.адрес;
    //конеццикла;

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