ERP2.0 Готовьтесь, блеать.

  1. 8 г. назад

    Ночи доброй.
    Ковыряю обеспечение потребностей в этом куске гн-кода, хех.
    Мегамозги от 1С вынесли часть логики в Интерфейсную часть.
    Как? Легко и изящно - разместили на УФ ДеревоЗначений и вовсю пользуют ее ДанныеФормыКоллекцияСтруктур в контекстном серверном вызове. Только для того, чтобы иметь уникальный идентификатор строки и иметь его платформенно и безгеморройно, при изменении состава коллекции.

    Я искренне надеюсь и желаю, что ERP2.0 сдохнет аналогично выплеску УТ11.

    Ответы: (4) (5) (15) (20)
  2. Через 3 года будет нормальной конфой.

    Ответы: (2)
  3. (1) Забьемся, что нет?

    Ответы: (3) (15)
  4. (2) все соответствует друг другу....

  5. (0) готовьтесь? работает уже полгода как...

  6. (0) не надо гнать на УТ11...

  7. В этом вся 1С ... Хотел было объединить СРМ с УПП так блеать ох.ел как теперь определяется текущий пользователь в БСП. Берется 100500 параметров, все это дело распихивается по нескольким десяткам списков неведомым рандомом, потом засовывается в одно хранилище значений и сохраняется в одной константе. Так что нате дебажьте эту кучу г.вна при необходимости.

  8. Причем куча кода делается через Выполнить и повторные значения. Просто мега удобно отлаживать.

  9. плюс сплошь и рядом Попытка... Исключение и бла-бла-бла. Вот такие первые впечатления от столкновения с БСП.

    Ответы: (14)
  10. в этом кроется смысл...

  11. Стоит прислушаться с мнению ТС, тем более, кажется, что он один из лучших спецов на мисте и 330м в области программирования.

    Ответы: (12)
  12. Для пользователя один критерий - скорость работы.

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

  13. (10) > тем более, кажется,

    кажется - крестись

    Ответы: (13)
  14. Коллайдер кажется - крестись

    крестиком из уха

  15. (8) не, ну обработка исключений - это, как раз, хороший тон

    Ответы: (21)
  16. (2) Ты раскрой подробнее (0), а то непонятно откуда столько гнева.
    Контекстные серверные вызовы не всегда зло. Сделай нормальный пост: опиши ситуацию, неоптимальное решение 1с, почему оно неоптимальное, предложи свой вариант.
    Нет, я знаю что в ERP, несмотря на буклеты, оптимизация никакая. Но просто твой вброс непонятен.

  17. а где в сабже проблема?

    Ответы: (17)
  18. (16) проблема в том, что 10000 пользователей, как рекламируется, работать по такой схеме не смогут ну никак

    Ответы: (18) (19) (20)
  19. (17) у меня и насчёт 1000 уже большие сомнения

  20. (17) таки тестировал сабж на 1000 пользователях?

  21. (17) Указанная проблема может вызывать нагрузку разве что на сервер приложений 1С. Эта нагрузка линейно масштабируется расширением кластера, так что конкретно данная проблема вряд ли влияет на масштабируемость всей системы.
    Проблем обработки данных в транзакции я в (0) пока не увидел.

    Ответы: (37) (54)
  22. (14) Ничего хорошего в этом тоне нет, если речь не идет о внешний системах типа ворда.
    1546 конструкций Попытка-Исключение КонецПопытки только в последней версии БСП
    Плюс несколько сотен Выполнить(""), по сути тот же Go to безусловный переход в место известное только во время выполнения кода.

    Это даже не стиль программирования, это адЪ программирования.

    Ответы: (22)
  23. (21) насчёт Выполнить где-то соглашусь.
    насчёт Попыток - это не только нормально, это правильно

    Ответы: (23) (33) (34)
  24. (22) попытки это плохо. попытки это долго. однако в случае БСП это имхо неизбежное зло, ибо должна встраиваться в различные конфигурации и иметь возможность стабильно работать. хотя не исключаю, что причиной такого количества попыток это именно говнокодеры

    Ответы: (25)
  25. Мне еще нравится ПодключитьОбработчикОжидания, а так же динамические привязки обработки событий к элементам формы. Много там такого?

  26. Бешеная Нога попытки это долго.

    какие ваши доказательства?

    Ответы: (26)
  27. (25) на курсах по эксперту говорили + дин раз сам попадался. полнотекстовый поиск при записи в попытке давал 3-4 секунды, против доли секунды без попытки.

    Ответы: (27) (28)
  28. Бешеная Нога полнотекстовый поиск при записи в попытке давал 3-4 секунды, против доли секунды без попытки.

    пример кода есть?

  29. Бешеная Нога на курсах по эксперту говорили

    я тоже могу сказать что-нибудь эдакое.

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

    Ответы: (29)
  30. (28) да почему. просто рекомендация экспертов 1С. а на чем основана - хз, но я им верю. в принципе в своей работе стараюсь не злоупотреблять попыткой, но не потому что плохо, потому что код изначально пишу нормальный

    Ответы: (31)
  31. а то что код типовых местами это жесть - это да. ведь его пишут такие же люди.

  32. (29) злоупотреблять не надо, надо его использовать в нужных местах.
    при создании внешних объектов, например

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

  34. andrewks это не только нормально, это правильно

    использование попытки - это моветон.
    приведите хоть какой-нибудь пример (за исключением ошибок внешних компонент) где кодом нельзя проверить?

    Ответы: (35)
  35. (22) Прекрасная статья про методику использования исключений.
    http://habrahabr.ru/post/263685/

  36. 28.07.2015 17:32:01 отредактировано andrewks

    sf за исключением ошибок внешних компонент

    так я про работу с внешними объектами и говорил.

    ещё в 7.7 активно заворачивал в Попытку запись и проведение нового документа/элемента.
    потому как можно было словить, например, ошибку "номер не уникален" или тупо ошибку при транзакции другого пользователя

  37. Я вернулся.

  38. (20) Неа, нихера не линейно. Масштабирование будет вызывать все большие и большие лаги при синхронизации служебных данных (например, управляемых блокировках) всех этих серверов. Особенно забавно то, что даже на локальном ПК это сделано через файл.

    Ответы: (54)
  39. Ну просто же в моем понимании... вот перед нами черный ящик и мы в него прыгаем.. вот не знаем что там... ну вот и нужна попытка. Почему же платформа настолько тупа что не может дать БСП достаточно информации куда надо прыгать а куда нет? Что-то где-то Боря Нуралиев явно упустил.

    Ответы: (42)
  40. Мне, на самом деле, похер на быстродействие (я его пока не трогаю). Я говорю за удобство программиста.

  41. Настало время [...] историй.

    Просто непонятно, занахера 1С, создавшая прекрасную платформу, делает такое уежище как УТ11 и ERP20

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

  43. mdocs Почему же платформа настолько тупа что не может дать БСП достаточно информации куда надо прыгать а куда нет?

    БСП, например, активно работает с MS Word и OpenOffice. как без попытки узнать, есть доступ к объекту, или нет? нагородить 10 тонн кода с проверками кучи косвенных условий, которые всё равно в итоге не дадут 100% результат, зато будут дико тормозить?

    Ответы: (45)
  44. Платформа нихуа не прекрасная.... нет например, стека сообщений для пользователей, вместо них убогие и тормозные задачи.

    Ответы: (44) (45)
  45. (43) Нет коллбэка с сервера 1С на клиенты, ты про это?

  46. (42) Про ворд и внешние системы я не спорю, необходмость некоторых "слепых норков" тут очевидна. Но полторы тыщи попыток отнюдь не только для ворда.
    (43) И это тоже, необходим простой механизм опевещений юзеров о том, о сем.

    Ответы: (47)
  47. Почему тут нельзя материться? Я ради этого зашел сюда. Без матов я могу и на Мисте написать.

    Ответы: (48)
  48. (45) Там целый комплекс геммороя, который я счаст решаю. 1С сказала - ну нахер, скорее всего.

  49. (46) Можно, можно.

  50. + на клиентах должен быть открыт диапазон портов в файрволе. Это если tcp/udp. Насчет именованных каналов по сети - не в курсе, не работал.

    Ответы: (52)
  51. > разместили на УФ ДеревоЗначений и вовсю пользуют ее ДанныеФормыКоллекцияСтруктур в контекстном серверном вызове. Только для того, чтобы иметь уникальный идентификатор строки и иметь его платформенно и безгеморройно, при изменении состава коллекции.

    По-сути борьба с платформой если я правильно понимаю, хорошего в этом тоже мало.

    Ответы: (51) (55)
  52. (50) Ну не борьба, просто пользуют удобство
    НайтиПоИдентификатору()
    ПолучитьИдентификатор()

    и не подозревают, что ктото эту обработку будет переделывать под рег. задание.

  53. (49) Думаю можно как-то обойти колбэки периодическим беспокойством сервера внутри самой 1с и последующим оповещением нужного сеанса, оно будет всеже намного менее напряжно чем обработчик ожидания в каждом сеансе.

    Ответы: (53)
  54. (52) Нет. Обработчик ожидания (отдельный поток) сидит себе на клиенте, ждет событий с udp сервера, ничего не грузит. Никаких проблем.

  55. H A D G E H O G s (20) Неа, нихера не линейно. Масштабирование будет вызывать все большие и большие лаги при синхронизации служебных данных (например, управляемых блокировках) всех этих серверов. Особенно забавно то, что даже на локальном ПК это сделано через файл.

    Что сделано через файл? Передача данных об управляемых блокировках?
    Её нет, данные об управляемых блокировках содержатся в TransactionLockService, независимо от количества рабочих серверов.
    Даже при включенной отказоустойчивости, никто управляемые блокировки не синхронизирует, все транзакции в момент падения откатываются и на резервном кластере поднимается новый сервис блокировок.

    Ответы: (56) (62)
  56. mdocs По-сути борьба с платформой если я правильно понимаю, хорошего в этом тоже мало.

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

  57. (54)
    По шагам:
    Есть 2 сервера 1С, на разных ПК. Клиент подключается напрямую к тому серверу 1С, куда его отправит менеджер кластера серверов, так? Клиент подключается напрямую к rphost.exe, так? Клиент просит сервера установить упр. блокировку. Сервер ставит упр. блокировку. Как другой сервер 1С узнает о ней?

    Ответы: (62)
  58. Что такое
    TransactionLockService
    ?
    Очередная вирт. сущность от 1С или отдельный процесс?

  59. У меня на УТ 11 - 1384 пользователя. База за 2 террабайта. Все работает на ура. Ви таки не умеете готовить ЕРП 2.0 ...

    Ответы: (59) (68)
  60. (58) Где я говорил, что что-то не работает?

    Ответы: (60)
  61. 28.07.2015 20:19:00 отредактировано Fynjy

    (59)

    Я искренне надеюсь и желаю, что ERP2.0 сдохнет аналогично выплеску УТ11.

    Ответы: (61)
  62. (60) Там ниже мой пост про удобство программиста.

  63. H A D G E H O G s (54)
    По шагам:
    Есть 2 сервера 1С, на разных ПК. Клиент подключается напрямую к тому серверу 1С, куда его отправит менеджер кластера серверов, так? Клиент подключается напрямую к rphost.exe, так? Клиент просит сервера установить упр. блокировку. Сервер ставит упр. блокировку. Как другой сервер 1С узнает о ней?

    Блокировка нагладывается сервисом транзакционных блокировок, который представляет собой отдельный поток процесса rmngr.exe. Rphost и rmngr связываются по tcp/ip и именно так информация о блокировках "гуляет" по кластеру.
    Исходя из самой сущности менеджера блокировок, он может существовать только в 1 месте, никакой "синхронизации" тут не может быть. Ему говорят - ставь, он отвечает - поставил.

    Ответы: (63)
  64. (62) Годно. Спасибо за информацию.
    Что содержится в файле "snccntx.00000000.dat" ?

    Ответы: (64)
  65. (63) Сеансовая информация типа контекста форм управляемого приложения.
    Эту информацию пишет менеджер сеансовых данных, который существует отдельный на каждый рабочий сервер (каждый сервер хранит контекст своих сеансов).
    Если включить уровень отказоустойчивости, то только тогда эти данные начинают "синхронизироваться" между серверами.
    В обычном режиме перенос сеансовых данных происходит только в моменты переключения сеанса на другой сервер ввиду динамической балансировки или из-за отказа rphost.

    Ответы: (65)
  66. (64) Вот про этот файл говорил.

  67. Почему они сделали это хранилище в виде файла?

    Ответы: (69)
  68. p.s. Просто я думал, что и инфа по блокировкам в нем хранится.
    Почему нельзя было выделить кусок памяти в rmngr.exe и в ней хранить. А доступ между локальными rmngr и rphost сделать в виде именнованных каналов?

    Ответы: (69)
  69. (58) фигассе. это база онлайн проката порнофильмов?

  70. H A D G E H O G s Почему они сделали это хранилище в виде файла?

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

    H A D G E H O G s Почему нельзя было выделить кусок памяти в rmngr.exe и в ней хранить

    Соответственно, не хотят дважды хранить одно и тоже в памяти.

    H A D G E H O G s А доступ между локальными rmngr и rphost сделать в виде именнованных каналов?

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

    Ответы: (70)
  71. (69) Пайп ограничен рамками подсети. Тоесть, можно сделать именованный канал между 2 ПК в подсети. + он еще и не сканится антивирусами.

    Ответы: (71)
  72. (70) Но в качестве транспорта будут стандартные сетевые протоколы, смысла уже нет.

    Ответы: (72)
  73. (71) Универсальное решение :-)

  74. Ну так что ? Вердикт Ежова будет ?

    Внедрять можно ? Одобряем ?

    Ответы: (74)
  75. (73) С презервативом можно

или зарегистрируйтесь чтобы ответить!