|
Как в форму регистра добавить колонку? | ☑ | ||
---|---|---|---|---|
0
mdv92
21.09.11
✎
16:18
|
Ну, т.е., например, есть реквизит Договор, а я хочу в форме списка вывести еще и контрагента? (такого реквизита нет и не будет)
|
|||
1
mdv92
21.09.11
✎
16:19
|
в смысле - владельца вывести!
|
|||
2
Amra
21.09.11
✎
16:24
|
Без фото не взлетит. Не надоело вопросы в пустоту задавать?
|
|||
3
Error pro
21.09.11
✎
16:28
|
(0) а че ты курил?
|
|||
4
Шапокляк
21.09.11
✎
16:32
|
Добавьте колонку в форме списка и используйте обработчик ПриВыводеСтроки. Примеров в конфигурациях полно.
|
|||
5
zbv
21.09.11
✎
16:32
|
добавить колонку и заполнять ее в процедуре "ПриПолученииДанных"
|
|||
6
Сергей Д
21.09.11
✎
16:33
|
Автору - делай как (5) и не делай как (4).
|
|||
7
mdv92
21.09.11
✎
16:39
|
Я ее никак обозвать не могу! И, кстати, примера тоже не могу найти. С журналами документов, вроде, разобралась (и то не помню, а перетаскиваю каждый раз кусок), а с регистром -
Процедура РегистрНакопленияСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Элемент.Колонки.ПапкаСтатьи.Данные=ДанныеСтроки.Статья.Родитель; КонецПроцедуры Не работает! |
|||
8
ilkoder
21.09.11
✎
16:43
|
Процедура РегистрНакопленияСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.ПапкаСтатьи.Текст=ДанныеСтроки.Статья.Родитель; ОформлениеСтроки.Ячейки.ПапкаСтатьи.ОтображатьТекст = истина; КонецПроцедуры |
|||
9
Шапокляк
21.09.11
✎
16:44
|
(6) обоснуй.
|
|||
10
unregistered
21.09.11
✎
16:47
|
(9) А что тут обосновывать?
ПриПолученииДанных работает в разы быстрее, чем ПриВыводеСтроки. |
|||
11
ilkoder
21.09.11
✎
16:47
|
(10) +100500...
|
|||
12
mdv92
21.09.11
✎
16:49
|
(8) Спасибо!!! Работает!!!
|
|||
13
mdv92
21.09.11
✎
16:51
|
РегистрНакопленияСписокПриПолученииДанных(Элемент, ОформленияСтрок)
- тут не предлагается данныестроки - как тогда сделать? |
|||
14
unregistered
21.09.11
✎
16:54
|
Остатки в форме списка справочника Номенклатура:
Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) // Соответствие создается для заполнения остатков в строках табличного поля Соответствие = Новый Соответствие; // Заполнение параметра - массива значений ссылками на отображаемые строки табличного поля СсылкиМассив = Новый Массив; Для каждого Стр из ОформленияСтрок Цикл СсылкиМассив.Добавить(Стр.ДанныеСтроки.Ссылка); Соответствие.Вставить(Стр.ДанныеСтроки.Ссылка, Стр); КонецЦикла; // Сформировать запрос для получения остатков ЗапросОстатка = Новый Запрос; ЗапросОстатка.Текст = "ВЫБРАТЬ | УчетНоменклатурыОстатки.Номенклатура, | УчетНоменклатурыОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.УчетНоменклатуры.Остатки(, Номенклатура В (&Номенклатура)) КАК УчетНоменклатурыОстатки"; ЗапросОстатка.УстановитьПараметр("Номенклатура", СсылкиМассив); Выборка = ЗапросОстатка.Выполнить().Выбрать(); //Вывести остаток в строку, найденную в соответствии по номенклатуре из запроса Пока Выборка.Следующий() Цикл Соответствие.Получить(Выборка.Номенклатура).Ячейки.Остаток.Значение = Выборка.КоличествоОстаток; КонецЦикла; КонецПроцедуры |
|||
15
hhhh
21.09.11
✎
16:55
|
(13) предлагаются там данные строки
|
|||
16
Шапокляк
21.09.11
✎
16:57
|
(14) Спасибо, буду иметь в виду. Правда, по своему опыту и поиску по сайту существенной разницы обнаружить не удалось.
|
|||
17
mzelensky
21.09.11
✎
17:00
|
"ПриПолученииДанных работает в разы быстрее, чем ПриВыводеСтроки." - а точно быстрее ????
|
|||
18
hhhh
21.09.11
✎
17:02
|
(17) ну если случай
ОформлениеСтроки.Ячейки.ПапкаСтатьи.Текст=ДанныеСтроки.Статья.Родитель; то одинаково работают. |
|||
19
mzelensky
21.09.11
✎
17:05
|
Вот случай:
//РАСЧИТЫВАЕМ ЦЕНУ Процедура НоменклатурныеПозицииПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Вставить содержимое обработчика. Если РассчитыватьЦену тогда Если ДанныеСтроки<>Неопределено и ДанныеСтроки.Номенклатура<>неопределено и ЗначениеЗаполнено(ВладелецФормы.ДоговорКонтрагента) тогда ТипПоДоговору=ВладелецФормы.ТипЦен; ТипЦены=ОбщийМодуль.ПолучитьТипЦеныНоменклатуры(ДанныеСтроки.Номенклатура, ВладелецФормы.ДоговорКонтрагента, ТекущаяДата(), ТипПоДоговору); ОформлениеСтроки.ячейки.цена.УстановитьТекст(Строка( ОбщийМодуль.ПолучитьЦенуНоменклатуры(ДанныеСтроки.Номенклатура,ТипЦены, ТекущаяДата()) )); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура НоменклатурныеПозицииПриПолученииДанных(Элемент, ОформленияСтрок) // Вставить содержимое обработчика. Если РассчитыватьЦену тогда для каждого СтрокаОФ из ОформленияСтрок цикл Если СтрокаОФ.ДанныеСтроки<>Неопределено и СтрокаОФ.ДанныеСтроки.Номенклатура<>неопределено и ЗначениеЗаполнено(ВладелецФормы.ДоговорКонтрагента) тогда ТипПоДоговору=ВладелецФормы.ТипЦен; ТипЦены=ОбщийМодуль.ПолучитьТипЦеныНоменклатуры(СтрокаОФ.ДанныеСтроки.Номенклатура, ВладелецФормы.ДоговорКонтрагента, ТекущаяДата(), ТипПоДоговору); СтрокаОФ.ячейки.цена.УстановитьТекст(Строка( ОбщийМодуль.ПолучитьЦенуНоменклатуры(СтрокаОФ.ДанныеСтроки.Номенклатура,ТипЦены, ТекущаяДата()) )); КонецЕсли; конеццикла; КонецЕсли; КонецПроцедуры Что будет быстрее ??? |
|||
20
acsent
21.09.11
✎
17:07
|
(19) Одинаково
|
|||
21
unregistered
21.09.11
✎
17:07
|
(16) >> поиску по сайту
Сто раз обсасывалось на форуме :) При скролинге по списку ПриПолученииДанных обрабатывает только те строки, которые появляются при пролистывании, а ПриВыводеСтроки - все видимые строки. То есть в массиве ОформленияСтрок будет меньше строк, чем мы видим на экране. Ну и кроме того ПриПолученииДанных вызывается один раз, а ПриВыводеСтроки - столько раз сколько строк. Соответственно в ПриПолученииДанных можно одним запросом получить все дополнительные данные (см. пример с остатками из (14)) и их вывести в нужные поля, а ПриВыводеСтроки - по сути запрос в цикле. |
|||
22
hhhh
21.09.11
✎
17:14
|
(21) но бывает наоборот, при открытии форм журналов и списков документов ПриПолученииДанных вызывается 2 раза. Особенно типовая БП этим грешит.
|
|||
23
Goggy
21.09.11
✎
17:18
|
(22) Но даже 2 раза это не вызов на каждую строку и к тому же в нашем случае не списки документов.
|
|||
24
Шапокляк
21.09.11
✎
18:44
|
(21) Вы про скроллинг по списку говорите? И что, приПолученииДанных вызывается реже ПриВыводеСтроки в этом случае? Я уж не говорю о том, что сама процедура ПриПолученииДанных по времени работы соизмерима с ПриВыводеСтроки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |