Page 2 of 3

Re: Новый тип контакта - "Организации"

Posted: Wed Jun 03, 2020 3:46 pm
by Andrey
Чтобы найти, кто входит в ту же организацию не нужно контакт закрывать и искать что-то. Можно в поле Член группы нажать на ..., там можно выбирать группы и так же по двойному клику они открываются и можно их смотреть.

Re: Новый тип контакта - "Организации"

Posted: Wed Jun 03, 2020 4:25 pm
by VGHOST
Admin, не знаю что там с исполнителями - не пользуюсь.
Про контакты - хочу видеть отдельно организации, отдельно физлиц и в обоих данные их пересечений, то есть телефоны/адреса конкретных работников в конкретной организации.
С возможностью открыть любого работника из его организации и любую организацию из карточки его работника.
Телефоны организации, личные телефоны физлица, и телефоны работников организаций - это на уровне базы данных 3 разные таблицы.
Сейчас всё свалено в одну таблицу, и связи приходится отслеживать ссылками и текстовыми данными одновременно в нескольких карточках, и поддерживать их актуальность вручную.
Если я открыл (из письма скажем) карточку сотра, но не помню кто там ещё с ним работает - нужно лезть в список контактов и набирать название организации. При этом выводятся не только данные по организации, но и все контакты в комментариях которых похожая строчка имеется - уволенные работники, контрагенты, ещё Бог весть что.
На всё это тратится время и мозги, а разве PIM нужен не для их экономии?

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

Про объём попробую угадать - 300-500 тысяч строк?
Хотя, наверное Вы правы - не представляю, потому не брошусь очертя голову в этот омут, далеко не студент уже.
Да и найдутся дела полезнее, чем велосипед изобретать. Потому и прошу реализовать Контакты по фен-шую, максимально приблизив структуру к реальности.
Думаю мне всё-таки нужно дорисовать схему данных, может некоторые идеи примете к реализации.

Re: Новый тип контакта - "Организации"

Posted: Wed Jun 03, 2020 4:43 pm
by Andrey
VGHOST wrote: Wed Jun 03, 2020 4:25 pmПро объём попробую угадать - 300-500 тысяч строк?
в ЕПИМ порядка 2млн. С учетом кода сторонних компонентов.
VGHOST wrote: Wed Jun 03, 2020 4:25 pmПотому и прошу реализовать Контакты по фен-шую, максимально приблизив структуру к реальности.
Реальность у всех разная. У большинства обычных людей в контактах нет организаций. Вообще. И вы предлагаете изменение структуры базы, добавление новых таблиц, новых видов отображения, связей. Потом это все как-то подключать в импорт/экспорт/синхронизации/печать. Это все займет достаточно много времени. И вопрос в том, какому проценту пользователей это будет нужно?

Re: Новый тип контакта - "Организации"

Posted: Thu Jun 04, 2020 9:24 am
by VGHOST
Andrey wrote: Wed Jun 03, 2020 3:46 pm Чтобы найти, кто входит в ту же организацию не нужно контакт закрывать и искать что-то. Можно в поле Член группы нажать на ..., там можно выбирать группы и так же по двойному клику они открываются и можно их смотреть.
Согласен, это покрывает минимальные требования к структуре. И наборы полей независимые.
Как только раньше не замечал, благодарю.

Re: Новый тип контакта - "Организации"

Posted: Thu Jun 04, 2020 9:39 am
by VGHOST
Andrey wrote: Wed Jun 03, 2020 4:43 pm в ЕПИМ порядка 2млн.
Нифигасе... Этак вы скоро Шиньдовс догоните...
Да, пожалуй вообще не тема для одного разраба, нереально...
Andrey wrote: Wed Jun 03, 2020 4:43 pm Реальность у всех разная.
Это точно.
Просто не додумался использовать группы в этом качестве, вот и развёл демагогию. Кликов конечно немного больше - да ничего, переживём.

Если ещё реализуете шаблоны и персональный список полей для каждого контакта - вообще шоколадно будет.

Очень напрягают телефоны типа "Тёща" "Директор" в карточках всех контактов.
Положим "Директора" можно перенести на группы - там список независимый, но "Тёща" у остальных останется. И таких полей 80%.

А 20% общих можно зафиксировать на уровне шаблонов, чтобы при их изменении они появлялись у всех его потомков.
Остальные 80% из шаблона должны копироваться при создании с возможностью удалить/переименовать у конечного контакта.
Для групп шаблоны тоже не помешают.

Адреса лучше отображать одной строкой и редактировать в отдельном диалоге - поглядите как реализовано в 1С. Можно даже прикрутить ФИАС, наверняка база доступна как веб-сервис...

В Типы контактной информации нужно добавить поле Владелец - если оно пустое, тип глобальный, его можно добавлять в любые шаблоны и контакты. Если ссылается на шаблон - видимость ограничивается самим шаблоном и контактами на его основе. Если конкретный контакт/группа - тип доступен только в самом контакте/группе.

Порядок отображения контактных данных нужно хранить на уровне контакта (целое число в таблице контактных данных) и копировать из шаблона. Ну и возможность перетаскивать или кнопки Вверх/Вниз в диалоге. В настоящий момент перестановка полей тот ещё гемор.

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

Немножко оффтоп, но всё же на тему организации контента Контактов.

Re: Новый тип контакта - "Организации"

Posted: Fri Jun 05, 2020 2:23 pm
by admin
Про шаблоны да, это уже в списке на реализацию в будущих версиях. С адресами может возникнуть проблема при синхронизациях. Многие сервисы требуют отдельные поля для города, страны, улицы и т.д., и корректно разобрать адрес, написанный в одну сроку, на эти компоненты не всегда будет возможно.

Относительно закладки со всеми полями - посмотрим, может быть добавим возможность её скрывать.

Re: Новый тип контакта - "Организации"

Posted: Fri Jun 05, 2020 4:08 pm
by VGHOST
admin wrote: Fri Jun 05, 2020 2:23 pm С адресами может возникнуть проблема при синхронизациях.
Я же не предлагаю хранить их в одной строке. Достаточно отображать в форме, для редактирования адреса должен быть отдельный диалог, где всё предельно структурировано.
Ещё раз сошлюсь на реализацию в продуктах 1С - это можно считать эталоном хранения адресов.
Кстати, они не разделяют адреса по полям, хранится 1 строчка XML. Я бы подъезд, этаж, офис и ссылку на дом хранил в полях контакта (вернее связанной таблице почтовых адресов), а все остальное вынес во внешние связанные таблицы - искать быстрее и выбирать удобнее.
admin wrote: Fri Jun 05, 2020 2:23 pm Относительно закладки со всеми полями - посмотрим, может быть добавим возможность её скрывать.
Это как раз бессмысленно, она не мешает, просто крайне редко используется.

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

Сейчас все поля общие, потому в каждом контакте бардак и на полезной информации трудно сосредоточиться, телефоны и адреса названы как попало.
Не удивлюсь если вся контактная информация хранится в одной таблице с разделением по полям: новый телефон - новая колонка в базе данных. Это даже с точки зрения объёма не айс...
Если с какими-то сервисами нужна синхронизация в виде сводной таблицы - пусть это касается только этих нерадивых сервисов. А внутри должОн быть порядок. Общую структуру всегда можно упростить, а вот рассовать плохо структурированную информацию по сложной базе данных однозначно не просто и не всегда возможно.

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

Re: Новый тип контакта - "Организации"

Posted: Fri Jun 05, 2020 8:40 pm
by admin
Я же не предлагаю хранить их в одной строке. Достаточно отображать в форме, для редактирования адреса должен быть отдельный диалог, где всё предельно структурировано.
Подумаем, конечно, но, тут тоже палка о двух концах - в таком случае редактирование адреса будет неудобным, нужно будет дополнительную кнопку нажать, в дополнительном диалоге отредактировать и дополнительно закрыть его.
Мы не пользуется продуктами 1С, поэтому не знаем как там. Если приложите парочку скриншотов, будет понятней.

Насчёт отображения полей (общих, только для определённой карточки) - примем к сведению, спасибо.

Re: Новый тип контакта - "Организации"

Posted: Fri Jun 05, 2020 11:20 pm
by VGHOST
admin wrote: Fri Jun 05, 2020 8:40 pm Подумаем, конечно, но, тут тоже палка о двух концах - в таком случае редактирование адреса будет неудобным, нужно будет дополнительную кнопку нажать, в дополнительном диалоге отредактировать и дополнительно закрыть его.
Этот конец палки экономит много больше времени, чем требуется для пары кнопок, поскольку редактируется адрес редко, а смотреть на растянутую до безобразия форму приходится каждый день.
Нужно ещё продумать кнопки для каждого поля, которые работают когда в нём фокус. На примере той же 1С, при входе в поле отображаются кнопки (их состав настраивается): [...] F4 "Выбрать из справочника", [▼] "Выбрать из списка", [▫□] Ctrl+Shift+F4 "Открыть", [×] Shift+F4 "Очистить".
Для [▼] клавиши не нашел, возможно F4 при отсутствии [...].
Это к вопросу о том что не нужно локальные кнопки поля вставлять в последовательность обхода. Нужно допилить элемент управления ПолеВвода для отображения кнопок при получении фокуса и обработку кликов и сочетаний. Чтобы TAB с одного нажатия переключала на следующее поле мимо локальных кнопок, причём ближайшее в форме, а не случайное как сейчас.
В текущей реализации пользоваться клавиатурой крайне неудобно - для обхода адресных полей приходится перебирать всю подноготную почтовых адресов, все мелкие кнопки и все неиспользуемые поля.

Образцы интерфейсных элементов приложил, да простит меня великий и ужасный 1С®.
Обратите внимание, что адрес в компактном виде представляет собой URL, это чтобы долго не метиться в мелкие кнопки. Хотя на любителя - кроме как Открыть других функций не поддерживает, даже текст не скопировать.
admin wrote: Fri Jun 05, 2020 8:40 pm Насчёт отображения полей (общих, только для определённой карточки) - примем к сведению, спасибо.
И обязательно полей шаблона. Поскольку шаблоны будут скорее всего храниться вместе с контактами/группами - реализовать будет несложно, вместо ссылки на контакт достаточно прописать ссылку на шаблон.
Удаление/добавление и переименование полей должны производится в рамках любого контакта, но для голбальных и шаблонных полей нужно перед сохранением поля выводить количество затронутых контактов (с непустым значением изменяемого поля), а по отдельной кнопке - их список с возможностью заглянуть в каждый.

ЗЫ: По поводу вложений на форуме - сделайте кнопку копирования имени файла в коммент к нему (без расширения), имена бывают информативны...

Re: Новый тип контакта - "Организации"

Posted: Sun Jun 07, 2020 6:42 am
by admin
Принято, спасибо за подробное объяснение.

Re: Новый тип контакта - "Организации"

Posted: Mon Jun 08, 2020 11:39 am
by VGHOST
Да, про выбор из списка забыл упомянуть, что кроме специальных случаев список заполняется ранее выбранными объектами либо выборкой по ключевым полям, если пользователь ввёл текст в ссылочное поле. Например если в поле "Город, населённый пункт" ввести "Самара" в список попадут все Самары во всех регионах.
Вообще во многих случаях целесообразно заменить текстовые поля на ссылку в другую таблицу - и выбирать удобнее, и синхронизировать, и объём экономится.

Re: Новый тип контакта - "Организации"

Posted: Mon Jun 08, 2020 12:01 pm
by Andrey
VGHOST wrote: Mon Jun 08, 2020 11:39 amобъём экономится.
По байт 10 на запись? На 10000 контактов это будет аж 100Кб. Это 0.00002% от объема диска у типичного пользователя. Очень серьезная экономия :D

Re: Новый тип контакта - "Организации"

Posted: Mon Jun 08, 2020 12:55 pm
by VGHOST
Andrey wrote: Mon Jun 08, 2020 12:01 pm По байт 10 на запись?
Понятно что к объёму почты отношение ничтожное. Но хоть и маленький, но +.

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

Кстати, открытие формы контакта на Шиндовс происходит довольно медленно, да ещё при этом выполняется 2-3 лишних обновления окна (это видно по прорисовке). Переход на ссылки этого конечно не вылечит, но код в этом месте однозначно нуждается в оптимизации.
А вот в целом производительность движка СУБД должно подрасти за счет кеширвоания мелких таблиц и сравнения чисел вместо строк.

Удобство ввода вообще обсуждению не подлежит - проще 20 раз выбрать из списка, чем руками вводить. И процент ошибок думаю тоже.

Re: Новый тип контакта - "Организации"

Posted: Mon Jun 08, 2020 1:20 pm
by Andrey
Про 10 байт я писал относительно города. Для улицы это будет вообще отрицательное значение, потому что вероятность нахождения двух контактов на одной улице - минимальна. А что еще в адресе выносить в отдельные таблицы? Почтовый индекс? Там тоже будет отрицательное значение экономии.
Загрузка из двух связанных таблиц будет идти медленнее, чем из одной. Кешироваться тоже будет одинаково, что одна таблица, что две. Имеет значение только их общий размер.
Контакт открывается медленно не из-за чтения контакта, а из-за сложной визуальной структуры окна. Вот в основное окно контактов все контакты выводятся намного быстрее.

Re: Новый тип контакта - "Организации"

Posted: Mon Jun 08, 2020 1:37 pm
by VGHOST
Согласен.

На самом деле наврал про объёмы - сейчас 1000+ контактов умещаются в 700KB. Так что да, в этом месте оптимизация будет совершенно незаметна.
Но выбор адресов из внешних источников все равно интересен. В России - ФИАС, думаю в остальном ареале EPIM тоже есть аналоги, сомнения только в бесплатности.