7.7 узнать значение рекизита справочника

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем tmpnikl, 4 дек 2012.

  1. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Есть форма, шапка +табл. часть, модуль документа припроведении,
    не совсем понятно как получитьзначение рекизита справочника
    xxx==СоздатьОбъект("Справочник.***"); здесь мы получаем ссылку на все свойства(реквизиты и т.д.) справочника
    ПолучитьСтрокуПоНомеру(1); здесь мы вроде получаем первую строку в табличной части формы, но как посмотреть,какие поля туда вошли и как можно модифицировать(добавить, удалить столбцы) табличной части
    xxx.НайтиЭлемент(***); как-то нашли товарища в таблице, что брали для поиска в табличной части формы смутно догадываюсь
    Но ладно , вопрос в другом, указатель в таблице встал каким-то образом на найденную запись, как можно посмотреть значения реквизитов.., так как в отладчеке табло ввожу наименования реквизитов, ххх.Фамилия и т.д., в некоторых показывает значение, в других выдаёт ошибку....
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    да все просто!
    в модуле формы или модуле документа

    перебрать все строки ТЧ
    Код:
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 Цикл
    Сообщить(НашРеквТЧ.ЕгоРеквизит);
    КонецЦикла;
    или
    одна строка ТЧ

    Код:
    ПолучитьСтрокуПоНомеру(1);
    Сообщить(НашРеквТЧ.ЕгоРеквизит);
    КонецЦикла;
  3. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    смотреть состав колонк табличной части документа в конфигураторе на форме (тут могут быть реквизиты табличной части и вычисляемые колонки типа ТЕКСТ)
    Добавить/удалить колонки табличной части документа можно в конфигураторе, програмно только скрыть/показать
    Форма.<Идентификатор колонки>.Видимость(<1-показать, 0-скрыть>)

    как перебрать строки и посмотреть реквизита элемента справочника указанного табличной части, уже показали
    а вот почему ошибка вылазит, тут нужно больше информации,
    может пустое значение в табличной части??, а может реквизит неустановленного вида справочника??
    или в реквизите ТЧ указана ГРУППА справочника?? (Элемент и Группа могут иметь различные реквизиты)
  4. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    а нельзя дописать эту функцию, чтоб во внешнем цикле перебирались все реквизиты, а во внутеннем их значения..., нет лучше три, вначале группа или элемент, а потом уже его реквизиты, и потом значение...
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    уфф.... как то вы все через магадан в урюпинск пытаетесь зарулить.
    Озвучьте какая стоит задача, а я постараюсь объяснить что, зачем и почему
  6. GlukAl
    Offline

    GlukAl Опытный в 1С

    Регистрация:
    4 окт 2012
    Сообщения:
    187
    Симпатии:
    7
    Баллы:
    29
    Код:
    //Откроем перебор строк в форме документа с начала
    ВыбратьСтроки();
    //Цикл перебора строк документа
    Пока ПолучитьСтроку()=1 Цикл
    //проверка что НашРеквТЧ это справочник и он заполнен
    Если (ТипЗначенияСтр(НашРеквТЧ)="Справочник")И(ПустоеЗначение(НашРеквТЧ)=0) Тогда
    //запомним что в качестве значения 1-Группа, 0-Элемент
    ДляГруппы=НашРеквТЧ.ЭтоГруппа();
    //Обратимся к метаданным установленного вида справочника
    метаНашРеквТЧ=Метаданные.Справочник(НашРеквТЧ.Вид());
    //цикл по количеству реквизитов данного справочника
    Для номРеквизитаСпр=1 По метаНашРеквТЧ.Реквизит() Цикл
    //метаданные энного реквизита справочника
    метаРеквизитСпр=метаНашРеквТЧ.Реквизит(номРеквизитаСпр);
    //проверка на использование для обоих или только Групп/Элементов
    Если метаРеквизитСпр.Использование="ДляОбоих" Тогда
    Сообщить("Общий Реквизит Справочника: "+метаРеквизитСпр.Идентификатор+"
    | Значение = "+НашРеквТЧ.ПолучитьАтрибут(метаРеквизитСпр.Идентификатор);
    ИначеЕсли (ДляГруппы=1)И(метаРеквизитСпр.Использование="ДляГруппы") Тогда
    Сообщить("Реквизит для Группы: "+метаРеквизитСпр.Идентификатор+"
    | Значение = "+НашРеквТЧ.ПолучитьАтрибут(метаРеквизитСпр.Идентификатор);
    ИначеЕсли (ДляГруппы=0)И(метаРеквизитСпр.Использование="ДляЭлемента") Тогда
    Сообщить("Реквизит Элемента:   "+метаРеквизитСпр.Идентификатор+"
    | Значение = "+НашРеквТЧ.ПолучитьАтрибут(метаРеквизитСпр.Идентификатор);
    КонецЕсли;
    //в сообщение выводит Идентификатор реквизита справочника и его значение
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    
    ну как-то так,

    а действительно какая стоит задача??
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    просто автор пытается "привязать" свои знания языка более низкого уровня к 1с.... Пройдет
  8. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Да, вы совершенно правы, и тоже думаю, что пройдёт, так что извиняюсь, потерпите немного мои неуместные вопросы и темы...
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Да нормально. Вы же учитесь... Так какая стоит задача?
  10. TopicStarter Overlay
    tmpnikl
    Offline

    tmpnikl Опытный в 1С

    Регистрация:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Задача, это ведение программы написанной в 1С, там не правильно выводился статус, но с вашей помощью я боее-менее разобрался в даном конкретном куске кода, и немного стал понимать 1С, спасибо...:)

Поделиться этой страницей