Хотелось бы, чтобы эту статью прочитали сотрудники фирмы 1С: программисты, разработчики конфигураций, всякие начальники отделов, и может быть даже самый главный.
Я хочу критиковать 1С платформу и конфигурации, потому что есть проблемы, а в сети какая-то тишина, как будто всех все устраивает. Простите, но не устраивает. Хочу, чтобы статью прочитали обычные программисты 1С (не сотрудники фирмы 1C), и может быть даже поддержали меня.
Сначала не много о себе. Хочу сказать, что лично мне нравится 1С, и я конечно же буду ее использовать, куда же я денусь. Знаком с 1С начиная с версии 7.7 Являюсь сертифицированным специалистом по платформе v8. Я разработчик и участвовал в разработке несколько конфигураций. Есть познания разных языков программирования (с++ go js и проч.) и готовые поделки в продакшене. Имею независимое системное инженерное
Артемий Лебедев, как то сказал, что никогда не читает похвалу, но всегда читает критику, потому что критика позволит ему стать лучше. Надеюсь вы мою критику воспримете так же. Никого не хочу обидеть, и заранее прошу прощения если был слишком эмоционален.
Критиковать хочу и платформу и конфигурации. Тут сразу многие возразят, если критикуешь предлагай. Да, я буду предлагать. И я думаю, мои предложения могут быть полезны вам. Постараюсь быть интересным.
Критика Платформы 1C v8
1. Релизы платформы
Если зайти на сайт 1С в раздел обновления программ, то можно увидеть, что за октябрь 2017 фирма 1С выпустила аж 2 релиза платформы 8.3.10.2639 и 8.3.10.2650.
— Да почему так много?
— А вот сколько хотим столько и выпускаем!
Все верно, только получается, что каждый новый релиз убирает старые ошибки и добавляет новые ошибки. Я попался на эту удочку. Однажды конфигурация попросила меня установить релиз платформы посвежее, и я сделал это. И в этом релизе были ошибки. Пришлось ждать и ставить следующий релиз. Конечно же ошибки были исправлены. Но появились новые — другие! Пришлось ставить следующий релиз. Ну и так далее, ну вы меня поняли. А в конторе 100 компов, да еще 10 удаленных точек – огромный зоопарк в общем. Совсем не хочется, часто устанавливать релизы. И вот я думаю, что не нужно так много релизов, пусть их будет меньше, и пусть там будет минимальное количество ошибок.
Предложение:
Просто дайте 1 раз в год 1 стабильный релиз. И чтобы конфигурации могли просить только стабильный релиз, но не более. Один раз в год все переустановить можно, это как раз идеальный баланс. Вышел на январские праздники, и не останавливая бизнеса, все быстренько переустановил. Да много фирм-разработчиков так делают — выпускают стабильный релиз и кучу релизов на свой страх и риск.
Удивительно, но факт!
Вполне нормально брать деньги за подписку ИТС каждый месяц, а релизы каждый месяц не выпускать. (Не, ну вдруг вы не знаете.)
Просто на заметку
Когда о серьезной проблеме рассказали в одном предложении, то наверняка, на нее даже внимания не обратят. По идее о серьезной проблеме нужно говорить много, чтобы оппонент понял, что она серьезная.
2. Главное меню
С главным меню в управляемых формах две проблемы: оно вертикальное, а в горизонтальном иконки, которые мешают!
Если главное меню вертикальное, то оно занимает много места. А нам пользователям нужно больше рабочего места.
Чтобы подчеркнуть, что это важно, я еще раз повторю: Нам нужно больше рабочего места!
К тому же все программы имеют горизонтальное меню, это привычно, удобно, это решение проверено временем.
Мне скажут: «Ну сделай горизонтальное, там же есть такая возможность!»
Вот в том и дело, если сделать его горизонтальным оно будет слишком длинным. Я располагаю 2 программы 1С рядом, одна с левой стороны экрана, а другая с правой, так бывает нужно порой. И когда я так делаю, я хочу видеть все меню полностью. А полностью все меню на половину экрана не входит. Я не хочу нажимать на кнопочку листания меню.
Я просто хочу, чтобы мое главное меню было компактным!
А знаете почему? Потому что я не любуюсь на главное меню, я с ним работаю.
Вот это скриншот половины экрана. Как видно, меню конфигурации Бухгалтерия на обычных формах входит в половину экрана, а на управляемых не входит!
Я так же хочу заметить, что обычная рядовая бухгалтерша, даже не знает, что вертикальное меню можно превратить в горизонтальное. Удивлены?
Предложение:
Делаем главное меню горизонтальным по умолчанию. Честно говоря, я бы вообще выкинул вертикальный режим меню (но кто же мне это позволит). Делаем это меню максимально компактным. Для этого выкидываем иконки из главного меню, а интервалы между словами делаем минимальными. А вот иконки заносим в подменю, чтобы было красиво.
Так же, каждый пункт главного меню должен состоять из одного слова. Два слова это уже плохо. Ну зачем нам нужен пункт меню «Финансовый результат и контроллинг»? Ну простите это какие-то понты. Чем слово «Отчеты» не устраивает?
Горизонтальное меню сейчас слишком высокое, делаем его по высоте меньше.
Главное меню на обычных формах прекрасное, возьмите его за основу и перерисуйте на стиль такси.
Если сейчас главное меню плохое, то вот подменю как раз хорошее. Идея о том, что подменю должно быть на весь экран, замечательная. Так развейте эту идею. Разрешите в подменю делать иконки, как на группу так и на пункт меню. Плюс более свободное расположение на экране.
Аксиома
Команды в меню и подменю должны всегда находится на одном и том же месте. Их не нужно тасовать. Запомнил один раз и все. И тогда можно щелкать по пункту меню даже не читая его. Ты же знаешь где он находится, щелк и результат. Это сильно облегчает работу.
3. Определение типа объекта метаданных по цвету
Смотришь порой на форму и не понимаешь, какой объект метаданных перед тобой – особенно в какой-нибудь Зарплате. Неясно что перед тобой: отчет, обработка, документ или справочник, а может быть что-то еще. И приходиться напрягаться, вчитываться. Да иногда даже и прочитав все, можно не догадаться какой объект метаданных перед тобой. А вот если ты знаешь, какой объект перед тобой, то приходит понимание, что от этого объекта можно ожидать, и как примерно он работает.
А хочется узнавать, что же за объект, не напрягаясь. Например я открываю незнакомую конфигурацию, открываю любую форму из меню, и по цвету заголовка определяю, какой объект передо мной: справочник, документ, а может быть отчет. Это очень облегчит узнавание форм, да и работу в целом.
Так же я хочу заметить, что такси бывает разного цвета, не только желтого, но и светло-желтого, белого, черного, серого. Я видел даже розовое такси.
Британия
Япония
Россия
Германия
Разные цвета нисколько не нарушат вашу стилистику Такси, но наполнят форму цветовым смыслом.
Предложение:
- Справочники – WebЦвета.Серебряный
- Журналы документов и Списки документов — WebЦвета.СветлоНебесноГолубой
- Документы – без изменений или какой-то стальной
- Отчеты — WebЦвета.СветлоЗолотистый
- Обработки — WebЦвета.Розовый
- Регистры остатков и регистры сведений — WebЦвета.СветлоЗеленый
Делаем стандартный стиль для платформы и назначаем его по умолчанию для любых форм. Не на уровне конфигурации, а на уровне платформы. А у объекта, если другой какой-либо стиль не выбран, значит форма используют стандартный стиль.
Ну посмотрите как наши формы круто заиграли. Так же сделайте и для Такси. Причем цвет для обычных форм и для управляемых должен быть одинаковый.
Просто факт!
Когда вы запомните какой цвет соответствует какой форме вы не захотите с этим расставаться.
4. Выбор периода
Как жаль, что кнопка выбора периода не имеет горячей клавиши. Вот кнопка «Добавить» имеет же Ins. Так почему бы не добавить и кнопке выбора периода горячую клавишу? Ну например F5, или еще какую-нибудь. На уровне платформы разумеется.
А вот окон выбора периода 1С нам представляла множество, но все не то, и всегда разброд и шатание.
Вот пример и вроде бы не плохо
или вот
или вот
Нам нужно одно, но которое позволит мне выбрать любой период за минимальное количество щелчков мыши. В простых случаях вообще за один щелчок.
Позвольте представить вам такое окно. Сразу оговорюсь, что это окно передает лишь идею, как нужно сделать. Над этим окном конечно еще нужно работать, чтобы оно стало и красивым и идеальным. И к тому же я был ограничен, элементами из набора конфигуратора. А низкоуровневые разработчики сами могут разработать любые элементы.
В этом окне период выбирается за минимальное количество щелчков. Если нужно выбрать период Месяц это просто двойной клик, например, по декабрю. Если нужно выбрать квартал, двойной клик по номеру квартала. Так же легко выбирается день.
Если нужно выбрать два месяца, то используется множественное выделение.
И да, оно похоже на ваше окно календаря.
Еще хочу заметить, что в этом окне должны быть горячие клавиши, так чтобы период можно было набрать без мышки. Если печатаем цифры, тогда набираются последовательно начало и конец периода. Клавиши стрелка влево или стрелка вправо позволят изменить эту последовательность. Клавиши стрелка вверх или стрелка вниз позволяют перемещать курсор выбора месяца. А если из нажимать с Shift тогда происходит множественный выбор. Page up, page down происходит изменение года.
5. Все функции.
Окно «Все функции» не имеет горячей клавиши. А жаль.
Предложение
Думаю всех бы устроило Ctrl + P
Окно «Все функции» медленное! Оно очень медленное. И скорость его открытия разная. Иногда медленно, иногда чуть быстрей, но все равно медленно. У меня диск SSD, черт возьми, я хочу, чтобы это окно открывалось мгновенно. В ERP на SSD диске открывалось рекордные 8 секунд, но обычно 2-3 секунды замером на глаз.
Ну неужели сложно прочитать все объекты при загрузке системы и хранить их в памяти. И тогда можно открыть такое окно мгновенно, ничего не считывая ни откуда.
На заметку
Когда система тормозит, это дико раздражает.
Окно «Все функции» к сожалению модальное. Это плохо. Это ограничивает мою свободу. Бывает необходимость открыть сразу много документов или справочников. И что, я должен каждый раз утомительно открывать это окно через меню, ждать долгие 2-3 секунды, когда оно откроется, а потом еще дольше искать в длиннющем списке нужный документ?
Предложение
Да сделайте же его не модальным! Пожалуйста! Ну если хотите сделку то пусть это будет не для всех, пусть это будет только для избранных.
Окно «Все функции» не имеет фильтра. И это ужасно. Справочников, документов, различных регистров и отчетов исчисляется в конфигурациях сотнями. Как в этих сотнях быстро и легко найти нужный? Мне желательно искать так, чтобы не утомлять глазки. Для этого нужно использовать фильтр. Фильтр это такое поле поиска, куда мы набираем текст, а фильтр нам оставляет в списке только те строки, в которых содержится наш введенный текст. Ха, я знаю, что вы знаете что такое фильтр. Просто хотел вас немного взбудоражить, чтобы вы почувствовали, что чувствую я, когда без фильтра ищу нужный мне документ.
А еще знаете, бывает в незнакомой конфигурации можно искать какой-нибудь отчет, но ты не знаешь, как точно он называется. И вот тогда фильтр ну просто не реально помогает.
Кроме того, в конфигурации там, где есть поле Идентификатор, Синоним и Комментарий не плохо было бы вставить поле «Ключевые слова». И тогда в окне «Все функции» было бы отлично искать объекты, не только по синонимам, но и по ключевым словам.
Предложение
Предложение очень неожиданно. Вставить в окно «Все функции» фильтр! Кроме того я бы добавил кнопки отбора, по объектам метаданных. Щелкаешь по кнопке «Только документы» и отображаются только документы. Щелкаешь по кнопке «Только Справочники» ну вы меня поняли))
Что получилось в итоге по окну «Все функции»:
- горячая клавиша
- мгновенное открытие
- не модальное
- фильтр и кнопки отбора по объектам метаданных
- ключевые слова
6. Поиск в окне Конфигурация
Как же ужасен поиск в окне Конфигурация в конфигураторе.
На черта нужно было подсвечивать найденную строку красным цветом, а какие-то строки рисовать серым цветом. Это реально плохо читается. Знаете, если программисты фирмы 1С берутся организовать фильтр, то у них это получается. Не нужно мне доказывать подсветкой, что вы все правильно сделали. Я итак вам верю.
Вторая проблема здесь такая: зачем нужно было организовывать поиск по реквизитам? Какая-нибудь номенклатура содержится в огромном количестве объектов. Вот и толку то с такого поиска. В окне конфигурация разработчики конфигураций хотят быстро находить именно объекты метаданных, но не реквизиты и табличные части.
Предложение
Убрать подсветку красным и серым.
Убрать поиск по реквизитам. Фильтрация должна быть только по объектам метаданных.
Сильно сомневаюсь, что нужен поиск реквизитам, ну а если нужен, тогда эта функция должны быть в глобальном поиске.
7. Окно о программе
Вот знаете, как бывает порой. Ты звонишь за тридевять земель, это примерно 500 км. Там тетка, которая только что подоила корову, ее голова забита какими-то другими вещами, а сейчас прибежала в офис удаленной точки, и у нее там что-то сломалось. Она просит о помощи. Вот я хочу убедится, а ту ли конфигурацию она запустила. Я диктую ей, как открыть окно «О программе», чтобы прочитать там название конфигурации и номер релиза. Но она там найти не может, ни названия, ни номер релиза. Но оно там есть! Вот представьте, бывают такие люди. И вот я думаю, как было бы здорово, если бы окно о программе, было бы представлено в виде таблицы значений. Удобно, понятно, все читается. Не надо ничего искать. Здесь разберется даже простая доярка.
И про доярку я вам серьезно говорю, это никакой ни троллинг.
Предложение
Нужно переделать окно «О программе», чтобы оно было понятно не подготовленному пользователю. Например оформлено в виде таблицы значений.
8. Окно Лицензии
На данный момент информация по лицензиям выглядит примерно так.
То есть окно размером с почтовую марку, в котором еще и вообще ничего не понятно. Да что вам жалко новое окно?
Сделайте новое окно в котором будут отображаться лицензии красивенько – в виде таблицы значений. Что такое HASP4 ORGL8 1?
Важны слова: Аппаратная лицензия, или программная лицензия, чтобы неподготовленный человек мог такое прочитать.
А вот еще был случай.
— Ну и что там написано?
— А тут что то по-английски написано.
— Да ничего страшного, прочитайте.
— А я в школе немецкий учила!
Ха-ха, программисты, съели да. Она в школе немецкий учила.
И вы знаете, сказала она это, с таким наслаждением.
9. Синтакс-помощник
Сейчас синтакс-помощник выдает статьи примерно так:
То есть мы видим ужасную стену текста, которая ни как мне не помогает быстро увидеть, что мне нужно. Но я не хочу читать этот текст полностью. Я просто хочу быстро добраться до нужной информации, используя лишь форматирование.
Порядок блоков в статье важен. И он должен быть таким:
- Синтаксис
- Описание
- Возвращаемое значение
- Параметры
- Доступность
- Примечание
- Пример
Так кстати было в 1С 77. Вот скриншот.
И кстати было хорошо. Устраивало. Зачем нужно было переделывать.
Оформим вашу статью по новому. Ну разве вот так не лучше?
Что делает функция НайтиПоРеквизиту — глаз находит сразу. Ни каких угловых скобок вырви глаз нет, они и нафиг не нужны, нет в них никакого тайного смысла. Все отделено и легко читается. Красивенько.
Жаль, что синтаксис помощник переделать не реально? Да? А если допустим увеличить цену на подписку ИТС на тысячу допустим, то можно будет?
Но если все-таки соберетесь, то в хелпе нужно обязательно больше примеров. Хочется видеть не просто пример функции, но и ее окружение. Я хочу заходить в справку, и просто копировать пример в свой код, потом немножечко подправил, и я молодец.
Suddenly.
Вполне нормально продавать программу без книг по той же самой цене. Переделанная качественная система справки может легко заменить книги. Книги в поставке платформы лишний груз и лишние затраты. А можно ведь сэкономить.
Чуть не забыл. Если набрать Записать в каком-нибудь модуле, встать на него курсорам, и нажать Ctrl + F1, то система покажет окно с длинным списком. Ну конечно, ведь функция Записать относится к большому количеству объектов. Однако читать получившуюся стену текста не хочется. Я думаю в этом окне тоже нужно поле фильтра. Это окно требует серьезной переработки.
Десерт
11. Окно на весь экран
Не первый в списке, но первый по значимости. Очень часто, практически каждый день, сталкиваешься с тем, что нужно увидеть два или три окна одновременно.
Зачем?
Чтобы сравнить два отчета
Чтобы сравнить отчет и документ
Чтобы сравнить документ, движения и отчет
Чтобы сравнить документы
Сравниваться могут и суммы, и значения справочников, например, одинаковые ли товары или клиенты. Сравниваться могу целые колонки. В общем, сценариев зачем это нужно предостаточно.
Ну вот сравните:
3486286,45 = 3480286,45
Жилстройпроект ПГК ПАО = Жилстройпроект ПГК ПАО
Сигареты Marlboro Touch МЛТ синий и син. метал = Сигареты Marlboro Touch МЛТ синий и син метал
Или столбик цифр сравните:
458902,34 = 458902,34
5678221,43 = 5678221,43
673324,88 = 673354,88
2238769,89 = 2238769,89
А теперь представьте, что эти значения находятся на разных формах. Правда весело, да?
Раньше 2 окна одновременно вообще нельзя было посмотреть, в управляемых формах. Но потом добрая 1С сжалилась и разрешила. Но блин! Все равно не удобно!
Во-первых эти окна получаются узкими, и приходиться двигать полосы прокрутки – а это не удобно.
Во-вторых, чтобы открыть нужные окна приходится напрягать моск, что не приемлемо для такой операции. А на обычных формах, чтобы сделать подобное я ничего не напрягал. Да вроде бы, что там, легко же. Но тебе нужно знать о такой возможности, знать про такую кнопку раздвоения. Метится в нее. Да еще и нужно выбирать окна на панели открытых. И когда ты это все открыл, ты видишь, что тебе еще надо поднастроить окна полосами прокрутки.
Ну представьте, у человека для работы есть 100 единиц внимания. И допустим, чтобы настроить 2 окна нужно 5 единиц внимания. Вроде бы чуть-чуть, но постепенно расходует наш лимит внимания, и это утомляет. А на обычных формах, я о такой операции даже не задумывался, и тратил ноль единиц внимания.
На обычных формах мы могли видеть несколько окон одновременно, вот и на управляемых формах мы (пользователи) хотим видеть также. И вот это настолько важный функционал, что он перевешивает другие доводы. Ну из-за чего нельзя это сделать? Из-за того, что управляемые формы отображаются в браузере? Или может быть это нарушит какую-то красоту и стиль? Или это сложно сделать, технологические ограничения? А может быть упирается какой-нибудь важный руководитель?
Я уверен, что сделать это чисто технически можно. А если дело в браузере, то в конце концов в браузере можно оставить все как есть.
Если вы сделаете такой функционал, вы реально облегчите работу пользователей.
Это надо, просто надо, и не спорьте.
Еще на заметку.
Запускать две программы 1С для решения такой проблемы не предлагать! Потому что такой способ использует еще одну лицензию.
12
…
13. Клиент серверное взаимодействие.
Сначала разберемся с определениями.
В 1С сейчас есть 2 вида форм: обычные формы и управляемые. Управляемые формы это такое сложное собирательное понятие. Управляемая форма хранится и на клиенте и на сервере, сама создается платформой по определенным правилам. И чтобы мне все объяснить я разобью понятие управляемой формы на два: 1 Способ описания формы. 2 Клиент серверное взаимодействие.
Способ описания формы это способ, как мы будет ее рисовать, и что для этого нужно хранить.
В обычных формах такой способ называется координатный. Мы храним координаты каждого элемента формы, и рисуем каждый элемент по координатам.
В управляемых формах такой способ называется декларативный. Мы объявляем, что на форме есть некий элемент и система рисует его сама по определенным правилам. Элементы идут друг за дружкой, им не нужны координаты. Идея декларативного описания формы прекрасна. Элементы сами располагаются, выглядят ровно и красиво, не нужно заморачиваться, как то их располагать, тратить на это время. Автоматизация.
Оба способа нужны, они оба приходятся в хозяйстве.
Второе понятие Управляемых форм это Клиент серверное взаимодействие.
Если на обычных формах код писался примерно так:
Процедура ОченьПолезнаяПроцедураВызваемаяИзКнопки()
// Какой-то полезный код
КонецПроцедуры
То на управляемых примерно так:
&НаСервере
Процедура ОченьПолезнаяКомандаНаСервере()
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура ОченьПолезнаяКоманда(Команда)
ОченьПолезнаяКомандаНаСервере();
КонецПроцедуры
То есть были добавлены директивы препроцессора:
- &НаКлиенте
- &НаСервере
- &НаСервереБезКонтекста
- &НаКлиентеНаСервереБезКонтекста
которые определяют где будет выполняться код, на сервере или на клиенте. А вместе с ними добавлены понятия серверного и клиентского контекста, множество сложных правил взаимодействия клиента и сервера. Да все и так знают, что это такое.
Тысяча чертей! На черта вы все это сделали!
Сейчас я хочу выразить свои личное оценочное суждение. Я конечно могу ошибаться. Я признаю это.
Но я считаю, что клиент серверное соединение полная фигня.
Чудовищная ошибка фирмы 1С. И сейчас я это докажу.
Сначала были машинные коды и язык ассемблера, затем появились низкоуровневые языки. А после стали появляться высокоуровневые. И сейчас все языки стремятся вверх. Даже С++ со своим auto стал проще.
А вот отгадайте про что это:
«Подход, используемый в языке Х, позволяет программистам рассуждать в терминах предметной области, а не особенностей использования блокировок и других низкоуровневых механизмов».
Так сказал один из разработчиков языка Go, о своем языке. То есть даже такой низкоуровневый язык как Go стремится рассуждать в терминах предметной области.
Все языки хотят облегчить работу своим программистам и развиваются в этом направлении, и только 1С делает все наоборот, делает шаг назад.
Если до введения директив препроцессора 1С платформа была предметно-ориентированной, то с вводом таких директив она стала машинно-ориентированной. Вы сориентировались на машину, спасибо.
Ну это все теория, вот что есть в сухом остатке. На практике так сказать.
Кода стало больше. Бесспорно.
Код стал сложнее. Появилось огромное количество всевозможных правил и настроек. Ну с этим тоже не поспоришь.
Разработка стала сложнее и дороже!
Увеличился порог вхождения новых программистов.
Ради сомнительного профита вы заставили переучиться всю страну.
Ну а что, стало быстрей? Да что то не заметно. Пользователи полюбили работать с 1С в браузере — да ничуть. В толстом клиенте работать удобней чем в браузере.
На правах шутки
— Вот можно было вообще ничего не делать и увеличить цену на подписку ИТС.
1С: — А что так можно было?
С введением такого клиент серверного взаимодействия, вы увеличили сложность системы и обрушили ее на обычных программистов 1С, хотя эту сложность вам нужно было забрать на себя. Ну у вас же есть умные парни, напрягите их, поставьте задачу, и они эту задачу решат. Да, задача сложная. Но они, один раз бы, нагрели каски и решили.
Что предлагаешь?
Решений напрашивается несколько, но я изложу одно.
Какую проблему хотели решить введением клиент серверного взаимодействия? Наверное, чтобы подключать пользователя из интернета, или чтобы подключать пользователя по плохой связи. А еще наверное, чтобы вычисления производить на сервере, потому что у пользователя может быть слабый компьютер. Еще хотелось бы, чтобы данные по сети не гонялись много раз, а делалась какая то оптимальная выборка, ведь обычные формы могли гонять много данных с сервера. Ну вот примерна такая проблема.
Надеюсь, вы уже поняли, что мы выкинули директивы препроцессора и вернулись к старому языку, и теперь продолжаем.
А идея проста, и в общем то на поверхности.
Вместо тонкого клиента вам нужно написать программу назовем ее “Company viewer”. Знаете же программы «team viewer» и «radmin», и как они работают. Например, программа teamviewer подключается к другому компьютеру к Windows, и отображает полностью рабочий стол, то есть обеспечивает удаленный доступ. Вам нужно сделать тоже самое, только подключаться нужно не к Windows, а только к процессу 1С, который мы специально запустили на отдельном компьютере, допустим сервере. Этот процесс будет отдавать на клиента картинку, в формате jpeg например. А от клиента будет приходить информация о нажатиях мышки и клавиатуры. Надеюсь уже все понятно.
Итак, наш “Company viewer” может быть реализован в 2 вариантах: обычный десктоп(как правильно и круто работать с 1С) и в браузере(как хотели вы).
Задача “Company viewer” отображать пришедшую картинку, и отправлять на сервер, данные мышки и клавиатуры. Задача сервера, снимать с процесса 1С картинку и отправлять ее клиенту. Или например, процесс 1С сам может рендерить картинку. Здесь есть простор для творчества.
Профит очевиден:
Размер картинки всегда одинаков, а значит трафик всегда предсказуем. (В теперешней реализации клиент серверного соединения, трафик не предсказуем, так как можно запросить просто тучу данных, мильен строк.)
Формат картинки известен, а значит ее можно хорошо ужать. Можно не передавать данные постоянно, ведь когда пользователь изучает отчет, на экране ничего не происходит. Когда пользователь работает с документами экран не меняется полностью, а лишь некоторая часть. Значит можно пересылать только какие-то изменившиеся части. Можно придумать еще много трюков, как ужать трафик.
Так как процесс 1С запущен на сервере, то при обрыве связи потеряется какой-то пакет с картинкой, что не страшно. Ну порвалась связь — ерунда, снова подключился и за работу, данные то все сформированы на сервере, и лежат там в целости и сохранности.
Так как пользователь подключается к процессу, а не к Windows, то можно на одном сервере запустить много процессов 1С, а значит много пользователей смогут обслужиться одновременно.
Можно организовать коллективную работу, и подключать двух и более пользователей к одному процессу 1С. Это «ваще крутяк».
Если еще немножечко все переосмыслить, то можно любой толстый клиент превратить в рендер-сервер, который будет отдавать картинку к подключившемуся клиенту. Ну что фантазия заиграла? Какие же перспективы открываются. Смайлик.
И, да, рендер картинки на сервере это нормально.
Однако!
Следует отличать, что web и 1С это разные вещи, и выполняют они разные задачи. Если для веба характерно много пользователей — десятки тысяч, и незначительный объем передаваемых данных, то для 1С наоборот. Пользователей – мало, ну максимум 500, ну пусть даже 1000. А вот данных может быть очень много. Один пользователь может ворочить отчетами, в которых десятки тысяч строк, проводить сотни и тысячи документов. Если для веба рендер на клиенте — это хорошо, то для 1С рендер на сервере — это хорошо.
В итоге, язык остался простым и легким, и вот это самое главное!
Что в итоге
Отказываемся от клиент-серверного соединения.
Пишем нового клиента «Company viewer»
Конечно же, я все понимаю, никто не откажется от клиент серверного соединения, и все такое. Но я вас хоть немножечко заставил сомневаться? А может быть эта мысль будет мыслью для мозгового штурма для разработки v9? Было бы не плохо.
Критика конфигураций
С конфигурациями Бухгалтерия, Зарплата, Торговля, ERP, те что на управляемых формах, есть проблемы. Я начал было продолжать статью, уже было написал пол странички. А потом удалил. Конфигурации усложнены и переусложнены, там много не нужного функционала. Привычный функционал зачем то переделан или спрятан. Иногда конфигурации выглядят как настоящая магия. В них реально много проблем. Было бы не плохо, если бы программисты, которые их пишут поработали в качестве пользователей, причем не в тепличных условиях в фирме 1С, а в реальных, где бухгалтера могут плохо знать конфигурации, где они могут ошибаться, где данные «не причесаны», где поджимают сроки ну и так далее. В суровых условиях имеется ввиду.
Думаю текста для этой статьи уже вполне себе. А моих мыслей о конфигурациях набирается еще предостаточно, но которых:
«Пересказать не в силах я;
Мне должно после долгой речи
И погулять и отдохнуть:
Докончу после как-нибудь.»
Спасибо за внимание. Надеюсь я был полезен вам. И не сочтите за дерзость.
С вами был Ужасный Keyn
Автор: terrib1ekeyn