0
mua thu
27.09.16
✎
19:02
|
Добрый день!
Пожалуйста подскажите: есть в word список кодов контрагентов из 1С в виде "111,222,333,444,555,666,777..." Нужно выбрать запросом контрагентов именно из этого списка. Как можно максимально быстро это сделать? Мне пока только один вариант приходит на ум - это разобрать эту строку и добавить в массив все коды а потом уже делать запрос с условием вхождения в массив..)))
Заранее благодарю!
|
|
3
mua thu
27.09.16
✎
19:10
|
Сорри, все - вопрос закрыт))
Решение такое нашел:
// Функция "расщепляет" строку на подстроки, используя заданный
// разделитель. Разделитель может иметь любую длину.
// Если в качестве разделителя задан пробел, рядом стоящие пробелы
// считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
// игнорируются.
// Например,
// РазложитьСтрокуВМассивПодстрок(",один,,,два", ",") возвратит массив значений из пяти элементов,
// три из которых - пустые строки, а
// РазложитьСтрокуВМассивПодстрок(" один два", " ") возвратит массив значений из двух элементов
//
// Параметры:
// Стр - строка, которую необходимо разложить на подстроки.
// Параметр передается по значению.
// Разделитель - строка-разделитель, по умолчанию - запятая.
//
// Возвращаемое значение:
// массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
МассивСтрок = Новый Массив();
Если Разделитель = " " Тогда
Стр = СокрЛП(Стр);
Пока 1 = 1 Цикл
Поз = Найти(Стр, Разделитель);
Если Поз = 0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр, Поз - 1));
Стр = СокрЛ(Сред(Стр, Поз));
КонецЦикла;
Иначе
ДлинаРазделителя = СтрДлина(Разделитель);
Пока 1 = 1 Цикл
Поз = Найти(Стр, Разделитель);
Если Поз = 0 Тогда
Если (СокрЛП(Стр) <> "") Тогда
МассивСтрок.Добавить(Стр);
КонецЕсли;
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз - 1));
Стр = Сред(Стр, Поз + ДлинаРазделителя);
КонецЦикла;
КонецЕсли;
КонецФункции
|
|
5
youalex
27.09.16
✎
19:23
|
(0) может прокатить:
СписокКодов = ","+ СписокКодов + ","
//в запросе:
ГДЕ &СписокКодов ПОДОБНО "%," + СпрКонтрагенты.Код + ",%"
|
|