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

Аналог КоличествоСубконто()

bless18
18.08.2010 08:40Прочитано: 2254
Здравствуйте!
Есть ли в версии 1С: Предприятия 8.1 аналог функции КоличествоСубконто()?

Процедуру, написанную на версии 1С: Предприятии 7.7
Код 1C v 7.x
 
Процедура ПриВыбореВидаСписания()
СчетДебет = ВидСписания.СчетРасходов;
Для Ном=1 по СчетДебет.КоличествоСубконто() Цикл
Если Ном = 1 Тогда
НазначитьВид(СубконтоСписания1,СчетДебет.ВидСубконто(Ном));
ИначеЕсли Ном = 2 Тогда
НазначитьВид(СубконтоСписания2,СчетДебет.ВидСубконто(Ном));
КонецЕсли;
КонецЦикла ;
ВидСписанияВыб = ВидСписания;
Доступ();
КонецПроцедуры

,
где ВидСписания - реквизит ТЧ (Тип Справочник.ВыдиСписанияТМЗ, который содержит реквизит СчетРасходов - тип Счет)

Нужно написать нв версии 8.1.. Не могу подобрать аналог функции КоличествоСубконто()
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
18.08.2010 10:20Ответ № 1
В 8.х определяется количество субконото для плана счетов:
Код 1C v 8.х
  Метаданные.ПланыСчетов.Хозрасчетный.МаксКоличествоСубконто   
E_Migachev
18.08.2010 10:26Ответ № 2
Пример как назначить субконто:
Код 1C v 8.х
 СтрокаТЗ   = Таб.ТекущиеДанные;
ИмяКолонки = Таб.ТекущаяКолонка.Имя;
МаксКоличествоСубконто = Метаданные.ПланыСчетов.Хозрасчетный.МаксКоличествоСубконто;

Если (ИмяКолонки = "СчетДт") Или (Найти(ИмяКолонки, "СубконтоДт") > 0) Тогда

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

ИначеЕсли (ИмяКолонки = "СчетКт") Или (Найти(ИмяКолонки, "СубконтоКт") > 0) Тогда

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

КонецЕсли;
bless18
18.08.2010 15:06Ответ № 3
Спасибо Вам большое за помощь!
Только в строчке
Код 1C v 8.х
          ИначеЕсли Сч > Счет.ВидыСубконто.Количество()   
не находится ВидыСубконто, хотя переменная счет содержит в себе это значение, в чем может быть дело?
E_Migachev
18.08.2010 15:31Ответ № 4
А что за счет? Какие у него субконто?
bless18
19.08.2010 12:03Ответ № 5
Все разрешилось, спасибо за помощь )
E_Migachev
19.08.2010 12:31Ответ № 6
(5) bless18, А в чем была проблема?
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.