|   |   | 
| 
 | 8.2 Как обратиться к наименованию выбранного товара? | ☑ | ||
|---|---|---|---|---|
| 0
    
        ssstop 06.01.12✎ 13:07 | 
        Доброго времени суток, подскажите пожалуйста,
  в приходной накладной нужно описать условие, которое зависит от наименования выбранного товара из справочника Номенклатура, как к нему обратиться? | |||
| 1
    
        andrewks 06.01.12✎ 13:09 | 
        Уважаемое Наименование справочника Номенклатура, разрешите к Вам обратиться!     | |||
| 2
    
        Kreont 06.01.12✎ 13:09 | 
        Товары.Наименование
  Номенкладутра.Наименование Как то так, нету баз под рукой ) | |||
| 3
    
        H A D G E H O G s 06.01.12✎ 13:15 | 
        <<в приходной накладной нужно описать условие, которое зависит от наименования выбранного товара из справочника>>
  Анальные кары за такое обычно следуют. | |||
| 4
    
        Бубр 06.01.12✎ 13:16 | 
        (3) )))))     | |||
| 5
    
        Иешуа 06.01.12✎ 13:21 | 
        Флаг в справочник добавь и по этому флагу анализируй чего тебе там надо.
  Анализировать наименование... анальная кара это меньшее что могут сделать за такое | |||
| 6
    
        Kreont 06.01.12✎ 13:22 | 
        100% уж лучше тогда код сверять, а его запретить всем изменять     | |||
| 7
    
        ssstop 06.01.12✎ 13:23 | 
        на 8.1 и так ясно, на 8.2 выдает ошибку отображения типов: отсутствует отображение для типа "ПолеФормы"     | |||
| 8
    
        andrewks 06.01.12✎ 13:24 | 
        лучше не анализировать ни код, ни наименование.
  либо РС, либо реквизит, либо подч.спр, ну любой механизм, чтобы его контролировал и менял ЮЗЕР, а не программист. | |||
| 9
    
        marvak 06.01.12✎ 13:24 | 
        (0)
  СтрокаТЧ = ЭтотОбъект.Товары[0]; НаименованиеДляАнальнойКары = СтрокаТЧ.Номенклатура.Наименование; | |||
| 10
    
        ssstop 06.01.12✎ 13:26 | 
        это для конфы с нуля, пример с номенклатурой приводится для наглядности     | |||
| 11
    
        marvak 06.01.12✎ 13:28 | 
        делай обработчик поля табличной части Номенклатура ПриИзменении() и там проверяй     | |||
| 12
    
        marvak 06.01.12✎ 13:29 | 
        (11) ну в смысле поля ввода табличного поля, соответствующего табличной части документа     | |||
| 13
    
        andrewks 06.01.12✎ 13:31 | 
        (0) автор, озвучь задачу     | |||
| 14
    
        ssstop 06.01.12✎ 13:44 | 
        (13)нужно чтобы при выборе элемента "Ferrum" в колонке табличной части ХимЭлемент, в колонке HTM подставлялось значение 10
  &наСервере Процедура РассчитатьHTM (СтрокаТЧ) Если СтрокаТЧ.ХимЭлемент.Наименование = "Ferrum" Тогда СтрокаТЧ.HTM = 10 КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ТаблицаХимЭлементПриИзменении (СтрокаТЧ) РассчитатьHTM (СтрокаТЧ) КонецПРоцедуры при таком варианте выдает ошибку отображения типов: отсутствует отображение для типа "ПолеФормы"? | |||
| 15
    
        H A D G E H O G s 06.01.12✎ 13:48 | 
        УТ11?     | |||
| 16
    
        ssstop 06.01.12✎ 13:54 | 
        (15) см (10) пример с ут приводился в надежде быстрее получить ответ на вопрос, но аншлаговцев тут оказалось больше чем программистов     | |||
| 17
    
        H A D G E H O G s 06.01.12✎ 13:56 | 
        (16) Просто в УТ есть рассово верная функция ОМ ОбщегоНазначения     | |||
| 18
    
        H A D G E H O G s 06.01.12✎ 13:56 | 
        // Функция ПолучитьЗначениеРеквизита возвращает значение
  // реквизита, прочитанного из информационной базы по ссылке на объект. // // Если доступа к реквизиту нет, возникнет исключение прав доступа. // Если необходимо зачитать реквизит независимо от прав текущего пользователя, // то следует использовать предварительный переход в привилегированный режим. // // Параметры: // Ссылка - ссылка на объект, - элемент справочника, документ, ... // ИмяРеквизита - Строка, например, "Код". // // Возвращаемое значение: // Произвольный - зависит от типа значения прочитанного реквизита. // Функция ПолучитьЗначениеРеквизита(Ссылка, ИмяРеквизита) Экспорт | |||
| 19
    
        H A D G E H O G s 06.01.12✎ 13:57 | 
        Вот ее можно реализовать в самописке.     | |||
| 20
    
        H A D G E H O G s 06.01.12✎ 13:58 | 
        Либо вот я для себя сделал для цепочки реквизитов.
  Функция ПолучитьВложенноеЗначениеРеквизита(ТекущаяСсылка, МассивВложенныхРеквизитов, УровеньВложенности, ЕстьТабличныеЧасти=Ложь,Результат) ИмяРеквизита=МассивВложенныхРеквизитов[УровеньВложенности-1]; МетаданныеСсылки=ТекущаяСсылка.Метаданные(); ЭтоТоЧтоНужно=Ложь; ИмяБазовогоТипа=ОбщегоНазначения.ВидОбъектаПоСсылке(ТекущаяСсылка); ЭтоРеквизитШапки=МетаданныеСсылки.Реквизиты.Найти(ИмяРеквизита) <> Неопределено; Если Не ЭтоРеквизитШапки Тогда Для Каждого СтандартныйРеквизит Из МетаданныеСсылки.СтандартныеРеквизиты Цикл Если ВРЕГ(СтандартныйРеквизит.Имя)=ИмяРеквизита Тогда ЭтоРеквизитШапки=Истина; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; Если ЭтоРеквизитШапки=Истина Тогда ЭтоРеквизит=Истина; Источник=ИмяБазовогоТипа+"."+МетаданныеСсылки.Имя; ЭтоТоЧтоНужно=МассивВложенныхРеквизитов.Количество()=УровеньВложенности; ИначеЕсли ЕстьТабличныеЧасти=Истина И МетаданныеСсылки.ТабличныеЧасти.Найти(ИмяРеквизита)<>Неопределено Тогда ИмяТЧ=ИмяРеквизита; ЭтоРеквизит=Ложь; ИмяРеквизита=МассивВложенныхРеквизитов[УровеньВложенности]; Если МетаданныеСсылки.ТабличныеЧасти[ИмяТЧ].Реквизиты.Найти(ИмяРеквизита)=Неопределено Тогда Возврат Ложь; КонецЕсли; Источник=ИмяБазовогоТипа+"."+МетаданныеСсылки.Имя+"."+ИмяТЧ; ЭтоТоЧтоНужно=МассивВложенныхРеквизитов.Количество()=УровеньВложенности+1; Иначе Возврат Ложь; КонецЕсли; Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | Источник."+ИмяРеквизита+" КАК Реквизит |ИЗ | "+Источник+" КАК Источник |ГДЕ | Источник.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",ТекущаяСсылка); Выборка=Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если ЭтоТоЧтоНужно=Истина Тогда Результат.Добавить(Выборка.Реквизит); Иначе Если ОбщегоНазначения.ЭтоСсылка(Выборка.Реквизит) Тогда Если ПолучитьВложенноеЗначениеРеквизита(Выборка.Реквизит, МассивВложенныхРеквизитов, УровеньВложенности+1, ЕстьТабличныеЧасти,Результат)<>Истина Тогда Возврат Ложь; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции Функция ПолучитьЗначенияЦепочкиРеквизита(Ссылка, Знач ИмяРеквизита, ЕстьТабличныеЧасти=Ложь) Экспорт Если Не ЗначениеЗаполнено(ИмяРеквизита) Тогда Возврат Неопределено; КонецЕсли; ИмяРеквизита=ВРЕГ(ИмяРеквизита); ИмяРеквизита=СтрЗаменить(ИмяРеквизита,"ССЫЛКА.",""); МассивВложенныхРеквизитов=СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяРеквизита,"."); УровеньВложенности=1; Результат = Новый Массив; Если ПолучитьВложенноеЗначениеРеквизита(Ссылка, МассивВложенныхРеквизитов, УровеньВложенности, ЕстьТабличныеЧасти,Результат)=Истина Тогда Возврат Результат; Иначе Возврат Неопределено; КонецЕсли; КонецФункции | |||
| 21
    
        marvak 06.01.12✎ 13:58 | 
        ТаблицаХимЭлементПриИзменении (СтрокаТЧ) это обработчик чего?
  ту видимо управляемые формы? попробуй вместо РассчитатьHTM (СтрокаТЧ) передалать вызов на СтрокаТЧ.НТМ = РассчитатьHTM(СтрокаТЧ.ХимЭлемент); ну и причесать саму РассчитатьHTM() | |||
| 22
    
        andrewks 06.01.12✎ 14:00 | 
        (14) используй Элементы.Товары.ТекущиеДанные
  ЗЫ привет тебе от Петросяна | |||
| 23
    
        H A D G E H O G s 06.01.12✎ 14:00 | 
        (22) Ему просто перетащить код (17) из типовой нужно.     | |||
| 24
    
        andrewks 06.01.12✎ 14:24 | 
        (23) да, честно говоря, из-за такой фигни даже не хочется в типовую лезть. тут делов-то на 2 мин
  &НаСервереБезКонтекста Функция ПолучитьНаименованиеТовара(Товар) Возврат Товар.Наименование; КонецФункции &НаКлиенте Процедура ТоварыТоварПриИзменении(Элемент) ТекСтр=Элементы.Товары.ТекущиеДанные; Если ПолучитьНаименованиеТовара(ТекСтр.Товар)="Ferrum" Тогда ТекСтр.HTM=10; КонецЕсли; КонецПроцедуры | |||
| 25
    
        andrewks 06.01.12✎ 14:24 | 
        только всё равно неправильно это     | |||
| 26
    
        ssstop 12.01.12✎ 12:05 | 
        (25) но работает, спасибо. подскажите еще, как вставить на форму документа табличную часть и переключатель?     | |||
| 27
    
        V_V_V 12.01.12✎ 12:17 | 
        (26) Перетащи на форму из реквизитов
  Про переключатели недавно обсуждали, поиск не работает? v8: Куда делись переключатели в УФ? | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |