Программный разбор текста. Регулярные выражения

Появилась задача разбора HTML текста внутри модуля 1С. Попытался сделать посредством встроенных функций — получилось очень медленно. Функция СРЕД() в общем съедала до 90% времени, при том, что обработка одной страницы могла идти около минуты. Задача была решена путем использования стандартной Windows библиотеки RegExp, которая очень быстро обрабатывает текст. Данная … Далее

Обход дерева значений

Процедура ОбработкаСтрокиЗагрузки(Строки, Буфер, Игнорировать) Для Каждого Стр ИЗ Строки Цикл Если Строки.Количество() > 0 Тогда ОбработкаСтрокиЗагрузки(Стр.Строки, Буфер, Игнорировать); КонецЕсли; Если Не ЗначениеЗаполнено(Стр.Номенклатура) И Игнорировать Тогда Продолжить; КонецЕсли; СтрокаБуфера = Буфер.Добавить(); СтрокаБуфера.Ссылка = Стр.Номенклатура; СтрокаБуфера.НовоеНаименование = Стр.Наименование; КонецЦикла; КонецПроцедуры

Свертка группировок схемы компановки данных в форме

Если необходимо что бы какая то группировка при выводе СКД была свернута, то ее необходимо помещать на форму, и с помощью следующего кода сворачивать нужные группировки &НаКлиенте Процедура Формирование(Команда) Результат = ЭлементыФормы.ПолеТабличногоДокумента; СкомпоноватьРезультат(Результат); Если Результат.КоличествоУровнейГруппировокСтрок() > 0 Тогда Результат.ПоказатьУровеньГруппировокСтрок(0); КонецЕсли; КонецПроцедуры

Перенос оборотов между счетами

Очень часто бывает так, что необходимо произвести перенос всех оборотов с одного счета на другой. Раньше я это делал через групповую обработку справочников и документов. Плюс метода в том, что можно наложить условие на обрабатываемые обьекты. Однако, при применении этого метода возникает необходимость в проведении документов после изменении реквизитов, а … Далее

Заметка. Добавление обработчика к элементам формы

В программно добавляемые реквизиты можно добавить обработчики событий. Это делается для элементов формы. Используется метод УстановитьДействие в параметры которого передается имя события и действие. Например для колонки таб. части: Процедура ПриОткрытии() УстановитьОбработчики(); КонецПроцедуры Процедура СтатьяДвиженияДенежныхСредствНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; //————————— МассивСтатей = Новый СписокЗначений; Выборка = … Далее

Открытие управляемой формы объекта. Эмуляция события «Обработка интерактивной активации»

При работе в управляемом интерфейсе в карте маршрута не срабатывает обработчик события «ОбработкаИнтерактивнойАктивации», которая в обычном, не управляемом режиме может быть использована для открытия форм документов и справочников привязанных к задаче. Я эту проблему решил следующим способом: Для задач создал форму списка Для списка подписался на событие «ПередНачаломИзменения» Реализовал следующий … Далее

Открытие формы записи регистра сведений

На сайте мисты (http://www.forum.mista.ru/topic.php?id=415772) имеется меседж в котором описывается каким образом можно открыть запись регистра сведений. Приведу его: Ключ = Новый Структура(); Ключ.Вставить(«ТипАвтомобиля», ВыбраннаяСтрока.ТипАвтомобиля); Ключ.Вставить(«Водитель»,?(ВыбраннаяСтрока.Водитель = «Водитель», Истина, Ложь)); м = РегистрыСведений.КоэффициентыЗаработка.Получить(ВыбраннаяСтрока.Период, Ключ); ФормаЗаписи=РегистрыСведений.КоэффициентыЗаработка.ПолучитьФормуРедактированияЗаписи(«ФормаЗаписи»); ФормаЗаписи.Период = ВыбраннаяСтрока.Период; ЗаполнитьЗначенияСвойств(ФормаЗаписи,Ключ); ЗаполнитьЗначенияСвойств(ФормаЗаписи,м); ФормаЗаписи.ОткрытьМодально();

Автоматический подбор по строке

В стандартные элементы формы, содержащие ссылки на объект могут быть подставлены данные подобранные по первым символам наименования или кода для справочников или же по номеру для документов. В качестве расширения указанное поле можно использовать для поиска по любому строковому содержанию в любом реквизите искомого объекта. Для этого необходимо подписаться на … Далее

Получение времени из даты

Сегодня появилась необходимость получить время из даты. Для вывода информации на экран достаточно использовать форматную строку  «ДФ=HH:mm» однако, мне захотелось получить «чистое» время без информации о дате. Для этого в тексте запроса я использовал следующую конструкцию: ДОБАВИТЬКДАТЕ(ДатаВремя(1,1,1),МИНУТА,РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(График.Дата, ДЕНЬ),График.Дата,Минута)) КАК Время