Pull to refresh
9
0
Артур Аюханов @artbear

Разработчик

Send message

и что такое "запрос к ССД" ?

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

уверен, что подрядчик не из 1С будет ломить такие же астрономические затраты для целой области )
а собственная разработка только кажется дешевой.

Ну и напомню, что работа с «древней» системой — это одно из ограничений проекта.
Т.к. подобное ПО развернуто было давно и вполне себе успешно работало на всех кассах заказчика.
Магия JS была обусловлена тем, что Фронтол позволяет его использовать.
В итоге было разделение — Net-часть обеспечивала работу с кроликом, а JS-часть — специфику Фронтола + обращение к серверу Кролика.

Мы как раз не стали смешивать в единую компоненту специфику Фронтола и специфику кролика.
Не забывайте про разные торговые точки.
Были точки на селе, или на окраинах, где простые 3G-свистки, частенько работающие в режиме 2G.
Какая уж тут ЕБД??
При администрировании любых серверов возникают сложности, а уж если их несколько сотен или тысяч, да еще на Винде, тогда совсем непросто :)
А если еще подумать-то?
И автор аргументировал, и я расшифровал резоны в
habr.com/post/419715/#comment_18995839
Интересно, да.

1 Но все-таки ОтменитьТранзакцию имеет намного-намного меньше шансов упасть, если мы предварительно убедимся, что есть открытые транзакции через Транзакция Активна.

2 И пример нехороший совсем.
Зачем «Сообщить» то? и где переброс исключений на верхний уровень? и т.п. и т.д.
явное зло.

И опять двадцать пять :(
Этот вариант по стандарту, но он может непредсказуемо падать, если ДелаемЧтоТо или его внутренности работают неверно.
Последствия:
1 И обнаружится это только в рантайме
2 и исходное исключение будет перекрыто исключением, возникающим при отмене транзакции в нашем же блоке исключения
т.е. мы тупо потеряем весь контекст проблемы :(
3 и наверняка возникнет там, где сложно будет проверить и восстановить исходную ситуацию с падением


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

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


изменение уже существующего и используемого кода может быть совсем тяжелым :(


PS если что, принцип "бойскаута" я люблю и сам применяю

Даже если внутри «ДелаемЧтоТо()» по ошибке будет отменена наша транзакция, то совсем необязательно мы попадем в Исключение, но точно не сможем зафиксировать транзакцию.

Вы невнимательны :(


я уже писал, напишу еще раз, чуть перефразировав:
Если нет активной транзакции, что верно при нашем условии "в «ДелаемЧтоТо()» будет откат транзакции", тогда ЗафиксироватьТранзакцию само выдаст исключение :(


в итоге мы в любом случае попадем в исключение.

Посмотрите внимательно — что произойдет, если «ДелаемЧтоТо()» будет написана по стандарту 1С и отменит транзакцию внутри себя?

Вариант от 1С обеспечивает более целостную и модульную обработку транзакций и их ошибок, и гарантированно фиксирует или откатывает транзакцию.
НачатьТранзакцию();
Попытка
ДелаемЧтоТо();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
лог.Сообщение(лог_Ошибка, ПодробноеПредставлениеОшибки());
КонецПопытки;

Вижу противоречие или неточное формулирование
Если в «ДелаемЧтоТо()» будет откат транзакции, которую не она начала, код вывалится по ошибке на фиксации транзакции.
Автор статьи как раз и говорит, что нужно управлять только своими транзакциями, а не чужими.

Еще раз — наш продукт и проект называются Vanessa-ADD или для краткости ADD
Ах да, еще в Vanessa-ADD настоящие JSON-файлы, а не их странное подобие, как было раньше :)
Не планируем удалять этот функционал.
Правда, и развивать также пока не будем.

Совместимость и все такое.

Плюс пока что исследуем, насколько подобные «кодерские» доработки ложатся в проверку поведения для 1С, в рамках своих обучений и своих внедрений.

ЗЫ и критиковали все-таки не только сотрудники silverbulleters, но и многие другие коллеги из тех, кто знает о Геркине в 1С :)
Да, схема почти правильная.

Только все-таки vanessa-add вместо простого add :)
В Vanessa-ADD вполне можно юзать сценарные тесты как в фичах, так и в тестах.

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

Практически полностью статью можно применить и к «настоящей» Ванессе — Vanessa-ADD

Только в последней еще больше плюшек —
  • нормальные плагины (их уже 27 !!)
  • нормальная отладка
  • автозапуск
  • командная строка
  • ускорение
  • и многое другое ...


PS Напоминаю, что термин «Ванесса» все-таки относится к опенсорс-продуктам «Серебряной Пули» — Vanessa-Behavior, Vanessa-ADD, Vanessa-Runner, Vanessa-Bootstrap и другие Ванессы.

Термин «Ванесса» был придуман и впервые использован именно для этих продуктов.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity