|
Получить значение реквизитов формы. Как сделать правильней? | ☑ | ||
---|---|---|---|---|
0
new1snik
26.12.13
✎
13:42
|
УПП, обычная форма. Справочник БанковскиеСчета. Нужно получить значение БИК и к/с, которые являются реквизитами формы, на данный момент сделал так:
Код = СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет.Код; х = Справочники.БанковскиеСчета.НайтиПоКоду(Код).ПолучитьФорму("ФормаЭлемента"); х.Открыть(); БИК = х.ЭлементыФормы.БИКБанка.Значение; КС = х.ЭлементыФормы.КоррсчетБанка.Значение; х.Закрыть(); Будет ли это слишком косячным решением, если данная операция будет выполняться всего один раз в обработке? И как можно сделать красивее, если значения БИК и к/с не пишутся в регистры(я этого не нашел)? |
|||
1
Wobland
26.12.13
✎
13:43
|
а как туда значения попадают?
|
|||
2
Godofsin
26.12.13
✎
13:44
|
(0) сууууппеееер!
|
|||
3
Godofsin
26.12.13
✎
13:46
|
БС = СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет;
Бик = БС.Код; КС = БС.КоррСчет; |
|||
4
Godofsin
26.12.13
✎
13:46
|
БИК и КС не являются реквизитами формы
|
|||
5
Wobland
26.12.13
✎
13:47
|
между открыть и закрыть ещё скрин надо снимать
|
|||
6
Godofsin
26.12.13
✎
13:48
|
+(5) И делать в выгрузку в ДБФ
|
|||
7
George Wheels
26.12.13
✎
13:49
|
(0) Да. Это будет слишком косячным решением.
|
|||
8
Wobland
26.12.13
✎
13:49
|
(6) отправлять это веб-сервису, который это дело будет распознавать и возвращать ответ строкой
|
|||
9
Godofsin
26.12.13
✎
13:51
|
(8) По строке делать запрос на элемент справочника )))
|
|||
10
GROOVY
26.12.13
✎
13:53
|
(3) Решение, тоже, так себе. 4 неявных запроса породит.
|
|||
11
Godofsin
26.12.13
✎
13:56
|
(10) Ну надеюсь базу не положит =)
|
|||
12
hhhh
26.12.13
✎
13:58
|
(10) кеш ведь выручит.
|
|||
13
Defender aka LINN
26.12.13
✎
13:59
|
(3) БИК - это код БАНКА, а не счета. Да и к/с тоже.
|
|||
14
Godofsin
26.12.13
✎
14:00
|
(13) точно. Добавить .банк
|
|||
15
new1snik
26.12.13
✎
14:13
|
Спасибо всем. Работает
|
|||
16
Wobland
26.12.13
✎
14:17
|
(14) а не владелец?
|
|||
17
Defender aka LINN
26.12.13
✎
14:49
|
(16) Владелец - контрегнт
|
|||
18
Kvestin
26.12.13
✎
14:51
|
(10) Так как вашему мнению я точно доверяю.
Скажите, это подтвержденные данные (т.е. смотрели аналогичный код в профайлере) или из общих соображений? На мой взгляд: //БС = СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет; 1 запрос: получаем запись для контрагента из таблицы справочника Контрагенты с отбором (СсылкаНаОбъект.Контрагент). Из ней сразу имеем ссылку на Основной банковский счет как реквизит //Бик = БС.Код; 2 запрос: получаем запись в таблице справочника БанковскиеСчета с отбором (Контрагент.ОсновнойБанковскийСчет) //Тут скорее всего кешируем все данные для выбранного банковского счета //КС = БС.КоррСчет; Тут уже получаем данные из кэша (в худшем случае допускаю что еще 1 запрос, если первый раз 1С решила не кешировать) У меня получается в 2 запроса можно уложиться. Максимум в 3. |
|||
19
GROOVY
26.12.13
✎
15:01
|
(18) Не смотрел в профайлере.
БС = СсылкаНаОбъект.Контрагент.ОсновнойБанковскийСчет; - однозначно один запрос с двумя соединениями или соединением и отбором. Бик = БС.Код; - читаем все по ссылке банковского счета, по сути запрос выбрать * из БС Где БС = &БС КС = БС.КоррСчет; - полностью согласен. Итого вместо 1 нормального запроса, мы имеем 2-3 запроса. Возможно выборку в кэш абсолютно не нужных данных. Я же говорю, решение не оптимальное :) |
|||
20
Kvestin
26.12.13
✎
15:19
|
(19) По решению конечно согласен :) Но (0) еще веселее.
|
|||
21
new1snik
26.12.13
✎
15:22
|
(20)Я еще учусь xD Поэтому часто косячу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |