v8: Работа с субконто Ключевые слова: субконто,счета,виды субконто
Привожу две функции по работу с субконто:
Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) Экспорт
Если Счет = Неопределено ИЛИ Счет.Пустая() Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ИмяСубконто) = Тип("Число") Тогда
Если ИмяСубконто > Счет.ВидыСубконто.Количество() Тогда
Возврат;
КонецЕсли;
ВидСубк = Счет.ВидыСубконто[ИмяСубконто - 1].ВидСубконто;
Иначе
ВидСубк = ПланыВидовХарактеристик[Метаданные.НайтиПоТипу(ТипЗнч(Счет)).ВидыСубконто.Имя][ИмяСубконто];
Если Счет.ВидыСубконто.Найти( ВидСубк) = Неопределено Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если ВидСубк.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто)) Тогда
Субконто.Вставить(ВидСубк, ЗначениеСубконто);
Иначе
Сообщить("Неверное значение """ + ЗначениеСубконто + """ для вида субконто <" + ВидСубк + ">");
КонецЕсли;
КонецПроцедуры
Функция ПолучитьСубконто(Счет, Субконто, ИмяСубконто) Экспорт
Если Счет = Неопределено ИЛИ Счет.Пустая() Тогда
Возврат Неопределено;
КонецЕсли;
Если ТипЗнч(ИмяСубконто) = Тип("Число") Тогда
Если ИмяСубконто > Счет.ВидыСубконто.Количество() Тогда
Возврат Неопределено;
КонецЕсли;
ВидСубк = Счет.ВидыСубконто[ИмяСубконто - 1].ВидСубконто;
Иначе
ВидСубк = ПланыВидовХарактеристик[Метаданные.НайтиПоТипу(ТипЗнч(Счет)).ВидыСубконто.Имя][ИмяСубконто];
Если Счет.ВидыСубконто.Найти( ВидСубк) = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
Возврат Субконто[ВидСубк];
КонецФункции
Теорию допишу потом, или сами допишите.
Функции взяты из конфигурации УПП, но переделаны так, чтобы были универсальными, т.е. работали в любой конфигурации.
Параметры:
* Счет - счет
* Субконто - субконто
* ИмяСубконто - номер субконто(1,2,3) или имя субконто
* ЗначениеСубконто - устанавливаемое значение
|