Шаг 120 - Перевод справочника в другую конфигурацию – типизированный атрибут

Здесь немного сложнее. Тот шаг, который я написал про удаление справочника был, как раз основан на том, что при перегонке типизированного атрибута я получил вместо наименования – код. Смотрите, как это было. Вот примерный список номенклатуры.

120_1.gif (3401 b)

Так, если его вывести в таблицу, то вроде все нормально.

Процедура Сформировать()    
	Т = СоздатьОбъект("Таблица");   
	Спр =СоздатьОбъект("Справочник.Номенклатура");
	
	Спр.ВыбратьЭлементы();  
	Пока Спр.ПолучитьЭлемент()>0 Цикл
		Т.ВывестиСекцию("Секция_1");
	КонецЦикла;

	Т.ТолькоПросмотр(1);
	Т.Показать(); 

КонецПроцедуры

Таблица.

120_2.gif (3645 b)

А вот как выглядит в таблице.

120_3.gif (2175 b)

Посмотрев таблицу, я совсем наивно, как ребенок, подумал, что и в DBF будет выглядеть также. Именно эта мысль заставила меня написать шаг об программной очистке справочника. Итак, вот код.

Процедура Сформировать()    
	Т = СоздатьОбъект("Таблица");   
	Спр = СоздатьОбъект("Справочник.Номенклатура");
	  
	ДБФ = СоздатьОбъект("XBase");
	ДБФ.ДобавитьПоле("NAME", "S", 50,0);
	ДБФ.ДобавитьПоле("POST", "S", 50,0);
	ДБФ.ДобавитьПоле("ED", "S", 50,0);	
	ДБФ.ДобавитьПоле("c:\Test.dbf");

	Спр.ВыбратьЭлементы();  
	Пока Спр.ПолучитьЭлемент()>0 Цикл
		Т.ВывестиСекцию("Секция_1");
		ДБФ.Добавить();
		ДБФ.NAME=Спр.Наименование;
		ДБФ.POST=Спр.Поставщик;
		ДБФ.ED=Спр.ЕдиницыИзмерения;
		ДБФ.Записать();
	КонецЦикла;

	Т.ТолькоПросмотр(1);
	Т.Показать(); 
КонецПроцедуры

А теперь, что в DBF:

120_4.gif (2177 b)

Так вот код там. А мне нужно было наименование. Именно наименование. Так вот все дело в том, если атрибут типизирован, то нужно вызывать его атрибут Наименование.

ДБФ.POST=Спр.Поставщик.Наименование;
ДБФ.ED=Спр.ЕдиницыИзмерения.Наименование;

Теперь все в порядке:

120_5.gif (3539 b)

На всякий случай, почему имя. Дело в том, что в справочнике существовало несколько помеченных на удаление элементов. Но удалить их было нельзя. Видно где-то они фигурировали в проводках. При том с одинаковыми именами на взгляд. Искать мне было лень, вот я и решил просто сохранить как наименование. А так как справочник поставщиков уже был, я мог найти запись по имени и взаимосвязь осталась бы. Кстати с единицами измерения так же.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 11.08.2002