Имя: Пароль:
1C
1С v8
Аналог "В иерархии". Спасите от говнокодинга.
0 МешочекЗнаний
 
01.11.19
08:15
Приветствую уважаемые.

Пример: в запросе можно указать "В иерархии" и будут выбраны все подчинённые счета бух учёта.
Есть ли аналог "В иерархии" не для языка запросов, а для стандартного языка 1С. Я полагаю есть вариант лучше чем:

Если Запись.СчетКт = ПланыСчетов.Хозрасчетный.НДСприПриобретенииОсновныхСредств ИЛИ
Запись.СчетКт = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымНематериальнымАктивам ИЛИ ... Тогда
1 Dmitry1c
 
01.11.19
08:17
Ты можешь результат запроса выгрузить в массив, а затем проверять, есть ли твое значение в массиве
2 МешочекЗнаний
 
01.11.19
08:20
(1) Хорошо придумано. Возьму на заметку.
3 catena
 
01.11.19
08:21
ПланСчетовОбъект.<Имя плана счетов>.ПринадлежитЭлементу (ChartOfAccountsObject.<Имя плана счетов>.BelongsToItem)
ПланСчетовОбъект.<Имя плана счетов> (ChartOfAccountsObject.<Имя плана счетов>)
ПринадлежитЭлементу (BelongsToItem)
Синтаксис:

ПринадлежитЭлементу(<Элемент>)
Параметры:

<Элемент> (обязательный)

Тип: ПланСчетовСсылка.<Имя плана счетов>.
Счет, для которого определяется принадлежность.
Возвращаемое значение:

Тип: Булево.
Истина - счет подчинен другому счету; Ложь - в противном случае.
Если в качестве параметра указать сам счет, то Ложь.
Описание:

Определяет подчиненность счета другому счету (элементу) с учетом всех уровней иерархии.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Определяет подчиненность непосредственно на момент вызова метода путем последовательного считывания всех вышестоящих элементов.
Пример:

Если Объект.ПринадлежитЭлементу(ЭлементСсылка) Тогда
    Сообщить("Принадлежит");
КонецЕсли;
4 МешочекЗнаний
 
01.11.19
08:24
(3) Похоже это то что я искал. Сейчас проверю. Спасибо!
5 РазДва
 
01.11.19
08:49
(0) В запросе вариант с кучей равно или "в списке" лучше, чем в иерархии. Так все типовые сделаны. Счет в иерархии в запросе - считается говнокодингом.