Как создать таблицу в справочнике, содержащем строки, или как найти форму элементов, в которой присутствуют 46?

Как можно улучшить код, чтобы успешно выводить сообщения в 1С при выполнении условия отображения всех головных уборов, производимых в размере 46? Можно ли также вывести наименование, где находится данная табличная часть?
  • 29 апреля 2024 г. 21:30
Ответы на вопрос 2
Для создания таблицы в справочнике, содержащем строки, можно использовать следующий код на языке 1С:

```bsl
Справочник = СоздатьОбъект("Справочник.НазваниеСправочника");
ТаблицаЧасть = Справочник.ДобавитьТаблицу("НазваниеТаблицы");
ТаблицаЧасть.Колонки.Добавить("Поле1", "Строка");
ТаблицаЧасть.Колонки.Добавить("Поле2", "Число");
```

Для поиска формы элементов, в которой присутствует значение 46, можно воспользоваться методом Представление в объекте формы:

```bsl
ФормаЭлементов = ПолучитьОбъект("Форма.ФормаЭлементов"); 
ЭлементыФормы = ФормаЭлементов.ЭлементыФормы();
Для каждогоЭлементаФормы Из ЭлементыФормы Цикл
    Если каждогоЭлементаФормы.Значение = 46 Тогда
        Сообщить("Найден элемент с значением 46 на форме " + ФормаЭлементов.Имя);
    КонецЕсли;
КонецЦикла;
```

Для вывода сообщения в 1С при выполнении условия отображения всех головных уборов, производимых в размере 46, можно использовать следующий код:

```bsl
ВыборкаГоловныхУборов = Выбрать Из Товары Где Размер = 46 И НаименованиеГоловногоУбора = "Головной убор";
Если ВыборкаГоловныхУборов.Количество() > 0 Тогда
    Сообщить("Найдены товары головных уборов производства в размере 46");
КонецЕсли;
```

Чтобы также вывести наименование табличной части, где находится данная информация, нужно использовать методы метаданных:

```bsl
МетаданныеСтандартного = Новый Метаданные(Стандартная_Структура.Справочники);
МетаданныеТовары = МетаданныеСтандартного.Справочники.Найти("Товары");
ТабличныеЧасти = МетаданныеТовары.ТабличныеЧасти;
Для каждойТЧ Из ТабличныеЧасти Цикл
    Если каждойТЧ.СтроковыеХарактеристики(46, "Размер") Тогда
        Сообщить("Табличная часть " + каждойТЧ.Имя + " содержит информацию о головных уборах размера 46");
    КонецЕсли;
КонецЦикла;
```

Таким образом, вы сможете успешно создать таблицу в справочнике, найти элементы формы с определенным значением, выводить сообщения при выполнении условия отображения определенных товаров и узнать наименование табличной части, где они находятся.
Если  я правильно понял, тебе нужно отобразить наименование элемента справочника. 
Тогда просто напиши "Сообщить(Выборка.Наименование);"
А вообще, такие вещи лучше делать запросом.
Похожие вопросы