Данные из фин. счетов
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
evgeniy Участник - экстремал
Вступление в Клуб: 31.03.2008
|
Ср Июн 18, 2008 11:49  Данные из фин. счетов |
|
Полезность: Нет оценки
|
пишу свою первую не большую операцию "Оборотная ведомость по счетам". Возникло два вопроса:
1. Как можно стоя на фин. счете вытащить ФИО директора фирмы, которой придналежит этот счет.
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.
 |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Ср Июн 18, 2008 12:10  Re: Данные из фин. счетов |
|
Полезность: Нет оценки
|
evgeniy пишет: | пишу свою первую не большую операцию "Оборотная ведомость по счетам". Возникло два вопроса:
1. Как можно стоя на фин. счете вытащить ФИО директора фирмы, которой придналежит этот счет.
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.
 |
В IBSO этих обороток - пруд пруди...
На счете есть клиент-владелец - ссылка на клиента, а у клиента есть массив Должностные лица. Бежим по массиву и вытаскиваем, что нам нужно. |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Ср Июн 18, 2008 12:14  Re: Данные из фин. счетов |
|
Полезность: Нет оценки
|
evgeniy пишет: |
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.
 |
по клиенту или по счету картотеку ищем? у клиента может же быть несколько счетов. Делаем выбор из продукта РКО, где, например, расчетный счет - наш счет. В продукте есть массив Картотека. Проверяем - пустой или не пустой.
Код: | if массив%size(0)!=0 then есть картотека |
Так примерно. |
|
 |
evgeniy Участник - экстремал
Вступление в Клуб: 31.03.2008
|
Ср Июн 18, 2008 12:46  Re: Данные из фин. счетов |
|
Полезность: Нет оценки
|
Цитата: |
В IBSO этих обороток - пруд пруди...
На счете есть клиент-владелец - ссылка на клиента, а у клиента есть массив Должностные лица. Бежим по массиву и вытаскиваем, что нам нужно. |
Не совсем понию, как вызвать этот клиент-владелец. Знаю параметр [CLIENT_V], но там ссылки не клиента не видел. |
|
 |
evgeniy Участник - экстремал
Вступление в Клуб: 31.03.2008
|
Ср Июн 18, 2008 12:48  Re: Данные из фин. счетов |
|
Полезность: Нет оценки
|
ssa774 пишет: | evgeniy пишет: |
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.
 |
по клиенту или по счету картотеку ищем? у клиента может же быть несколько счетов. Делаем выбор из продукта РКО, где, например, расчетный счет - наш счет. В продукте есть массив Картотека. Проверяем - пустой или не пустой.
Код: | if массив%size(0)!=0 then есть картотека |
Так примерно. |
К примеру, находясь на счете клиента 40702 в фин. счетах, узнать есть ли у этого клиента картотека. Если есть то выдать сумму картотеки. |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Ср Июн 18, 2008 12:56  Re: Данные из фин. счетов |
|
Полезность: 2
|
evgeniy пишет: | Цитата: |
В IBSO этих обороток - пруд пруди...
На счете есть клиент-владелец - ссылка на клиента, а у клиента есть массив Должностные лица. Бежим по массиву и вытаскиваем, что нам нужно. |
Не совсем понию, как вызвать этот клиент-владелец. Знаю параметр [CLIENT_V], но там ссылки не клиента не видел. |
CLIENT_V - это и есть ссылка на клиента. В Администраторе словаря
встаете на него, два раза нажимаете и проваливаетесь в клиенты. А у клиента(у юридических лиц) уже есть массив должностных лиц.
Например, простая операция в фин.счетах. this - текущий экземпляр. Пройдет, если клиент - юр.лицо.
Код: |
for rec in this.[CLIENT_V]->(CL_CORP)[ALL_BOSS] -- побежали по массиву
loop
debug_pipe(rec.[RANGE].[NAME],0); -- вывели должность
end loop;
|
|
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Ср Июн 18, 2008 13:21   |
|
Полезность: 2
|
А если писать не Код: | if массив%size(0)!=0 then есть картотека | а Код: | if массив%size(1) is not null then есть картотека | то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно). _________________ I Lie About Everything. |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Ср Июн 18, 2008 13:25   |
|
Полезность: Нет оценки
|
w00per пишет: | А если писать не Код: | if массив%size(0)!=0 then есть картотека | а Код: | if массив%size(1) is not null then есть картотека | то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно). |
оффтоп, но может расскажете, что означают эти числа в скобках.. в документации не видела. Кроме 0 и 1 что еще есть и что означает? Пожалуйста  |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Ср Июн 18, 2008 13:35   |
|
Полезность: Нет оценки
|
ssa774 пишет: | w00per пишет: | А если писать не Код: | if массив%size(0)!=0 then есть картотека | а Код: | if массив%size(1) is not null then есть картотека | то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно). |
оффтоп, но может расскажете, что означают эти числа в скобках.. в документации не видела. Кроме 0 и 1 что еще есть и что означает? Пожалуйста  |
Судя по документации это проверка есть в массиве записи или нет...
1-есть
0-нет _________________ всегда есть как минимум 2 выхода |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Ср Июн 18, 2008 14:19   |
|
Полезность: 3
|
ssa774 пишет: | w00per пишет: | А если писать не Код: | if массив%size(0)!=0 then есть картотека | а Код: | if массив%size(1) is not null then есть картотека | то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно). |
оффтоп, но может расскажете, что означают эти числа в скобках.. в документации не видела. Кроме 0 и 1 что еще есть и что означает? Пожалуйста  |
расскажу если %size(0), то считается количество записей в массиве, а если %size(n) где n>0, обращение к конкретной записи массива.
Соответственно если n=1 1-я запись отсутствует, то там вообще ничего нет (массив пуст). Я считаю это достаточным условием для отределения в данном случае. _________________ I Lie About Everything. |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Ср Июн 18, 2008 19:22  Re: Данные из фин. счетов |
|
Полезность: 2
|
ssa774 пишет: | evgeniy пишет: |
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.
 |
Делаем выбор из продукта РКО, где, например, расчетный счет - наш счет. В продукте есть массив Картотека. Проверяем - пустой или не пустой.
Код: | if массив%size(0)!=0 then есть картотека |
Так примерно. |
Не совсем. В массиве "Картотека" договора РКО может быть пропасть записей, а картотека вся списана. Наверняка в РКО-шных библиотеках есть соответствующие функции, но можно и самому: по финсчету ищем договор РКО, не нашли - не о чем говорить, нашли - цикл_1 по массиву картотек, для каждой найденной записи, у которой ACC_REF.SALDO >0, - цикл_2 по массиву "Документы картотеки", если у записи неоплаченная сумма >0, то картотека есть. А какая именно - анализом целевого назначения внебалансового счета из цикла_1.
Если же хочется получить информацию по клиенту, то нужен еще один, внешний цикл_0 по всем счетам, у которых владелец - этот клиент и счет имеет отношение к RKO (или RKO_CUR) |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Июн 19, 2008 10:36   |
|
Полезность: 3
|
Цитата: | Не совсем. В массиве "Картотека" договора РКО может быть пропасть записей, а картотека вся списана. Наверняка в РКО-шных библиотеках есть соответствующие функции, но можно и самому: по финсчету ищем договор РКО, не нашли - не о чем говорить, нашли - цикл_1 по массиву картотек, для каждой найденной записи, у которой ACC_REF.SALDO >0, - цикл_2 по массиву "Документы картотеки", если у записи неоплаченная сумма >0, то картотека есть. А какая именно - анализом целевого назначения внебалансового счета из цикла_1.
Если же хочется получить информацию по клиенту, то нужен еще один, внешний цикл_0 по всем счетам, у которых владелец - этот клиент и счет имеет отношение к RKO (или RKO_CUR) |
Для проверки наличия/отсутствия картотеки достаточно посмотреть остаток на любом счете картотек, привязанных к договору РКО.
Код: | begin
locate k in rko.[CARD_IND] where k.[ACC_REF].[SALDO] != 0;
-- Есть картотека 1/2
exception when NO_DATA_FOUND then
-- Нет картотеки
end; |
|
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Чт Июн 19, 2008 12:57   |
|
Полезность: Нет оценки
|
dnk_dz пишет: | Для проверки наличия/отсутствия картотеки достаточно посмотреть остаток на любом счете картотек, привязанных к договору РКО.
Код: | begin
locate k in rko.[CARD_IND] where k.[ACC_REF].[SALDO] != 0;
-- Есть картотека 1/2
exception when NO_DATA_FOUND then
-- Нет картотеки
end; |
|
Тоже не совсем
Для К2 и К1огр подход годится, но счета первой картотеки (обычной) открываются в разрезе даты акцепта, поэтому на одном в/б счете могут учитываться документы разных договоров РКО. Соответственно, запись в массиве есть, остаток на счете есть, а картотеки вполне себе нет  |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Чт Июн 19, 2008 12:59   |
|
Полезность: Нет оценки
|
А нужно ли так глубоко копать? Человек первую операцию пишет, здесь важно объяснить главные принципы, а остальное само придет. 1 картотека, 2 картотека... вопрос не в этом был, ИМХО. |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Чт Июн 19, 2008 13:04   |
|
Полезность: Нет оценки
|
ssa774 пишет: | А нужно ли так глубоко копать? Человек первую операцию пишет, здесь важно объяснить главные принципы, а остальное само придет. 1 картотека, 2 картотека... вопрос не в этом был, ИМХО. |
Может и не нужно, это решать тому человеку, но вопрос был "как узнать о наличии/отсутствии картотеки?" Упрощенный вариант может дать ошибочный результат. Поэтому, коль уж даем рекомендации, ответ должен быть корректным. Тоже ИМХО |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|