Алгоритм примерно следующий.
Для ПКО.

	СпрПлан = СоздатьОбъект("Справочник.ПланСчетов");
	Если КодОперации = глКО.ВозвратПодотчетныхСумм Тогда          
		Если Валюта = глРубли Тогда
			СпрПлан.НайтиПоКоду("71.1");   
		Иначе
			СпрПлан.НайтиПоКоду("71.11");   
		КонецЕсли;
	    Счет = СпрПлан.ТекущийЭлемент();  
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.ФизЛица");
		Субконто1 = ФизЛицо;
	ИначеЕсли КодОперации = глКО.ВозвратОплатыОтПоставщика Тогда
		Если Валюта = глРубли Тогда
			СпрПлан.НайтиПоКоду("60.1");   
		Иначе
			СпрПлан.НайтиПоКоду("60.11");   
		КонецЕсли;
	    Счет = СпрПлан.ТекущийЭлемент();
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.Контрагенты");
		Субконто1 = Контрагент;
		глУстановитьТипВидРеквизита(Контекст, "Субконто2", "Справочник.Договоры");
		Субконто2 = Договор;
	ИначеЕсли КодОперации = глКО.ОплатаОтПокупателя Тогда
		Если Валюта = глРубли Тогда
			СпрПлан.НайтиПоКоду("62.1");   
		Иначе
			СпрПлан.НайтиПоКоду("62.11");   
		КонецЕсли;
	    Счет = СпрПлан.ТекущийЭлемент();
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.Контрагенты");
		Субконто1 = Контрагент;
		глУстановитьТипВидРеквизита(Контекст, "Субконто2", "Справочник.Договоры");
		Субконто2 = Договор;
	ИначеЕсли КодОперации = глКО.РозничнаяВыручка Тогда
		СпрПлан.НайтиПоКоду("90.1.1");   
	    Счет = СпрПлан.ТекущийЭлемент();
		глУстановитьТипВидРеквизита(Контекст, "Субконто2", "Перечисление.СтавкиНДС");
		Субконто1 = СтавкаНДС;
		глУстановитьТипВидРеквизита(Контекст, "Субконто3", "Перечисление.СтавкиНП");
		Субконто2 = СтавкаНП;
	ИначеЕсли КодОперации = глКО.РозничнаяВыручкаЕНВД Тогда
		СпрПлан.НайтиПоКоду("90.1.2");   
	    Счет = СпрПлан.ТекущийЭлемент();
	КонецЕсли;

    Для РКО.
 
	СпрПлан = СоздатьОбъект("Справочник.ПланСчетов");
	Если КодОперации = глКО.ВыдачаПодОтчет Тогда          
		Если Валюта = глРубли Тогда
			СпрПлан.НайтиПоКоду("71.1");   
		Иначе
			СпрПлан.НайтиПоКоду("71.11");   
		КонецЕсли;
	    Счет = СпрПлан.ТекущийЭлемент();  
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.ФизЛица");
		Субконто1 = ФизЛицо;
	ИначеЕсли КодОперации = глКО.ОплатаПоставщику Тогда
		Если Валюта = глРубли Тогда
			СпрПлан.НайтиПоКоду("60.1");   
		Иначе
			СпрПлан.НайтиПоКоду("60.11");   
		КонецЕсли;
	    Счет = СпрПлан.ТекущийЭлемент();
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.Контрагенты");
		Субконто1 = Контрагент;
		глУстановитьТипВидРеквизита(Контекст, "Субконто2", "Справочник.Договоры");
		Субконто2 = Договор;
	ИначеЕсли КодОперации = глКО.ВозвратОплатыПокупателю Тогда
		Если Валюта = глРубли Тогда
			СпрПлан.НайтиПоКоду("62.1");   
		Иначе
			СпрПлан.НайтиПоКоду("62.11");   
		КонецЕсли;
	    Счет = СпрПлан.ТекущийЭлемент();
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.Контрагенты");
		Субконто1 = Контрагент;
		глУстановитьТипВидРеквизита(Контекст, "Субконто1", "Справочник.Договоры");
		Субконто2 = Договор;
	КонецЕсли;                                                        
	
	ОтчетККМ
	
	Если ОблагаетсяЕНВД = 1 Тогда
		Счет = "90.1.2";
	Иначе
		Счет = "90.2.2";
	КонецЕсли;
	
	
