Уведомления
Очистить все

1С Как получить тип значения статьи доходов/расходов?

3 Записи
1 Пользователи
0 Reactions
12.7 Тыс. Просмотры
65-150 Okolokompa Форум
(@kalininalex)
Reputable Member
Присоединился: 7 лет назад
Записи: 176
Создатель темы   [#1353]

1С Универсальная функция для получения типа значения статьи доходов/расходов.

Вот так вызываем нашу функцию:

ТипЗначенияСтатьи = ПолучитьТипЗначенияСтатьи(СсылкаНаСтатьюРасходов, "СтатьиРасходов");
ТипЗначенияСтатьи = ПолучитьТипЗначенияСтатьи(СсылкаНаСтатьюДоходов, "СтатьиДоходов");

Сама функция выглядит так:

&НаСервере
Функция ПолучитьТипЗначенияСтатьи(Статья, ИмяПВХ)
	
	Запрос = Новый Запрос;
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	Статьи.ТипЗначения КАК ТипЗначения
	|ИЗ
	|	ПланВидовХарактеристик.#ИмяПВХ# КАК Статьи
	|ГДЕ
	|	Статьи.Ссылка = &Статья";
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяПВХ#", ИмяПВХ); 
	
	Запрос.Текст = ТекстЗапроса;
	
	Запрос.УстановитьПараметр("Статья", Статья);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		ТипЗначения = Выборка.ТипЗначения;
	Иначе
		ТипЗначения = Неопределено;
	КонецЕсли;
	
	Возврат ТипЗначения;

КонецФункции


   
Цитата
65-150 Okolokompa Форум
(@kalininalex)
Reputable Member
Присоединился: 7 лет назад
Записи: 176
Создатель темы  

Нужно ли говорить о том, что так можно работать с любым другим планом видом характеристик? То есть "как получить тип значения ПВХ".



   
ОтветитьЦитата
65-150 Okolokompa Форум
(@kalininalex)
Reputable Member
Присоединился: 7 лет назад
Записи: 176
Создатель темы  

А в совокупности с этой темой:

1С Универсальная функция для получения ссылочного значения по наименованию или коду.

(в ней вы возьмете код функции НайтиЗначениеПоля())

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

ЗначениеПоля = НайтиЗначениеПоля(Метаданные.ПланыВидовХарактеристик.СтатьиРасходов.ПолноеИмя(), "ТекстНаименованияСтатьи");		

СтатьяРасходовДоходов = ЗначениеПоля; 
			
Если ЗначениеЗаполнено(ЗначениеПоля) Тогда
					
	ТипЗначенияСтатьи = ПолучитьТипЗначенияСтатьи(ЗначениеПоля, "СтатьиРасходов");
					
	Если НЕ ТипЗначенияСтатьи = Неопределено Тогда
		ПолноеИмяОбъектаМетаданных = Метаданные.НайтиПоТипу(ТипЗначенияСтатьи.Типы()[0]).ПолноеИмя(); 
		ЗначениеСтатьи = НайтиЗначениеПоля(ПолноеИмяОбъектаМетаданных, "ТекстНаименованияАналитики");
						
		АналитикаРасходов = ЗначениеСтатьи;
	КонецЕсли; 				
КонецЕсли;

 



   
ОтветитьЦитата
Поделиться: