| 
    
            
         
         | 
    
    
  | 
УФ. Глюк или магия? | ☑ | ||
|---|---|---|---|---|
| 
    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) Обращение к серверу не происходит,данные уже получены, косяк именно с именем Колонки "Номенклатура.Код" - это имя колонки в тонком клиенте, но еще есть колонка "Номенклатура" что не позволяет обратиться через точку на клиенте.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |