helpf.pro
Регистрация

Как привести ячейку ТЧ к типу

bless18
24.08.2010 14:14Прочитано: 6991
Здравствуйте!
Имеются ячейки ТЧ с именами Субконто1 и Субконто2, мне необходимо присвоить ячеке Товар тип Субконто1, а вместо него присваивается Субконто2
Код 1C v 8.х
 
Процедура ПриВыбореВидаТМЗ()
СтрокаТЗ = ЭлементыФормы.ТМЗ.ТекущиеДанные;
ИмяКолонки = ЭлементыФормы.ТМЗ.ТекущаяКолонка.Имя;
МаксКоличествоСубконто = Метаданные.ПланыСчетов.Типовой.МаксКоличествоСубконто;
Счет = СтрокаТЗ.ВидТМЗ.СчетТМЗ;

Для Сч = 1 По МаксКоличествоСубконто Цикл
Если Счет.Пустая() Тогда
// продолжить
ИначеЕсли Сч > Счет.ВидыСубконто.Количество() Тогда
СтрокаТЗ["СубконтоСписания" + Сч] = Неопределено;
Иначе
ВидСубконто = Счет.ВидыСубконто[Сч-1].ВидСубконто;
Типсубконто = ВидСубконто.ТипЗначения.Типы()[0];
ОписаниеТиповВидаСубконто = ВидСубконто.ТипЗначения;
//СтрокаТЗ["Товар"] = ОписаниеТиповВидаСубконто.ПривестиЗначение(СтрокаТЗ.СубконтоСписания1);

КонецЕсли;
КонецЦикла;
СтрокаТЗ["Товар"] = ВидСубконто.ТипЗначения.ПривестиЗначение("СубконтоСписания1");



Помогите, пожалуйста )
Yandex
Возможно, вас также заинтересует
Реклама на портале
bless18
24.08.2010 14:30Ответ № 1
Если пишу без цикла
Код 1C v 8.х
 
Процедура ПриВыбореВидаТМЗ()
СтрокаТЗ = ЭлементыФормы.ТМЗ.ТекущиеДанные;
ИмяКолонки = ЭлементыФормы.ТМЗ.ТекущаяКолонка.Имя;
МаксКоличествоСубконто = Метаданные.ПланыСчетов.Типовой.МаксКоличествоСубконто;
Счет = СтрокаТЗ.ВидТМЗ.СчетТМЗ;

Если Счет.Пустая() Тогда
// продолжить
Иначе
//ВидСубконто = Счет.ВидыСубконто[Сч-1].ВидСубконто;
ВидСубконто = Счет.ВидыСубконто[0].ВидСубконто;
Типсубконто = ВидСубконто.ТипЗначения.Типы()[0];
ОписаниеТиповВидаСубконто = ВидСубконто.ТипЗначения;
СтрокаТЗ["Товар"] = Типсубконто;

КонецЕсли;
// СтрокаТЗ.Товар = Новый ОписаниеТипов("Счет.ВидыСубконто[0].ВидСубконто").ПривестиЗначение();
КонецПроцедуры


Так у переменной ТипСубконто тип Субконто1, присваиваю его Полю Товар, значение неопределено
E_Migachev
24.08.2010 14:45Ответ № 2
(0) чего то не понял, а как он становится с типом Субконто 2 ?
bless18
24.08.2010 14:59Ответ № 3
Цикл идет до Макс количества субконто, в данном случае Макс = 2, берет последнее найденное субконто, вот
E_Migachev
24.08.2010 15:13Ответ № 4
(3) ясно,
а тебе нужно в поле товар выбрать какое-то значение или ПустаяСсылка() с указанным типом?
bless18
24.08.2010 15:18Ответ № 5
Сейчас написала такой код:
Код 1C v 8.х
 
СтрокаТЗ = ЭлементыФормы.ТМЗ.ТекущиеДанные;
ИмяКолонки = ЭлементыФормы.ТМЗ.ТекущаяКолонка.Имя;
МаксКоличествоСубконто = Метаданные.ПланыСчетов.Типовой.МаксКоличествоСубконто;
Счет = СтрокаТЗ.ВидТМЗ.СчетТМЗ;

Если Счет.Пустая() Тогда
// продолжить
Иначе
ВидСубконто = Счет.ВидыСубконто[0].ВидСубконто;
Типсубконто = ВидСубконто.ТипЗначения.Типы()[0];
ОписаниеТиповВидаСубконто = ВидСубконто.ТипЗначения;
СтрокаТЗ["Товар"] = ОписаниеТиповВидаСубконто.ПривестиЗначение(СтрокаТЗ.СубконтоСписания1);
КонецЕсли;


Полю Товар присваивается тип ячейки ТЧ Субконто1 )
E_Migachev
24.08.2010 15:52Ответ № 6
Вот чистый код присваивания типа знаяения ячейки табличной части:
Код 1C v 8.х
 СтрокаТЗ = ЭлементыФормы.ТМЗ.ТекущиеДанные;
Счет = СтрокаТЗ.ВидТМЗ.СчетТМЗ;
Если НЕ Счет.Пустая() Тогда
Субконото1 = Счет.ВидыСубконто[0];
СтрокаТЗ["Товар"] = Субконото1.ВидСубконто.ТипЗначения.ПривестиЗначение();
КонецЕсли;


P.S. Добавил в FAQ )
bless18
24.08.2010 19:33Ответ № 7
Спасибки!
E_Migachev
10.09.2010 12:02Ответ № 8
Вопрос закрыт!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.