|
обход данных табличной части формы в УФ | ☑ | ||
---|---|---|---|---|
0
LivingStar
25.07.15
✎
08:58
|
Нужно обойти данные табличной части формы в управляемом приложении. Как это сделать?
МояТаблица = ДанныеФормыВЗначение(ЭтаФорма.Товары, Тип("ТаблицаЗначений")); так преобразовать не удается, не воспринимается ЭтаФорма.Товары ФормаОбъекта = Объект.Ссылка.ПолучитьФорму(); Для Каждого Элемент Из ФормаОбъекта.Элементы Цикл Если Тип(Элемент) = Тип("ТабличноеПоле") Тогда //элемент формы - табличное поле Если Элемент.Имя = "Товары" Тогда Сообщить("Это табличное поле!! " + Элемент.Имя ); //ТабПоле = ФормаОбъекта.ЭлементыФормы.Товары.Значение; ТабПоле = Элемент.Значение; Колво = ТабПоле.Количество(); Сообщить("Количество строк: " + Колво); Для Каждого ТекущаяСтрока Из ТабПоле Цикл Имя = ТекущаяСтрока.Номенклатура; Сообщить(Имя); КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; // <- так тоже не улавливает табличную часть товары |
|||
1
Рэйв
25.07.15
✎
09:21
|
за столько лет создавания тем по всякой хрени уже пора научиться.
|
|||
2
Dен
25.07.15
✎
09:26
|
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
КонецЦикла; |
|||
3
zak555
25.07.15
✎
09:29
|
на клиенте или на сервере нужно обход ?
|
|||
4
rphosts
25.07.15
✎
09:48
|
(0) табличной части формы или табличной части объекта отображаемую на форме?
А попробовать ЭтаФорма.Элементы.Товары религия запрещает? |
|||
5
zak555
25.07.15
✎
09:50
|
(4) как ты Элементы.Товары -- вытащишь данные по всем строкам ?
|
|||
6
rphosts
25.07.15
✎
10:06
|
(5) да, там только текущие данные. значит через Объект.Товары
|
|||
7
LivingStar
25.07.15
✎
10:48
|
(2) я же говорю там пусто, нужно формы табличную часть перебирать
|
|||
8
LivingStar
25.07.15
✎
10:49
|
(3) да не важно по суди, лучше с обработки, но главное получить, хоть где доступ к табличной части формы не объекта
|
|||
9
LivingStar
25.07.15
✎
10:49
|
(6) там нет этого реквизита, он есть в табличной части формы не объекта
|
|||
10
zak555
25.07.15
✎
11:09
|
(9) форма какая :?
|
|||
11
LivingStar
25.07.15
✎
11:10
|
(10 ) в (0) написано что УФ
|
|||
12
zak555
25.07.15
✎
11:11
|
(9) и нет основного реквизита Объект ?
|
|||
13
rphosts
25.07.15
✎
11:16
|
(9) скрин странички редактора формы из конфигуратора дай
|
|||
14
LivingStar
25.07.15
✎
11:25
|
||||
15
zak555
25.07.15
✎
11:27
|
ДанныеФормыКолекции можно обойти
|
|||
16
LivingStar
25.07.15
✎
11:27
|
(15) подскажите как? вы же видите на снимке, там пусто в УпаковкаКлиента
|
|||
17
LivingStar
25.07.15
✎
11:27
|
а при открытии документа есть в табличной части формы документа
|
|||
18
rphosts
25.07.15
✎
11:28
|
(11) и давно это стало окном редактора? окно редактора выглядит типа так http://catalog.mista.ru/upload/iblock/11a/mngform1.png
|
|||
19
LivingStar
25.07.15
✎
11:28
|
(15) я фот так хотел, но ошибка на товары
|
|||
20
LivingStar
25.07.15
✎
11:29
|
||||
21
rphosts
25.07.15
✎
11:30
|
(20) убери свои свойства и в окне реквизитов сделай так что-\бы было видно твои ТОВАРЫ
|
|||
22
rphosts
25.07.15
✎
11:32
|
(16) для того что ты видишь в ДанныеФормаКоллекция сделай обход в цикле
Для Каждого Строка Из <то что у тебя в ДанныеФормаКоллекция> Цикл |
|||
23
LivingStar
25.07.15
✎
11:32
|
(22) упаковка клиента их вижно
|
|||
24
rphosts
25.07.15
✎
11:34
|
(23) окно реквизитов - это правое верхнее, Карл, правое верхнее
|
|||
25
rphosts
25.07.15
✎
11:35
|
Это форма Документа? Форма Элемента справочника? Произвольная форма?
|
|||
26
rphosts
25.07.15
✎
11:35
|
покажи окно реквизитов
|
|||
27
LivingStar
25.07.15
✎
11:37
|
(25) документа
|
|||
28
LivingStar
25.07.15
✎
11:37
|
как получить ДанныеФормаКоллекция для перебора?
|
|||
29
rphosts
25.07.15
✎
11:38
|
(28) см (26)
|
|||
30
zak555
25.07.15
✎
11:39
|
ДанныеСтроки = Объект.Товары.НайтиПоИдентификатору (Индекс);
|
|||
31
LivingStar
25.07.15
✎
11:40
|
(30) каких реквизитов?
|
|||
32
zak555
25.07.15
✎
11:44
|
ещё раз
на клиенте ты можно обойти элементы, которые получены клиентов (не все, которые есть на сервере -- если ты читаешь данные с сервера) для обхода на клиенте можно использовать конструкцию вида ТЧ = Объект.Товары; Для каждого стр Из ТЧ Цикл Сообщить(стр.МойРеквизит); КонецЦикла; |
|||
33
rphosts
25.07.15
✎
11:52
|
+(32) если требуемый реквизит не выводится в форме но очень нужен - следует указать этому реквизит что егоиспользовать всегда, если требуемый реквизит - рраз именование другого реквизита ( т.е. субреквизит а не самостоятельный реквизит) за его значением придётся сходить на сервео
|
|||
34
zak555
25.07.15
✎
12:14
|
хотя порционность на клиенте относится к динамическому списку
|
|||
35
LivingStar
25.07.15
✎
13:34
|
(32) вы понимаете что там какие вы примеры приводите пусто в этом реквизите? проблема в этом
|
|||
36
LivingStar
25.07.15
✎
13:46
|
при выводе строки можно использовать в модуле формы документа?
|
|||
37
LivingStar
25.07.15
✎
13:58
|
это было оформление строк в обычном приложении а как в управляемом?
|
|||
38
Остап Сулейманович
25.07.15
✎
14:03
|
(37) Кто такой Объект.Товары? Если ДинамическийСписок - сливай воду. Обход невозможен. Только аналогичный запрос и уже тогда обход его результата.
Если ТабличнаяЧасть то все вполне доступно через Для Каждого текСтрока ИЗ Объект.Товары Цикл |
|||
39
LivingStar
25.07.15
✎
14:11
|
(38) обычная табличная часть документа, но что вы пишете там пусто, есть на форме документа визуально только
|
|||
40
Рэйв
25.07.15
✎
14:13
|
(39)Если ума нет и походу не будет:-)...Ты похоже нас до старости будешь утомлять своими тупыми темами...
|
|||
41
LivingStar
25.07.15
✎
14:13
|
(40) так а чт оподсказать чт ото можешь? что пишете не подходит я же объясняю
|
|||
42
Рэйв
25.07.15
✎
14:15
|
(41)Могу конечно.И даже знаю ответ.
Нот я тебе еще пару лет тому назад сказал, что тебе идиоту принципиально помогать не буду |
|||
43
LivingStar
25.07.15
✎
15:19
|
Up!
|
|||
44
ДенисЧ
25.07.15
✎
16:11
|
(40) тебе немного осталось, так что не переэживай.
|
|||
45
LivingStar
27.07.15
✎
13:08
|
убрал составной тип у реквизита, он сейчас типа справочник, так внего при присвоении элемента все равно строка пишется, это как так?
|
|||
47
H A D G E H O G s
27.07.15
✎
13:10
|
"Иногда они возвращаются"
|
|||
48
LivingStar
27.07.15
✎
13:10
|
(46) ну и что бросать? что подскажете?
|
|||
49
H A D G E H O G s
27.07.15
✎
13:15
|
(48) Бросать пудрить мозги работодателям и идти работать в МакДак.
|
|||
50
hhhh
27.07.15
✎
13:16
|
(45) сделай нормальную загрузку. У тебя пусто, потому что ничего и не загрузил.
|
|||
51
el7cartel
27.07.15
✎
13:17
|
а сегодня пятница?
|
|||
52
LivingStar
27.07.15
✎
13:18
|
(50) я уже при загрузке это делаю, загружается только строка
Вроде при создании нового элемента он прописывается, а при его нахождении, когда есть его ссылка, в поле встает все равно строка |
|||
53
Timon1405
27.07.15
✎
13:18
|
(50) ты не понимаешь, пока данные в таком виде, виноват, "тот, прошлый Вася, который криво их загрузил", а тут Д'Артаньян их "правит". Если же будет загрузка с 0, ответственность уже будет целиком его, а оно ему надо?
|
|||
54
LivingStar
27.07.15
✎
13:19
|
(53) так загрузка уже моя, я его переделал немного, сейчас проблема чт оссылка присваевается как строка в реквизит табличной части
|
|||
55
el7cartel
27.07.15
✎
13:20
|
(54) ну так посмотри какой тип у тебя в табличной части
|
|||
56
LivingStar
27.07.15
✎
13:21
|
(55) СправочникСсылка.УпаковкаНоменклатурыКлиента, сейчас только поправил, убрав строку и составной тип сам убрался потом
все равно присваивается как строка |
|||
57
LivingStar
27.07.15
✎
13:21
|
счас етстирование и исправление выполнится попробую новый реквизит создать
|
|||
58
vyaz
27.07.15
✎
13:21
|
(54) ну это было уже в прошлой ветке, не повторяйся
|
|||
59
hhhh
27.07.15
✎
13:22
|
(54) ну вы присваиваете в реквизит ТЧ товары, тогда и нужно смотреть в Объект.Товары, уже неделю об этом вам талдычим, а вы всё равно какие-то фантастические варианты пробуете.
|
|||
60
el7cartel
27.07.15
✎
13:24
|
(54) два варианта, либо получаешь тип строку, либо в табличной части тип строка. Это трудно понять...печаль
|
|||
61
LivingStar
27.07.15
✎
13:24
|
(59) У объекта путь к данным Объект.Товары.УпаковкаКлиента
|
|||
62
LivingStar
27.07.15
✎
13:24
|
(61+) у реквизита табличной части
|
|||
63
LivingStar
27.07.15
✎
13:26
|
(60) я нахожу элемент справочник ссылка и его возвращаю, в реквизите НоваяСтрока.УпаковкаКлиента тип строка в отладчике, и ссылка в него присваивается как строка, в конфигураторе это справочник
|
|||
64
el7cartel
27.07.15
✎
13:28
|
(63) "НоваяСтрока.УпаковкаКлиента тип строка " ну ты же сам ответил! ну будь мужиком поменяй тип данных)))
|
|||
65
LivingStar
27.07.15
✎
13:35
|
(64) так в конфигураторе его тип Справочник.УпаковкиНоменклатурыКлиентов
|
|||
66
DexterMorgan
27.07.15
✎
13:39
|
до сотки то дойдет?
|
|||
67
hhhh
27.07.15
✎
13:40
|
(66) да уже 5 веток было.
|
|||
68
hhhh
27.07.15
✎
13:41
|
(65) показывайте как присваиваете это поле, там может строку пишете в этот справочник?
|
|||
69
DexterMorgan
27.07.15
✎
13:42
|
(65) какая у тебя зп?
|
|||
70
el7cartel
27.07.15
✎
13:43
|
у тс каждая ветка просто шедевр)))
|
|||
71
Бубка Гоп
27.07.15
✎
13:43
|
Нет, так не бывает, наверно это тролль
|
|||
72
LivingStar
27.07.15
✎
13:50
|
НоменклатураКлиента = Док.Sheets(1).Cells(ДанныеНачинаютсяС, 3).Value;
Пока СокрЛП(НоменклатураКлиента) <>"" Цикл НоваяСтрока = Объект.Товары.Добавить(); // 2015_06_08 LivingStar -> Номенклатура = Неопределено; НоваяСтрока.НоменклатураКлиента= ПолучитьНоменклатуруКлиентаНаСервере(НоменклатураКлиента,Номенклатура, ОбъектСсылка); Если ЗначениеЗаполнено(Номенклатура) Тогда // И Не ЗначениеЗаполнено(Стр.Номенклатура) Тогда НоваяСтрока.Номенклатура = Номенклатура; КонецЕсли; // <- LivingStar НоваяСтрока.Наименование = Док.Sheets(1).Cells(ДанныеНачинаютсяС, 3).Value; НоваяСтрока.ЕдиницаИзмерения = Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value; //XXX_23-04-14++ //НоменклатураВБазе = Справочники.НоменклатураКлиента.НайтиПоНаименованию(Док.Sheets(1).Cells(ДанныеНачинаютсяС, 3).Value,,,Параметры.ОбъектСсылка.Партнер); Если ЗначениеЗаполнено(НоваяСтрока.Наименование) Тогда НоменклатураВБазе = ПолучитьНоменклатуруВБазе(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ОбъектСсылка, "Партнер"), НоваяСтрока.Наименование); Иначе НоменклатураВБазе = ПредопределенноеЗначение("Справочник.НоменклатураКлиента.ПустаяСсылка"); КонецЕсли; //-- Если НоменклатураВБазе = ПредопределенноеЗначение("Справочник.НоменклатураКлиента.ПустаяСсылка") Тогда НоваяСтрока.НоменклатураКлиента = Док.Sheets(1).Cells(ДанныеНачинаютсяС, 3).Value; //НоваяСтрока.Упаковка = Справочники.УпаковкиНоменклатуры.НайтиПоНаименованию(Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value); НоваяСтрока.ВидРеквизитаНоменклатураКлиента = Ложь; // LivingStar 2015_07_08 -> //НоваяСтрока.Упаковка = ВернутьУпаковкуНаСервере(НоваяСтрока.Номенклатура, "УпаковкаНоменклатуры", Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value); // <- LivingStar // XXX++ Если НоваяСтрока.Свойство("УпаковкаКлиента") тогда Новаястрока.УпаковкаКлиента = Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value; КонецЕсли; //-- // LivingStar 2015_07_08 -> ТипЗнч(НоваяСтрока.УпаковкаКлиента) = Тип("Строка") Новаястрока.УпаковкаКлиента = ВернутьУпаковкуНаСервере(НоваяСтрока.НоменклатураКлиента, "УпаковкаНоменклатурыКлиента", ?(ТипЗнч(НоваяСтрока.УпаковкаКлиента) = Тип("Строка"), НоваяСтрока.УпаковкаКлиента, НоваяСтрока.УпаковкаКлиента.Наименование)); // <- LivingStar Иначе НоваяСтрока.НоменклатураКлиента = НоменклатураВБазе; НоваяСтрока.Номенклатура = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НоменклатураВБазе, "Номенклатура"); //НоваяСтрока.Упаковка = Справочники.УпаковкиНоменклатуры.НайтиПоНаименованию(Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value,,,НоменклатураВБазе.Номенклатура); // LivingStar 2015_07_08 -> //НоваяСтрока.Упаковка = ВернутьУпаковкуНаСервере(НоваяСтрока.Номенклатура, "УпаковкаНоменклатуры", Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value); // <- LivingStar НоваяСтрока.ВидРеквизитаНоменклатураКлиента = Истина; //XXX++ Если НоваяСтрока.Свойство("УпаковкаКлиента") тогда //УпаковкаКлиента = Справочники.УпаковкиНоменклатурыКлиентов.НайтиПоНаименованию(Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value,,,НоменклатураВБазе); УпаковкаКлиента = ЭлементСправочникаПоискПоНаименованию("УпаковкиНоменклатурыКлиентов",Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value, НоменклатураВБазе); // LivingStar 2015_07_25 -> //ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.УпаковкиНоменклатурыКлиентов"); //Новаястрока.УпаковкаКлиента.ОграничениеТипа = ОписаниеТипа; //Новаястрока.УпаковкаКлиента.Значение = ОписаниеТипа.ПривестиЗначение(); //Новаястрока.УпаковкаКлиента.ВыбиратьТип = Ложь; //это на всякий случай // <- Если УпаковкаКлиента = ПредопределенноеЗначение("Справочник.УпаковкиНоменклатурыКлиентов.ПустаяСсылка") Тогда //ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value); //Если НЕ ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.ПустаяСсылка() Тогда // НоваяУпаковкаКлиента = Справочники.УпаковкиНоменклатурыКлиентов.СоздатьЭлемент(); // НоваяУпаковкаКлиента.ЕдиницаИзмерения = ЕдиницаИзмерения; // НоваяУпаковкаКлиента.Коэффициент = 1; // НоваяУпаковкаКлиента.Владелец = НоменклатураВБазе; // НоваяУпаковкаКлиента.Наименование = Справочники.УпаковкиНоменклатуры.СформироватьНаименование(НоваяУпаковкаКлиента.ЕдиницаИзмерения, НоваяУпаковкаКлиента.Коэффициент, НоменклатураВБазе.Номенклатура.ЕдиницаИзмерения); // НоваяУпаковкаКлиента.Записать(); // НоваяСтрока.УпаковкаКлиента = НоваяУпаковкаКлиента.Ссылка; //Иначе //НоваяСтрока.УпаковкаКлиента = Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value; //КонецЕсли; // LivingStar 2015_07_08 -> Новаястрока.УпаковкаКлиента = ВернутьУпаковкуНаСервере(НоваяСтрока.НоменклатураКлиента, "УпаковкаНоменклатурыКлиента", Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value); // <- LivingStar Иначе НоваяСтрока.УпаковкаКлиента = ПредопределенноеЗначение("Справочник.УпаковкиНоменклатурыКлиентов.ПустаяСсылка"); НоваяСтрока.УпаковкаКлиента = УпКл(Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value,НоваяСтрока.НоменклатураКлиента); НоваяСтрока.УпаковкаКлиента = УпаковкаКлиента.Ссылка; // LivingStar 2015_07_08 -> НоваяСтрока.УпаковкаКлиента = ВернутьУпаковкуНаСервере(НоваяСтрока.НоменклатураКлиента, "УпаковкаНоменклатурыКлиента", Док.Sheets(1).Cells(ДанныеНачинаютсяС, 5).Value); // <- LivingStar КонецЕсли; КонецЕсли; //-- КонецЕсли; |
|||
73
hhhh
27.07.15
✎
13:58
|
(72) ну давайте ВернутьУпаковкуНаСервере(), что там? Вероятно там полная ахинея.
|
|||
74
Бубка Гоп
27.07.15
✎
14:00
|
||||
75
LivingStar
27.07.15
✎
14:22
|
(73) правлю
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |