Уведомления
Очистить все
1С:Предприятие 8.x
3
Записи
1
Пользователи
0
Reactions
12.7 Тыс.
Просмотры
Создатель темы 19/01/2025 11:19 дп
1С Универсальная функция для получения типа значения статьи доходов/расходов.
Вот так вызываем нашу функцию:
ТипЗначенияСтатьи = ПолучитьТипЗначенияСтатьи(СсылкаНаСтатьюРасходов, "СтатьиРасходов"); ТипЗначенияСтатьи = ПолучитьТипЗначенияСтатьи(СсылкаНаСтатьюДоходов, "СтатьиДоходов");
Сама функция выглядит так:
&НаСервере Функция ПолучитьТипЗначенияСтатьи(Статья, ИмяПВХ) Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ | Статьи.ТипЗначения КАК ТипЗначения |ИЗ | ПланВидовХарактеристик.#ИмяПВХ# КАК Статьи |ГДЕ | Статьи.Ссылка = &Статья"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяПВХ#", ИмяПВХ); Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Статья", Статья); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ТипЗначения = Выборка.ТипЗначения; Иначе ТипЗначения = Неопределено; КонецЕсли; Возврат ТипЗначения; КонецФункции
Создатель темы 19/01/2025 11:21 дп
Нужно ли говорить о том, что так можно работать с любым другим планом видом характеристик? То есть "как получить тип значения ПВХ".
Создатель темы 19/01/2025 11:35 дп
А в совокупности с этой темой:
1С Универсальная функция для получения ссылочного значения по наименованию или коду.
(в ней вы возьмете код функции НайтиЗначениеПоля())
и используя нижеуказанный код, можно полноценно обработать распарсить текстовые данные, например, статьи расходов и её аналитику:
ЗначениеПоля = НайтиЗначениеПоля(Метаданные.ПланыВидовХарактеристик.СтатьиРасходов.ПолноеИмя(), "ТекстНаименованияСтатьи"); СтатьяРасходовДоходов = ЗначениеПоля; Если ЗначениеЗаполнено(ЗначениеПоля) Тогда ТипЗначенияСтатьи = ПолучитьТипЗначенияСтатьи(ЗначениеПоля, "СтатьиРасходов"); Если НЕ ТипЗначенияСтатьи = Неопределено Тогда ПолноеИмяОбъектаМетаданных = Метаданные.НайтиПоТипу(ТипЗначенияСтатьи.Типы()[0]).ПолноеИмя(); ЗначениеСтатьи = НайтиЗначениеПоля(ПолноеИмяОбъектаМетаданных, "ТекстНаименованияАналитики"); АналитикаРасходов = ЗначениеСтатьи; КонецЕсли; КонецЕсли;