﻿// Фабрики
Функция ПолучитьЛюбойЭлементСправочника(ВидСправочника) Экспорт
	//Сообщить("!!!"+ВидСправочника+"!!!");
	Результат = Справочники[ВидСправочника].СоздатьЭлемент();
	Попытка
		Результат.Записать();
	Исключение
		Сообщить("!!!"+ВидСправочника+"!!!");
		ВызватьИсключение;
	КонецПопытки;
	Возврат Результат;
КонецФункции

Функция Валюта() Экспорт
	Результат = Справочники.Валюты.СоздатьЭлемент();
	Результат.УстановитьНовыйКод();
	Результат.Записать();
	Возврат Результат.Ссылка;
КонецФункции
Функция ВалютаТалер() Экспорт
	Результат = Справочники.Валюты.НайтиПоКоду("TLR");
	Если Результат <> Справочники.Валюты.ПустаяСсылка() Тогда
		Возврат Результат;
	Иначе
		Результат = Справочники.Валюты.СоздатьЭлемент();
		Результат.Код = "TLR";
		Результат.Наименование = "Талер";
		Результат.Записать();
		
		Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
		Курс.Валюта = Результат.Ссылка;
		Курс.Период = '19800101';
		Курс.Кратность = 1;
		Курс.Курс = 10;
		Курс.Записать();
		
		Возврат Результат.Ссылка;
	КонецЕсли;
КонецФункции

Функция БанковскийСчетВал() Экспорт
	БС = Справочники.БанковскиеСчета.СоздатьЭлемент();
	БС.ВидСчета = "Расчетный"; // тип реквизита - строка, но там предопределенные значения. TODO - тестировать от формы.
	БС.ВалютаДенежныхСредств = Я_Тест_Фабрика.Валюта();
	БС.Владелец = ПолучитьЛюбойЭлементСправочника("Контрагенты").Ссылка;
	БС.Записать();
	Возврат БС;
КонецФункции
Функция БанковскийСчетРуб() Экспорт
	БС = Справочники.БанковскиеСчета.СоздатьЭлемент();
	БС.ВидСчета = "Расчетный"; // тип реквизита - строка, но там предопределенные значения. TODO - тестировать от формы.
	БС.ВалютаДенежныхСредств = Константы.ВалютаРегламентированногоУчета.Получить();
	БС.Банк = ПолучитьЛюбойЭлементСправочника("Банки").Ссылка;
	БС.НомерСчета = "40702810300001003838";
	БС.Владелец = ПолучитьЛюбойЭлементСправочника("Контрагенты").Ссылка;
	БС.Записать();
	Возврат БС;
КонецФункции

Функция ДоговорКонтрагента() Экспорт
	Результат = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
	Результат.Владелец = ПолучитьЛюбойЭлементСправочника("Контрагенты").Ссылка;
	Результат.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
	Результат.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
	Результат.Организация = ПолучитьЛюбойЭлементСправочника("Организации").Ссылка;
	Результат.Записать();
	
	Возврат Результат;
КонецФункции

Функция ОперацияДляПереоценки(_Дата, _СуммаВал = 10, _СуммаРуб = 80, _СчетДт = "", _НазваниеДДС = "") Экспорт
	Если _СчетДТ = "" Тогда
		_СчетДт = ПланыСчетов.Хозрасчетный.КассаОрганизацииВал;
	КонецЕсли;
	
	Опер = Документы.хн_ОперацияУниверсальная.СоздатьДокумент();
	Опер.Дата = _Дата;
	Опер.Организация = глЗначениеПеременной("ОсновнаяОрганизация"); // 1
	Опер.СистемаУчета = Справочники.хн_СистемыУчета.Хозрасчетный; // 2
	Опер.СуммаОперации = _СуммаРуб;
	
	Проводка = Опер.ТаблицаДвиженийПоРегистрам.Добавить();
	
	Проводка.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;
	
	Проводка.СчетДт = _СчетДт;
	Если _СчетДт = ПланыСчетов.Хозрасчетный.КассаОрганизацииВал Тогда
		Проводка.ВидСубконтоДт1 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиДвиженияДенежныхСредств;
	
		СтатьяДДС = Справочники.СтатьиДвиженияДенежныхСредств.СоздатьЭлемент(); // новый
		СтатьяДДС.Наименование = _НазваниеДДС;
		СтатьяДДС.Записать();
		Проводка.СубконтоДт1 = СтатьяДДС.Ссылка;
	КонецЕсли;
	
	Проводка.ВалютаДт = Я_Тест_Фабрика.ВалютаТалер();
	Проводка.ВалютнаяСуммаДт = _СуммаВал;
	
	Проводка.Сумма = _СуммаРуб;
	
	Опер.Записать();
	
	Возврат Опер.Ссылка;
	
КонецФункции
