"Улучшение" поиска в динамических списках в 8.3.5

Публикация № 292828

Разработка - Работа с интерфейсом

полнотекстовый индекс поиск по динамическому списку

56
Наверняка многие из вас читали публикацию 1С о доработке поиска в динамических списках - http://v8.1c.ru/o7/201401ls/index.htm.
В первом приближении кажется, что все отлично и пользователи теперь смогут работать еще более эффективно.
Но на практике ситуация очень далека от идеальной и имеет важные особенности.
Функциональность нового поиска основана на двух механизмах:
- полнотекстовый поиск (работает очень быстро и требует минимум вычислительных ресурсов);
- поиск средствами СУБД (в общем случае длительность поиска и затраты вычислительных ресурсов пропорциональны объему информации в таблице).

В текущей реализации поиск в списке будет осуществляться без использования полнотекстового поиска в следующих случаях (источник):
- полнотекстовый индекс выключен на уровне информационной базы;
- объект основной таблицы не индексируется полнотекстовым индексом;
- в результате поиска с помощью полнотекстового поиска, была получена ошибка.

Если же полнотекстовый поиск включен в информационной базе, а индекс не обновлен совсем или частично (из моей практики 95% информационных баз Заказчиков), то пользователь при поиске получит либо недостоверный, либо пустой результат поиска.

Спрашиваем у Фирмы 1С - как быть? как гарантировать достоверность результатов поиска всегда?
Получаем ответ: Да, для того, чтобы результаты поиска при включенном полнотекстовом поиске были актуальными, нужно следить за тем, чтобы индекс полнотекстового поиска был актуальным.Других вариантов эффективного и актуального поиска пока нет (источник).

А существует ли вообще "актуальный полнотекстовый индекс"? Зависит от числа пользователей, интенсивности изменения информации в базе и частоты запуска обновления индекса. Обычно обновление индекса запускают раз в 60 секунд. Хорошо, если объектов было изменено не много, и процедура успела обработать все изменения за эти 60 секунд. А если сделали перепроведение группы документов, или массовую перезапись справочника? В этом случае никто не может гарантировать время, через которое поиск по индексу снова даст достоверные данные.
В принципе, это не особо критично, кроме нескольких ситуаций. Частый вариант работы пользователей - установить в списке отбор по какому-то значению, например "Контрагенту", ввести новый или скопировать существующий документ и записать. Со старым поиском новый документ моментально был виден в списке. Теперь пользователь его увидит только через N секунд в лучшем случае, где N скорее ближе к 50-60 секундам, нежели к 2-3.
Если не заметить, что нового документа нет и по отобранным результатам предоставить информацию кому-либо, то она будет заведомо недостоверной.

Это было в случае нормальной работы с информационной базой. А что будет в специфических ситуациях? Приведу пару примеров.
1) В рабочей базе полнотекстовый индекс включен и часто обновляется. Пользователь просит развернуть ему копию рабочей базы, что по ней заняться анализом данных.
Восстанавливаем бэкап и даем доступ. Вот только полнотекстовый поиск работать не будет, т.к. индекс хранится не в СУБД, а в отдельных файлах (и в файловом, и в клиент-серверном варианте). Индекса нет в dt-файле.
т.е. чтобы пользователь смог использовать поиск по спискам - надо выключить полнотекстовый индекс в этой базе. Правда пользователь будет слегка удивлен тому, что поиск будет выполняться гораздо дольше. Либо перестроить индекс по всей базе.
 
2) (Актуально для более менее больших баз). В рабочей базе полнотекстовый индекс включен и часто обновляется. Наступает конец месяца и начинается закрытие периода. Начинаем массово грузить и перепроводить документы. Для снижения нагрузки на систему блокируем выполнение регламентных заданий, соответственно, и обновление индекс останавливается. Пользователи будут, мягко говоря, в недоумении - чего же в списках нет новых или измененных документов. Единственный выход - отключить полнотекстовый поиск для информационной базы, и, соответственно, получить еще большую нагрузку на оборудование за счет тяжелого поиска по всем реквизитам.

Таким образом, как мне кажется, операция по обновлению индекса станет еще одной головной болью администраторов информационных баз.
Система, ранее гарантировавшая 100% достоверность и актуальность информации в любой момент, сейчас превращается скорее в справочную систему, в которой нельзя быть полностью уверенным.
А пользователи получают еще один повод для упрека ИТ-шников - "ваша система неправильно работает".

56

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Aleksey.Bochkov 3237 23.07.14 06:15 Сейчас в теме
Коллеги, буду благодарен за ваше мнение и опыт.
Возможно, это поможет убедить Фирму 1С реализовать механизм качественнее.
3. ander_ 23.07.14 07:26 Сейчас в теме
(1) что-то я сильно в этом сомневаюсь (что что-то поможет убедить фирму 1с) :) Уверен, что делали они это осознанно, взвешивая все плюсы и минусы.
4. vandalsvq 1129 23.07.14 07:48 Сейчас в теме
(3) ander_, а вот я не уверен что 1С делает все "взвешивая + и -", Такси и его изменение в будущем тому доказательство (самый яркий пример - Масштаб - компактный, обычный).

(1) спасибо за статью, невнимательно читал описание как работает поиск. На досуге надо подумать стоит ли его оставлять во вновь разрабатываемых решениях, до момента пока обычные пользователи не замучают 1С :)
2. Bronislav 23.07.14 06:53 Сейчас в теме
На днях тоже пробовал этот поиск. Результаты немного удивили.
Тут еще самое веселье, что если зайти в типовые конфигурации и посмотреть расписание регл задания по обновлению поиска, увидим интервал в 10 секунд.
А если зайти на итс и посмотреть "систему стандартов и методик разработки...", то видим:

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

Может конечно в новом итс это дело исправили, но все равно забавно.
RegrZ; B2B; BigB; RomanRomans; +4 Ответить
5. lustin 23.07.14 08:19 Сейчас в теме
(0)

А существует ли вообще "актуальный полнотекстовый индекс"?


Немного не тот вопрос задаёте. В статье описано то, что в 1С нет функциональности которая называется "real time full text search". Если бы вопрос был задан как "А существует ли полнотекстовый поиск в реальном времени ?". Я бы в ответ на него не задумываясь дал ссылку на ElasticSearch.

То что изображено на картинке "в Зазеркалье", в том же "Эластичном поиске" ;-) называется
Поиск предложений (вольный перевод)

И тут я понимаю компанию 1С, и чтобы вам понять, какие плюсы и минусы рассматривали при реализации данного механизма, нужно погрузиться в бизнес-задачу.

Итак, давайте анализировать от обратного, как в школе в математике:

1. пусть в 1С необходим полнотекстовый поиск в режиме реального времени.
2. тогда бизнес задача звучит так, что "необходимо чтобы информация введенную в информационную систему одним пользователем, была видна другому пользователю менее чем за одну секунду"
анализируя такую бизнес-задачу мы с вами сразу понимаем, что она близка к задаче
"необходимо, чтобы с одного рабочего места информация о событии происходящем на нем была доступна на другом рабочем месте" системы.

Я не зря дал вам ссылку на инструмент из Web разработки и BigData - там эта задача стоит достаточно остро - в связи с тем что браузеров (а рабочее место пользователя сайта - это именно его браузер), много и вероятность выдачи неактуальной информации достаточно велика, в связи с этим, там эта задача решена с помощью 2 инструментов:
Обновления по расписанию http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-update-settings.html
и порционного обновления документов в индексе по событию
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/partial-updates.html

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

Но вместе с тем - вернемся к основному посылу. Нужен поиск в режиме реального времени ? Вопрос - зачем и кому ? Если кому-то нужно что-либо знать в режиме реального времени, то за это отвечает не аналитический инструмент поиска и анализа текстов документов, коим и является "полнотекстовый поиск", а некий инструмент "оповещения о событиях". Де факто мы хотим, чтобы группа пользователей работающая с одними сущностями наблюдала в режиме реального времени происходящие события у друг-друга. Как только у нас возникает словосочетание "коммуникация по событиям", то задача явно уходит в плоскость интеграции. И опять я приведу пример из мира Web - там близко к нашей задаче стоит модель разработки Comet
Аналогия в данном случае - это "Чат над документами" ;-)

То есть - мы с вами потихоньку проходим к следующему. Если объединить концепцию поиска в режиме реального времени и событийную модель, то для указанной задачи (если не использовать сторонние инструменты) проблема не во времени регламентного задания, а в двух вещах:

1. инициатором события обновления индекса должен быть инициатор события с сущностью приводящий к его неактуальности.
то есть необходим псевдокод типа:
Процедура ОбработкаКоманды()
  ВыполнитьЧтоТо()
  ЗапуститьЧастичноеОбновлениеИндексаВФоновомЗадании()
КонецПроцедуры


2. и самое главное это управление порциями полнотекстового поиска, то есть если происходит много частичных обновление небольшого количество документов - на данный момент порция вроде как 10000 документов и это константа.
то есть в идеале код процедуры ЗапуститьЧастичноеОбновлениеИндексаВФоновомЗадании выглядит так:
МенеджерПолнотекстовогоПоиска.ОбновитьИндекс(Ложь,Истина,1);

Для тех кто решил запустить это код, знают что третьего параметра там нет. А очень хочется.

Ну и напоследок - уж очень длинный комментарий получился скажу еще 2 вещи.

1. для любителей поэкспериментировать с производительностью и посмотреть на полнотекстовый поиск -посмотрите на скорость ваших физический разделов на сервере 1С, где находятся служебные файлы поиска.
2. а также выполните следующий код:
Для сч = 1 по 50 Цикл
 ВыполнитьФоново("МенеджерПолнотекстовогоПоиска.ОбновитьИндекс(Ложь,Истина)");
КонецЦикла
МенеджерПолнотекстовогоПоиска.ОбновитьИндекс(Истина,Ложь)

с наблюдением за счетчиками Windows
suepifanov; Blagin; rusmil; NeviD; CyberCerber; sevushka; isn; mickey.1cx; Labotamy; jorikfon; xoisim; burni4; Варвар; Cereus; JIeHIH; ojiojiowka; fzt; BigB; It-developer; AlexandrIII; RegrZ; Sol; monkbest; MSensey; Templ; Uncore; puzakov; timm00; Tedman; pt_olga; Redokov; Дмитрий74Чел; Dementor; vandalsvq; RomanRomans; zhenyat; awa; theshadowco; support; Evil Beaver; tormozit; Adeptus; help1Ckr; Bronislav; Aleksey.Bochkov; borda4ev; +46 Ответить
6. borda4ev 23.07.14 09:01 Сейчас в теме
(5) lustin, Тот момент, когда комментарий, лучше статьи)))
rrunover; CyberCerber; chmv; jorikfon; JIeHIH; +5 Ответить
7. lustin 23.07.14 09:32 Сейчас в теме
(6) iTony73, я постарался статью дополнить. Алексей задал вполне правильный вопрос - в той же Управлении торговлей, эта проблема стоит достаточно остро.

Ну буду вам советовать, а просто скажу - что в режиме конкурентного поиска информации, на одном из проектов динамические списки поиска "смотрели" не в УТ напрямую, а во внешний ODBC источник и в ElasticSearch рядом с этим источником. Находя необходимую ссылку объекта - уже она передавалась в качестве объекта формы внутри кода 1С.
Но нас там спасло, что были хорошие python разработчики рядом с 1С-специалистами.
Отдельная веселая история как мы делали быструю и почти-синхронную реплику 1С данных, но это уже в интеграцию уходит.

8. vandalsvq 1129 23.07.14 12:16 Сейчас в теме
(7) lustin, почитал про ElasticSearch, очень интересно и познавательно. А можно подробнее чуток про связку? Можно в личном порядке ;)
10. lustin 23.07.14 14:05 Сейчас в теме
(8) vandalsvq, ты когда демо пришлешь ;-) Можно и в личном.
25. lustin 18.08.14 02:00 Сейчас в теме
(8) vandalsvq, Если до Инфостарта потерпишь покажу тебе на примере на локальной машине.
27. vandalsvq 1129 08.11.14 20:56 Сейчас в теме
(25) lustin, на Ивенте маленько поспрашивал, счас сам копать начинаю почуток. Может быть выложу готовый инструмент для 1С, если конечно он получиться. А то ведь как оно бывает. Руки крюки - только голова молодец :)))))))

(26) lustin, статью посмотрел, ну да, это не совсем то что мне надо, но тоже полезно. Добавил в заметки, когда будут руки честаться эластиком плотно тогда думаю любая статья пригодится. А уж твои тем более.
26. lustin 19.10.14 00:10 Сейчас в теме
(8) vandalsvq, попробовал начать описывать подход к ElasticSearch. Тебе не очень понравится - там пока много намеков на Hive, Hadoop и ElasticSearch. Обещаю на Infostart Event рассказать чуть подробней. А пока накидываю ссылки и заметки для будущей статьи http://xdd.silverbulleters.org/t/bigdata-logmanager-dlya-1s/62
28. Lapitskiy 902 04.01.16 05:05 Сейчас в теме
(5) lustin, ... тот момент, когда IT специалист, вместо решения проблемы, объясняет, что заказчик просто тупой.
9. AlX0id 23.07.14 13:16 Сейчас в теме
Ну улучшение-то может и без кавычек.. Только вот область применения его резко сужена за счет требований актуальности полнотекстового поиска - то да.
На мой взгляд, так как улучшение в первую очередь интерфейсное, нежели структурное - можно было бы и спросить программистов - нужно ли использовать к данному списку полнотекстовый поиск или нет. Или хотя бы - нужен ли он уберактуальный или позапрошлогодний сойдет.. Все лучше, нежели пользователю выдавать сообщения о том, что его индекс полнотекстового поиска неактуален, видите ли - на мой взгляд большей подставы для штатных программеров трудно придумать..
11. Yashazz 2855 23.07.14 16:35 Сейчас в теме
Нерегулируемость и неуправляемость полнотекстового поиска, насколько я понял из статьи и комментариев, остались на уровне 8.1, так?
12. MarSeN 970 23.07.14 16:51 Сейчас в теме
Не сочтите за рекламу: для УФ (не интерфейс такси) пользуйте быстрый поиск из Universal Extensions - http://infostart.ru/public/266022/.
никаких индексов не требуется.
Для режима такси надо доработать
13. Yashazz 2855 23.07.14 18:05 Сейчас в теме
(12) Тогда уж лучше такое: http://infostart.ru/public/254906/, опять же, за рекламу не считать ))) Достаточно просто, легко портируемо и совершенно бесплатно)
15. MarSeN 970 23.07.14 21:21 Сейчас в теме
(13) Yashazz,
Не увидел там быстрого поиска
16. Yashazz 2855 24.07.14 00:37 Сейчас в теме
(15) MarSeN, там не быстрый поиск, там отбор по ячейке)

Так что, умеет 8.3.5 обновить только полнотекстовый индекс по конкретному справочнику, например?
17. AlX0id 24.07.14 12:07 Сейчас в теме
(16) Yashazz,
МенеджерПолнотекстовогоПоиска (FullTextSearchManager)
ОбновитьИндекс (UpdateIndex)
Синтаксис:

ОбновитьИндекс(<РазрешитьСлияние>, <Порционное>)
Параметры:

<РазрешитьСлияние> (необязательный)

Тип: Булево.
Разрешает слияние индексов.
Если Истина, то выполняется слияние частичного и полного индексов.
Значение по умолчанию: Ложь.
<Порционное> (необязательный)

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

Обновляет индекс полнотекстового поиска.
Показать

Из 8.3.5, собсн.
18. Yashazz 2855 24.07.14 14:17 Сейчас в теме
(17) ИТС и СП я читать умею, спасибо. Я спрашивал о несколько другом... Ну что ж, значит, нифига никакого прогресса за последние 5 лет.
19. AlX0id 24.07.14 15:09 Сейчас в теме
(18) Yashazz,
Про прогресс как раз-таки вопроса и не было ))
Ну да - нет его. Почему-то вот с ПТ у них приоритетнее бантики-рюшечки, нежели реальные проблемы, что делать..
14. EvgeniuXP 23.07.14 18:36 Сейчас в теме
даже если выключен поиск, данные ищутся не правильно :), на пустой базе с тремя-четыремя фильтрует нормально, а вот где данных около 40 000 - фильтр уже работает не правильно - почему? - не знаю.

Набираю "Цех № 1" - то отображает все строки начиная с "Цех №", т.е. там может и 1 и 2 и 3 быть. Если пишу "ЭМП-1" - отображает все строки "ЭМП-", там тоже может и 1 и 2 и 3 и т.д. - на маломо количестве строк работает хорошо, на большом - ужасно. Поэтому выкинул это поле ввода, и когда пользователь вводит - появится окно как делать поиск - вот оно отлично работает.
20. Sergey.Noskov 29.07.14 14:45 Сейчас в теме
Про задействование полнотекстового поиска в этом механизме не знал, спасибо.
>поиск средствами СУБД
Этот момент не раскрыт, тут то же может быть много сюрпризов т.к. поиск идет по Like
21. lustin 01.08.14 21:39 Сейчас в теме
(20) serno, А чего его раскрывать, если уж в свое время обсуждали или проходили, только делали мы это еще на 7.7 и MSSQL 2000

Ключевая ссылка http://www.1cpp.ru/forum/YaBB.pl?num=1216299078/0
По большому счету для 8.* это уже не так актуально в связи с тем что в 1С язык запросов "не пробрасываются" ключевые слова в TSQL например это CONTAINS() или FREETEXT(), в 1С++ можно было играться напрямую ;-)

Тут лучше подойдет ссылки на MSDN
http://msdn.microsoft.com/ru-ru/library/ms142571.aspx

У Oracle своя реализация, есть ли у них поддержка морфологии русского языка мне пока неизвестно, у MSSQL есть
http://docs.oracle.com/cd/B28359_01/text.111/b28303/ind.htm#i1006201

Про PostgreSQL начинать лучше с http://www.sai.msu.su/~megera/postgres/talks/fts_pgsql_intro.html

Как мы все понимаем - реализация у каждого сервера СУБД ключевых слов и подходов разная.

Была в свое время гразно-хакерская идея у одних моих знакомых на Oracle - они делали патч подменяющий запросы с LIKE по определенной таблице и полю: но дальше идеи это не пошло - уж слишком большим "костылем" это оказалось: никто в здравом уме такое поддерживать не согласился. Я уже не говорю про лицензионное соглашение
22. lustin 01.08.14 21:44 Сейчас в теме
(21) lustin, да и дополню - единственное что на данный момент недо-исследовано, нельзя ли использовать ключевые слова для full text search во внешних источниках 1С.
23. Sergey.Noskov 04.08.14 17:43 Сейчас в теме
(21) lustin.
Алексей, спасибо за ссылки, но речь таки не про Full-Text Search, ибо он в данном случае не используется, а именно про запросы с конструкциями Like %строка% и как это "быстро" работает.
24. lustin 18.08.14 01:54 Сейчас в теме
(23) serno, ну так и я про тоже самое, только опосредовано.

Конструкции (пишу по памяти):

1. like 'test%' попадают в индекс и работают быстро
2. like '_____test%' работают быстро за счет точного количества символов впереди
3. like '%test' и like '%test%' - работают медленно и оптимизации не подлежат, совсем. То есть вообще.. И 1С тут не причем.
http://stackoverflow.com/a/5039845

Нет другого выхода как использовать ключевые слова CONTAINS() и FREETEXT(), в качестве замены конструкции ПОДОБНО %хрень%

Единственный возможный способ в 1С использовать полнотекстовый поиск на уровне СУБД - это.... внезапно внешний источник данных.
Но там опять не тревиально и на границе разумного и лицензионного соглашения.
Способ использовался еще на 7-ке.

1. для каждой таблицы создаются VIEW с нормальным наименование, причем обязательно с параметром WITH SCHEMABINDING - чтобы обновлять VIEW было проще после обновления метаданных
2. соответственно внешний источник прописывается уже к полученной VIEW, в тексте запроса к внешнему источнику указываются нужные нам ключевые слова CONTAINS и т.д

Но я этот способ даже не пробовал - это ... Уж слишком он выглядит костылем. Особенно когда узнаешь что полнотекстовый поиск на уровне СУБД зависит от словаря языка, и там оказывается очень не ожидаемые результаты можно получить.
29. hame1e00n 507 18.01.16 10:37 Сейчас в теме
Тоже наткнулся на проблемы с этим быстрым поиском, когда он работает в связке с полнотекстовым поиском.
Делал самописную конфу, за основу взял БСП. Полнотекстовый поиск включил.
Примерно через полгода этот быстрый поиск перестал нормально работать, хотя все регламентные задания работают и выполняются часто.
Как это выражается: результат поиска сейчас один, через час другой, завтра - третий.
Пользователи в непонятках.
Очистка и перезаполнение индекса не дали результата.
В итоге отключил полнотекстовый поиск, теперь быстрый поиск в списке работает нормально (правда чуть медленнее).
30. damiron 19.01.16 15:38 Сейчас в теме
Добрый день всем!
Вопрос: Целесообразно ли использовать ПП, скажем, для поиска дублей справочников? Платформа 8.3.6.2237.
Спасибо.
31. Aleksey.Bochkov 3237 21.01.16 10:53 Сейчас в теме
(30) damiron,
Полнотекстовый поиск дает чуть больше возможностей в поиске близких по смыслу дубликатов (морфология слов, различный порядок и т.д.). Наверное в этой части имеет смысл его использовать. Если говорить про полное совпадение (по ИНН, наименованию, коду и т.д.), то лучше делать обычными запросами, т.к. результат обычного запроса гарантирует 100% достоверность результата, а полнотекстовый поиск - нет.
klinval; info1i; +2 Ответить
32. Andry.Boris 55 16.03.17 00:11 Сейчас в теме
День добрый!



Столкнулся с такой особенностью проявления работы поиска.
Создал форму произвольную в документе. На ней расположил динамический список с произвольным запросом. Если запустить в тонком клиенте то все работает хорошо. Если через веб клиента - то в самой строке текст не набирается (невидно), хотя если установить курсор на строку в списке и набрать часть слова то произойдет отсев как через строку ПП.
Как исправить отображение текста в ПП при наборе или его включить?

С уважением, Андрей
33. Xershi 714 16.03.17 01:04 Сейчас в теме
(32) может дело в языке? Одна буква набрана на русском, а другие на белорусском или украинском?
34. Andry.Boris 55 16.03.17 02:15 Сейчас в теме
(33) нет не в этом, раскладку проверял...
текст просто не отображается...
35. Xershi 714 16.03.17 16:27 Сейчас в теме
(34) меняли наименование вручную?
Обновление индекса у вас работает?
36. kuzev 40 16.03.17 16:36 Сейчас в теме
(32) Хм... буквально вчера столкнулся с такой же проблемой. Случаем, свойство "ТолькоПросмотр" у таблицы не Истина?
Andry.Boris; +1 Ответить
37. Andry.Boris 55 16.03.17 18:25 Сейчас в теме
(36) Спасибо Евгений!
Именно так если стоит у таблицы "ТолькоПросмотр" признак Истина то наблюдается такая картина! Проверил! Если убрать все ок!

Вопрос решен!
38. kar911 11.07.18 09:53 Сейчас в теме
А эта ошибка с поиском ещё актуальна для новых платформ? что необходимо обновлять индексы каждую минуту
Оставьте свое сообщение

См. также

Создание асинхронных виджетов 68

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    1283    YPermitin    11       

Формы. Трудности программной работы 69

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

06.10.2019    3351    YPermitin    20       

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С 34

Статья Программист Пользователь Стажер Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

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

02.10.2019    3967    VachKirp    8       

Добавляем виджет "Задачи от меня" в Документооборот 2.1 22

Статья Программист Нет файла v8 v8::Бизнес-процессы ДО Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    1526    Sergey_Borisovi4    2       

[Механизм интерфейса] Часы 54

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом Практика программирования Разработка

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    3079    rpgshnik    33       

Произвольная начальная страница через расширение (программно) 41

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    2520    nagaitseff    11       

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С 31

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    4505    IvanAT1981    14       

Пользовательские настройки системы компоновки данных 85

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

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

09.07.2019    6197    ids79    0       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 210

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом БСП (Библиотека стандартных подсистем)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    14216    YPermitin    49       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 91

Статья Программист Нет файла v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    7360    Viktor_Ermakov    6       

Свой макет оформления отчета 33

Статья Программист Нет файла v8 v8::СКД Россия Windows Бесплатно (free) Работа с интерфейсом

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    4501    olegpkc    5       

Динамический вывод таблицы значений на форму 35

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

11.01.2019    5647    Vlad1917    26       

Прикладной пример переработки стандартной формы РМК - Розница 74

Статья Программист Нет файла v8 Розница УУ Кассовые операции Розничная торговля Бесплатно (free) Работа с интерфейсом

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

04.10.2018    10811    asdfgcom    56       

Cправочная информация. Картинки. 16

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    6385    aspirator23    2       

Итоги в динамическом списке 47

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

28.05.2018    8974    CXY    16       

Программное управление обычными формами документов и справочников в УПП/КА 32

Статья Программист Нет файла v8 v8::УФ КА1 УПП1 Россия Бесплатно (free) Работа с интерфейсом

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

09.05.2018    8405    dima_home    7       

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением 26

Статья Программист Нет файла v8 v8::УФ Беларусь Windows Бесплатно (free) Работа с интерфейсом

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    9762    Drak87    18       

Красивые графики. Пошаговая инструкция (Highstock) 122

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    14174    Degrement    20       

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом 51

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Алгоритм действий для смены стандартной формы выбора для реквизита формы на свою форму со своей выборкой данных и возвратом нескольких параметров в вызывающую форму

30.09.2017    15772    ah7777777    24       

"Мигаем" интерфейсом, или цепочки асинхронных вызовов 71

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    12607    Chrizt    13       

"Восстановить положение окна" - не помогает. Как я решил проблему. 28

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Как получилось решить проблему глюков отображения формы документа.

28.05.2017    46546    niko11s    44       

Как добавить/убрать кота в отчет? 78

Статья Программист Нет файла v8 БП3.0 Бесплатно (free) Работа с интерфейсом

Кот в отчете: кому-то нравится, кого-то жутко бесит. Как избавиться, заменить, оставить (нужное подчеркнуть)?

12.05.2017    23098    starik-2005    16       

Итоги в динамическом списке 46

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

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

03.04.2017    20942    Восьмой    34       

Исправление проблем со встраиванием внешних отчетов в УНФ 1.6 12

Статья Программист Нет файла v8 УНФ Россия Бесплатно (free) Работа с интерфейсом

В УНФ 1.6 (тестил на версии 1.6.7.43) существуют следующие проблемы: 1. при встраивании доп. отчета в базу, он не отображается, пока не собьешь фильтр подсистемы 2. при встраивании доп. отчета в базу, отсутствует команда «Дополнительные отчеты» (по аналогии с командной «Дополнительные обработки») . В статье описывается решение перечисленных проблем.

16.11.2016    11470    TheRealStanly    3       

Как "перемотать" динамический список в начало при открытии? (или некоторые нюансы получения данных динамического списка) 57

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

В современных интерфейсах (новостях, социальных сетях и прочим) принято размещать новые данные сверху, более старые - внизу. К сожалению, в 1C сделано несколько по-другому - по умолчанию списки документов отсортированы по возрастанию даты и далее возможно два варианта: либо список при открытии проматывается в конец, либо список может запоминать "последнюю" текущую строку.

03.11.2016    19068    Fragster    25       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом Универсальные функции

Пример динамического создания графических схем, добавления элементов любых видов. Любые схемы без бизнес-процессов. Программная работа со схемой. Отличие от существующей статьи в том, что здесь используется объектная модель. Исправил и упростил некоторые моменты - результат соответствует схеме, созданной руками. Добавил возможность рисования произвольных форм для существующих фигур.

27.09.2016    16888    serg_infostart    15       

Автоматическое добавление новых реквизитов на форму (УФ) 38

Статья Программист Нет файла v8 v8::УФ Бесплатно (free) Работа с интерфейсом Универсальные функции

Идея такая: Программист добавил реквизит в объект. В комментарии этого реквизита прописал некое спец. слово (можно не матерное). На форму объекта новый реквизит далее попадает автоматом в спец. группу "Дополнительно".

03.08.2016    16221    Патриот    23       

Управляемые формы: Поле HTML Документа и веб-клиент 57

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Взаимодействие javascript и интерфейса 1С дает огромные возможности для реализации нестандартных функций. Раньше можно было напрямую вызывать функции JavaScript через DOM объект document Поля HTML документа. В современных браузерах эта возможность ушла. Более того, в веб-клиенте появляется тип ВнешнийОбъект, который вообще нигде не описан. На Инфостарте были предложения вызывать JavaScript через fireEvent, но это очень неудобно. Предлагаю свой вариант решения.

18.07.2016    24173    compguru    10       

Как вывести динамическое представление для пустого значения (в таблице)? 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Есть таблица. Часть полей в ней заполняется автоматически, а часть - должен заполнить пользователь. Нужно подсказать пользователю, что именно в какую ячейку вводить - для этого выведем серым текст подсказки внутри каждой незаполненной ячейки. На поиски решения этой задачки я потратил половину субботы. Надеюсь, моя небольшая заметка поможет кому то провести выходные более продуктивно)

29.03.2016    9721    weissfeuer    9       

Выделение документов в динамическом списке 20

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Допустим, пользователю конфигурации на управляемых формах захотелось выделять документы в списке привычным образом и производить какие-то манипуляции с выделенными документами. Например, делать на их основании какие-то документы.

01.02.2016    15783    Sardukar    7       

Три приёма, позволяющие сделать интерфейс конфигураций 1С на управляемых формах удобнее при большом шрифте 52

Статья Программист Нет файла v8 УНФ ERP2 БП3.0 Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

С появлением управляемых форм вообще и БП 3.0 в частности пользователи, которые не хотят портить своё зрение рассматриванием мелкого шрифта, оказались в невыгодном положении. Многих элементов на экране в "тяжёлых" документах вообще оказалось не видно. Все попытки решить вопрос штатными средствами настройки предприятия оказались неэффективны. Вот несколько приёмов, которые буквально в два щелчка мышкой и парой строк кода помогут решить проблему.

05.11.2015    15014    H-Labs    11       

Как скрыть "пустые группы" в списке выбора справочника при отборе 46

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Когда требуется открыть список справочника с отбором, например, по определённой группе, видны также все остальные группы с пустым содержимым. Мой способ избавления от ненужных групп ниже.

29.10.2015    25598    shevelyov    25       

Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ 23

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Если Вам необходимо создать несколько документов, а затем открыть их формы для пользователя.

1 стартмани

29.09.2015    18032    Wezoowy    13       

Параметры сеанса. 47

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Параметры сеанса - это объекты метаданных конфигурации. Поговорим об их назначении и принципах работы с ними.

06.09.2015    55424    niko11s    8       

Шкала в строке состояния 51

Статья Программист Нет файла v8 Windows Бесплатно (free) Работа с интерфейсом

Простая шкала, не требующая дополнительных форм и элементов управления

31.08.2015    13454    Ivon    26       

Назначение сочетания клавиш для кнопок командной панели (Обычные формы) 13

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Назначение сочетания клавиш кнопкам командной панели Формы списка/выбора для любой конфигурации (Обычные формы)

07.08.2015    15115    bld    7       

Развитие управляемого интерфейса в 1С 8.2 - 1С 8.3 55

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Математика и алгоритмы Работа с интерфейсом

К управляемым формам, которые появились в 8.2, я до сих пор относился презрительно. Считал это неудачной попыткой 1С следовать модным тенденциям в разработке интерфейсов и прогибом для возможности работать через браузер. Я считал, что 1С пожертвовала простотой разработки в угоду веб-доступу. Но после курсов Арутюнова Сергея по управляемому интерфейсу в июле 2015 года в УЦ1 я поменял ненависть на любовь. Звучит парадоксально, но это так. А теперь подробнее…

27.07.2015    35038    fixin    103       

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя 25

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    21448    Tatitutu    12       

Недокументированное использование стандартных обработок из меню "Все функции". 903

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

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

19.06.2015    100576    ekaruk    121       

Быстрый ввод строковых значений в поля составного типа 64

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

04.06.2015    17221    Cyberhawk    14       

Личный опыт эскплуатации интерфейса "Такси" 11

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Уважаемые коллеги, предлагаю вам мой личный опыт использования интерфейса "Такси"

07.02.2015    15373    Marik    30       

Как перенести форму документа (справочника, ...) из одного документа (справочника, ...) в другой похожий документ (справочник, ...) 54

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

При попытке изменить Тип Реквизита «Объект» все элементы формы теряли путь к данным, ладно бы «поля ввода» (можно было выбрать заново «путь к данным»), но с табличными частями вообще труба, при выборе в «Таблице» все колонки в этом элементе банально удалялись. Можно, конечно, потратить кучу времени и вручную продублировать все то, что есть в форме оригинала, но я нашел другой путь!

26.11.2014    14290    RomanBor    18       

Создание интерфейса со всеми блокировками прав пользователя 20

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Создание интерфейса (напр. Продавец) со всеми блокировками прав пользователя (доступ к конфигуратору, меню Операции, Все функции, правам пользователей в меню сервис и др.)

10.10.2014    12347    ~ADm!t_@vd~    8       

Свернуть с учетом уровня дерево значений на управляемой форме 11

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Работа с интерфейсом

Набор процедур, которые сворачивают дерево значений на управляемой форме до определенного уровня

03.10.2014    13009    ivashka    2