Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запрос с условием вхождения

Запрос с условием вхождения
Я
   mua thu
 
27.09.16 - 19:02
Добрый день!

Пожалуйста подскажите: есть в word список кодов контрагентов из 1С в виде   "111,222,333,444,555,666,777..." Нужно выбрать запросом контрагентов именно из этого списка. Как можно максимально  быстро это сделать? Мне пока только один вариант приходит на ум - это разобрать эту строку и добавить в массив все коды а потом уже делать запрос с условием вхождения в массив..)))

Заранее благодарю!
 
 
   jsmith
 
1 - 27.09.16 - 19:03
Да
   Господин ПЖ
 
2 - 27.09.16 - 19:03
я не против
   mua thu
 
3 - 27.09.16 - 19:10
Сорри, все - вопрос закрыт)) 

Решение такое нашел:


// Функция "расщепляет" строку на подстроки, используя заданный

 
//      разделитель. Разделитель может иметь любую длину.

//      Если в качестве разделителя задан пробел, рядом стоящие пробелы

 
//      считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр

//      игнорируются.

 
//      Например,

//      РазложитьСтрокуВМассивПодстрок(",один,,,два", ",") возвратит массив значений из пяти элементов,

 
//      три из которых - пустые строки, а

//      РазложитьСтрокуВМассивПодстрок(" один   два", " ") возвратит массив значений из двух элементов

 
//

//  Параметры:

 
//      Стр -           строка, которую необходимо разложить на подстроки.

//                      Параметр передается по значению.

 
//      Разделитель -   строка-разделитель, по умолчанию - запятая.

//

 
//  Возвращаемое значение:

//      массив значений, элементы которого - подстроки

 
//

Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока 1 = 1 Цикл
            Поз = Найти(Стр, Разделитель);
            Если Поз = 0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр, Поз - 1));
            Стр = СокрЛ(Сред(Стр, Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока 1 = 1 Цикл
            Поз = Найти(Стр, Разделитель);
            Если Поз = 0 Тогда
                Если (СокрЛП(Стр) <> "") Тогда
                    МассивСтрок.Добавить(Стр);
                КонецЕсли;
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз - 1));
            Стр = Сред(Стр, Поз + ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции
   mkalimulin
 
4 - 27.09.16 - 19:22
(3) Есть стандартная функция стрРазделить()
   youalex
 
5 - 27.09.16 - 19:23
(0) может прокатить:
СписокКодов = ","+ СписокКодов + ","

//в запросе:

ГДЕ &СписокКодов  ПОДОБНО "%," + СпрКонтрагенты.Код + ",%" 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует