|
Установить начальное значение в динамическом списке | ☑ | ||
---|---|---|---|---|
0
borrman
04.11.11
✎
23:48
|
Добрый день.
Столкнулся со следующей задачей: есть форма в которой есть динамический список с номенклатурой и ценами. эта форма вызывается из табличной части документа при выборе номенклатуры (колонка Номенклатура). Мне необходимо установить курсор на тот элемент, который уже выбран в документе (как это делается, если мы просто открываем справочник стандартными средствами 1С - оно позиционируется на уже выбранный элемент)? Спасибо |
|||
1
Поручик
05.11.11
✎
00:38
|
(0) Брошу код, надеюсь поймёшь. Ключевое "ТекущаяСтрока"
ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимВыбора", Истина); ПараметрыФормы.Вставить("ТекущаяСтрока", Ссылка_На_Элемент_На_Который_Надо_Спозиционироваться); ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", ПараметрыФормы, Элемент); |
|||
2
borrman
05.11.11
✎
00:47
|
не работает.
|
|||
3
ll13
05.11.11
✎
00:49
|
работает.
|
|||
4
borrman
05.11.11
✎
00:50
|
Просто. немного другая ситуация. Это не справочник.
У меня есть документ. В нем специальная форма (произвольная форма) в которой 2 дин. списка: 1й - список номенклатуры с ценами (где нужно спозиционироваться) 2й - связанные с номенклатурой элементы (поставщики и пр. не важно) вот мне нужно в первом дин. списке установить начальное значение. |
|||
5
borrman
05.11.11
✎
00:50
|
Нужно ли ставить Динамический список (первый) как основной реквизит формы?
|
|||
6
NcSteel
05.11.11
✎
00:50
|
(4) "Брошу код, надеюсь поймёшь. Ключевое "ТекущаяСтрока"
ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимВыбора", Истина); ПараметрыФормы.Вставить("ТекущаяСтрока", Ссылка_На_Элемент_На_Который_Надо_Спозиционироваться); ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", ПараметрыФормы, Элемент);" (с)Поручик |
|||
7
borrman
05.11.11
✎
00:52
|
вот код открытия формы:
СтруктураПараметров = Новый Структура("РежимВыбора, ТекущаяСтрока", Истина, Элементы.Товары.ТекущиеДанные.Товар); ОткрытьФормуМодально("Документ.ЗаказПокупателя.Форма.ФормаДляНужногоПодбора", СтруктураПараметров, Элемент); не позиционируется |
|||
8
Поручик
05.11.11
✎
01:05
|
(7) Ещё теории. Как установить курсор на необходимую строку 1C 8.2 http://www.sky1c.ru/node/343
В открываемой форме в ПриСозданииНаСервере смотришь параметр ТекущаяСтрока и в динамическом списке устанавливаешь нужную строку. |
|||
9
borrman
05.11.11
✎
01:17
|
как в ДС ее найти? у него нет ни функций поиска, ни выгрузки в ДЗ. хоть куда-то.
|
|||
10
МишельЛагранж
05.11.11
✎
01:19
|
(8) это жна до такое придумать:
"Дело в том, что таблица, которая в форме, элемент формы, и таблица, которая в реквизите (ДанныеФормыКоллекция) - это разные таблицы. " - т.е. таблица на динамике (выводимая на динамической форме пользователю), и реквизит (содержащий ТЗ), который привязан к этому элементу на динамике - ЭТО РАЗНЫЕ ТАБЛИЦЫ, которые еще и требуют отдельного обхождения, каждое свое! это могла придумать только больная фантазия 1с. или я не атк понял? |
|||
11
borrman
05.11.11
✎
01:22
|
Ну есть ЭлементФормы, а есть реквизит, в котором хранятся непосредственно данные. Первый отвечает за внешний вид, а второй за данные. Как-то так
|
|||
12
МишельЛагранж
05.11.11
✎
01:30
|
(11) так какого ляда элемент формы (болванка по сути) не подчиняется своему реквизиту (для которого она вторична - раз уж в 1с работает и обрабатываем данные реквизитов, а не элементов), и не принимает детерминацию последнего??
Здоровое программирование выглядит так: задаешь порядок следования в одном месте, и не заморачиваешься. Взгляд 1с - разбирайтесь, кто тут у нас за чем следует, и делайте как-нибудь сами. |
|||
13
Поручик
05.11.11
✎
01:33
|
(11) Ещё вброс
Элементы.Табличное_Поле_Связанное_С_Какими_То_Табличными_Данными.ТекущаяСтрока = ИдентификаторСтроки; Короче, цена вопроса от полторы штуки, если самостоятельно не догонишь. |
|||
14
iamnub
05.11.11
✎
01:46
|
(10)
Паттерн MVVM весь об этом. Только куцому 1С-нику, да еще пришедшему с 7-ки придет в голову назвать это "больной фантазией". |
|||
15
borrman
05.11.11
✎
01:55
|
Блин.
Вобщем заработало. НО! ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.ВерсияДанных, СправочникНоменклатура.ПометкаУдаления, СправочникНоменклатура.Предопределенный, СправочникНоменклатура.Родитель, СправочникНоменклатура.ЭтоГруппа, СправочникНоменклатура.Код, СправочникНоменклатура.Наименование, СправочникНоменклатура.ВЕБСсылка, СправочникНоменклатура.Производитель, СправочникНоменклатура.Категория, СправочникНоменклатура.ОбработаноОператором ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ГДЕ СправочникНоменклатура.ОбработаноОператором Так вот - если фильтр убрать все работает, а если есть - не позиционируется. Хотя значение в списке найти можно. |
|||
16
borrman
05.11.11
✎
01:56
|
Кстати, заработал код из (1) :)
|
|||
17
МишельЛагранж
05.11.11
✎
02:00
|
(14) да что там какой-то паттерн! вся 1с о том, как вылезти из себя самой, пройти сотни релизов, и прийти к началу с тем же самым, с чего начали.
|
|||
18
borrman
05.11.11
✎
22:25
|
Не позиционируется только, если отображение изначальное - иерархический список.
Если дерево или просто список - все хорошо. Сделал следующим образом: 1) сделал запрос без фильтра 2) используя код из (1) открыл форму 3) ПриСозданииНаСервере сделал отбор через отбор динамического списка и скрыл его от пользователей. Все-таки остался вопрос - почему не срабатывает позиционирование при выводе иерархического дерева с отбором. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |