Эта заметка о наболевшем, как очередной крик «Почему так?» от программиста, работающего с несколькими типовыми конфигурациями (Управление торговлей, Бухгалтерия, ЗУП) и самописной с использованием БСП.
Отличная идея разработчиков в 1С разделять все объекты по подсистемам оказалась, на мой взгляд, проваленной. Причина — нет стройной архитектуры в этих подсистемах, нет четкой иерархии какая подсистема от какой зависит. Как итог — дублируются функции и процедуры в различных подсистемах. При внедрении, обнаруживаешь, что в модулях внедряемой подсистемы стоят вызовы модулей других подсистем, которые не связаны (не должны быть связаны) с внедряемой подсистемой. Разбирая ошибки и добавляя нужные модули, наблюдаешь страшную картину, когда в одной процедуре стоит проверка возможного наличия «параллельной» подсистемы, а через 3 строчки кода наличие другой не проверяется.
Вопрос — куда смотрят архитекторы в 1С? Как допустили такой бардак в типовых решениях?
Неужели такая достаточно крупная компания, как 1С, не может себе позволить содержать отдел здравых архитекторов решений, которые построят одно большой дерево всех подсистем, пропишут зависимости между ними. Сделают описания, чтобы избежать дублирования процедур. Или наоборот, специально сделают дубли ради уменьшения количество зависимостей.
Это сложная работа. Очень сложная. Но она необходима всем, кто работает с решениями 1С — от разработчиков в самой 1С до пользователей, которые получат более быстрое решение за счет оптимизации.
Отдельным блоком в этом хаосе стоят разночтения в наименовании объектов в типовых решениях. Без обмена данными между различными конфигурациями никуда, но на вопрос почему в Управлении торговлей документ называется «ПриобретениеТоваровУслуг», а в Бухгелтерии — «ПоступлениеТоваровУслуг» я не могу дать хоть сколько-нибудь здравого ответа. Почему в Управлении торговлей — «Договор», а в Бухгалтерии — «ДоговорКонтрагента»? В Управлении торговлей — «ВозвратТоваровОтКлиента», а в Бухгалтерии — «ВозвратТоваровОтПокупателя»? Зато «ВозвратТоваровПоставщику» — одинаково. Где логика? Из-за всех таких разночтений ловишь кучу проблем при написании обменов между базами. Здесь мы говорим так, а за углом — так, а завтра — по-другому.
Пожалуйста, будь здравыми людьми. Пожалейте простых программистов 1С. Сделайте дерево подсистем и единообразные наименования. Это возможно.