Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Результат = Новый Массив; // для обеспечения обратной совместимости Если ПропускатьПустыеСтроки = Неопределено Тогда ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); Если ПустаяСтрока(Строка) Тогда Если Разделитель = " " Тогда Результат.Добавить(""); КонецЕсли; Возврат Результат; КонецЕсли; КонецЕсли; // Позиция = Найти(Строка, Разделитель); Пока Позиция > 0 Цикл Подстрока = Лев(Строка, Позиция - 1); Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда Результат.Добавить(Подстрока); КонецЕсли; Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); Позиция = Найти(Строка, Разделитель); КонецЦикла; Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда Результат.Добавить(Строка); КонецЕсли; Возврат Результат; КонецФункции
Источник
зы: админ, вот искал аналог СтрРазделить с игнорированием пустых строк - не нашел,зато нашел много дублей: https://helpf.pro/faq/view/504.html https://helpf.pro/faq/view/171.html https://helpf.pro/faq/view/351.html
, объедини пожалуйста.
зыы: кнопкой вставки ссылки невозможно пользоваться, ну что за извращенство с подменю, сделай одинарной как везде.
Запрос = Новый Запрос(); Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач)); Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон)); Запрос.УстановитьПараметр("Организация",Организация); Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, | ПоступлениеТоваровУслугТовары.Количество КАК Количество, | ПоступлениеТоваровУслугТовары.Цена КАК Цена, | ПоступлениеТоваровУслугТовары.Ссылка.Номер КАК Номер, | ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК Дата, | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент, | ПоступлениеТоваровУслугТовары.Номенклатура.Код КАК НоменклатураКод, | ПоступлениеТоваровУслугТовары.Номенклатура.Артикул КАК НоменклатураАртикул |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | И ПоступлениеТоваровУслугТовары.Ссылка.Организация = &Организация | |УПОРЯДОЧИТЬ ПО | Контрагент, | Номер, | Дата, | НоменклатураКод, | Номенклатура, | НоменклатураАртикул, | Количество, | Цена"; Результат = Запрос.Выполнить().Выбрать(); Текст = Новый ЗаписьТекста("c:\vigruz.txt", КодировкаТекста.ANSI); РезультатДок = Запрос.Выполнить().Выбрать(); Пока РезультатДок.Следующий() Цикл ОбработкаПрерыванияПользователя(); // В качестве разделителей необходимо использовать Символы. ВК (CR),ВТаб (VTab),НПП (NBSp),ПС (LF),ПФ (FF),Таб (Tab) //Если нам нужна строка вида " helpf.pro 07.08.2009 13 " в качестве разделителя используется табуляция //то пишем так: Текст.ЗаписатьСтроку(Строка(РезультатДок.Контрагент)+Символы.Таб+Строка(Формат((РезультатДок.Дата),"ДЛФ=D"))+Символы.Таб+Строка(РезультатДок.Номер)); // При загрузке строку можно будет разложить в массив для дальнейшей работы, РазложитьСтрокуВМассивПодстрок( ТекСтр, Символы.Таб). Ссылка на функцию ниже //Если нужен вид // helpf.pro // 07.08.2009 // 13 // здесь в качестве разделителя используется перевод каретки (следующая строка), то пишем Текст.ЗаписатьСтроку(РезультатДок.Контрагент); Текст.ЗаписатьСтроку(Символы.ПС); Текст.ЗаписатьСтроку(Формат((РезультатДок.Дата),"ДЛФ=D")); Текст.ЗаписатьСтроку(Символы.ПС); Текст.ЗаписатьСтроку(РезультатДок.Номер); КонецЦикла; Текст.Закрыть();