Автоматическое извлечение текстов 1с что это

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Почему тормозит 1С. Регламентные задания

Начнем с реального случая. Не так давно к нам обратился один наш клиент с жалобой на «тормоза» 1С у одного из его сотрудников. Симптомы выражались в том, что через некоторый промежуток времени конфигурация Управление Торговлей 10 начинала сильно тормозить, а проще говоря подвисала на какое-то время.

При более подробном разборе ситуации выяснилось, что это происходит только у одного сотрудника, причем на любом рабочем месте, происходит давно, но если раньше «тормоза» продолжались около секунды, то теперь, после обновления, они могут продолжаться до 15-20 секунд, что делает работу крайне некомфортной.

В принципе, исходных данных уже достаточно, чтобы сделать первые выводы. Приведем их еще раз:

Чтобы подтвердить свои догадки заглянем в Настройки параметров учета:

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это Действительно, «проблемный» пользователь указан как пользователь для выполнения регламентных заданий. Как выяснилось, когда-то давно от имени этого пользователя работало задание автообмена РИБ. Осталось посмотреть, что именно являлось причиной эпизодического «торможения». Это тоже несложно сделать:

Обычное приложение

В конфигурациях на основе обычного приложения единого инструментария для управления регламентными заданиями нет. Во многом это связано с тем, что на момент их первоначальной разработки сама концепция регламентных заданий была развита довольно слабо.

Управление многими регламентными заданиями производится через настройку связанных с ними подсистем. Например, настройки регламентных заданий, связанных с обменом данными следует искать в настройках обмена, связанные с ЕГАИС в настройках торговлей алкоголем и т.д.

В этом случае следует воспользоваться внешней обработкой КонсольЗаданий (JobsConsole), которая входит в набор стандартных обработок на диске ИТС. Обработка предоставляет единый интерфейс для всех заданий и позволяет выполнять их централизованную настройку, а также контролировать выполняющиеся в текущее время задания.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что этоДанный список нужно тщательно изучить, все ненужные задания следует отключить, а у нужных привести расписание в соответствие с насущными потребностями и здравым смыслом. Например, в нашем случае, нет никакой необходимости обрабатывать ответы ЕГАИС раз в 30 секунд (эта настройка сделана для тестирования) и в рабочем режиме вполне достаточно будет делать это скажем раз в полчаса.

Управляемое приложение

В конфигурациях на основе управляемого приложения регламентным заданиям отведена более значительная роль, с их помощью могут выполняться различные задания по обслуживанию информационной базы и поддержанию ее в актуальном состоянии, но в тоже время именно регламентные задания чаще всего становятся причиной «тормозов».

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Прежде всего отключаем то, что явно ненужно, с чем вы не работаете. Потом оптимизируем расписание редко используемых функций, скажем обновление классификатора банков в Рознице, как и проверку контрагентов, можно проводить раз в неделю в нерабочее время или в конце (начале) рабочего дня.

Отдельное внимание следует уделить всему, что связано с поисковым индексом. Полнотекстовый поиск безусловно удобная вещь, но работа с его индексом является весьма и весьма ресурсоемкой задачей. Поэтому не стоит впадать в крайность и отказываться от него, но следует серьезно пересмотреть и настроить его параметры.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это А теперь подумаем, как часто в базе добавляется либо обновляется информация, по которой вы наиболее часто проводите поиск? Явно не каждую минуту, поэтому вполне достаточно будет обновлять индекс гораздо реже: раз час, раз в день или вообще раз в неделю.

Тоже самое относится и к слиянию индекса ППД, если вы обновляете индекс раз в день, то следует настроить слияние на выполнение раз в неделю, при этом выбрав в качестве начала задания наименее мешающее работе время.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что этоЭти несложные операции позволят вам без особого ущерба для функциональности конфигурации поднять комфортность работы с ней на новый уровень за счет отказа от частого выполнения достаточно ресурсоемких операций. Только не следует впадать в крайности, грамотно рассудите, насколько вам необходимы те или иные возможности и как часто следует выполнять связанные с ними задания.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Или подпишись на наш Телеграм-канал: Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Источник

Автоматическое извлечение текстов 1с что это

Использован релиз 3.0.104

В программе «1С:Бухгалтерия 8» (ред. 3.0) реализован механизм полнотекстового поиска во всех полях любого справочника, документа, списка и др.:

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Если работа поиска по каким-то причинам нарушена, либо осуществляется медленно, рекомендуется очистить индексы и затем обновить их (рис. 2). Эти действия доступны только пользователям с правами «Администратор».

Внимание! При работе через облачные технологии операции по очистке и обновлению индексов выполняются автоматически.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Для автоматического обновления индексов, быстрой и корректной работы поиска должно быть настроено выполнение двух регламентных заданий – «Обновление индекса ППД» и «Слияние индекса ППД». Обычно эти регламентные задания настроены по умолчанию и выполняются в программе ежедневно по расписанию в автоматическом режиме (например, каждый день с 8.00 каждый час).

Внимание! При работе через облачные технологии регламентные задания выполняются автоматически, их настройка не требуется.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Смотрите также

Источник

Полнотекстовый поиск в 1С (что это и пример использования)

Полнотекстовый поиск предоставляет следующие возможности:

Полнотекстовый поиск можно осуществлять в любой конфигурации на платформе 1С:Предприятие 8

Для того чтобы открыть окно управления полнотекстовым поиском необходимо выполнить следующее:

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что этоПолнотекстовый поиск осуществляется при помощи полнотекстового индекса. При отсутствии индекса полнотекстовый поиск как таковой не возможен. Для того чтобы поиск имел результат, все необходимые данные должны быть включены в полнотекстовый индекс. Если пользователем введены в базу новые данные, их следует включить в рассматриваемый индекс, иначе они не будут участвовать в поиске. Чтобы этого избежать, необходимо обновлять полнотекстовый индекс. При обновлении система анализирует только определенные типы данных: Строка, Данные ссылочного типа (ссылки на документы, справочники),Число, Дата, ХранилищеЗначения. Если пользователь не имеет прав доступа к определенной информации, то он не сможет увидеть ее в результатах поиска. Следует также помнить и о том, что в свойствах объектов, по которым будет происходить поиск должно быть установлено значение Полнотекстовый Поиск – Использовать, которое задано по умолчанию.

Как вы можете заметить свойство Использовать установлено для всего справочника Контрагенты, но сделать это можно и для каждого его реквизита соответствующего типа.

Рассмотрим более подробно полнотекстовый индекс, который состоит из двух частей (индексов): основного индекса и дополнительного. Высокая скорость поиска данных обеспечивается за счет основного индекса, но обновление его происходит относительно медленно, в зависимости от объема данных. Дополнительный индекс ему противоположен. Данные добавляются в него намного быстрее, но поиск осуществляется медленнее. Система осуществляет поиск одновременно в обоих индексах. Большая часть данных находится в основном индексе, а данные добавляемые в систему попадают в дополнительный индекс. Пока объем данных в дополнительном индексе небольшой, поиск по нему происходит относительно быстро. В тот момент, когда нагрузка на систему невелика, происходит операция слияния индексов, в результате чего дополнительный индекс очищается, а все данные помещаются в основной индекс. Слияние индексов предпочтительнее выполнять в тот момент времени, когда нагрузка на систему минимальна. С этой целью можно создавать регламентированные задания и задания по расписанию.

Специальные операторы, допустимые при задании поискового выражения

Механизм полнотекстового поиска допускает написание части символов русского слова одноклавишными латинскими символами. Результат поиска при этом не измениться.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Два оператора РЯДОМ

Групповой символ «*» может использоваться только в качестве замены конца слова

Оператор нечеткости «#». Если неизвестно точное написание названия, имени.

Программными средствами и средствами 1с: программирование.

Оператор синонимов «!». Позволяет найти слово и его синонимы

Как программно обновить индекс полнотекстового поиска?

Пример полнотекстового поиска данных

Определение переменной СписокПоиска

Кроме этого в процедуре обработки события ПриОткрыии формы определим, что эта переменная будет содержать список полнотекстового поиска, с помощью которого мы и будем осуществлять поиск в данных

Теперь для события нажатия на кнопку Найти напишем код, который позволит нам выполнять поиск в соответствии с тем выражением, которое задано в поле ПоисковоеВыражение

Сначала в этой процедуре мы устанавливаем поисковое выражение, введенное пользователем, в качестве строки поиска для полнотекстового поиска. Затем выполняем метод ПерваяЧасть(), который собственно запускает полнотекстовый поиск и возвращает первую порцию результатов. По умолчанию порция содержит 20 элементов. После этого мы анализируем количество элементов в списке поиска. Если он не содержит ни одного элемента, то мы выводим в форму соответствующее сообщение. В противном случае вызывается процедура ВывестиРезультатПоиска(), которая отображает полученные результаты пользователю.

Создадим в модуле формы процедуру с таким именем и напишем в ней код,

Действия, выполняемые в этой процедуре, просты. Сначала мы формируем сообщение о том, какие элементы отображены и сколько всего элементов найдено. Затем получаем результат полнотекстового поиска в виде HTML-текста и выводим этот текст в поле HTML-документа, расположенное в форме.

В заключение передаем управление в процедуру ДоступностьКнопок() для того, чтобы сделать доступными или, наоборот, запретить доступ к кнопкам Предыдущая порция и Следующая порция (в зависимости от того, какая порция полученных результатов отображена). Текст этой процедуры представлен в Коде

Теперь необходимо создать обработчики событий нажатия на кнопки ПредыдущаяПорция() и СледующаяПорция().

Заключительным «штрихом» будет создание обработчика события onclick поля HTML-документа, расположенного в форме. Дело в том, что результат полнотекстового поиска, представленный в виде HTML-текста, содержит гиперссылки на номера элементов списка поиска. И нам хотелось бы, чтобы при переходе пользователя на эту ссылку система открывала бы форму того объекта, который содержится в этом элементе списка. Для этого мы будем перехватывать событие onclick HTML-документа, содержащегося в поле HTML-документа, получать номер элемента списка из гиперссылки и открывать форму соответствующего объекта. Текст обработчика события onclick поля HTML-документа представлен в коде

Источник

Извлечение текста. Пример использования

Задача

Необходимо написать небольшую конфигурацию, в которой должен быть функционал по прикреплению документов (doc, xls, txt и т.д.). При этом текст документов в дальнейшем используется в полнотекстовом поиске, с помощью которого пользователи находят необходимые им документы. Чтобы не усложнять пример, прикрепляемые файлы будут храниться непосредственно в реквизите элемента справочника, как и извлеченный текст.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Поиск по содержимому документов реализуем с помощью отдельной обработки, где пользователь вводит строку поиска. В результате обработка показывает все документы, в которых содержится набранная строка.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Для начала реализуем функционал прикрепления документов и извлечения из них текста.

Прикрепляем, извлекаем

Создадим справочкик «СохраненныеДокументы» с двумя реквизитами:

У объекта «ИзвлечениеТекста» есть несколько методов:

Перейдем к реализации поиска по содержимому прикрепленных файлов.

Найти!

В тестовой конфигурации, ссылка на которую приведена в конце статьи, Вы можете посмотреть реализацию обработки полнотекстового поиска.

Заключение

Пример построен не самым оптимальным образом, то принцип работы должен быть понятен. В типовых конфигурациях существует похожий механизм. В той же «Библиотеке стандартных подсистем» извлечение текста из файла позволяет искать прикрепленные файлы по их содержимому.

Скачать тестовую конфигурацию с примером из статьи.

Источник

Извлечение текстов модулей из внешней обработки 1С

На этот раз, устав от добавления текстов модулей множества форм в обработке «Анализ процедур и функций», решил реализовать автоматическую загрузку этих модулей из выгруженных файлов (функционал платформы 1с «Выгрузить в файлы»).

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Для внешней обработки формируется следующая структура каталогов.

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Текст модуля обработки выгружается в файл «\Ext\ObjectModule.bsl«.

Тексты модулей управляемых форм — в файлы с расширением «.bsl«: «\Forms\НазваниеФормы\Ext\Form\Module.bsl«.

А вот обычные (не управляемые) формы выгружаются в следующие двоичные файлы: «\Forms\НазваниеФормы\Ext\Form.bin«.

Пришлось повозиться с парсингом этих бинарных файлов. Зато опробовал новую (для меня) возможность платформы работы с бинарными файлами

Файл с данными обычной формы представляет из себя бинарный файл с блоками данных.

Блоки разделены секциями, состоящими из 3-х 16-ричных чисел, оканчивающихся числом 7fffffff.

В процессе анализа некоторого количества обработок обнаружилось 2 варианта расположения блоков.

Вариант 1

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Вариант 2

Автоматическое извлечение текстов 1с что это. Смотреть фото Автоматическое извлечение текстов 1с что это. Смотреть картинку Автоматическое извлечение текстов 1с что это. Картинка про Автоматическое извлечение текстов 1с что это. Фото Автоматическое извлечение текстов 1с что это

Первые 3 блока в моей выборке обработок всегда начинались с одних и тех же адресов : 00000012(hex) или 18(dec), 00000231(hex) или 561(dec), 00000270(hex) или 624(dec).

Я остановился на следующем алгоритме определения необходимой секции, содержащей код модуля формы.

Данный алгоритм был получен империческим путем и не может слепо использоваться в продуктивной разработке!

Если Вы владеете информацией по данному формату, буду рад увидеть Ваш комментарий к данной публикации 🙂

Если последнее число 3-го блока = 7fffffff, считаю, что это первый вариант расположения блоков. В остальных случаях — второй вариант.

Для первого варианта

Начало блока с текстом модуля формы совпадает с началом 4-го блока (необходимо только пропустить секцию с 3-мя цифрами), т.е. это в 10-чной системе счисления: 691(начало 4-го блока) + 8*3(3 16-чных числа) + 2(пробелы между числами).

Т.е. считаю, что это всегда 717 (dec)

Адрес окончания текстового блока — второе число секции из 3-х чисел + смещение на константу 000002D2(hex) или 722(dec).

Для случая, приведенного на скриншоте (см. выше) получаем:

где 551(dec) это 00000227(hex)

Для второго варианта

Анализируем секцию из 3-х чисел блока 3.

Адрес начала блока с кодом 1С — второе число (к этому числу необходимо еще добавить смещение на константу 722(dec) и размер секции из 3-х чисел 26(dec)).

Для случая, приведенного на скриншоте (см. выше) получаем:

где 127773(dec) — это 0001F31D(hex)

Адрес окончания блока с кодом 1С — третье число.

Для случая, приведенного на скриншоте (см. выше) получаем:

где 471603(dec) — это 00073233(hex)

Для чтения из двоичного файла написал процедуру:

Ну в заключении, чтобы не «бегать» в конфигуратор для выгрузки обработки в файлы, добавил выгрузку с помощью пакетного запуска конфигуратора 1С с выводом на экран результата выполнения данной выгрузки:

Ссылка на обработку на infostart и на github

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *