Имя: Пароль:
1C
1C 7.7
v7: как правильно сравнить вид субконто
0 e2e4
 
06.03.15
16:50
Ищу все счета, в которых есть субконто "Основные средства";
//вот это счас работает:
Счета = СоздатьОбъект("Счет.Основной");
Счета.ВыбратьСчета();
Пока Счета.ПолучитьСчет()=1 Цикл
    Если Счета.ЭтоГруппа()=1 Тогда Продолжить КонецЕсли;;
    Для Сч = 1 По Счета.КоличествоСубконто() Цикл
        Если Строка(Счета.ВидСубконто(Сч)) = "Осн. средства" Тогда
//найден нужный счет
...
но мне это не нравится:
Если Строка(Счета.ВидСубконто(Сч)) = "Осн. средства" Тогда
- джедаи так не поступают, имхо. А
Если Счета.ВидСубконто(Сч) = "Справочник.ОсновныеСредства" Тогда
не работает.
Как в данной ситуации правильно организовать сравнение?
1 mehfk
 
06.03.15
16:53
ТипСубконто()
2 RomanYS
 
06.03.15
16:54
ВидыСубконто.ОсновныеСредства
или
ВидСубконто.ОсновныеСредства
точно не помню
3 e2e4
 
06.03.15
16:56
(2) точняк! спасибо
4 Злопчинский
 
06.03.15
17:56
(2) это примерно также, как писать ИмяПользователя() = "Иванов" - за что все зажимают носы и кривятся - фу.. бяка...
чем это по сути отличается?
а если ВидСубконто "СредстваОсновные"...?
то есть в итоге все упирается в то что "мы знаем что среди объектов есть "ОсновныеСредства".. (что эквивалентно "мы значем что среди Пользователей есть "Иванов").
И в том и другом случае "имя" объекта может поменяться - что приведет а) к слому алгоритма) не срабатыванию условия) неверным\недостоверным результатам
.
"Если нет разницы - зачем платить больше?"
5 e2e4
 
06.03.15
21:01
(4) Однако, вряд ли кто-то усомнится, что смена идентификатора - более редкое явление, чем смена синонима...
6 Злопчинский
 
06.03.15
21:18
(5) согласен, но факт есть факт...
7 RomanYS
 
06.03.15
21:32
(4) не понял аналогии:
"Иванов" - данные, изменяемые админом/пользователем;
"ОсновныеСредства" - метаданные, за которые отвечает разработчик, как и за все последствия от изменений идентификаторов.

Как по твоему должно быть правильно?
8 RomanYS
 
06.03.15
21:35
+(7) по такой логике писать
СоздатьОбъект("Справочник.ОсновныеСредства");
тоже нельзя?
9 e2e4
 
06.03.15
22:17
(7)(8) во, это точнее выражает то, что я хотел сказать в (5)
(хотя, в 1С синоним объектов тоже меняется разработчиком в метаданных - но любой адекватный разраб априори предполагает, что к синонимам не будет таких привязок, как к идентификаторам...)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.