Лист кассовой книги / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

// Формирует описание реквизитов объекта, заполняемых по статистике их использования.
//
// Параметры:
//  ОписаниеРеквизитов - Структура - описание реквизитов, для которых необходимо получить значения по статистике
//
//
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт
	
	Параметры = ЗаполнениеОбъектовПоСтатистике.ПараметрыЗаполняемыхРеквизитов();
	Параметры.РазрезыСбораСтатистики.ИспользоватьТолькоЗаполненные = "Ответственный";
	Параметры.ЗаполнятьПриУсловии.ПоляОбъектаЗаполнены = "Ответственный";
	ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов(ОписаниеРеквизитов,
		"Организация, КассоваяКнига", Параметры);
	
КонецПроцедуры

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)";

КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

КонецПроцедуры

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет список команд создания на основании.
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//  Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
	БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
	
КонецПроцедуры

// Добавляет команду создания документа "Лист кассовой книги".
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//
// Возвращаемое значение:
//  - Неопределено - если нет прав на создание документа Выбытие денежных документов.
//  - СтрокаТаблицыЗначений - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
	Если ПравоДоступа("Добавление", Метаданные.Документы.ЛистКассовойКниги) Тогда
		КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
		КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ЛистКассовойКниги.ПолноеИмя();
		КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.ЛистКассовойКниги);
		КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
		
		Возврат КомандаСоздатьНаОсновании;
	КонецЕсли;

	Возврат Неопределено;
КонецФункции

// Определяет список команд отчетов.
//
// Параметры:
//   КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//   Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
	
КонецПроцедуры

#Область Печать

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт

	// Лист кассовой книги
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ЛистКассовойКниги";
	КомандаПечати.Представление = НСтр("ru = 'Лист кассовой книги'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;

	// Титульный лист и последняя страница
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "Обложка";
	КомандаПечати.Представление = НСтр("ru = 'Титульный лист и последняя страница'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;

КонецПроцедуры

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЛистКассовойКниги") Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"ЛистКассовойКниги",
			НСтр("ru='Лист кассовой книги'"),
			СформироватьПечатнуюФормуЛистаКассовойКниги(МассивОбъектов, ОбъектыПечати));
	КонецЕсли;
		
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Обложка") Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"Обложка",
			НСтр("ru='Титульный лист кассовой книги'"),
			СформироватьПечатнуюФормуОбложкиИПоследнегоЛистаКассовойКниги(МассивОбъектов, ОбъектыПечати));
	КонецЕсли;
	
КонецПроцедуры

Функция ПолучитьКоличествоЛистовКассовойКнигиЗаПериодПоОрганизации(Организация, КассоваяКнига, ДатаНач, ДатаКон)
	
	Запрос = Новый Запрос("
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КассоваяКнигаДокументы.НомерЛиста) КАК КоличествоЛистов
	|ИЗ
	|	Документ.ЛистКассовойКниги КАК ДанныеДокумента
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		Документ.ЛистКассовойКниги.КассовыеОрдера КАК КассоваяКнигаДокументы
	|	ПО	
	|		ДанныеДокумента.Ссылка = КассоваяКнигаДокументы.Ссылка
	|ГДЕ
	|	ДанныеДокумента.Дата МЕЖДУ &ДатаНач И &ДатаКон
	|	И ДанныеДокумента.Организация = &Организация
	|	И ДанныеДокумента.КассоваяКнига = &КассоваяКнига
	|	И ДанныеДокумента.Проведен
	|");
	
	Запрос.УстановитьПараметр("ДатаНач",       ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон",       ДатаКон);
	Запрос.УстановитьПараметр("Организация",   Организация);
	Запрос.УстановитьПараметр("КассоваяКнига", КассоваяКнига);
	
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();
	
	Если Выборка.Следующий() Тогда
		Возврат Выборка.КоличествоЛистов;
	Иначе
		Возврат 0;
	КонецЕсли;
	
КонецФункции

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

		НоваяСтрока.ВалОстаток = 0;
		НоваяСтрока.Остаток    = 0;
		НоваяСтрока.ВалПриход  = ВалПриход;
		НоваяСтрока.Приход     = Приход;
		НоваяСтрока.ВалРасход  = ВалРасход;
		НоваяСтрока.Расход     = Расход;
		
	Иначе
		
		СтрокаТаблицы.ВалПриход = СтрокаТаблицы.ВалПриход + ?(ВалПриход=null,0,ВалПриход);
		СтрокаТаблицы.Приход    = СтрокаТаблицы.Приход    + ?(Приход=null,0,Приход);
		СтрокаТаблицы.ВалРасход = СтрокаТаблицы.ВалРасход + ?(ВалРасход=null,0,ВалРасход);
		СтрокаТаблицы.Расход    = СтрокаТаблицы.Расход    + ?(Расход=null,0,Расход);
		
	КонецЕсли;
	
КонецПроцедуры

Функция СформироватьПечатнуюФормуОбложкиИПоследнегоЛистаКассовойКниги(МассивОбъектов, ОбъектыПечати)
	
	// Печать обложки и титульного листа
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОбложкаКассовойКниги";
	МакетОбложка 	  = УправлениеПечатью.МакетПечатнойФормы("Документ.ЛистКассовойКниги.ПФ_MXL_Обложка");
	ОбластьОбложка 	  = МакетОбложка.ПолучитьОбласть("Обложка");
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ДокументКассоваяКнига.Ссылка КАК Ссылка,
	|	НАЧАЛОПЕРИОДА(ДокументКассоваяКнига.Дата, ГОД) КАК Год,
	|	ДокументКассоваяКнига.Организация КАК Организация,
	|	ДокументКассоваяКнига.КассоваяКнига КАК КассоваяКнига,
	|	ВЫРАЗИТЬ(ДокументКассоваяКнига.КассоваяКнига.СтруктурноеПодразделение КАК СТРОКА(1000)) КАК НаименованиеПодразделения,
	|	ВЫРАЗИТЬ(ТаблицаОтветственныеЛица.РуководительНаименование КАК СТРОКА(1000)) КАК Руководитель,
	|	ВЫРАЗИТЬ(ТаблицаОтветственныеЛица.РуководительДолжность КАК СТРОКА(1000)) КАК ДолжностьРуководителя,
	|	ВЫРАЗИТЬ(ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК СТРОКА(1000)) КАК ГлавныйБухгалтер,
	|	ДокументКассоваяКнига.Организация.КодПоОКПО КАК КодПоОКПО,
	|	ПОДСТРОКА(ДокументКассоваяКнига.Организация.НаименованиеПолное, 1, 200) КАК НаименованиеОрганизации
	|ИЗ
	|	Документ.ЛистКассовойКниги КАК ДокументКассоваяКнига
	|		ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
	|		ПО ДокументКассоваяКнига.Ссылка = ТаблицаОтветственныеЛица.Ссылка
	|ГДЕ
	|	ДокументКассоваяКнига.Ссылка В(&МассивОбъектов)";
	
	Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
	
	РеквизитыСторон = ДенежныеСредстваСервер.СведенияОПолучателеПлательщикеПоДокументам(МассивОбъектов);
	
	Результат = Запрос.Выполнить();
	Выборка   = Результат.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		КоличествоЛистов = ПолучитьКоличествоЛистовКассовойКнигиЗаПериодПоОрганизации(
			Выборка.Организация, Выборка.КассоваяКнига,
			НачалоГода(Выборка.Год),
			КонецГода(Выборка.Год));
		
		ОтборНаименования = Новый Структура("Документ, Признак", Выборка.Ссылка, 5);
		СведенияОНаименовании = РеквизитыСторон.НайтиСтроки(ОтборНаименования);
		
		ОбластьОбложка.Параметры.НазваниеОрганизации   =
			?(СведенияОНаименовании.Количество() > 0, СведенияОНаименовании[0].ЗначениеРеквизита, Выборка.НаименованиеОрганизации);
		ОбластьОбложка.Параметры.НазваниеПодразделения = Выборка.НаименованиеПодразделения;
		ОбластьОбложка.Параметры.НадписьОбложка        = " на "+Формат(Выборка.Год, "ДФ=yyyy") + " г.";
		ОбластьОбложка.Параметры.КодОКПО               = Выборка.КодПоОКПО;
		
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		ТабличныйДокумент.Вывести(ОбластьОбложка);
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		
		// Последний лист кассовой книги
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		ОбластьПослДеньГода = МакетОбложка.ПолучитьОбласть("ПослДеньГода");
		
		ОбластьПослДеньГода.Параметры.ГлБухгалтер           = СокрЛП(Выборка.ГлавныйБухгалтер);
		ОбластьПослДеньГода.Параметры.Руководитель          = СокрЛП(Выборка.Руководитель);
		ОбластьПослДеньГода.Параметры.РуководительДолжность = СокрЛП(Выборка.ДолжностьРуководителя);
		ОбластьПослДеньГода.Параметры.ЛистовЗаГод           = КоличествоЛистов;
		
		ТабличныйДокумент.Вывести(ОбластьПослДеньГода);
		
		Если ЗначениеЗаполнено(Выборка.КассоваяКнига) Тогда
			УправлениеПечатью.ЗадатьОбластьПечатиДокумента(
				ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Выборка.КассоваяКнига);
		Иначе
			УправлениеПечатью.ЗадатьОбластьПечатиДокумента(
				ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Выборка.Организация);
		КонецЕсли;
	КонецЦикла;
	
	ТабличныйДокумент.ОтображатьСетку     = Ложь;
	ТабличныйДокумент.ОтображатьЗаголовки = Ложь;
	
	Возврат ТабличныйДокумент;
	
КонецФункции

Функция СформироватьПечатнуюФормуЛистаКассовойКниги(МассивОбъектов, ОбъектыПечати, ПараметрыПечати = Неопределено)
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЛистКассовойКниги";
	ВыводитьОснования = Ложь;
	
	НаименованияВалют = Новый Соответствие();
	ЗапросВалюты = Новый Запрос;
	ЗапросВалюты.Текст = "
	|ВЫБРАТЬ
	|	Валюты.Ссылка КАК Ссылка,
	|	Валюты.Наименование КАК Наименование
	|ИЗ
	|	Справочник.Валюты КАК Валюты";
	ВыборкаВалюты = ЗапросВалюты.Выполнить().Выбрать();
	Пока ВыборкаВалюты.Следующий() Цикл
		НаименованияВалют.Вставить(ВыборкаВалюты.Ссылка, ВыборкаВалюты.Наименование);
	КонецЦикла;
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ДокументКассоваяКнига.Ссылка КАК Ссылка,
	|	ДокументКассоваяКнига.ТипЛиста КАК ТипЛиста,
	|	ДокументКассоваяКнига.КоличествоДокументовНаЛисте КАК КоличествоДокументовНаЛисте,
	|	ДокументКассоваяКнига.Дата КАК Дата,
	|	ДокументКассоваяКнига.Организация КАК Организация,
	|	ДокументКассоваяКнига.КассоваяКнига КАК КассоваяКнига,
	|	ДокументКассоваяКнига.Ответственный.ФизическоеЛицо КАК Ответственный,
	|	ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер
	|ИЗ
	|	Документ.ЛистКассовойКниги КАК ДокументКассоваяКнига
	|		ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
	|		ПО ДокументКассоваяКнига.Ссылка = ТаблицаОтветственныеЛица.Ссылка
	|ГДЕ
	|	ДокументКассоваяКнига.Ссылка В(&МассивДокументов)
	|	И ДокументКассоваяКнига.Проведен
	|
	|УПОРЯДОЧИТЬ ПО
	|	Дата,
	|	Ссылка";
	
	Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
	
	Результат = Запрос.Выполнить();
	ВыборкаПоДокументамКассоваяКнига = Результат.Выбрать();
	
	Пока ВыборкаПоДокументамКассоваяКнига.Следующий() Цикл
		
		ЛистКассовойКниги = ВыборкаПоДокументамКассоваяКнига.Ссылка;
		
		ДатаНач = НачалоДня(ВыборкаПоДокументамКассоваяКнига.Дата);
		ДатаКон = КонецДня(ВыборкаПоДокументамКассоваяКнига.Дата);
		ГраницаКон = Новый Граница(ДатаКон, ВидГраницы.Включая);
		
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		Организация = ВыборкаПоДокументамКассоваяКнига.Организация;
		КассоваяКнига = ВыборкаПоДокументамКассоваяКнига.КассоваяКнига;
		
		ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
		ВалютаРеглУчетаНаименованиеПолное = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВалютаРегламентированногоУчета, "НаименованиеПолное");
		
		Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЛистКассовойКниги.ПФ_MXL_ЛистКассовойКниги");
		
		ОбластьВалОстатокОтчет              = Макет.ПолучитьОбласть("ВалОстаток|Отчет");
		ОбластьПодвалОтчет                  = Макет.ПолучитьОбласть("Подвал|Отчет");
		ОбластьВТомЧислеОтчет               = Макет.ПолучитьОбласть("ВТомЧисле|Отчет");
		ОбластьОстатокОтчет                 = Макет.ПолучитьОбласть("Остаток|Отчет");
		ОбластьЛистовЗаМесяцОтчет           = Макет.ПолучитьОбласть("ЛистовЗаМесяц|Отчет");
		ОбластьЛистовЗаГодОтчет             = Макет.ПолучитьОбласть("ЛистовЗаГод|Отчет");
		ОбластьВкладнойЛистОтчет            = Макет.ПолучитьОбласть("ВкладнойЛист|Отчет");
		ОбластьВкладнойЛист373ПОтчет        = Макет.ПолучитьОбласть("ВкладнойЛист373П|Отчет");
		ОбластьОтчетКассираОтчет            = Макет.ПолучитьОбласть("ОтчетКассира|Отчет");
		ОбластьОтчетКассира373ПОтчет        = Макет.ПолучитьОбласть("ОтчетКассира373П|Отчет");
		ОбластьШапкаОтчет                   = Макет.ПолучитьОбласть("Шапка|Отчет");
		ОбластьОстатокНаНДОтчет             = Макет.ПолучитьОбласть("ОстатокНаНД|Отчет");
		ОбластьКурсовыеРазницыОтчет         = Макет.ПолучитьОбласть("КурсовыеРазницы|Отчет");
		ОбластьКурсовыеРазницыПоВалютеОтчет = Макет.ПолучитьОбласть("КурсовыеРазницыПоВалюте|Отчет");
		ОбластьПереносОтчет                 = Макет.ПолучитьОбласть("Перенос|Отчет");
		ОбластьСтрокаВалШирокаяОтчет        = Макет.ПолучитьОбласть("СтрокаВалШирокая|Отчет");
		ОбластьСтрокаВалОтчет               = Макет.ПолучитьОбласть("СтрокаВал|Отчет");
		ОбластьСтрокаШирокаяОтчет           = Макет.ПолучитьОбласть("СтрокаШирокая|Отчет");
		ОбластьСтрокаОтчет                  = Макет.ПолучитьОбласть("Строка|Отчет");
		ОбластьОборотОтчет                  = Макет.ПолучитьОбласть("Оборот|Отчет");
		ОбластьОборотРубОтчет               = Макет.ПолучитьОбласть("ОборотРуб|Отчет");
		ОбластьОборотВалОтчет               = Макет.ПолучитьОбласть("ОборотВал|Отчет");
		ОбластьКурсоваяРазницаОтчет         = Макет.ПолучитьОбласть("КурсоваяРазница|Отчет");
		ОбластьКурсоваяРазницаПоВалютеОтчет = Макет.ПолучитьОбласть("КурсоваяРазницаПоВалюте|Отчет");
		ОбластьКонечныйОстатокОтчет         = Макет.ПолучитьОбласть("КонечныйОстаток|Отчет");
		
		ЗапросПоИтогам = Новый Запрос;
		
		ТекстЗапроса =
		"ВЫБРАТЬ
		|	Кассы.Ссылка КАК Касса
		|ПОМЕСТИТЬ Кассы
		|ИЗ
		|	Справочник.Кассы КАК Кассы
		|ГДЕ
		|	Кассы.Владелец = &Организация
		|	И Кассы.КассоваяКнига = &КассоваяКнига
		|;
		|////////////////////////////////////////////////////////
		|
		|ВЫБРАТЬ
		|	ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств КАК Валюта,
		|	ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств.НаименованиеПолное КАК ВалютаНаименованиеПолное,
		|	СУММА(ДенежныеСредстваНаличныеОстатки.СуммаРеглОстаток) КАК СуммаНачальныйОстатокДт,
		|	СУММА(ВЫБОР КОГДА ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств = &ВалютаРеглУчета ТОГДА
		|		0
		|	ИНАЧЕ
		|		ДенежныеСредстваНаличныеОстатки.СуммаОстаток
		|	КОНЕЦ) КАК ВалютнаяСуммаНачальныйОстатокДт
		|ИЗ
		|	РегистрНакопления.ДенежныеСредстваНаличные.Остатки(
		|		&ДатаНач,
		|		Организация = &Организация
		|			И Касса В (ВЫБРАТЬ Кассы.Касса ИЗ Кассы)) КАК ДенежныеСредстваНаличныеОстатки
		|СГРУППИРОВАТЬ ПО
		|	ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств
		|УПОРЯДОЧИТЬ ПО
		|	Валюта
		|АВТОУПОРЯДОЧИВАНИЕ
		|;
		|////////////////////////////////////////////////////////
		|
		|ВЫБРАТЬ
		|	ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств КАК Валюта,
		|	ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств.НаименованиеПолное КАК ВалютаНаименованиеПолное,
		|	СУММА(ДенежныеСредстваНаличныеОстатки.СуммаРеглОстаток) КАК СуммаОстаток,
		|	СУММА(ВЫБОР КОГДА ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств = &ВалютаРеглУчета ТОГДА
		|		0
		|	ИНАЧЕ
		|		ДенежныеСредстваНаличныеОстатки.СуммаОстаток
		|	КОНЕЦ) КАК ВалютнаяСуммаОстаток
		|ИЗ
		|	РегистрНакопления.ДенежныеСредстваНаличные.Остатки(
		|		&ГраницаКон,
		|		Организация = &Организация
		|			И Касса В (ВЫБРАТЬ Кассы.Касса ИЗ Кассы)) КАК ДенежныеСредстваНаличныеОстатки
		|СГРУППИРОВАТЬ ПО
		|	ДенежныеСредстваНаличныеОстатки.Касса.ВалютаДенежныхСредств
		|УПОРЯДОЧИТЬ ПО
		|	Валюта
		|АВТОУПОРЯДОЧИВАНИЕ
		|";
		
		ЗапросПоИтогам.Текст = ТекстЗапроса;
		
		ЗапросПоИтогам.УстановитьПараметр("ДатаНач", ДатаНач);
		ЗапросПоИтогам.УстановитьПараметр("ДатаКон", ДатаКон);
		ЗапросПоИтогам.УстановитьПараметр("ГраницаКон", ГраницаКон);
		ЗапросПоИтогам.УстановитьПараметр("Организация", Организация);
		ЗапросПоИтогам.УстановитьПараметр("КассоваяКнига", КассоваяКнига);
		ЗапросПоИтогам.УстановитьПараметр("ВалютаРеглУчета", ВалютаРегламентированногоУчета);
		
		МассивРезультатов = ЗапросПоИтогам.ВыполнитьПакет();
		РезультатЗапросаПоИтогамНаНачало = МассивРезультатов[1];
		РезультатЗапросаПоИтогам = МассивРезультатов[2];
		
		ЗапросПоКурсовымРазницам = Новый Запрос;
		ТекстЗапроса = 
		"ВЫБРАТЬ
		|	ДенежныеСредства.Касса.ВалютаДенежныхСредств КАК Валюта,
		|	ДенежныеСредства.Касса.ВалютаДенежныхСредств.НаименованиеПолное КАК ВалютаНаименованиеПолное,
		|	СУММА(
		|		ВЫБОР КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА
		|			ДенежныеСредства.СуммаРегл
		|		КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
		|			-ДенежныеСредства.СуммаРегл
		|		КОНЕЦ
		|	) КАК СуммаКурсовойРазницы
		|ИЗ
		|	РегистрНакопления.ДенежныеСредстваНаличные КАК ДенежныеСредства
		|
		|ГДЕ
		|	ДенежныеСредства.Период МЕЖДУ &ДатаНач И &ДатаКон
		|	И ДенежныеСредства.Организация = &Организация
		|	И ДенежныеСредства.Касса.КассоваяКнига = &КассоваяКнига
		|	И ДенежныеСредства.ХозяйственнаяОперация В (
		|		ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСПрибыль),
		|		ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.КурсовыеРазницыДСУбыток))
		|	И ДенежныеСредства.СуммаРегл <> 0
		|	
		|СГРУППИРОВАТЬ ПО
		|	ДенежныеСредства.Касса.ВалютаДенежныхСредств
		|
		|УПОРЯДОЧИТЬ ПО
		|	Валюта
		|ИТОГИ
		|	СУММА(СуммаКурсовойРазницы)
		|ПО
		|	ОБЩИЕ,
		|	Валюта
		|";

		ЗапросПоКурсовымРазницам.Текст = ТекстЗапроса;
		
		ЗапросПоКурсовымРазницам.УстановитьПараметр("ДатаНач",ДатаНач);
		ЗапросПоКурсовымРазницам.УстановитьПараметр("ДатаКон", ДатаКон);
		ЗапросПоКурсовымРазницам.УстановитьПараметр("Организация",Организация);
		ЗапросПоКурсовымРазницам.УстановитьПараметр("КассоваяКнига", КассоваяКнига);
		РезультатЗапросаПоКурсовымРазницам = ЗапросПоКурсовымРазницам.Выполнить();
		
		ДатаНач = НачалоДня(ВыборкаПоДокументамКассоваяКнига.Дата); 
		
		ЗапросПоДокументам = Новый Запрос("
		|ВЫБРАТЬ
		|	КассоваяКнигаДокументы.Документ КАК Документ,
		|	ЕСТЬNULL(КассоваяКнигаДокументы.Приход, 0) КАК Приход,
		|	ЕСТЬNULL(КассоваяКнигаДокументы.Расход, 0) КАК Расход,
		|	КассоваяКнигаДокументы.КорреспондирующийСчет КАК Счет,
		|	КассоваяКнигаДокументы.НомерЛиста КАК НомерЛиста,
		|	КассоваяКнигаДокументы.НомерСтроки КАК НомерСтроки,
		|	ДанныеДокумента.ТипЛиста КАК ТипЛиста,
		|	КассоваяКнигаДокументы.Валюта КАК Валюта
		|ПОМЕСТИТЬ ДанныеКассовойКниги
		|ИЗ
		|	Документ.ЛистКассовойКниги КАК ДанныеДокумента
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЛистКассовойКниги.КассовыеОрдера КАК КассоваяКнигаДокументы
		|		ПО ДанныеДокумента.Ссылка = КассоваяКнигаДокументы.Ссылка
		|ГДЕ
		|	ДанныеДокумента.Дата МЕЖДУ &ДатаНач И &ДатаКон
		|	И ДанныеДокумента.Организация = &Организация
		|	И ДанныеДокумента.Ссылка = &ЛистКассовойКниги
		|	И ДанныеДокумента.Проведен
		|	И КассоваяКнигаДокументы.Документ <> НЕОПРЕДЕЛЕНО
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ДанныеКассовойКниги.Документ КАК Документ,
		|	НАЧАЛОПЕРИОДА(ПриходныйКассовыйОрдер.Дата, ДЕНЬ) КАК День,
		|	ПриходныйКассовыйОрдер.Дата КАК ДатаДок,
		|	ПриходныйКассовыйОрдер.Номер КАК НомерДок,
		|	ПриходныйКассовыйОрдер.Валюта КАК Валюта,
		|	ПОДСТРОКА(ПриходныйКассовыйОрдер.Основание, 1, 200) КАК Основание,
		|	ПриходныйКассовыйОрдер.ПринятоОт КАК ТекстДок,
		|	ДанныеКассовойКниги.Приход КАК Приход,
		|	ДанныеКассовойКниги.Расход КАК Расход,
		|	ДанныеКассовойКниги.Счет КАК Счет,
		|	ДанныеКассовойКниги.НомерЛиста КАК НомерЛиста,
		|	ДанныеКассовойКниги.НомерСтроки КАК НомерСтроки,
		|	ДанныеКассовойКниги.ТипЛиста КАК ТипЛиста
		|ИЗ
		|	ДанныеКассовойКниги КАК ДанныеКассовойКниги
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
		|		ПО ДанныеКассовойКниги.Документ = ПриходныйКассовыйОрдер.Ссылка
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ДанныеКассовойКниги.Документ,
		|	НАЧАЛОПЕРИОДА(РасходныйКассовыйОрдер.Дата, ДЕНЬ),
		|	РасходныйКассовыйОрдер.Дата,
		|	РасходныйКассовыйОрдер.Номер,
		|	РасходныйКассовыйОрдер.Валюта,
		|	ПОДСТРОКА(РасходныйКассовыйОрдер.Основание, 1, 200),
		|	РасходныйКассовыйОрдер.Выдать,
		|	ДанныеКассовойКниги.Приход,
		|	ДанныеКассовойКниги.Расход,
		|	ДанныеКассовойКниги.Счет,
		|	ДанныеКассовойКниги.НомерЛиста,
		|	ДанныеКассовойКниги.НомерСтроки,
		|	ДанныеКассовойКниги.ТипЛиста
		|ИЗ
		|	ДанныеКассовойКниги КАК ДанныеКассовойКниги
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
		|		ПО ДанныеКассовойКниги.Документ = РасходныйКассовыйОрдер.Ссылка
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ДанныеКассовойКниги.Документ,
		|	НАЧАЛОПЕРИОДА(Инвентаризация.Дата, ДЕНЬ),
		|	Инвентаризация.Дата,
		|	Инвентаризация.Номер,
		|	ДанныеКассовойКниги.Валюта,
		|	"""",
		|	&Недостача,
		|	0,
		|	ДанныеКассовойКниги.Расход,
		|	ДанныеКассовойКниги.Счет,
		|	ДанныеКассовойКниги.НомерЛиста,
		|	ДанныеКассовойКниги.НомерСтроки,
		|	ДанныеКассовойКниги.ТипЛиста
		|ИЗ
		|	ДанныеКассовойКниги КАК ДанныеКассовойКниги
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияНаличныхДенежныхСредств КАК Инвентаризация
		|		ПО ДанныеКассовойКниги.Документ = Инвентаризация.Ссылка
		|			И (ДанныеКассовойКниги.Расход > 0)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ДанныеКассовойКниги.Документ,
		|	НАЧАЛОПЕРИОДА(Инвентаризация.Дата, ДЕНЬ),
		|	Инвентаризация.Дата,
		|	Инвентаризация.Номер,
		|	ДанныеКассовойКниги.Валюта,
		|	"""",
		|	&Излишек,
		|	ДанныеКассовойКниги.Приход,
		|	0,
		|	ДанныеКассовойКниги.Счет,
		|	ДанныеКассовойКниги.НомерЛиста,
		|	ДанныеКассовойКниги.НомерСтроки,
		|	ДанныеКассовойКниги.ТипЛиста
		|ИЗ
		|	ДанныеКассовойКниги КАК ДанныеКассовойКниги
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияНаличныхДенежныхСредств КАК Инвентаризация
		|		ПО ДанныеКассовойКниги.Документ = Инвентаризация.Ссылка
		|			И (ДанныеКассовойКниги.Приход > 0)
		|
		|УПОРЯДОЧИТЬ ПО
		|	День,
		|	НомерЛиста,
		|	НомерСтроки
		|ИТОГИ
		|	СУММА(Приход),
		|	СУММА(Расход),
		|	МИНИМУМ(НомерЛиста)
		|ПО
		|	День,
		|	НомерСтроки");
		ЗапросПоДокументам.УстановитьПараметр("ДатаНач", ДатаНач);
		ЗапросПоДокументам.УстановитьПараметр("ДатаКон", ДатаКон);
		ЗапросПоДокументам.УстановитьПараметр("Организация", Организация);
		ЗапросПоДокументам.УстановитьПараметр("ЛистКассовойКниги", ВыборкаПоДокументамКассоваяКнига.Ссылка);
		ЗапросПоДокументам.УстановитьПараметр("Недостача", НСтр("ru = 'Недостача, выявленная при инвентаризации денежных средств'"));
		ЗапросПоДокументам.УстановитьПараметр("Излишек", НСтр("ru = 'Излишки, выявленные при инвентаризации денежных средств'"));
		РезультатЗапросаПоДокументам = ЗапросПоДокументам.Выполнить();
		
		
		ТаблицаДокументы = РезультатЗапросаПоДокументам.Выгрузить();
		ТаблицаДокументы.Очистить();
		ТаблицаДокументы.Колонки.Добавить("СтрокаСчет");
		ТаблицаДокументы.Колонки.Добавить("Валютный");
		ТаблицаДокументы.Колонки.Добавить("ВидДокумента");
		
		ТипСумма = ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля();
		
		РабочаяТаблица = Новый ТаблицаЗначений;
		РабочаяТаблица.Колонки.Добавить("Валюта",Новый ОписаниеТипов("СправочникСсылка.Валюты"));
		РабочаяТаблица.Колонки.Добавить("ВалютаНаименованиеПолное");
		РабочаяТаблица.Колонки.Добавить("ВалОстаток",ТипСумма);
		РабочаяТаблица.Колонки.Добавить("Остаток",   ТипСумма);
		РабочаяТаблица.Колонки.Добавить("ВалПриход", ТипСумма);
		РабочаяТаблица.Колонки.Добавить("Приход",    ТипСумма);
		РабочаяТаблица.Колонки.Добавить("ВалРасход", ТипСумма);
		РабочаяТаблица.Колонки.Добавить("Расход",    ТипСумма);
		РабочаяТаблица.Индексы.Добавить("Валюта");
		
		ВыборкаПоВалюте = РезультатЗапросаПоИтогамНаНачало.Выбрать();
		
		Пока ВыборкаПоВалюте.Следующий() Цикл
			Строка = РабочаяТаблица.Добавить();
			Если ВыборкаПоВалюте.Валюта = ВалютаРегламентированногоУчета Тогда 
				Строка.Валюта = Справочники.Валюты.ПустаяСсылка();
			Иначе
				Строка.Валюта = ВыборкаПоВалюте.Валюта;
				Строка.ВалютаНаименованиеПолное = ВыборкаПоВалюте.ВалютаНаименованиеПолное
			КонецЕсли;
			Строка.Остаток    = ВыборкаПоВалюте.СуммаНачальныйОстатокДт;
			Строка.ВалОстаток = ВыборкаПоВалюте.ВалютнаяСуммаНачальныйОстатокДт;
		КонецЦикла;
		
		РабочаяТаблица.Свернуть("Валюта, ВалютаНаименованиеПолное", "ВалОстаток, Остаток, ВалПриход, Приход, ВалРасход, Расход");
		РабочаяТаблица.Сортировать("Валюта");
		
		ТаблицаОстатков = Новый ТаблицаЗначений;
		ТаблицаОстатков.Колонки.Добавить("Валюта",Новый ОписаниеТипов("СправочникСсылка.Валюты"));
		ТаблицаОстатков.Колонки.Добавить("ВалютаНаименованиеПолное");
		ТаблицаОстатков.Колонки.Добавить("ВалОстаток",ТипСумма);
		ТаблицаОстатков.Колонки.Добавить("Остаток",   ТипСумма);
		ТаблицаОстатков.Индексы.Добавить("Валюта");
		
		Выборка = РезультатЗапросаПоИтогам.Выбрать();
		
		Пока Выборка.Следующий() Цикл
			Строка = ТаблицаОстатков.Добавить();
			Если Выборка.Валюта = ВалютаРегламентированногоУчета Тогда 
				Строка.Валюта = Справочники.Валюты.ПустаяСсылка();
			Иначе
				Строка.Валюта = Выборка.Валюта;
				Строка.ВалютаНаименованиеПолное = Выборка.ВалютаНаименованиеПолное;
			КонецЕсли;
			
			Строка.Остаток    = Выборка.СуммаОстаток;
			Строка.ВалОстаток = Выборка.ВалютнаяСуммаОстаток;
			
		КонецЦикла;
		
		ТаблицаОстатков.Свернуть("Валюта, ВалютаНаименованиеПолное", "ВалОстаток, Остаток");
		ТаблицаОстатков.Сортировать("Валюта");
		
		ВыборкаДокументовПоДням = РезультатЗапросаПоДокументам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"День");
		
		ВыборкаДокументовПоДням.Следующий();
		ПоДокументам = Истина;
		
		ВывестиПодвал = Ложь;
		
		СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Организация, КонецДня(ДатаНач));
		
		ТипПКО = Тип("ДокументСсылка.ПриходныйКассовыйОрдер");
		ТипРКО = Тип("ДокументСсылка.РасходныйКассовыйОрдер");
		
		Пока ПоДокументам Цикл
			
			ДатаЛиста = ДатаНач;
			
			КоличествоПриходныхДокументов = 0;
			КоличествоРасходныхДокументов = 0;
			
			СчетКурсовыхРазниц = "91";
			ДатаДействияПриказа373П = Дата('20120101');
			
			Остаток = РабочаяТаблица.Итог("Остаток");
			Если ДатаЛиста >= ДатаНач Тогда
				
				Если ДатаЛиста < ДатаДействияПриказа373П Тогда
				
					ЗаголовокЛиста = НСтр("ru='КАССА за'") + " " + Формат(ДатаЛиста, "ДЛФ=D");
					ОбластьВкладнойЛистОтчет.Параметры.ЗаголовокЛиста = ЗаголовокЛиста;
					ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, 
						Макет, ОбластьВкладнойЛистОтчет, ВыборкаПоДокументамКассоваяКнига.Ссылка);
					
					ТабличныйДокумент.Вывести(ОбластьВкладнойЛистОтчет);
					
					ОбластьОтчетКассираОтчет.Параметры.ЗаголовокЛиста = ЗаголовокЛиста;
					ТабличныйДокумент.Присоединить(ОбластьОтчетКассираОтчет);
					
					// Номер первого листа документа "Кассовая книга"
					ОбластьШапкаОтчет.Параметры.ТекстНомерЛиста = "Лист " + ВыборкаДокументовПоДням.НомерЛиста;
					
				Иначе
					
					ЗаголовокЛиста = НСтр("ru='КАССА за'") + " " + Формат(ДатаЛиста, "ДЛФ=DD");
					ТекстНомерЛиста = НСтр("ru='Лист'") + " " + ВыборкаДокументовПоДням.НомерЛиста;
					
					ОбластьВкладнойЛист373ПОтчет.Параметры.ЗаголовокЛиста = ЗаголовокЛиста;
					ОбластьВкладнойЛист373ПОтчет.Параметры.ТекстНомерЛиста = ТекстНомерЛиста;
					ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, 
						Макет, ОбластьВкладнойЛист373ПОтчет, ВыборкаПоДокументамКассоваяКнига.Ссылка);
						
					ТабличныйДокумент.Вывести(ОбластьВкладнойЛист373ПОтчет);
					
					ОбластьОтчетКассира373ПОтчет.Параметры.ЗаголовокЛиста = ЗаголовокЛиста;
					ОбластьОтчетКассира373ПОтчет.Параметры.ТекстНомерЛиста = ТекстНомерЛиста;
					ТабличныйДокумент.Присоединить(ОбластьОтчетКассира373ПОтчет);
					
				КонецЕсли;
				
				ТабличныйДокумент.Вывести(ОбластьШапкаОтчет);
				ТабличныйДокумент.Присоединить(ОбластьШапкаОтчет);
				
				ОбластьОстатокНаНДОтчет.Параметры.ОстатокНачало = Остаток;
				ТабличныйДокумент.Вывести(ОбластьОстатокНаНДОтчет);
				ТабличныйДокумент.Присоединить(ОбластьОстатокНаНДОтчет);
				
			КонецЕсли;
			
	//		Высота каждой строки = 13 пунктов
	//		На стандартную страницу помещается 59 строк.
	
	//		Высоты секций в строках:
	//		Шапка = 5 стр
	//		ВкладнойЛист = 3 стр
	//		ОтчетКассира = 3 стр
	//		ОстатокНаНачало = 1 стр
	//		ВТомЧисле = 1 стр
	//		Остаток = 1 стр
	//		ВалОстаток = 2 стр
	//		КурсовыеРазницы = 2 стр
	//		КурсовыеРазницыПоВалюте = 1 стр
	//		Строка = 2 стр
	//		СтрокаШирокая = 4 стр
	//		СтрокаВал = 2 стр
	//		СтрокаВалШирокая = 4 стр
	//		Перенос = 1 стр
	//		Оборот = 1 стр
	//		ОборотРуб = 1 стр
	//		ОборотВал = 2 стр
	//		КурсоваяРазница = 1 стр
	//		КурсоваяРазницаПоВалюте = 1 стр
	//		КонечныйОстаток = 1 стр
	//		Подвал = 11 стр
	//		ЛистовЗаМесяц = 1 стр
	//		ЛистовЗаГод = 1 стр.
	
	
			Если (ДатаЛиста >= ДатаНач) И (Остаток > 0) Тогда
				ТабличныйДокумент.Вывести(ОбластьВТомЧислеОтчет);
				ТабличныйДокумент.Присоединить(ОбластьВТомЧислеОтчет);
			КонецЕсли;
			
			Для Каждого Строка Из РабочаяТаблица Цикл
		
				Валюта     = Строка.Валюта;
				РубОстаток = Строка.Остаток;
				ВалОстаток = Строка.ВалОстаток;
				ВалютаНаименованиеПолное = Строка.ВалютаНаименованиеПолное;
			
				Если (Строка.Валюта = ВалютаРегламентированногоУчета) ИЛИ
					(Строка.Валюта = Справочники.Валюты.ПустаяСсылка())Тогда
			
					Если ДатаЛиста >= ДатаНач Тогда
				
						ОбластьОстатокОтчет.Параметры.ВалютаРеглУчета = НСтр("ru='национальная валюта ('")
							+ ВалютаРеглУчетаНаименованиеПолное + "):";
						ОбластьОстатокОтчет.Параметры.РеглОстаток     = РубОстаток;
				
						ТабличныйДокумент.Вывести(ОбластьОстатокОтчет);
						ТабличныйДокумент.Присоединить(ОбластьОстатокОтчет);
						
					КонецЕсли;
				Иначе
					Если (РубОстаток <> 0) Или (ВалОстаток <> 0) Тогда
				
						Если ДатаЛиста >= ДатаНач Тогда
							
							ОбластьВалОстатокОтчет.Параметры.ВалютаВалУчета = НСтр("ru='иностранная валюта ('")
								+ ВалютаНаименованиеПолное + "):";
							ОбластьВалОстатокОтчет.Параметры.ВалОстатокРегл = РубОстаток;
							ОбластьВалОстатокОтчет.Параметры.ВалОстатокВал  = Формат(ВалОстаток,"ЧДЦ=2; ЧРД==")+" "
								+ Строка(НаименованияВалют.Получить(Валюта));
					
							ТабличныйДокумент.Вывести(ОбластьВалОстатокОтчет);
							ТабличныйДокумент.Присоединить(ОбластьВалОстатокОтчет);
					
						КонецЕсли;
					КонецЕсли;
				КонецЕсли;
			КонецЦикла;
			
			ТаблицаДокументы.Очистить();
			Валюты = Новый СписокЗначений;
			
			Если ВыборкаДокументовПоДням.День = ДатаЛиста Тогда
				
				ВыборкаНомеровСтрок = ВыборкаДокументовПоДням.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НомерСтроки");
				
				Пока ВыборкаНомеровСтрок.Следующий() Цикл
				
					ВыборкаДокументов = ВыборкаНомеровСтрок.Выбрать();
					
					Пока ВыборкаДокументов.Следующий() Цикл
						
						НоваяСтрока = ТаблицаДокументы.Добавить();
						НоваяСтрока.ВидДокумента = ?(ТипЗнч(ВыборкаДокументов.Документ) = ТипПКО, "ПриходныйОрдер", 
													?(ТипЗнч(ВыборкаДокументов.Документ) = ТипРКО, "РасходныйОрдер", "Инвентаризация"));
						НоваяСтрока.Документ     = ВыборкаДокументов.Документ;
						НоваяСтрока.ДатаДок      = ВыборкаДокументов.ДатаДок;
						НоваяСтрока.День         = ВыборкаДокументов.День;
						НоваяСтрока.НомерДок     = ВыборкаДокументов.НомерДок;
						НоваяСтрока.Валюта       = ВыборкаДокументов.Валюта;
						НоваяСтрока.Приход       = ВыборкаДокументов.Приход;
						НоваяСтрока.Расход       = ВыборкаДокументов.Расход;
						НоваяСтрока.Основание    = ВыборкаДокументов.Основание;
						НоваяСтрока.ТекстДок     = ВыборкаДокументов.ТекстДок;
						НоваяСтрока.НомерЛиста   = ВыборкаДокументов.НомерЛиста;
						
						НоваяСтрока.Валютный = ВыборкаДокументов.Валюта <> ВалютаРегламентированногоУчета;
						Если НоваяСтрока.Валютный И Валюты.НайтиПоЗначению(ВыборкаДокументов.Валюта) = Неопределено Тогда
							Валюты.Добавить(ВыборкаДокументов.Валюта);
						КонецЕсли;
						
						СтрокаСчет = ВыборкаДокументов.Счет;
						
						
						НоваяСтрока.СтрокаСчет = СтрокаСчет;
						
					КонецЦикла;
				КонецЦикла;
			КонецЕсли;
			
			СумПриход    = 0;
			СумРасход    = 0;
			ПерваяСтрока = 1;
			
			
			// Для простоты настройки печатной формы примем следующие соглашения:
			//	-	высота строк в таблице печатной формы задана жестко,
			//		тогда известно, сколько строк помещается на странице;
			// СтрокНаСтранице = 58;
			//	-	высота шапки и подвала задана жестко и кратна высоте строк таблицы,
			//		тогда можно указать, сколько строк занимают шапка и подвал
			//		в пересчете на строки таблицы;
			//	-	Количество строк шапки определено при выводе валюты в шапку;
			//	-	Количество строк подвала определим позже по количеству валют;
			//	-	для нормальной работы алгоритма необходимо, чтобы шапка и подвал
			//		могли поместиться на одной странице + хотя бы одна строка таблицы:
			//		СтрокНаСтранице >= СтрокШапки + СтрокПодвала + 1
			//	-	если подвал не помещается на странице, он переносится на другую
			//		страницу с последней строкой; исключение составляет случай,
			//		когда в таблице всего одна строка.
			
			ПредыдущийНомерЛиста = ВыборкаДокументовПоДням.НомерЛиста;
			
			Для Каждого Документ Из ТаблицаДокументы Цикл
				
				Если Документ.ВидДокумента = "ПриходныйОрдер" 
					Или Документ.ВидДокумента = "РасходныйОрдер"
					Или Документ.ВидДокумента = "Инвентаризация"Тогда
					ЕстьВалюта = Документ.Валютный;
				Иначе
					ЕстьВалюта = Ложь;
				КонецЕсли;
				
				Если ЕстьВалюта Тогда
					Валюта          = Документ.Валюта;
					СтруктураКурсов = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(Валюта,Документ.ДатаДок, ВалютаРегламентированногоУчета);
					
					Курс      = СтруктураКурсов.КурсЧислитель;
					Кратность = СтруктураКурсов.КурсЗнаменатель;
					Кратность = ?(Кратность = 0, 1, Кратность);
				Иначе
					Валюта    = Справочники.Валюты.ПустаяСсылка();
					Курс      = 1;
					Кратность = 1;
				КонецЕсли;
					
				Если Документ.ВидДокумента = "РасходныйОрдер" Тогда
					Клиент = НСтр("ru='Выдано'") + " " + СокрЛП(Документ.ТекстДок) + ?(ВыводитьОснования = 1, " " 
						+ СокрЛП(Документ.Основание), "");
					КоличествоРасходныхДокументов = КоличествоРасходныхДокументов + 1;
					ВалРасход = Документ.Расход;
					Расход    = Окр(?(Документ.Расход=null,0,Документ.Расход)*Курс/Кратность,2,1);
					ВалПриход = 0;
					Приход    = 0;
					
				ИначеЕсли Документ.ВидДокумента = "Инвентаризация" Тогда
					
					Клиент = СокрЛП(Документ.ТекстДок);
					
					Если Документ.Расход <> 0 Тогда
						КоличествоРасходныхДокументов = КоличествоРасходныхДокументов + 1;
						ВалРасход = Документ.Расход;
						Расход    = Окр(?(Документ.Расход = null, 0, Документ.Расход) * Курс / Кратность, 2, 1);
						ВалПриход = 0;
						Приход    = 0;
					Иначе
						КоличествоПриходныхДокументов = КоличествоПриходныхДокументов + 1;
						ВалПриход = Документ.Приход;
						Приход    = Окр(?(Документ.Приход = null, 0, Документ.Приход) * Курс / Кратность, 2, 1);
						ВалРасход = 0;
						Расход    = 0;
					КонецЕсли;
					
				Иначе
					Клиент = НСтр("ru='Принято от'") + " " + СокрЛП(Документ.ТекстДок) + ?(ВыводитьОснования = 1, " " 
						+ СокрЛП(Документ.Основание), "");
					КоличествоПриходныхДокументов = КоличествоПриходныхДокументов + 1;
					ВалПриход = Документ.Приход;
					Приход    = Окр(?(Документ.Приход=null,0,Документ.Приход)*Курс/Кратность,2,1);
					ВалРасход = 0;
					Расход    = 0;
				КонецЕсли;
				
				НомерДокПечатнойФормы = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(
					Документ.НомерДок,
					Ложь,
					Истина);
				КоррСчет = Документ.СтрокаСчет;
				
				// Начинаем новую страницу
				Если ПредыдущийНомерЛиста <> Документ.НомерЛиста Тогда
					
					ПриходЗаДень = РабочаяТаблица.Итог("Приход");
					РасходЗаДень = РабочаяТаблица.Итог("Расход");
					
					Если ДатаЛиста >= ДатаНач Тогда
						
						ОбластьПереносОтчет.Параметры.ПриходЗаДень = ПриходЗаДень;
						ОбластьПереносОтчет.Параметры.РасходЗаДень = РасходЗаДень;
						ТабличныйДокумент.Вывести(ОбластьПереносОтчет);
						ТабличныйДокумент.Присоединить(ОбластьПереносОтчет);
						
						ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
						ОбластьШапкаОтчет.Параметры.ТекстНомерЛиста = НСтр("ru='Лист'") + " " + Документ.НомерЛиста;
						ТабличныйДокумент.Вывести(ОбластьШапкаОтчет);
						ТабличныйДокумент.Присоединить(ОбластьШапкаОтчет);
						
					КонецЕсли;
					
					ПредыдущийНомерЛиста = Документ.НомерЛиста;
					
				КонецЕсли;
				
				Если ДатаЛиста >= ДатаНач Тогда
					Если ЕстьВалюта Тогда
						
						НаименованиеВалюты = НаименованияВалют.Получить(Валюта);
						
						Если ВыводитьОснования Тогда
							
							ОбластьСтрокаВалШирокаяОтчет.Параметры.НомерДокПечатнойФормы = НомерДокПечатнойФормы;
							ОбластьСтрокаВалШирокаяОтчет.Параметры.Контрагент = Клиент;
							ОбластьСтрокаВалШирокаяОтчет.Параметры.КоррСчет   = КоррСчет;
							ОбластьСтрокаВалШирокаяОтчет.Параметры.Приход     = Приход;
							ОбластьСтрокаВалШирокаяОтчет.Параметры.Расход     = Расход;
							
							Если Число(ВалПриход) > 0 Тогда 
								ОбластьСтрокаВалШирокаяОтчет.Параметры.ВалПриход  = Формат(ВалПриход,"ЧДЦ=2; ЧРД==")+" "
									+ Строка(НаименованиеВалюты);
							Иначе
								ОбластьСтрокаВалШирокаяОтчет.Параметры.ВалПриход = "";
							КонецЕсли;
							
							Если Число(ВалРасход) > 0 Тогда
								ОбластьСтрокаВалШирокаяОтчет.Параметры.ВалРасход  = Формат(ВалРасход,"ЧДЦ=2; ЧРД==")+" "
									+ Строка(НаименованиеВалюты);
							Иначе
								ОбластьСтрокаВалШирокаяОтчет.Параметры.ВалРасход = "";
							КонецЕсли;
							
							ОбластьСтрокаВалШирокаяОтчет.Параметры.Документ   = Документ.Документ;
							
							ТабличныйДокумент.Вывести(ОбластьСтрокаВалШирокаяОтчет);
							ТабличныйДокумент.Присоединить(ОбластьСтрокаВалШирокаяОтчет);
							
						Иначе
							
							ОбластьСтрокаВалОтчет.Параметры.НомерДокПечатнойФормы = НомерДокПечатнойФормы;
							ОбластьСтрокаВалОтчет.Параметры.Контрагент = Клиент;
							ОбластьСтрокаВалОтчет.Параметры.КоррСчет   = КоррСчет;
							ОбластьСтрокаВалОтчет.Параметры.Приход     = Приход;
							ОбластьСтрокаВалОтчет.Параметры.Расход     = Расход;
							
							Если Число(ВалПриход) > 0 Тогда 
								ОбластьСтрокаВалОтчет.Параметры.ВалПриход  = Формат(ВалПриход,"ЧДЦ=2; ЧРД==")+" "
									+ Строка(НаименованиеВалюты);
							Иначе
								ОбластьСтрокаВалОтчет.Параметры.ВалПриход = "";
							КонецЕсли;
							
							Если Число(ВалРасход) > 0 Тогда
								ОбластьСтрокаВалОтчет.Параметры.ВалРасход  = Формат(ВалРасход,"ЧДЦ=2; ЧРД==")+" "
									+ Строка(НаименованиеВалюты);
							Иначе
								ОбластьСтрокаВалОтчет.Параметры.ВалРасход = "";
							КонецЕсли;
							
							ОбластьСтрокаВалОтчет.Параметры.Документ   = Документ.Документ;
							
							ТабличныйДокумент.Вывести(ОбластьСтрокаВалОтчет);
							ТабличныйДокумент.Присоединить(ОбластьСтрокаВалОтчет);
							
						КонецЕсли;
						
					Иначе
						Если ВыводитьОснования Тогда
							
							ОбластьСтрокаШирокаяОтчет.Параметры.НомерДокПечатнойФормы = НомерДокПечатнойФормы;
							ОбластьСтрокаШирокаяОтчет.Параметры.Контрагент = Клиент;
							ОбластьСтрокаШирокаяОтчет.Параметры.КоррСчет   = КоррСчет;
							ОбластьСтрокаШирокаяОтчет.Параметры.Приход     = Приход;
							ОбластьСтрокаШирокаяОтчет.Параметры.Расход     = Расход;
							ОбластьСтрокаШирокаяОтчет.Параметры.Документ   = Документ.Документ;
							
							ТабличныйДокумент.Вывести(ОбластьСтрокаШирокаяОтчет);
							ТабличныйДокумент.Присоединить(ОбластьСтрокаШирокаяОтчет);
							
						Иначе
							
							ОбластьСтрокаОтчет.Параметры.НомерДокПечатнойФормы = НомерДокПечатнойФормы;
							ОбластьСтрокаОтчет.Параметры.Контрагент = Клиент;
							ОбластьСтрокаОтчет.Параметры.КоррСчет   = КоррСчет;
							ОбластьСтрокаОтчет.Параметры.Приход     = Приход;
							ОбластьСтрокаОтчет.Параметры.Расход     = Расход;
							ОбластьСтрокаОтчет.Параметры.Документ   = Документ.Документ;
							
							ТабличныйДокумент.Вывести(ОбластьСтрокаОтчет);
							ТабличныйДокумент.Присоединить(ОбластьСтрокаОтчет);
						КонецЕсли;
					КонецЕсли;
				КонецЕсли;
				
				ДобавитьОбороты(РабочаяТаблица, ВалютаРегламентированногоУчета, Валюта, ВалПриход, Приход, ВалРасход, Расход);
				
			КонецЦикла;
			
			ВыборкаПоКурсовымРазницам = РезультатЗапросаПоКурсовымРазницам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Валюта");
			Пока ВыборкаПоКурсовымРазницам.Следующий() Цикл
				
				Если (ВыборкаПоКурсовымРазницам.Валюта = Справочники.Валюты.ПустаяСсылка())
					ИЛИ ПустаяСтрока(ВыборкаПоКурсовымРазницам.Валюта) Тогда
					Продолжить;
				КонецЕсли;
				
				Если ПерваяСтрока = 1 Тогда
					ТабличныйДокумент.Вывести(ОбластьКурсовыеРазницыОтчет);
					ТабличныйДокумент.Присоединить(ОбластьКурсовыеРазницыОтчет);
					ПерваяСтрока = 0;
				КонецЕсли;
				ОбластьКурсовыеРазницыПоВалютеОтчет.Параметры.НадписьКРВалюта = НСтр("ru='по'") + " " + ВыборкаПоКурсовымРазницам.Валюта;
				ОбластьКурсовыеРазницыПоВалютеОтчет.Параметры.КоррСчет = "";
				Если ВыборкаПоКурсовымРазницам.СуммаКурсовойРазницы > 0 Тогда
					Приход = ВыборкаПоКурсовымРазницам.СуммаКурсовойРазницы;
					Расход = 0;
				Иначе
					Приход = 0;
					Расход = -ВыборкаПоКурсовымРазницам.СуммаКурсовойРазницы;
				КонецЕсли;
				
				ОбластьКурсовыеРазницыПоВалютеОтчет.Параметры.Приход = Приход;
				ОбластьКурсовыеРазницыПоВалютеОтчет.Параметры.Расход = Расход;
				
				
				ТабличныйДокумент.Вывести(ОбластьКурсовыеРазницыПоВалютеОтчет);
				ТабличныйДокумент.Присоединить(ОбластьКурсовыеРазницыПоВалютеОтчет);
				
			КонецЦикла;
			
			РабочаяТаблица.Свернуть("Валюта, ВалютаНаименованиеПолное", "ВалОстаток, Остаток, ВалПриход, Приход, ВалРасход, Расход");
			
			ПриходЗаДень = РабочаяТаблица.Итог("Приход");
			РасходЗаДень = РабочаяТаблица.Итог("Расход");
			Если ДатаЛиста >= ДатаНач Тогда
				
				ОбластьОборотОтчет.Параметры.ПриходЗаДень = ПриходЗаДень;
				ОбластьОборотОтчет.Параметры.РасходЗаДень = РасходЗаДень;
				
				ТабличныйДокумент.Вывести(ОбластьОборотОтчет);
				ТабличныйДокумент.Присоединить(ОбластьОборотОтчет);
				
				Для Каждого Строка Из РабочаяТаблица Цикл
					Валюта = Строка.Валюта;
					ВалютаНаименованиеПолное = Строка.ВалютаНаименованиеПолное;
					ВалПриходЗаДень = Строка.ВалПриход;
					РубПриходЗаДень = Строка.Приход;
					ВалРасходЗаДень = Строка.ВалРасход;
					РубРасходЗаДень = Строка.Расход;
					Если (Строка.Валюта = ВалютаРегламентированногоУчета) ИЛИ
						(Строка.Валюта = Справочники.Валюты.ПустаяСсылка()) Тогда
						
						ОбластьОборотРубОтчет.Параметры.РеглПриходЗаДень = РубПриходЗаДень;
						ОбластьОборотРубОтчет.Параметры.РеглРасходЗаДень = РубРасходЗаДень;
						ОбластьОборотРубОтчет.Параметры.ВалютаРеглУчета  = 
							НСтр("ru='национальная валюта ('") + ВалютаРеглУчетаНаименованиеПолное + "):";
						
						ТабличныйДокумент.Вывести(ОбластьОборотРубОтчет);
						ТабличныйДокумент.Присоединить(ОбластьОборотРубОтчет);
					Иначе
						Если (ВалПриходЗаДень <> 0) Или (РубПриходЗаДень <> 0) Или 
							(ВалРасходЗаДень <> 0) Или (РубРасходЗаДень <> 0) Тогда
							
							ОбластьОборотВалОтчет.Параметры.ВалютаВалУчета      = НСтр("ru='иностранная валюта ('") + 
								ВалютаНаименованиеПолное + "):";
							ОбластьОборотВалОтчет.Параметры.ВалПриходЗаДеньРегл = РубПриходЗаДень;
							ОбластьОборотВалОтчет.Параметры.ВалРасходЗаДеньРегл = РубРасходЗаДень;
							
							Если Число(ВалПриход) > 0 Тогда 
								ОбластьСтрокаВалОтчет.Параметры.ВалПриход  = Формат(ВалПриход,"ЧДЦ=2; ЧРД==")+" "
									+ Строка(НаименованияВалют.Получить(Валюта));
							Иначе
								ОбластьСтрокаВалОтчет.Параметры.ВалПриход = "";
							КонецЕсли;
							
							Если Число(ВалПриходЗаДень) > 0 Тогда
								ОбластьОборотВалОтчет.Параметры.ВалПриходЗаДеньВал  = Формат(ВалПриходЗаДень,"ЧДЦ=2; ЧРД==")+" "+Валюта;
							Иначе
								ОбластьОборотВалОтчет.Параметры.ВалПриходЗаДеньВал = "";
							КонецЕсли;
							
							Если Число(ВалРасходЗаДень) > 0 Тогда
								ОбластьОборотВалОтчет.Параметры.ВалРасходЗаДеньВал  = Формат(ВалРасходЗаДень,"ЧДЦ=2; ЧРД==")+" "+Валюта;
							Иначе
								ОбластьОборотВалОтчет.Параметры.ВалРасходЗаДеньВал = "";
							КонецЕсли;
							
							ТабличныйДокумент.Вывести(ОбластьОборотВалОтчет);
							ТабличныйДокумент.Присоединить(ОбластьОборотВалОтчет);
							
						КонецЕсли;
					КонецЕсли;
				КонецЦикла;
			КонецЕсли;
			
			ПерваяСтрока = Истина;
			Остаток = ТаблицаОстатков.Итог("Остаток");
			
			Если ДатаЛиста >= ДатаНач Тогда
				
				ОбластьКонечныйОстатокОтчет.Параметры.ОстатокКонец = Остаток;
				
				ТабличныйДокумент.Вывести(ОбластьКонечныйОстатокОтчет);
				ТабличныйДокумент.Присоединить(ОбластьКонечныйОстатокОтчет);
				
				Если Остаток > 0 Тогда
					ТабличныйДокумент.Вывести(ОбластьВТомЧислеОтчет);
					ТабличныйДокумент.Присоединить(ОбластьВТомЧислеОтчет);
				КонецЕсли;
					
				Для Каждого Строка Из ТаблицаОстатков Цикл
					
					Валюта     = Строка.Валюта;
					РубОстаток = Строка.Остаток;
					ВалОстаток = Строка.ВалОстаток;
					ВалютаНаименованиеПолное = Строка.ВалютаНаименованиеПолное;
					
					Если (Строка.Валюта = ВалютаРегламентированногоУчета) ИЛИ
						(Строка.Валюта = Справочники.Валюты.ПустаяСсылка())Тогда
						
						Если ДатаЛиста >= ДатаНач Тогда
							
							ОбластьОстатокОтчет.Параметры.ВалютаРеглУчета = НСтр("ru='национальная валюта ('")+
								ВалютаРеглУчетаНаименованиеПолное + "):";
							ОбластьОстатокОтчет.Параметры.РеглОстаток     = РубОстаток;
							
							ТабличныйДокумент.Вывести(ОбластьОстатокОтчет);
							ТабличныйДокумент.Присоединить(ОбластьОстатокОтчет);
							
						КонецЕсли;
						
					Иначе
						
						Если (РубОстаток <> 0) Или (ВалОстаток <> 0) Тогда
							
							Если ДатаЛиста >= ДатаНач Тогда
								
								ОбластьВалОстатокОтчет.Параметры.ВалютаВалУчета = НСтр("ru='иностранная валюта ('")+
									ВалютаНаименованиеПолное + "):";
								ОбластьВалОстатокОтчет.Параметры.ВалОстатокРегл = РубОстаток;
								ОбластьВалОстатокОтчет.Параметры.ВалОстатокВал  = Формат(ВалОстаток,"ЧДЦ=2; ЧРД==")+" "+
									Строка(НаименованияВалют.Получить(Валюта));
								
								ТабличныйДокумент.Вывести(ОбластьВалОстатокОтчет);
								ТабличныйДокумент.Присоединить(ОбластьВалОстатокОтчет);
								
							КонецЕсли;
							
						КонецЕсли;
						
					КонецЕсли;
					
				КонецЦикла;

				ОбластьПодвалОтчет.Параметры.НадписьКолПриходныхРасходных=?(КоличествоПриходныхДокументов>0, 
				ЧислоПрописью(КоличествоПриходныхДокументов,"НД=Ложь",",,,,,,,,0")," - ")+ НСтр("ru='приходных и'") + " "+
				?(КоличествоРасходныхДокументов>0,ЧислоПрописью(КоличествоРасходныхДокументов,"НД=Ложь",",,,,,,,,0")," - ")
				+ НСтр("ru='расходных получил.'");
				
				ОбластьПодвалОтчет.Параметры.ГлБухгалтер = ВыборкаПоДокументамКассоваяКнига.ГлавныйБухгалтер;
				ОбластьПодвалОтчет.Параметры.Кассир = 
					ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(
						ВыборкаПоДокументамКассоваяКнига.Ответственный,
						ВыборкаПоДокументамКассоваяКнига.Дата);
				
				ТабличныйДокумент.Вывести(ОбластьПодвалОтчет);
				ТабличныйДокумент.Присоединить(ОбластьПодвалОтчет);
			КонецЕсли;
			
			ПоДокументам = ВыборкаДокументовПоДням.Следующий();
			
			ВывестиПодвал = Истина;
			
		КонецЦикла;
		
		Если ВывестиПодвал Тогда
			
			Если ВыборкаПоДокументамКассоваяКнига.ТипЛиста = Перечисления.ТипыЛистовКассовойКниги.ПоследнийВМесяце Тогда
				
				КоличествоЛистов = ПолучитьКоличествоЛистовКассовойКнигиЗаПериодПоОрганизации(
					ВыборкаПоДокументамКассоваяКнига.Организация, ВыборкаПоДокументамКассоваяКнига.КассоваяКнига,
					НачалоМесяца(ВыборкаПоДокументамКассоваяКнига.Дата),
					КонецМесяца(ВыборкаПоДокументамКассоваяКнига.Дата));
				
				ОбластьЛистовЗаМесяцОтчет.Параметры.НадписьЛистовЗаМесяц = НСтр("ru='Количество листов кассовой книги за месяц:'") + " " +
					КоличествоЛистов;
				ТабличныйДокумент.Вывести(ОбластьЛистовЗаМесяцОтчет);
				ТабличныйДокумент.Присоединить(ОбластьЛистовЗаМесяцОтчет);
				
			КонецЕсли;
			
			Если ВыборкаПоДокументамКассоваяКнига.ТипЛиста = Перечисления.ТипыЛистовКассовойКниги.ПоследнийВГоду Тогда
				
				КоличествоЛистов = ПолучитьКоличествоЛистовКассовойКнигиЗаПериодПоОрганизации(
					ВыборкаПоДокументамКассоваяКнига.Организация, ВыборкаПоДокументамКассоваяКнига.КассоваяКнига,
					НачалоГода(ВыборкаПоДокументамКассоваяКнига.Дата),
					КонецГода(ВыборкаПоДокументамКассоваяКнига.Дата));
				
				ОбластьЛистовЗаГодОтчет.Параметры.НадписьЛистовЗаГод = НСтр("ru='Количество листов кассовой книги за год:'") + " " + 
					КоличествоЛистов;
				ТабличныйДокумент.Вывести(ОбластьЛистовЗаГодОтчет);
				ТабличныйДокумент.Присоединить(ОбластьЛистовЗаГодОтчет);
				
			КонецЕсли;
			
		КонецЕсли;
		
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(
			ТабличныйДокумент,
			НомерСтрокиНачало,
			ОбъектыПечати,
			ВыборкаПоДокументамКассоваяКнига.Ссылка);
		
	КонецЦикла; // Цикл по выделенным документам
	
	ТабличныйДокумент.ТолькоПросмотр = Истина;
	Возврат ТабличныйДокумент;
	
КонецФункции

#КонецОбласти

#КонецОбласти

#КонецЕсли

Связанные материалы