Заголовок
1С,Создать движение(проводку)документа,Проводка,Проведение документа,Субконто,Установить значение субконто,Определение типа субконто,ВидСубконто,Обработка проведения,Перебор субконто у счета
//Создаем новый документ
ДокОперация = Документы.Операция.СоздатьДокумент();

//Добавляем проводку
НовЗапись = ДокОперация.Движения.Хозрасчетный.Добавить();
НовЗапись.Активность = 1;
НовЗапись.Сумма = Сумма;
НовЗапись.СчетДт = СчетДт; //тип ПланыСчетов "Хозрасчетный"
НовЗапись.СчетКт = СчетКт; //тип ПланыСчетов "Хозрасчетный"

//1-й вариант. Установить значение субконто
НовЗапись.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Текущий ремонт");

//2-й вариант. Установить значение субконто
НовЗапись.СубконтоДт.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат, Справочники.СтатьиЗатрат.НайтиПоНаименованию("Текущий ремонт"));

//Записать документ
ДокОперация.Записать();

----------------------------------------------------------------------------
-------------------------------

//Установка значения субконто, когда известно его значение, но не известно название и номер соответствующего субконто у счета
//Будем перебирать все субконто у счета и сравнивать их типы значения с типом присваиваемого значения



Проводка = Движения.Хозрасчетный.Добавить();

Проводка.СчетДт = СчетДт;
//1-й вариант. Установить значение субконто по его виду
//Известно значение субконто, но неизвестно его название и номер

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


Проводка.СчетКт = СчетКт;
//2-й вариант. Установить значение субконто по его виду
//Известно значение субконто, но неизвестно его название и номер

Для Каждого ВидСубконто Из Проводка.СчетКт.ВидыСубконто Цикл
    ЗначениеСубконто = Справочники[ВидСубконто.ВидСубконто.ТипЗначения.ПривестиЗначение().Метаданные().Имя].НайтиПоРеквизиту("ПолеПоискаВСправочнике", ЗначениеДляСубконто);
    Проводка.СубконтоКт[ВидСубконто.ВидСубконто.Ссылка] = ЗначениеСубконто;
КонецЦикла;

//Заполнить все остальное у проводки
Проводка.Организация = Организация;
Проводка.Период = ЭтотОбъект.Дата;
Проводка.Регистратор = ЭтотОбъект.Ссылка;
Проводка.Сумма = КакаяТоСумма;

//Записать проводку
Движения.Хозрасчетный.Записать();