К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Получить значение вида Субконто по OLE

Гость
0 - 14.05.2014 - 15:59
Есть ссылка на Объект типа Cчет
плана счетов Хозрасчетный


COMСчет.ВидыСубконто.Количество(); - возвращает 3

а попытка получить вид субконто по OLE
ВидСубконто = Счет.ВидыСубконто[0].ВидСубконто;
возвращает ошибку "Получение элемента по индексу не определено"



Гость
1 - 14.05.2014 - 16:34
Процедура ОпределитьСубконто(опер)
тбзСуб.УдалитьСтроки();
колСуб = опер.Счет.КоличествоСубконто();
Для ном = 1 по колСуб Цикл
тбзСуб.НоваяСтрока();
тбзСуб.Номер = ном;
тбзСуб.ТипСуб = СокрЛП(опер.Счет.ВидСубконто(ном).ТипСубконто());
тбзСуб.Наименование = СокрЛП(опер.ПредставлениеСубконто(ном,0));

// Если субконто имеет тип - Перечисление
Если Лев(СокрЛП(тбзСуб.ТипСуб),12) = "Перечисление" Тогда
// т.к. конфигурация из типовой то перечисления должны быть идентичны
тбзСуб.Наименование = СокрЛП(опер.Субконто(ном).Идентификатор());

// Если субконто имеет тип - Справочник
ИначеЕсли Лев(СокрЛП(тбзСуб.ТипСуб),10) = "Справочник" Тогда
Если опер.Субконто(ном).Выбран() = 0 Тогда Продолжить КонецЕсли;
тбзСуб.Спр = НайтиЭлементОЛЕ(опер.Субконто(ном)).Спр.ТекущийЭле мент();

// Если субконто имеет тип - Документ
ИначеЕсли Лев(СокрЛП(тбзСуб.ТипСуб),8) = "Документ" Тогда
тбзСуб.Наименование = СокрЛП(опер.Субконто(ном).Вид());
Если ПустаяСтрока(тбзСуб.Наименование) = 1 Тогда Продолжить КонецЕсли;
тбзСуб.Док = ПеренестиДокумент(опер.Субконто(ном));
КонецЕсли

КонецЦикла;

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


А вызывается эта процедура так:
кодСчД = СокрЛП(оперОЛЕ.Дебет.Счет.Код);
Если ПустаяСтрока(кодСчД) = 0 Тогда
опер.Дебет.Счет = СчетПоКоду(кодСчД);
ОпределитьСубконто(оперОЛЕ.Дебет);


Ну или так:
кодСчК = СокрЛП(оперОЛЕ.Кредит.Счет.Код);
Если ПустаяСтрока(кодСчК) = 0 Тогда
опер.Кредит.Счет = СчетПоКоду(кодСчК);
ОпределитьСубконто(оперОЛЕ.Кредит);
Гость
2 - 14.05.2014 - 16:37
Ну, если совсем всё просто сказать, то обращайся не по индексу, а по номеру (т.е. скобки - круглые):
Для ном = 1 по колСуб Цикл
тбзСуб.НоваяСтрока();
тбзСуб.Номер = ном;
тбзСуб.ТипСуб = СокрЛП(опер.Счет.ВидСубконто(ном).
Гость
3 - 14.05.2014 - 17:34
Это по моему код для 7.7
Гость
4 - 15.05.2014 - 06:55
3-bvb > Да. Это для 7.7

А тебе для чего надо?
Указывать надо в теме вообще-то...

Сорри, для 8.х - не помогу.
1Сv8 - не знаю и знать не хочу.


К списку вопросов






Copyright ©, Все права защищены