Ищу все счета, в которых есть субконто "Основные средства";
//вот это счас работает:
Счета = СоздатьОбъект("Счет.Основной");
Счета.ВыбратьСчета();
Пока Счета.ПолучитьСчет()=1 Цикл
Если Счета.ЭтоГруппа()=1 Тогда Продолжить КонецЕсли;;
Для Сч = 1 По Счета.КоличествоСубконто() Цикл
Если Строка(Счета.ВидСубконто(Сч)) = "Осн. средства" Тогда
//найден нужный счет
...
но мне это не нравится:
Если Строка(Счета.ВидСубконто(Сч)) = "Осн. средства" Тогда
- джедаи так не поступают, имхо. А
Если Счета.ВидСубконто(Сч) = "Справочник.ОсновныеСредства" Тогда
не работает.
Как в данной ситуации правильно организовать сравнение?
(2) это примерно также, как писать ИмяПользователя() = "Иванов" - за что все зажимают носы и кривятся - фу.. бяка...
чем это по сути отличается?
а если ВидСубконто "СредстваОсновные"...?
то есть в итоге все упирается в то что "мы знаем что среди объектов есть "ОсновныеСредства".. (что эквивалентно "мы значем что среди Пользователей есть "Иванов").
И в том и другом случае "имя" объекта может поменяться - что приведет а) к слому алгоритма) не срабатыванию условия) неверным\недостоверным результатам
.
"Если нет разницы - зачем платить больше?"
(4) не понял аналогии:
"Иванов" - данные, изменяемые админом/пользователем;
"ОсновныеСредства" - метаданные, за которые отвечает разработчик, как и за все последствия от изменений идентификаторов.
(7)(8) во, это точнее выражает то, что я хотел сказать в (5)
(хотя, в 1С синоним объектов тоже меняется разработчиком в метаданных - но любой адекватный разраб априори предполагает, что к синонимам не будет таких привязок, как к идентификаторам...)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший