|
УФ. Глюк или магия? | ☑ | ||
---|---|---|---|---|
0
SeiOkami
16.02.13
✎
21:03
|
УТ 11. В общем вывел в динамический список табличной части реализации Код из номенклатуры... Вывел, а теперь хочу использовать в переборе на клиенте. Но 1с не видит это поле. При этом, если открыть в отладке и глянуть строку, из которой его пытаюсь вытянуть, то он есть. Но когда копирую путь к нему и снова вставляю, то не выдает. Объяснить не могу, лучше покажу:
Скрин строки: http://s4.hostingkartinok.com/uploads/images/2013/02/a87a8e483cc4b49e9450ba836e04dba8.png Скрин, когда я пытаюсь обратиться из строки: http://s4.hostingkartinok.com/uploads/images/2013/02/1f9c36bcd8197250db1199c1da3e5bd1.png А теперь я копирую строку выражения, и заново вставляю: http://s2.hostingkartinok.com/uploads/images/2013/02/0d1775d871882389137f2b30301e67f6.png Я понимаю, что это из-за точки после номенклатуры. Но у меня два вопроса. Во-первых как у 1с выходит такие противоречащие выводы? А второй: как это исправить? Точка - это не Имя. Это путь к данным. |
|||
1
Сниф
16.02.13
✎
21:08
|
Не очень понятно, что хотите сделать. И что такое (и зачем) "перебор на клиенте".
|
|||
2
SeiOkami
16.02.13
✎
21:08
|
У меня сейчас вот так:
Для Каждого Стр из Элементы.СписокРеализацииТоваровУслуг.ТекущиеДанные.Товары Цикл Файл.Добавить(); Файл.NNUM = Стр.Номенклатура.Код; Файл.KOLVO = Стр.Количество; Файл.Записать(); КонецЦикла; |
|||
3
SeiOkami
16.02.13
✎
21:09
|
Это на клиенте.
|
|||
4
GANR
16.02.13
✎
21:10
|
(2) что за переменная Файл?
|
|||
5
SeiOkami
16.02.13
✎
21:10
|
Я могу изменить запрос динамического списка, однако, неужели нельзя иначе? И даже просто интересно как так может быть
|
|||
6
SeiOkami
16.02.13
✎
21:11
|
(4), файл dbf, но не в этом суть. Просто, как стукнуться в переборе к моему полю?
|
|||
7
GANR
16.02.13
✎
21:11
|
(5) не НУЖНО иначе, ДС он на то и ДС
|
|||
8
SeiOkami
16.02.13
✎
21:13
|
(7), не понял
|
|||
9
GANR
16.02.13
✎
21:17
|
(8) в динамическом списке не надо менять каждую строчку кодом - сразу запросом и все
(2) полагаю, за этими данными на сервер надо обратиться |
|||
10
GANR
16.02.13
✎
21:17
|
Стр.Номенклатура.Код
|
|||
11
GANR
16.02.13
✎
21:17
|
в тонком клиенте, вообще более чем через 1 точку нельзя обращаться - только сервер
|
|||
12
GANR
16.02.13
✎
21:21
|
Элементы.СписокРеализацииТоваровУслуг.ТекущиеДанные.Ссылка загнать на сервер, запросом вынуть таблицу в МАССИВ СТРУКТУР (Код, Количество), вернуть на клиент, и загнать в DBF
|
|||
13
SeiOkami
16.02.13
✎
21:23
|
(12),зачем? у меня файл dbf на клиенте. Смысл мне гнать ради кода, который я могу получить из клиента, гнать все на сервер?
Да и вообще. В чем соль сабжа? Я не могу понять почему поле то доступно, то нет. И неужели нельзя простым перетягиванием добавить в ДС код номенклатуры, чтобы потом с ним оперировать? |
|||
14
vvp91
16.02.13
✎
21:27
|
Покажи скрин дерева элементов формы в части таблицы формы Товары.
|
|||
15
SeiOkami
16.02.13
✎
21:32
|
(14), http://s2.hostingkartinok.com/uploads/images/2013/02/b5914400d9df36922425811eea6e5173.png
Это часть. Все не вместится =) Через НоменклатураКод пробовал. Толку нет. |
|||
16
Сниф
16.02.13
✎
21:33
|
(13) за простое перетягивание не скажу, но попробуй "Все действия"- "Изменить форму" и там для списка Rод добавить.
|
|||
17
i-rek
16.02.13
✎
21:34
|
(0) я не понял. ты перебираешь строчки динамического списка ?
а КАК ? это невозможно сделать |
|||
18
i-rek
16.02.13
✎
21:35
|
Для Каждого Стр из Элементы.СписокРеализацииТоваровУслуг.ТекущиеДанные.Товары
чё это за хрень ? что именно ты делаешь тут ? это действительно работает ? |
|||
19
SeiOkami
16.02.13
✎
21:37
|
(18), конечно. Не ссы, Слайк, я сто раз так делал! =)
|
|||
20
i-rek
16.02.13
✎
21:37
|
похоже чел вывел в динамический список в качестве колонки - табличную часть.
то ли секретная функция то ли бага |
|||
21
SeiOkami
16.02.13
✎
21:38
|
(20), ась?
|
|||
22
SeiOkami
16.02.13
✎
21:38
|
в качестве колонки у меня строка
|
|||
23
i-rek
16.02.13
✎
21:39
|
(22) ты скажи что за хрень ТекущиеДанные.Товары ?
|
|||
24
SeiOkami
16.02.13
✎
21:39
|
Скрин привел
|
|||
25
SeiOkami
16.02.13
✎
21:40
|
может это не ДС? ...
|
|||
26
i-rek
16.02.13
✎
21:43
|
охренеть. это нечто недокументированное
|
|||
27
SeiOkami
16.02.13
✎
21:43
|
Я добыл так:
Сначала перетянул с формы списка реализаций СписокРализаций, а из нее вытянул ТЧ Товары. Чтобы можно было в списке слева выбрать реализацию, а в списке справа сразу бы отобразился список товаров в её ТЧ. Вот |
|||
28
i-rek
16.02.13
✎
21:43
|
просто никому в здравом рассудке не пришло бы в голову сделать такое
так и совершаются открытия - сумасшедшими |
|||
29
SeiOkami
16.02.13
✎
21:44
|
(28), возможно... только почему ?)
|
|||
30
GANR
16.02.13
✎
21:46
|
(13) у меня, например, такое было, когда в коллекции были группировки и строки. (25) скрины - верхушка айсберга.
|
|||
31
SeiOkami
16.02.13
✎
21:48
|
Так это у меня ДС или нет... Я в УФ не сильно втыкаю =)
|
|||
32
ИсчадиеADO
16.02.13
✎
22:54
|
(31) у тебя в скрине написано стр = данные формы элемент коллекции, о каком динамич. списке ты говоришь?
|
|||
33
i-rek
16.02.13
✎
22:55
|
(32) он вытащил на динамический список табличную часть
и даже сам не понял что сделал и даже мы не поняли |
|||
34
i-rek
16.02.13
✎
22:56
|
глюки и магия одновременно ёпти
|
|||
35
ИсчадиеADO
16.02.13
✎
22:56
|
(33) да это обычная табличка на формочке
|
|||
36
i-rek
16.02.13
✎
22:57
|
(35) а откуда там Номенклатура.Код к примеру ?
|
|||
37
ИсчадиеADO
16.02.13
✎
22:59
|
В реквизитах тч Номенклатура.Код нету. Есть НоменклатураКод, что вполне можно сделать. А то что он в толстом(!) клиенте вычисляет выражение через точку - ну дык...
|
|||
38
i-rek
16.02.13
✎
22:59
|
(0) автор, дай скринов ещё
дай скрин где ты настраиваешь запррос динамического списка или свойства динамического списка |
|||
39
ИсчадиеADO
16.02.13
✎
23:00
|
да он хитро ваще скрины обрезал :)
|
|||
40
ИсчадиеADO
16.02.13
✎
23:03
|
ща наверное еще болт забъет, пойдет спать..
|
|||
41
ИсчадиеADO
16.02.13
✎
23:06
|
(36) там скорее всего в таблице на форме был выведен доп. реквизит (там не обязательно только реквизиты из ТЧ объекта могут быть), и формочку делал не он, и что он пытается сделать нифига не понял
|
|||
42
ИсчадиеADO
16.02.13
✎
23:10
|
тем более форма документа. Какой там динамич. список на табличную часть? :)
|
|||
43
ИсчадиеADO
16.02.13
✎
23:10
|
ТС спит, наверное
|
|||
44
ИсчадиеADO
16.02.13
✎
23:20
|
Понял: короче ТС добавил на саму формочку (левое окно реквизит в существующую ТЧ, но этот реквизит увязал через точку по ссылке, а это не правильно. У него в отладчике показывается результат, т.к. он вычисляет его в толстом клиенте в отладке. Нужно же в правой части создать реквизит ТЧ НоменклатураКод (без точки) и при создании формы на сервере, а так же при изменении номенклатуры писать туда код: Стр.НоменклатураКод = ВызовСервераБезКонтекстаПолучитьКодНоменклатуры(стр.Номенклатура)
|
|||
45
SeiOkami
16.02.13
✎
23:20
|
Да, видимо, это не ДС(((
Говорю, же, что не втыкаю в УФ. Как сделал описал в (27) А почему тогда (0)? Даже если это не ДС |
|||
46
ИсчадиеADO
16.02.13
✎
23:21
|
(45) - (44) не?
|
|||
47
SeiOkami
16.02.13
✎
23:21
|
(44), неужели нельзя простым перетягиванием???
|
|||
48
SeiOkami
16.02.13
✎
23:22
|
(44), я не добавлял реквизит вручную. Я просто перетянул с ТЧ из номенклатуры код. 1с все сама сделала)
|
|||
49
ИсчадиеADO
16.02.13
✎
23:22
|
в тонком и веб клиенте ссылка - это всего лишь 2 поля: представление ссылки и ее уник.идентификатор
|
|||
50
ИсчадиеADO
16.02.13
✎
23:23
|
+(47)программер сам должен делать вызовы к серверу
|
|||
51
SeiOkami
16.02.13
✎
23:24
|
(49), дело в том, что все прекрасно отображается, но когда стукаюсь в переборе, то такая хрень (0)
|
|||
52
ИсчадиеADO
16.02.13
✎
23:25
|
+(50) т.к. может ты его оптимизируешь: например, у тебя при смене номенклатуры нужнопоменять код, цену, ставку ндс, еще кучу полей. Может ты их объединишь в структуру и сделаешь 1 серверный вызов заместо 100500?! Платформа за тебя этого не сделает
|
|||
53
SeiOkami
16.02.13
✎
23:26
|
(50), зачем? у меня в строке есть уже код. Он на клиенте уже отображен. Тогда какого хрена, я не могу к нем стукнуться (((
|
|||
54
SeiOkami
16.02.13
✎
23:26
|
(52), вопрос сейчас не в оптимизации.
|
|||
55
ИсчадиеADO
16.02.13
✎
23:30
|
(54) ща погодь
|
|||
56
ИсчадиеADO
16.02.13
✎
23:45
|
(54) не пойму как у тебя скрин, где показывает в составе Номенклатура.Код получился
|
|||
57
ИсчадиеADO
16.02.13
✎
23:45
|
приведи нормальный скрин, а не урезанный
|
|||
58
ИсчадиеADO
16.02.13
✎
23:46
|
или дай по тиму к те подключусь на пару минут
|
|||
59
ИсчадиеADO
16.02.13
✎
23:46
|
аська, если что, у меня в профиле
|
|||
60
SeiOkami
16.02.13
✎
23:51
|
||||
61
ИсчадиеADO
16.02.13
✎
23:51
|
у меня, если даже перетянуть код из реквизита тч, он не отображается в составе строки, как у тебя на картинке
|
|||
62
SeiOkami
16.02.13
✎
23:51
|
Полнее некуда =)
|
|||
63
SeiOkami
16.02.13
✎
23:52
|
справа - это то от куда я перетянул код
|
|||
64
SeiOkami
16.02.13
✎
23:53
|
и, кстати, я под тонким клиентом
|
|||
65
SeiOkami
16.02.13
✎
23:53
|
ну, правда. база файловая
|
|||
66
SeiOkami
16.02.13
✎
23:57
|
Вот раскрыл справа список, затем ТЧ Товары, затем номенклатуру, а затем вытянул код
http://s4.hostingkartinok.com/uploads/images/2013/02/9074fcaaebfd9cae89ca5f7a91c9a41c.png |
|||
67
ИсчадиеADO
17.02.13
✎
00:01
|
да, действительно, динамич. список :)
|
|||
68
SeiOkami
17.02.13
✎
00:03
|
ну, список доков динамический, а вот ТЧ - таблица значений, которую я перетягиваю на форму. фиг поймешь чего это)
|
|||
69
SeiOkami
17.02.13
✎
00:03
|
УФ - вообще не привычно. Вроде и удобно, а вроде и...
|
|||
70
SeiOkami
17.02.13
✎
00:04
|
А можешь подсказать в этой теме по УФ: v8: УФ. Как растянуть кнопку по горизонтали?
|
|||
71
i-rek
17.02.13
✎
00:05
|
(67) чё он тут делает то ? ))
Для каждого из Элементы.СписокРеализацииТоваровУслуг.ТекущиеДанные.Товары в тонком то клиенте ? |
|||
72
SeiOkami
17.02.13
✎
00:07
|
||||
73
SeiOkami
17.02.13
✎
00:07
|
я уж устал заливать)
|
|||
74
ИсчадиеADO
17.02.13
✎
00:08
|
(70) ну да, там не в %. Вообще-то должно растягиваться
|
|||
75
i-rek
17.02.13
✎
00:09
|
(73) кароч не выноси нам мозг, получи ссылку текущего документа и определи серверную процедуру которая вынет нужные данные табличной части.
ибо это будет правильно. Хреновина которую ты делаешь если и работает частично - она супротив всей идеологии УФ |
|||
76
SeiOkami
17.02.13
✎
00:10
|
Блин, выпил то всего одну бутылочку тихорецкого, а уже со столькими непонятками 1с столкнулся...
|
|||
77
SeiOkami
17.02.13
✎
00:13
|
(75), да не логично это. какой смысл получать кодом то, что получаю интерфесным конструктором. Может тогда вообщ программно формы прописывать ?)
|
|||
78
ИсчадиеADO
17.02.13
✎
00:16
|
(72) (71)имел ввиду (11) и (12)
|
|||
79
SeiOkami
17.02.13
✎
00:22
|
Короче, сделал гениальную функцию, вызывающуюся при создании дбф:
&НаСервереБезКонтекста Функция ПолучитьКодНоменклатуры(Номенклатура) Возврат Номенклатура.Код; КонецФункции Всё, задолбала меня 1с! Иду в верстальщики! |
|||
80
Dethmont
17.02.13
✎
03:51
|
Вот так будет работать на тонком клиенте
Для Каждого Стр из Элементы.СписокРеализацииТоваровУслуг.ТекущиеДанные.Товары Цикл Файл.Добавить(); Файл.NNUM = Стр["Номенклатура.Код"]; Файл.KOLVO = Стр.Количество; Файл.Записать(); КонецЦикла; |
|||
81
Dethmont
17.02.13
✎
03:53
|
Походу баг...
Кстати в Толстом клиенте и так работает А = Стр.Номенклатура.Код; |
|||
82
Dethmont
17.02.13
✎
04:51
|
Это все объясняет
&НаКлиенте Процедура Команда1(Команда) Мас = ПолучитьИменаКолонокНаФорме(Элементы.МойСписок.ТекущиеДанные.ПереченьНоменклатуры); Для Каждого Стр Из Элементы.МойСписок.ТекущиеДанные.ПереченьНоменклатуры Цикл Для Каждого Имя из Мас Цикл Сообщить("Имя колонки: "+Имя+" Значение в колонке: "+Стр[Имя]); КонецЦикла; КонецЦикла; КонецПроцедуры &НаСервере Функция ПолучитьИменаКолонокНаФорме(Знач ДанныеФорм) ТЗ = ДанныеФормыВЗначение(ДанныеФорм,Тип("ТаблицаЗначений")); Массив = Новый Массив; Для Каждого Колонка Из ТЗ.Колонки Цикл Массив.Добавить(Колонка.Имя); КонецЦикла; Возврат Массив; КонецФункции |
|||
83
SeiOkami
17.02.13
✎
10:41
|
(80), серьезно? Это в тонком клиенте? сразу как смогу - гляну
|
|||
84
SeiOkami
17.02.13
✎
11:02
|
(80), огромное спасибо, реально работает.
Я уж подумал. что простым перетягиванием не имеет смысла реквизиты доставать. Хотя, все же, это какой-сь 1с-баг |
|||
85
Vertalex
17.02.13
✎
12:38
|
В клиентской функции нельзя получить доступ к реквизитам ссылки. Я так понял ТС пытался именно это сделать...
(80) " Файл.NNUM = Стр["Номенклатура.Код"];" - а что вот эта конструкция реально рабочая на ТК? Платформа делает неявное обращение к серверу (за реквизитом)? |
|||
86
Vertalex
17.02.13
✎
12:54
|
Кажется нет, мне показалось :)
|
|||
87
Dethmont
17.02.13
✎
23:01
|
(86) Обращение к серверу не происходит,данные уже получены, косяк именно с именем Колонки "Номенклатура.Код" - это имя колонки в тонком клиенте, но еще есть колонка "Номенклатура" что не позволяет обратиться через точку на клиенте.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |