Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

УТ 11. ДопРеквизиты. Кода нет. По какому полю искать?

УТ 11. ДопРеквизиты. Кода нет. По какому полю искать?
Я
   SeiOkami
 
07.01.13 - 14:10
Задача проста - печатная форма которая выводит номенклатуру и её некоторые доп.реквизиты. Теперь вопросик:
По какому полю искать нужный доп реквизит в планах видов характеристик, если нет кода? Понимаю, что можно по наименованию, просто может есть другой способ, о котором я не знаю. И даже дело не в конкретно этой задаче, а вообще, ведь еще не раз столкнусь с подобным. Хочется сразу делать, так сказать, по "правильному" =)
 
 
   SeiOkami
 
1 - 07.01.13 - 14:25
Есть какие нить идеи ?
   Галахад
 
2 - 07.01.13 - 14:31
Непонятно при чем тат код? Почему не искать по ссылке?
   SeiOkami
 
3 - 07.01.13 - 14:33
(2) ну... чтобы искать по ссылке, то нужно уже её при этом иметь ;)

Поясню, видимо, я просто непонятно выразился.

Вот кусок кода:


ДопРеквизитНомерДокумента    = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НомерДокумента"); 
ДопРеквизитРегНомер             = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("РегНомер"); 
ДопРеквизитУчНомер             = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("УчНомер"); 
ДопРеквизитДатаРег             = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ДатаРег");  
ДопРеквизитДействПо             = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ДействПо");  
ДопРеквизитВетСвидетельство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ВетСвидетельство");


            ДопРеквизиты = ВыборкаПоТоварам.ДопРеквизиты.Выгрузить();
            
            _НомерДокумента     = ДопРеквизиты.Найти(ДопРеквизитНомерДокумента, "Свойство");
            _РегНомер           = ДопРеквизиты.Найти(ДопРеквизитРегНомер, "Свойство");
            _УчНомер            = ДопРеквизиты.Найти(ДопРеквизитУчНомер, "Свойство");
            _ДатаРег            = ДопРеквизиты.Найти(ДопРеквизитДатаРег, "Свойство");
            _ДействПо           = ДопРеквизиты.Найти(ДопРеквизитДействПо, "Свойство");
            _ВетСвидетельство   = ДопРеквизиты.Найти(ДопРеквизитВетСвидетельство, "Свойство");
            
            ОбластьМакета.Параметры.НомерДока         = ?(_НомерДокумента = Неопределено, "", _НомерДокумента.Значение);        
            ОбластьМакета.Параметры.РегНомер         = ?(_РегНомер = Неопределено, "", _РегНомер.Значение);
            ОбластьМакета.Параметры.УчНомер             = ?(_УчНомер = Неопределено, "", _УчНомер.Значение);
            ОбластьМакета.Параметры.ДатаРег             = ?(_ДатаРег = Неопределено, "", Формат(_ДатаРег.Значение, "ДЛФ=Д"));
            ОбластьМакета.Параметры.ДействПо         = ?(_ДействПо = Неопределено, "", Формат(_ДействПо.Значение, "ДЛФ=Д"));
            ОбластьМакета.Параметры.ВетСвидетельство = ?(_ВетСвидетельство = Неопределено, "", Формат(_ВетСвидетельство.Значение, "ДЛФ=Д"));
   SeiOkami
 
4 - 07.01.13 - 14:34
Сейчас я ищу по наименованию. Как можно искать иначе?
   Klesk
 
5 - 07.01.13 - 14:37
лучше не использовать доп реквизиты, если они используются в отчетах, сделай реквизит. а так только по наименованию.
   Галахад
 
6 - 07.01.13 - 14:38
(4) А, понятно. Фиг знает, я по наименованию ищу.
   SeiOkami
 
7 - 07.01.13 - 14:40
(5), в каком смысле  "если они используются в отчетах" ?
   Klesk
 
8 - 07.01.13 - 14:45
(7) имеется ввиду в коде.

если уж ковыряешь конфиг, лучше сделай обычный реквизит справочника или документа, если программно его используешь. А то например пользователь переименует доп реквизит - концов не найдешь.
   Klesk
 
9 - 07.01.13 - 14:49
а по доп реквизитам  вообще лучше используе типовую функцию

УправленияСвойствами.ПолучитьСписокСвойств

// Возвращает свойства владельца.
 
//
 // Параметры:
 
//  ВладелецСвойств      - Ссылка на владелеца свойств.
 //  ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты.
 
//  ПолучатьДопСведения  - Булево - в результат включать дополнительные сведения.
 //
 
// Возвращаемое значение:
 //  Массив значений типа ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения.
 
//
Функция ПолучитьСписокСвойств(ВладелецСвойств, ПолучатьДопРеквизиты = Истина, ПолучатьДопСведения = Истина) Экспорт
   SeiOkami
 
10 - 07.01.13 - 14:57
(8), я конфу не трогаю, в этом то и суть
(9), а смысл?

// Возвращаемое значение:
 
 //  Массив значений типа ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
 

Я так понял - вернется массив с перечнем доп.свойств. Зачем, если я в запросе их не плохо получаю. Кстати, запросом даже лучше. Лучше один раз получить все в одном запросе, чем по каждой номенклатуре отдельно обращаться к функции. При том, что функция все равно будет искать так же.

А вот по поводу поиска. Выходит кроме как ПоНаименованию идей больше нет ?(
 
 Рекламное место пустует
   banco
 
11 - 07.01.13 - 15:34
создай форму например настройки и там выбери ссылки на эти доп реквизиты, сохраняй настройку и используй уже ссылки
   SeiOkami
 
12 - 07.01.13 - 16:06
(11), Это типовая УТ и внешняя печатная форма. Можно, конечно, хранить настройки в ИБ, однако, это уже как удалять гланды через прямую кишку =]
   Новиков
 
13 - 07.01.13 - 18:14
твой способ в (3) при некоторых допущениях вполне нормальный.
   banco
 
14 - 07.01.13 - 20:24
(12) какие гланды? какая кишка? наверное ты не понял. вообще то есть стандартное хранилище настроек. при печати загружаешь оттуда настройки, если пусто, открываешь форму настроек твоих доп характеристик, устанавливаешь настройки и после этого работаешь со ссылками и хоть пользователи будут меняь наименование, твоя обработка будет работать корректно
   SeiOkami
 
15 - 08.01.13 - 16:04
(14), и что в этом нормального? Как я и сказал: "это уже как удалять гланды через прямую кишку"

Вот если бы в 11 УТ не жадничали на коды для объектов...
   banco
 
16 - 08.01.13 - 19:27
(15) ок, продолжай искать по коду или по наименованию.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует