// Например необходимо: // в строке "C:\Documents and Settings\E.S.Migachev\Рабочий стол\1С" получить номер последнего символа "\" //Ном= ПолучитьНомерПоследнегоСимвола( "C:\Documents and Settings\E.S.Migachev\Рабочий стол\1С", "\") //в результате Ном=53 Функция ПолучитьНомерПоследнегоСимвола(Знач ИсходнаяСтрока, Знач СимволПоиска) ПозицияСимвола = СтрДлина(ИсходнаяСтрока); Пока ПозицияСимвола >= 1 Цикл Если Сред(ИсходнаяСтрока, ПозицияСимвола, 1) = СимволПоиска Тогда Возврат ПозицияСимвола; КонецЕсли; ПозицияСимвола = ПозицияСимвола - 1; КонецЦикла; Возврат 0; КонецФункции
//Вых - ЭлементыФормы.РезультатТабличныйДокумент, //ТЗЗ - Результат выполнения запроса Процедура ПечатьРезвТаб(Вых,ТЗЗ) Экспорт КоличествоКолонок = ТЗЗ.Колонки.Количество(); Выборка = ТЗЗ.Выбрать(ОбходРезультатаЗапроса.Прямой); ДетальнаяСтрока = Вых.ПолучитьОбласть(1, , 1, ); ОбластьОбщихИтогов = Вых.ПолучитьОбласть(1, , 1, ); ОбластьОбщихИтогов.Область().Шрифт = Новый Шрифт(ОбластьОбщихИтогов.Область().Шрифт, , , Истина, , ,); ОбластьИерархическихЗаписей = Вых.ПолучитьОбласть(1, , 1, ); ОбластьИерархическихЗаписей.Область().Шрифт = Новый Шрифт(ОбластьИерархическихЗаписей.Область().Шрифт, , , Истина, , ,); ОбластьГрупповыхЗаписей = Вых.ПолучитьОбласть(1, , 1, ); ОбластьГрупповыхЗаписей.Область().Шрифт = Новый Шрифт(ОбластьГрупповыхЗаписей.Область().Шрифт, , , Истина, , ,); ОбластьЗаголовка = Вых.ПолучитьОбласть(1, , 1, ); Для ТекущееПоле = 0 По КоличествоКолонок - 1 Цикл Область = ОбластьЗаголовка.Область(1, ТекущееПоле + 1); Область.Текст = ТЗЗ.Колонки[ТекущееПоле].Имя; Область.ШиринаКолонки = ?(ТЗЗ.Колонки[ТекущееПоле].Ширина<3,3,ТЗЗ.Колонки[ТекущееПоле].Ширина); КонецЦикла; Вых.Вывести(ОбластьЗаголовка); ОбластьЗаголовка = Вых.Область(1, 1, 1, КоличествоКолонок); ОбластьЗаголовка.Шрифт = Новый Шрифт(ОбластьЗаголовка.Шрифт, , , Истина, , ,); ОбластьЗаголовка.ЦветФона = Новый Цвет(234, 234, 234); ОбластьЗаголовка.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1); Вых.НачатьАвтогруппировкуСтрок(); Пока Выборка.Следующий() Цикл ОбработкаПрерыванияПользователя(); Если Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоГруппировке Тогда ИсходнаяСтрока = ОбластьГрупповыхЗаписей; ИначеЕсли Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда ИсходнаяСтрока = ОбластьИерархическихЗаписей; ИначеЕсли Выборка.ТипЗаписи() = ТипЗаписиЗапроса.ОбщийИтог Тогда ИсходнаяСтрока = ОбластьОбщихИтогов; Иначе ИсходнаяСтрока = ДетальнаяСтрока; КонецЕсли; Для ТекущееПоле = 0 По КоличествоКолонок - 1 Цикл Область = ИсходнаяСтрока.Область(1, ТекущееПоле + 1); Область.Текст = Выборка[ТекущееПоле]; КонецЦикла; Вых.Вывести(ИсходнаяСтрока, Выборка.Уровень()); КонецЦикла; Вых.ЗакончитьАвтогруппировкуСтрок(); КонецПроцедуры
Функция ВыделитьСлово(ИсходнаяСтрока) Экспорт Буфер = СокрЛ(ИсходнаяСтрока); ПозицияПослПробела = Найти(Буфер, " "); Если ПозицияПослПробела = 0 Тогда ИсходнаяСтрока = ""; Возврат Буфер; КонецЕсли; ВыделенноеСлово = СокрЛП(Лев(Буфер, ПозицияПослПробела)); ИсходнаяСтрока = Сред(ИсходнаяСтрока, ПозицияПослПробела + 1); Возврат ВыделенноеСлово; КонецФункции
Функция мРазнПреобразоватьСтрокуСБольшимиБуквами(ИсходнаяСтрока) Экспорт СтрокаВозврата = Сред(ИсходнаяСтрока, 1, 1); Для Сч = 2 По СтрДлина(ИсходнаяСтрока) цикл ПредСимвол = Сред(ИсходнаяСтрока, Сч - 1, 1); ТекСимвол = Сред(ИсходнаяСтрока, Сч, 1); СледСимвол = Сред(ИсходнаяСтрока, Сч + 1, 1); Если ВРЕГ(ТекСимвол) = ТекСимвол тогда Если ВРЕГ(ПредСимвол) <> ПредСимвол тогда СтрокаВозврата = СтрокаВозврата + " "; Если ВРЕГ(СледСимвол) <> СледСимвол тогда ТекСимвол = НРЕГ(ТекСимвол); КонецЕсли; КонецЕсли; КонецЕсли; СтрокаВозврата = СтрокаВозврата + ТекСимвол; КонецЦикла; Возврат СтрокаВозврата; КонецФункции // мРазнПреобразоватьСтрокуСБольшимиБуквами()
Список=новый СписокЗначений; Для н=КодСимвола("А") По КодСимвола("Я") Цикл Список.Добавить(Символ(н)); КонецЦикла; Значение="ДебиторкаПоКонтрагентам"; Результат=""; Для н=1 По СтрДлина(Значение) Цикл Сим=Сред(Значение,н,1); Если Список.НайтиПоЗначению(Сим) <> Неопределено Тогда Сим=" "+Сим; КонецЕсли; Результат=Результат+Сим; КонецЦикла; Сообщить(Результат);