7.7 Найти по проводкам

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем змейкин, 3 июн 2013.

  1. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Народ вопрос как сделать аналог "поиска"по проводкам чтобы при вводе какого либо значения в поле ввода по нему фильтровались проводки я вот что сделал
    Код:
    Перем Выбираем;
    Процедура Проводка()
    Перем ПолВыбор;
    ВвестиСтроку(ПолВыбор,"Условия Выбора",40,1);
    Выбираем=ПолВыбор;
    
    КонецПроцедуры
    Процедура Сформировать()
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Опер=СоздатьОбъект("Операция");
    Опер.ВыбратьОперацииСПроводками(Дата1,Дата2,Выбираем,);
    Пока Опер.ПолучитьПроводку()=1 Цикл
    Таб.ВывестиСекцию("Секция_1");
    КонецЦикла;
    Таб.Показать("Таблица");
    КонецПроцедуры
    
    у меня фильтрует только не пойму как сделать чтобы распознавались еще слова без кавычек так программа фильтрует "Бумага"так нет --Бумага .По цифрам тоже фильтрует!Вопрос в том как сделать чтобы фильтр был без кавычек
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Фильтр. В качестве значения данного параметра можно передавать строку, в которой могут находиться одна или несколько корреспонденций счетов или символьных строк, разделяемых точкой с запятой '';''.
    Код:
    
    Исходник="Бумага";
    Фильтр=Исходник+";"""+Исходник+"""";
    
    Найдет с кавычками и без
  3. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Здравствуйте.
    Можно добавить кавычки заменой.
    Например. Вы вводите счета через запятую: 20,10
    Измените одну строчку
    Код:
    Выбираем=""""+СтрЗаменить(ПолВыбор,",",""",""")+"""";
    и получите строку: "20","10"
  4. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Не обратила внимание, что у Вас вводится многострочный текст.
    В таком случае при вводе:
    20
    10
    надо запятую заменить на разделитель строк.
    Код:
    Выбираем=""""+СтрЗаменить(ПолВыбор,РазделительСтрок,""",""")+"""";
  5. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Посмотрела, как фильтр задается в типовой. Не обязательно каждый счет отделять кавычками.
    Если Вы вводите несколько корреспонденций разными строками:
    20,10
    26,10
    то можно сделать так:
    Код:
    Выбираем=""""+СтрЗаменить(ПолВыбор,РазделительСтрок,";")+"""";
    Получится строка: "20,10;26,10"
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Я понял задачу немного иначе.... Может быть Бумага или "Бумага"
  7. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    В пользовательском представлении Бумага а так при вводе пользователем "Бумага"-чтобы работал метод и по нему фильтровал)
    С разделителем строк и просто не работает(только если сразу присваивать по пробовал 3 варианта)
    Код:
    //*******************************************
    Перем Выбираем;
    Процедура Сформировать()
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Секция_1");
    Опер=СоздатьОбъект("Операция");
    //Выбираем=""""+СтрЗаменить(ПолеВыб,РазделительСтрок,";")+"""";
    //Выбираем=""""+СтрЗаменить(ПолеВыб,РазделительСтрок,""",""")+"""";
    //Выбираем=""""+СтрЗаменить(ПолеВыб,",",""",""")+"""";
    Выбираем=ПолеВыб;//Так фильтрует
    Если ВыбДокументы.Выбран()=1 Тогда
    Опер.НайтиОперацию(ВыбДокументы);
    Опер.ВыбратьПроводки();
    Иначе
    Опер.ВыбратьОперацииСПроводками(Дата1,Дата2,Выбираем,);
    КонецЕсли;
    //Если ПоСубконто.Выбран()=1 Тогда
    // Опер.ИспользоватьСубконто(ПоСубконто);
    // Опер.ВыбратьОперацииСПроводками(Дата1,Дата2)
    //КонецЕсли;
    Пока Опер.ПолучитьПроводку()=1 Цикл
    Таб.ВывестиСекцию("Секция_2");
    КонецЦикла;
    Таб.ВывестиСекцию("Секция_3");
    Таб.Показать("Таблица");
    КонецПроцедуры
    Процедура Вводнового()
    
    Дата1 = НачалоПериодаБИ();
    Дата2 = КонецПериодаБИ();
    КонецПроцедуры
  8. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    и по цифрам тоже фильтровал без кавычек)
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если честно - ничего не понял....... Давайте более развернуто. Желательно с примерами
  10. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    У меня есть реквизит на форме типом строка.В которую Пользователь вводит значение поиска числовое или строчное.Метод "ВыбратьОперацииСПроводками" принимает значение если оно числовое то счет а если строчное то только в таком виде" Бумага".а надо чтобы когда пользователь вводил в реквизит формы просто слово без кавычек -->Бумага а в метод попадало значение "Бумага"и метод работал и отбор по счету тоже
  11. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    по отладчику передаеться строковое значение но всеравно метод отбирает только когда слово в кавычках типа так "бумага"
  12. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    блин не получается(не могу в метод передать строку (
  13. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Здравствуйте.
    Ну Вам же все выше рассказали. Чтобы добавить к тексту кавычки, нужно использовать их пару:
    Код:
    ПолВыбор = СтрЗаменить(""""+ПолВыбор+"""","""""","""");
    Я сделала проверку на всякий случай, вдруг кто-то введёт строку с кавычками.
  14. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Код:
    ПолеВыб2 = """"+СокрЛП(ПолеВыб)+"""";
    Сделал немного проще)

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