#Если Клиент Тогда
Перем НП Экспорт;
Перем ВидЛистаКассовойКниги Экспорт;
Перем мВалютаРегламентированногоУчета Экспорт;
Функция ОрдерПоРегистратору(Регистратор)
Запрос=Новый Запрос;
Запрос.УстановитьПараметр(\"Регистратор\",Регистратор);
Запрос.Текст=\"ВЫБРАТЬ ПЕРВЫЕ 1
| ПриходныйКассовыйОрдер.ДокументОснование,
| ПриходныйКассовыйОрдер.Ссылка
|ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
|ГДЕ
| ПриходныйКассовыйОрдер.ДокументОснование = &Регистратор
|\";
Результат=Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
Возврат Результат.Ссылка;
Иначе
Возврат Документы.ПриходныйКассовыйОрдер.ПустаяСсылка();
КонецЕсли;
КонецФункции
Процедура СформироватьЖурналРегистрацииПриходных(ДокументРезультат)
Запрос=Новый Запрос;
Запрос.Текст=\"ВЫБРАТЬ
| Назначения.Наименование
|ИЗ
| Справочник.НазначенияНаличныхДенежныхСредств КАК Назначения\";
Результат=Запрос.Выполнить();
ТаблицаНазначения=Результат.Выгрузить();
ТаблицаНазначения.Колонки.Добавить(\"НомерКолонки\");
ТаблицаНазначения.Колонки.Добавить(\"Всего\");
НомерКолонки = 3;
Для Каждого Назначение из ТаблицаНазначения Цикл
Назначение.НомерКолонки = НомерКолонки;
Назначение.Всего = 0;
НомерКолонки = НомерКолонки+1;
КонецЦикла;
ЦентральнаяКолонка = Окр((НомерКолонки-3)/2) + 2;
//Вывод шапки
Макет = ПолучитьМакет(\"ЖурналРегистрации\");
Если ВыводитьТитульныйЛист Тогда
ОбластьМакета = Макет.ПолучитьОбласть(\"Титул\");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, ДатаНач);
ОбластьМакета.Параметры.Год = Год(ДатаНач);
ОбластьМакета.Параметры.КодЕДРПОУ = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОбОрганизации);
ОбластьМакета.Параметры.НаименованиеОрганизации = СведенияОбОрганизации.ПолноеНаименование;
ДокументРезультат.Вывести(ОбластьМакета);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка|ДатаНомер\");
ОбластьМакета.Параметры.ВидДокумента = \"Прибутковий документ\";
ДокументРезультат.Вывести(ОбластьМакета);
Для Каждого Назначение из ТаблицаНазначения Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка|Назначение\");
ОбластьМакета.Параметры.Назначение = Назначение.Наименование;
ОбластьМакета.Параметры.НомерКолонки = Назначение.НомерКолонки;
Если Назначение.НомерКолонки = ЦентральнаяКолонка Тогда
ОбластьМакета.Параметры.ТекстШапки = \"Надійшло грошей\";
КонецЕсли;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка|Комментарий\");
ОбластьМакета.Параметры.НомерКолонки = НомерКолонки;
ДокументРезультат.Присоединить(ОбластьМакета);
//Запрос по ордерам
Запрос=Новый Запрос;
Запрос.УстановитьПараметр(\"ДатаНач\",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(\"ДатаКон\",КонецДня(ДатаКон));
Запрос.УстановитьПараметр(\"Организация\",Организация);
Запрос.УстановитьПараметр(\"Валюта\",Валюта);
УчетнаяПолитикаНеЗадана = Ложь;
УчетнаяПолитикаБУ = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаКон, УчетнаяПолитикаНеЗадана, Организация, \"Бух\");
УчетДенежныхСредствПоОбособленнымПодразделениям = Ложь;
Если УчетнаяПолитикаБУ.Количество() > 0 Тогда
УчетДенежныхСредствПоОбособленнымПодразделениям = УчетнаяПолитикаБУ.ВестиУчетДенежныхСредствПоОбособленнымПодразделениям;
КонецЕсли;
Если УчетДенежныхСредствПоОбособленнымПодразделениям Тогда
УсловиеПоОбособленномуПодразделению = \" И (ПриходныйКассовыйОрдер.Касса.ОбособленноеПодразделение = &ОбособленноеПодразделениеОрганизации) \";
Запрос.УстановитьПараметр(\"ОбособленноеПодразделениеОрганизации\", ОбособленноеПодразделениеОрганизации);
КонецЕсли;
Запрос.Текст=\"ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ПриходныйКассовыйОрдер.Дата, ДЕНЬ) КАК День,
| ПриходныйКассовыйОрдер.Ссылка КАК Ордер,
| ПриходныйКассовыйОрдер.НомерОрдера КАК НомерОрдера,
| ПриходныйКассовыйОрдер.ВалютаДокумента КАК Валюта,
| ПриходныйКассовыйОрдер.СуммаДокумента КАК Приход,
| ПриходныйКассовыйОрдер.НазначениеДенежныхСредств КАК Назначение,
| ПриходныйКассовыйОрдер.Комментарий КАК Комментарий
|ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
| ГДЕ
| (ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ) И
| (ПриходныйКассовыйОрдер.Дата МЕЖДУ &ДатаНач И &ДатаКон) И
| (ПриходныйКассовыйОрдер.Организация = &Организация) И
| (ПриходныйКассовыйОрдер.ОтражатьВБухгалтерскомУчете) И
| (ПриходныйКассовыйОрдер.ВалютаДокумента = &Валюта) И
| (ПриходныйКассовыйОрдер.Проведен)\" + УсловиеПоОбособленномуПодразделению + \"
|УПОРЯДОЧИТЬ ПО
| День,
| НомерОрдера\";
Результат=Запрос.Выполнить().Выбрать();
//Вывод таблицы
Пока Результат.Следующий() Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка|ДатаНомер\");
ОбластьМакета.Параметры.Дата = Результат.День;
ОбластьМакета.Параметры.Номер = Результат.НомерОрдера;
ОбластьМакета.Параметры.Ордер = Результат.Ордер;
ДокументРезультат.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка|Назначение\");
Для Каждого Назначение из ТаблицаНазначения Цикл
Если Результат.Назначение.Наименование = Назначение.Наименование Тогда
ОбластьМакета.Параметры.СуммаДокумента = Результат.Приход;
Назначение.Всего = Назначение.Всего + Результат.Приход;
Иначе
ОбластьМакета.Параметры.СуммаДокумента = 0;
КонецЕсли;
ОбластьМакета.Параметры.Ордер = Результат.Ордер;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка|Комментарий\");
ОбластьМакета.Параметры.Комментарий = Результат.Комментарий;
ОбластьМакета.Параметры.Ордер = Результат.Ордер;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
//Вывод всего
ОбластьМакета = Макет.ПолучитьОбласть(\"Всего|ДатаНомер\");
ДокументРезультат.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(\"Всего|Назначение\");
ИтоговаяСумма = 0;
Для Каждого Назначение из ТаблицаНазначения Цикл
ОбластьМакета.Параметры.СуммаВсего = Назначение.Всего;
ИтоговаяСумма = ИтоговаяСумма + Назначение.Всего;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть(\"Всего|Комментарий\");
ДокументРезультат.Присоединить(ОбластьМакета);
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
КонецПроцедуры
Процедура СформироватьЖурналРегистрацииРасходных(ДокументРезультат)
Запрос=Новый Запрос;
Запрос.Текст=\"ВЫБРАТЬ
| Назначения.Наименование
|ИЗ
| Справочник.НазначенияНаличныхДенежныхСредств КАК Назначения\";
Результат=Запрос.Выполнить();
ТаблицаНазначения=Результат.Выгрузить();
ТаблицаНазначения.Колонки.Добавить(\"НомерКолонки\");
ТаблицаНазначения.Колонки.Добавить(\"Всего\");
НомерКолонки = 3;
Для Каждого Назначение из ТаблицаНазначения Цикл
Назначение.НомерКолонки = НомерКолонки;
Назначение.Всего = 0;
НомерКолонки = НомерКолонки+1;
КонецЦикла;
ЦентральнаяКолонка = Окр((НомерКолонки-3)/2) + 2;
//Вывод шапки
Макет = ПолучитьМакет(\"ЖурналРегистрации\");
Если ВыводитьТитульныйЛист Тогда
ОбластьМакета = Макет.ПолучитьОбласть(\"Титул\");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, ДатаНач);
ОбластьМакета.Параметры.Год = Год(ДатаНач);
ОбластьМакета.Параметры.КодЕДРПОУ = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОбОрганизации);
ОбластьМакета.Параметры.НаименованиеОрганизации = СведенияОбОрганизации.ПолноеНаименование;
ДокументРезультат.Вывести(ОбластьМакета);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка|ДатаНомер\");
ОбластьМакета.Параметры.ВидДокумента = \"Видатковий документ\";
ДокументРезультат.Вывести(ОбластьМакета);
Для Каждого Назначение из ТаблицаНазначения Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка|Назначение\");
ОбластьМакета.Параметры.Назначение = Назначение.Наименование;
ОбластьМакета.Параметры.НомерКолонки = Назначение.НомерКолонки;
Если Назначение.НомерКолонки = ЦентральнаяКолонка Тогда
ОбластьМакета.Параметры.ТекстШапки = \"Витрачено грошей\";
КонецЕсли;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка|Комментарий\");
ОбластьМакета.Параметры.НомерКолонки = НомерКолонки;
ДокументРезультат.Присоединить(ОбластьМакета);
//Запрос по ордерам
Запрос=Новый Запрос;
Запрос.УстановитьПараметр(\"ДатаНач\",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(\"ДатаКон\",КонецДня(ДатаКон));
Запрос.УстановитьПараметр(\"Организация\",Организация);
Запрос.УстановитьПараметр(\"Валюта\",Валюта);
УчетнаяПолитикаНеЗадана = Ложь;
УчетнаяПолитикаБУ = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаКон, УчетнаяПолитикаНеЗадана, Организация, \"Бух\");
УчетДенежныхСредствПоОбособленнымПодразделениям = Ложь;
Если УчетнаяПолитикаБУ.Количество() > 0 Тогда
УчетДенежныхСредствПоОбособленнымПодразделениям = УчетнаяПолитикаБУ.ВестиУчетДенежныхСредствПоОбособленнымПодразделениям;
КонецЕсли;
Если УчетДенежныхСредствПоОбособленнымПодразделениям Тогда
УсловиеПоОбособленномуПодразделению = \" И (РасходныйКассовыйОрдер.Касса.ОбособленноеПодразделение = &ОбособленноеПодразделениеОрганизации) \";
Запрос.УстановитьПараметр(\"ОбособленноеПодразделениеОрганизации\", ОбособленноеПодразделениеОрганизации);
КонецЕсли;
Запрос.Текст=\"ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(РасходныйКассовыйОрдер.Дата, ДЕНЬ) КАК День,
| РасходныйКассовыйОрдер.Ссылка КАК Ордер,
| РасходныйКассовыйОрдер.НомерОрдера КАК НомерОрдера,
| РасходныйКассовыйОрдер.ВалютаДокумента КАК Валюта,
| РасходныйКассовыйОрдер.СуммаДокумента КАК Расход,
| РасходныйКассовыйОрдер.НазначениеДенежныхСредств КАК Назначение,
| РасходныйКассовыйОрдер.Комментарий КАК Комментарий
|ИЗ
| Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
| ГДЕ
| (РасходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ) И
| (РасходныйКассовыйОрдер.Дата МЕЖДУ &ДатаНач И &ДатаКон) И
| (РасходныйКассовыйОрдер.Организация = &Организация) И
| (РасходныйКассовыйОрдер.ОтражатьВБухгалтерскомУчете) И
| (РасходныйКассовыйОрдер.ВалютаДокумента = &Валюта) И
| (РасходныйКассовыйОрдер.Проведен)\" + УсловиеПоОбособленномуПодразделению +
\"УПОРЯДОЧИТЬ ПО
| День,
| НомерОрдера\";
Результат=Запрос.Выполнить().Выбрать();
//Вывод таблицы
Пока Результат.Следующий() Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка|ДатаНомер\");
ОбластьМакета.Параметры.Дата = Результат.День;
ОбластьМакета.Параметры.Номер = Результат.НомерОрдера;
ОбластьМакета.Параметры.Ордер = Результат.Ордер;
ДокументРезультат.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка|Назначение\");
Для Каждого Назначение из ТаблицаНазначения Цикл
Если Результат.Назначение.Наименование = Назначение.Наименование Тогда
ОбластьМакета.Параметры.СуммаДокумента = Результат.Расход;
Назначение.Всего = Назначение.Всего + Результат.Расход;
Иначе
ОбластьМакета.Параметры.СуммаДокумента = 0;
КонецЕсли;
ОбластьМакета.Параметры.Ордер = Результат.Ордер;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка|Комментарий\");
ОбластьМакета.Параметры.Комментарий = Результат.Комментарий;
ОбластьМакета.Параметры.Ордер = Результат.Ордер;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
//Вывод всего
ОбластьМакета = Макет.ПолучитьОбласть(\"Всего|ДатаНомер\");
ДокументРезультат.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(\"Всего|Назначение\");
ИтоговаяСумма = 0;
Для Каждого Назначение из ТаблицаНазначения Цикл
ОбластьМакета.Параметры.СуммаВсего = Назначение.Всего;
ИтоговаяСумма = ИтоговаяСумма + Назначение.Всего;
ДокументРезультат.Присоединить(ОбластьМакета);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть(\"Всего|Комментарий\");
ДокументРезультат.Присоединить(ОбластьМакета);
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
КонецПроцедуры
Процедура СформироватьЖурналРегистрацииРасходныхИПриходных(ДокументРезультат)
//Вывод шапки
Макет = ПолучитьМакет(\"ЖурналРегистрации3а\");
Если ВыводитьТитульныйЛист Тогда
ОбластьМакета = Макет.ПолучитьОбласть(\"Титул\");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, ДатаНач);
ОбластьМакета.Параметры.Год = Год(ДатаНач);
ОбластьМакета.Параметры.КодЕДРПОУ = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОбОрганизации);
ОбластьМакета.Параметры.НаименованиеОрганизации = СведенияОбОрганизации.ПолноеНаименование;
ДокументРезультат.Вывести(ОбластьМакета);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка\");
ДокументРезультат.Вывести(ОбластьМакета);
//Запрос по ордерам
Запрос=Новый Запрос;
Запрос.УстановитьПараметр(\"ДатаНач\",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(\"ДатаКон\",КонецДня(ДатаКон));
Запрос.УстановитьПараметр(\"Организация\",Организация);
Запрос.УстановитьПараметр(\"Валюта\",Валюта);
УчетнаяПолитикаНеЗадана = Ложь;
УчетнаяПолитикаБУ = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаКон, УчетнаяПолитикаНеЗадана, Организация, \"Бух\");
УчетДенежныхСредствПоОбособленнымПодразделениям = Ложь;
Если УчетнаяПолитикаБУ.Количество() > 0 Тогда
УчетДенежныхСредствПоОбособленнымПодразделениям = УчетнаяПолитикаБУ.ВестиУчетДенежныхСредствПоОбособленнымПодразделениям;
КонецЕсли;
Если УчетДенежныхСредствПоОбособленнымПодразделениям Тогда
УсловиеПоОбособленномуПодразделению = \" И (Касса.ОбособленноеПодразделение = &ОбособленноеПодразделениеОрганизации) \";
Запрос.УстановитьПараметр(\"ОбособленноеПодразделениеОрганизации\", ОбособленноеПодразделениеОрганизации);
КонецЕсли;
Запрос.Текст=\"ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(РасходныйКассовыйОрдер.Дата, ДЕНЬ) КАК ДеньРасход,
| РасходныйКассовыйОрдер.Ссылка КАК ОрдерРасход,
| РасходныйКассовыйОрдер.НомерОрдера КАК НомерОрдераРасход,
| РасходныйКассовыйОрдер.СуммаДокумента КАК СуммаРасход,
| РасходныйКассовыйОрдер.Комментарий КАК КомментарийРасход
|ИЗ
| Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
| ГДЕ
| (РасходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ) И
| (РасходныйКассовыйОрдер.Дата МЕЖДУ &ДатаНач И &ДатаКон) И
| (РасходныйКассовыйОрдер.Организация = &Организация) И
| (РасходныйКассовыйОрдер.ОтражатьВБухгалтерскомУчете) И
| (РасходныйКассовыйОрдер.ВалютаДокумента = &Валюта) И
| (РасходныйКассовыйОрдер.Проведен)\" + УсловиеПоОбособленномуПодразделению + \"
|УПОРЯДОЧИТЬ ПО
| ДеньРасход,
| НомерОрдераРасход\";
РезультатРасход =Запрос.Выполнить().Выбрать();
Запрос.Текст=\"ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(ПриходныйКассовыйОрдер.Дата, ДЕНЬ) КАК ДеньПриход,
| ПриходныйКассовыйОрдер.Ссылка КАК ОрдерПриход,
| ПриходныйКассовыйОрдер.НомерОрдера КАК НомерОрдераПриход,
| ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаПриход,
| ПриходныйКассовыйОрдер.Комментарий КАК КомментарийПриход
|ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
| ГДЕ
| (ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ) И
| (ПриходныйКассовыйОрдер.Дата МЕЖДУ &ДатаНач И &ДатаКон) И
| (ПриходныйКассовыйОрдер.Организация = &Организация) И
| (ПриходныйКассовыйОрдер.ОтражатьВБухгалтерскомУчете) И
| (ПриходныйКассовыйОрдер.ВалютаДокумента = &Валюта) И
| (ПриходныйКассовыйОрдер.Проведен)\" + УсловиеПоОбособленномуПодразделению + \"
|УПОРЯДОЧИТЬ ПО
| ДеньПриход,
| НомерОрдераПриход\";
РезультатПриход =Запрос.Выполнить().Выбрать();
Пока 1=1 Цикл
ЕстьЗапись = Ложь;
Если РезультатПриход.Следующий() Тогда
ЕстьЗапись = Истина;
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка\");
ОбластьМакета.Параметры.ДатаПриход = РезультатПриход.ДеньПриход;
ОбластьМакета.Параметры.НомерПриход = РезультатПриход.НомерОрдераПриход;
ОбластьМакета.Параметры.ОрдерПриход = РезультатПриход.ОрдерПриход;
ОбластьМакета.Параметры.СуммаПриход = РезультатПриход.СуммаПриход;
ОбластьМакета.Параметры.КомментарийПриход = РезультатПриход.КомментарийПриход;
КонецЕсли;
Если РезультатРасход.Следующий() Тогда
Если Не ЕстьЗапись Тогда
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка\");
КонецЕсли;
ЕстьЗапись = Истина;
ОбластьМакета.Параметры.ДатаРасход = РезультатРасход.ДеньРасход;
ОбластьМакета.Параметры.НомерРасход = РезультатРасход.НомерОрдераРасход;
ОбластьМакета.Параметры.ОрдерРасход = РезультатРасход.ОрдерРасход;
ОбластьМакета.Параметры.СуммаРасход = РезультатРасход.СуммаРасход;
ОбластьМакета.Параметры.КомментарийРасход = РезультатРасход.КомментарийРасход;
КонецЕсли;
Если ЕстьЗапись Тогда
ДокументРезультат.Вывести(ОбластьМакета);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
КонецПроцедуры
Процедура СформироватьКнигаПринятыхВыданных(ДокументРезультат)
//Запрос по остаткам и оборотам кассы
Запрос=Новый Запрос;
Запрос.УстановитьПараметр(\"ДатаНач\",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(\"ДатаКон\",КонецДня(ДатаКон));
Запрос.УстановитьПараметр(\"Организация\",Организация);
Если Валюта = мВалютаРегламентированногоУчета Тогда
ВалютнаяКасса = Ложь;
ТекстФильтр = \"\";
Запрос.УстановитьПараметр(\"Счет\",ПланыСчетов.Хозрасчетный.КассаВНациональнойВалюте);
Иначе
ВалютнаяКасса = Истина;
ТекстФильтр = \"ГДЕ
| ХозрасчетныйОстаткиИОбороты.Валюта = &Валюта
|\";
Запрос.УстановитьПараметр(\"Валюта\",Валюта);
Запрос.УстановитьПараметр(\"Счет\",ПланыСчетов.Хозрасчетный.КассаВИностраннойВалюте);
КонецЕсли;
УчетнаяПолитикаНеЗадана = Ложь;
УчетнаяПолитикаБУ = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаКон, УчетнаяПолитикаНеЗадана, Организация, \"Бух\");
УчетДенежныхСредствПоОбособленнымПодразделениям = Ложь;
Если УчетнаяПолитикаБУ.Количество() > 0 Тогда
УчетДенежныхСредствПоОбособленнымПодразделениям = УчетнаяПолитикаБУ.ВестиУчетДенежныхСредствПоОбособленнымПодразделениям;
КонецЕсли;
Если УчетДенежныхСредствПоОбособленнымПодразделениям Тогда
ТекстСубконто = \"&ВидСубконто\";
Запрос.УстановитьПараметр(\"ВидСубконто\",ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделения
БезОбразованияЮрЛица);
УсловиеПоСубконто = \"И Субконто1 = &ОбособленноеПодразделениеОрганизации\";
Запрос.УстановитьПараметр(\"ОбособленноеПодразделениеОрганизации\", ОбособленноеПодразделениеОрганизации);
Иначе
ТекстСубконто = \"\";
УсловиеПоСубконто = \"\";
КонецЕсли;
Запрос.Текст=\"ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.Период КАК Период,
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстаток КАК ВалютнаяСуммаНачальныйОстаток,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйОстаток КАК ВалютнаяСуммаКонечныйОстаток,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт КАК ВалютнаяСуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт КАК ВалютнаяСуммаОборотКт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, ДЕНЬ, Движения, Счет = &Счет,\" + ТекстСубконто + \", Организация = &Организация \" + УсловиеПоСубконто + \") КАК ХозрасчетныйОстаткиИОбороты
|\"+ ТекстФильтр+
\"УПОРЯДОЧИТЬ ПО
| Период\";
Результат=Запрос.Выполнить().Выбрать();
//Вывод шапки
Макет = ПолучитьМакет(\"КнигаПринятыхВыданных\");
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка\");
ДокументРезультат.Вывести(ОбластьМакета);
//Вывод таблицы
Пока Результат.Следующий() Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка\");
ОбластьМакета.Параметры.Дата = Результат.Период;
Если НЕ ВалютнаяКасса Тогда
ОбластьМакета.Параметры.ОстатокНачало = Результат.СуммаНачальныйОстаток;
ОбластьМакета.Параметры.Расход = Результат.СуммаОборотКт;
ОбластьМакета.Параметры.Приход = Результат.СуммаОборотДт;
ОбластьМакета.Параметры.ОстатокКонец = Результат.СуммаКонечныйОстаток;
Иначе
Если (Результат.ВалютнаяСуммаОборотКт=0)И(Результат.ВалютнаяСуммаОборотДт=0) Тогда
//валютную кассу могут еще трогать и переоценки
Продолжить;
КонецЕсли;
ОбластьМакета.Параметры.ОстатокНачало = Результат.ВалютнаяСуммаНачальныйОстаток;
ОбластьМакета.Параметры.Расход = Результат.ВалютнаяСуммаОборотКт;
ОбластьМакета.Параметры.Приход = Результат.ВалютнаяСуммаОборотДт;
ОбластьМакета.Параметры.ОстатокКонец = Результат.ВалютнаяСуммаКонечныйОстаток;
КонецЕсли;
ДокументРезультат.Вывести(ОбластьМакета);
КонецЦикла;
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
КонецПроцедуры
Функция СформироватьСтруктуруНомеровЛистов(УчетДенежныхСредствПоОбособленнымПодразделени
ям)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(\"ДатаНач\",НачалоГода(ДатаНач));
Запрос.УстановитьПараметр(\"ДатаКон\",КонецДня(ДатаКон));
Запрос.УстановитьПараметр(\"Организация\",Организация);
Если Валюта = мВалютаРегламентированногоУчета Тогда
ВалютнаяКасса = Ложь;
ТекстФильтр = \"\";
Запрос.УстановитьПараметр(\"Счет\", ПланыСчетов.Хозрасчетный.КассаВНациональнойВалюте);
Иначе
ВалютнаяКасса = Истина;
ТекстФильтр = \"ГДЕ
| ХозрасчетныйОбороты.Валюта = &Валюта
|\";
Запрос.УстановитьПараметр(\"Валюта\",Валюта);
Запрос.УстановитьПараметр(\"Счет\",ПланыСчетов.Хозрасчетный.КассаВИностраннойВалюте);
КонецЕсли;
Если НЕ УчетДенежныхСредствПоОбособленнымПодразделениям Тогда
ТекстСубконто = \"\";
Иначе
ТекстСубконто = \"&Субконто\";
Если ПустаяСтрока(ТекстФильтр) Тогда
ТекстФильтр = \"ГДЕ
| ХозрасчетныйОбороты.Субконто1 = &ОбособленноеПодразделениеОрганизации
|\";
Иначе
ТекстФильтр = ТекстФильтр + \" И
| ХозрасчетныйОбороты.Субконто1 = &ОбособленноеПодразделениеОрганизации
|\";
КонецЕсли;
Запрос.УстановитьПараметр(\"Субконто\", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделенияБезОбр
азованияЮрЛица);
Запрос.УстановитьПараметр(\"ОбособленноеПодразделениеОрганизации\", ОбособленноеПодразделениеОрганизации);
КонецЕсли;
Запрос.Текст=\"ВЫБРАТЬ
| ХозрасчетныйОбороты.Период КАК Период
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, День, Счет = &Счет,\"+ТекстСубконто+\", Организация = &Организация) КАК ХозрасчетныйОбороты
|\"+ ТекстФильтр+
\"УПОРЯДОЧИТЬ ПО
| Период\";
Выборка = Запрос.Выполнить().Выбрать();
СтруктураВозврата = Новый Структура();
СоответствиеНомеровМесяц = Новый Соответствие();
СоответствиеНомеровГод = Новый Соответствие();
ТекГод = Неопределено;
ТекМесяц = Неопределено;
Пока Выборка.Следующий() Цикл
Если Месяц(Выборка.Период) <> ТекМесяц Тогда
ТекМесяц = Месяц(Выборка.Период);
НомерЛистаМесяц = 1;
КонецЕсли;
Если Год(Выборка.Период) <> ТекГод Тогда
Если ТекГод = Неопределено Тогда
НомерЛистаГод = НачальныйНомерЛиста;
Иначе
НомерЛистаГод = 1;
КонецЕсли;
ТекГод = Год(Выборка.Период);
КонецЕсли;
СоответствиеНомеровМесяц.Вставить(Выборка.Период, НомерЛистаМесяц);
СоответствиеНомеровГод.Вставить(Выборка.Период, НомерЛистаГод);
НомерЛистаМесяц = НомерЛистаМесяц +1;
НомерЛистаГод = НомерЛистагод + 1;
КонецЦикла;
СтруктураВозврата.Вставить(\"СоответствиеНомеровМесяц\", СоответствиеНомеровМесяц);
СтруктураВозврата.Вставить(\"СоответствиеНомеровГод\", СоответствиеНомеровГод);
Возврат СтруктураВозврата;
КонецФункции
Процедура СформироватьКассоваяКнига(ДокументРезультат)
//Запрос по остаткам и оборотам кассы
Запрос=Новый Запрос;
Запрос.УстановитьПараметр(\"ДатаНач\",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(\"ДатаКон\",КонецДня(ДатаКон));
Запрос.УстановитьПараметр(\"Организация\",Организация);
Если Валюта = мВалютаРегламентированногоУчета Тогда
ВалютнаяКасса = Ложь;
ТекстФильтр = \"\";
Запрос.УстановитьПараметр(\"Счет\",ПланыСчетов.Хозрасчетный.КассаВНациональнойВалюте);
Иначе
ВалютнаяКасса = Истина;
ТекстФильтр = \"ГДЕ
| ХозрасчетныйОстаткиИОбороты.Валюта = &Валюта
|\";
Запрос.УстановитьПараметр(\"Валюта\",Валюта);
Запрос.УстановитьПараметр(\"Счет\",ПланыСчетов.Хозрасчетный.КассаВИностраннойВалюте);
КонецЕсли;
УчетнаяПолитикаНеЗадана = Ложь;
УчетнаяПолитикаБУ = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаКон, УчетнаяПолитикаНеЗадана, Организация, \"Бух\");
УчетДенежныхСредствПоОбособленнымПодразделениям = Ложь;
БУ = ПланыСчетов.Хозрасчетный.КассаВНациональнойВалюте;
УчетДСПоОбособленнымПодразделениямВПланеСчетов = ?(БУ.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Обособле
нныеПодразделенияБезОбразованияЮрЛица, \"ВидСубконто\") = Неопределено, Ложь, Истина);
Если УчетнаяПолитикаБУ.Количество() > 0 Тогда
УчетДенежныхСредствПоОбособленнымПодразделениям = УчетнаяПолитикаБУ.ВестиУчетДенежныхСредствПоОбособленнымПодразделениям И УчетДСПоОбособленнымПодразделениямВПланеСчетов;
КонецЕсли;
Если УчетДенежныхСредствПоОбособленнымПодразделениям Тогда
ТекстСубконто = \"&ВидСубконто\";
Запрос.УстановитьПараметр(\"ВидСубконто\",ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбособленныеПодразделения
БезОбразованияЮрЛица);
УсловиеПоСубконто = \"И Субконто1 = &ОбособленноеПодразделениеОрганизации\";
Запрос.УстановитьПараметр(\"ОбособленноеПодразделениеОрганизации\", ОбособленноеПодразделениеОрганизации);
Иначе
ТекстСубконто = \"\";
УсловиеПоСубконто = \"\";
КонецЕсли;
Если ВалютнаяКасса Тогда
УсловиеПоСубконто = УсловиеПоСубконто + \" И Валюта = &Валюта\";
КонецЕсли;
Запрос.Текст=\"ВЫБРАТЬ
| ХозрасчетныйОбороты.Регистратор КАК Регистратор,
| ХозрасчетныйОстаткиИОбороты.Период КАК Период,
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокДт - ХозрасчетныйОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокКт КАК СуммаНачальныйОстаток,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт - ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт КАК СуммаКонечныйОстаток,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйРазвернутыйОстатокДт - ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйРазвернутыйОстатокКт КАК ВалютнаяСуммаНачальныйОстаток,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйРазвернутыйОстатокДт - ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйРазвернутыйОстатокКт КАК ВалютнаяСуммаКонечныйОстаток,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт КАК ВалютнаяСуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт КАК ВалютнаяСуммаОборотКт,
| ХозрасчетныйОбороты.КорСчет КАК КорСчет,
| ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаКорОборотДт,
| ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаКорОборотКт,
| ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт КАК ВалютнаяСуммаКорОборотДт,
| ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт КАК ВалютнаяСуммаКорОборотКт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, Движения, Счет = &Счет, \" + ТекстСубконто + \", Организация = &Организация \" + УсловиеПоСубконто + \") КАК ХозрасчетныйОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, Регистратор, Счет = &Счет, \" + ТекстСубконто + \", Организация = &Организация \" + УсловиеПоСубконто + \") КАК ХозрасчетныйОбороты
| ПО ХозрасчетныйОстаткиИОбороты.Период = НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Период,День)
|\"+ ТекстФильтр+
\"УПОРЯДОЧИТЬ ПО
| Период,
| ХозрасчетныйОбороты.Регистратор.МоментВремени
|ИТОГИ
| МАКСИМУМ(Период),
| МАКСИМУМ(СуммаНачальныйОстаток),
| МАКСИМУМ(СуммаКонечныйОстаток),
| МАКСИМУМ(СуммаОборотДт),
| МАКСИМУМ(СуммаОборотКт),
| СУММА(СуммаКорОборотДт),
| СУММА(СуммаКорОборотКт),
| МАКСИМУМ(ВалютнаяСуммаНачальныйОстаток),
| МАКСИМУМ(ВалютнаяСуммаКонечныйОстаток),
| МАКСИМУМ(ВалютнаяСуммаОборотДт),
| МАКСИМУМ(ВалютнаяСуммаОборотКт),
| СУММА(ВалютнаяСуммаКорОборотДт),
| СУММА(ВалютнаяСуммаКорОборотКт)
|ПО
| Регистратор\";
Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
СтруктураНомеров = СформироватьСтруктуруНомеровЛистов (УчетДенежныхСредствПоОбособленнымПодразделениям);
СоответствиеНомеровМесяц = СтруктураНомеров.СоответствиеНомеровМесяц;
СоответствиеНомеровГод = СтруктураНомеров.СоответствиеНомеровГод;
ТекДата = Дата(\"00010101\");
ТекРегистратор = \"\";
ОстатокЗаДень = 0;ВалютныйОстатокЗаДень = 0;
ПриходЗаДень = 0;ВалютныйПриходЗаДень = 0;
РасходЗаДень = 0;ВалютныйРасходЗаДень = 0;
КоличествоПКОЗаДень = 0;
КоличествоРКОЗаДень = 0;
ТаблицаСтрокДляВывода = Новый ТаблицаЗначений;
ТаблицаСтрокДляВывода.Колонки.Добавить(\"НомерОрдера\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"ДокументОрдер\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"Контрагент\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"Ордер\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"КоррСчет\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"Приход\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"ПриходВалюта\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"Валюта\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"Расход\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"РасходВалюта\");
ТаблицаСтрокДляВывода.Колонки.Добавить(\"РасходПриход\");
Макет = ПолучитьМакет(\"КассоваяКнига\");
Если ВыводитьТитульныйЛист Тогда
ОбластьМакета = Макет.ПолучитьОбласть(\"Титул\");
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, ДатаНач);
ОбластьМакета.Параметры.Год = Год(ДатаНач);
ОбластьМакета.Параметры.КодЕДРПОУ = УправлениеКонтактнойИнформацией.ПолучитьКодОрганизации(СведенияОбОрганизации);
ОбластьМакета.Параметры.НаименованиеОрганизации = СведенияОбОрганизации.ПолноеНаименование;
ДокументРезультат.Вывести(ОбластьМакета);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
Пока Результат.Следующий() Цикл
Если Результат.Период <> ТекДата Тогда
Если (ОстатокЗаДень<>0)или(ПриходЗаДень<>0)или(РасходЗаДень<>0) Тогда
ТаблицаСтрокДляВывода.Сортировать(\"РасходПриход Возр, НомерОрдера Возр\");
Для каждого Строка Из ТаблицаСтрокДляВывода Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка\");
ОбластьМакета.Параметры.Заполнить(Строка);
ДокументРезультат.Вывести(ОбластьМакета);
КонецЦикла;
ТаблицаСтрокДляВывода.Очистить();
ОбластьМакета = Макет.ПолучитьОбласть(\"ОстатокКонец\");
ОбластьМакета.Параметры.ОстатокКонец = ?(ОстатокЗаДень = 0, \"-\", ОстатокЗаДень);
ОбластьМакета.Параметры.Приход = ?(ПриходЗаДень = 0, \"-\", ПриходЗаДень);
ОбластьМакета.Параметры.Расход = ?(РасходЗаДень = 0, \"-\", РасходЗаДень);
Отбор = Новый Структура();
Отбор.Вставить(\"СтруктурнаяЕдиница\", Организация);
Отбор.Вставить(\"ОтветственноеЛицо\", Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер);
ОбластьМакета.Параметры.Бухгалтер = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(ТекДата, Отбор).ФизическоеЛицо.Наименование;
Отбор.Вставить(\"ОтветственноеЛицо\", Перечисления.ОтветственныеЛицаОрганизаций.Кассир);
ОбластьМакета.Параметры.Кассир = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(ТекДата, Отбор).ФизическоеЛицо.Наименование;
ФорматнаяСтрока = \"Л = uk_UA\";
КоличествоПКОЗаДень = ?(КоличествоПКОЗаДень = 0, \"- \", ЧислоПрописью(КоличествоПКОЗаДень, ФорматнаяСтрока));
КоличествоРКОЗаДень = ?(КоличествоРКОЗаДень = 0, \"- \", ЧислоПрописью(КоличествоРКОЗаДень, ФорматнаяСтрока));
КоличествоПКОЗаДень = СокрЛП(Лев(КоличествоПКОЗаДень, СтрДлина(КоличествоПКОЗаДень) - 3 ));
КоличествоРКОЗаДень = СокрЛП(Лев(КоличествоРКОЗаДень, СтрДлина(КоличествоРКОЗаДень) - 3 ));
ОбластьМакета.Параметры.КоличествоПКО = КоличествоПКОЗаДень;
ОбластьМакета.Параметры.КоличествоРКО = КоличествоРКОЗаДень;
Если ВалютнаяКасса Тогда
ОбластьМакета.Параметры.ОстатокКонецВалюта = ?(ВалютныйОстатокЗаДень = 0, \"\", Формат(ВалютныйОстатокЗаДень,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.ПриходВалюта = ?(ВалютныйПриходЗаДень = 0, \"\", Формат(ВалютныйПриходЗаДень,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.РасходВалюта = ?(ВалютныйРасходЗаДень = 0, \"\", Формат(ВалютныйРасходЗаДень,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.Валюта = Валюта.Наименование;
КонецЕсли;
// количество листов за месяц
Если ВидЛистаКассовойКниги = \"Конец месяца\" Тогда
Если Месяц(Результат.Период) <> Месяц(ТекДата) Тогда
ОбластьМакета.Параметры.КоличествоЛистовМесяц = \"Листів з початку місяця: \" + СоответствиеНомеровМесяц.Получить(НачалоДня(ТекДата));
КонецЕсли;
КонецЕсли;
// количество листов за год
Если ВидЛистаКассовойКниги = \"Конец года\" Тогда
Если Месяц(Результат.Период) <> Месяц(ТекДата) Тогда
ОбластьМакета.Параметры.КоличествоЛистовМесяц = \"Листів з початку місяця: \" + СоответствиеНомеровМесяц.Получить(НачалоДня(ТекДата));
КонецЕсли;
Если Год(Результат.Период) <> Год(ТекДата) Тогда
ОбластьМакета.Параметры.КоличествоЛистовГод = \"Листів з початку року: \" + СоответствиеНомеровГод.Получить(НачалоДня(ТекДата));
КонецЕсли;
КонецЕсли;
ДокументРезультат.Вывести(ОбластьМакета);
КоличествоПКОЗаДень = 0;
КоличествоРКОЗаДень = 0;
КонецЕсли;
ТекДата = Результат.Период;
ОбластьМакета = Макет.ПолучитьОбласть(\"Шапка\");
ЧислоДокумента = Формат(Результат.Период,\"ДФ=\'дд\';Л=uk_UA\");
ДатаДокумента = Формат(Результат.Период,\"ДФ=\'дд ММММ ггггр.\';Л=uk_UA\");
ДатаДокументаБезЧисла = Прав(ДатаДокумента, СтрДлина(ДатаДокумента) - 2);
ОбластьМакета.Параметры.ДатаПрописью = \"\"\"\" + ЧислоДокумента + \"\"\"\" + ДатаДокументаБезЧисла;
// номер листа
ОбластьМакета.Параметры.НомерЛиста = СоответствиеНомеровГод.Получить(НачалоДня(ТекДата));
ДокументРезультат.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(\"ОстатокНачало\");
ОбластьМакета.Параметры.ОстатокНачало = ?(Результат.СуммаНачальныйОстаток = 0, \"-\", Результат.СуммаНачальныйОстаток);
Если ВалютнаяКасса Тогда
ОбластьМакета.Параметры.ОстатокНачалоВалюта = ?(Результат.ВалютнаяСуммаНачальныйОстаток = 0, \"\",Формат(Результат.ВалютнаяСуммаНачальныйОстаток,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.Валюта = Валюта.Наименование;
КонецЕсли;
ДокументРезультат.Вывести(ОбластьМакета);
ОстатокЗаДень = Результат.СуммаКонечныйОстаток;
ПриходЗаДень = Результат.СуммаОборотДт;
РасходЗаДень = Результат.СуммаОборотКт;
ВалютныйОстатокЗаДень = Результат.ВалютнаяСуммаКонечныйОстаток;
ВалютныйПриходЗаДень = Результат.ВалютнаяСуммаОборотДт;
ВалютныйРасходЗаДень = Результат.ВалютнаяСуммаОборотКт;
КонецЕсли;
Строка = ТаблицаСтрокДляВывода.Добавить();
Строка.ДокументОрдер = Результат.Регистратор;
Если Результат.Регистратор <> ТекРегистратор Тогда
ТекРегистратор = Результат.Регистратор;
Если ТипЗнч(ТекРегистратор) = Тип(\"ДокументСсылка.ОперацияБух\") Тогда
//Тут мы ничего не знаем
Строка.НомерОрдера = \"\";
Строка.Контрагент = \"\";
ИначеЕсли ТипЗнч(ТекРегистратор) = Тип(\"ДокументСсылка.ПриходныйКассовыйОрдер\") Тогда
Строка.НомерОрдера = ОбщегоНазначения.ПреобразоватьВЧисло(Результат.Регистратор.НомерОрдера);
Если Строка.НомерОрдера = 0 Тогда
Строка.НомерОрдера = Результат.Регистратор.НомерОрдера;
КонецЕсли;
Строка.Контрагент = Результат.Регистратор.ПринятоОт;
КоличествоПКОЗаДень = КоличествоПКОЗаДень + 1;
ИначеЕсли ТипЗнч(ТекРегистратор) = Тип(\"ДокументСсылка.РасходныйКассовыйОрдер\") Тогда
Строка.НомерОрдера = ОбщегоНазначения.ПреобразоватьВЧисло(Результат.Регистратор.НомерОрдера);
Если Строка.НомерОрдера = 0 Тогда
Строка.НомерОрдера = Результат.Регистратор.НомерОрдера;
КонецЕсли;
Строка.Контрагент = Результат.Регистратор.Выдать;
КоличествоРКОЗаДень = КоличествоРКОЗаДень + 1;
Иначе
//Попробуем найти для него ордер
Ордер = ОрдерПоРегистратору(Результат.Регистратор);
Строка.НомерОрдера = ОбщегоНазначения.ПреобразоватьВЧисло(Результат.Регистратор.НомерОрдера);
Если Строка.НомерОрдера = 0 Тогда
Строка.НомерОрдера = Ордер.НомерОрдера;
КонецЕсли;
Строка.Контрагент = Ордер.ПринятоОт;
КонецЕсли;
КонецЕсли;
РезультатПоСчетам = Результат.Выбрать();
СписокСчетов = \"\"; Разделитель = \"\";
ЕстьКурсоваяРазница = Ложь;
Пока РезультатПоСчетам.Следующий() Цикл
СписокСчетов = СписокСчетов + Разделитель + Строка(РезультатПоСчетам.КорСчет);
Разделитель = \", \";
Если ВалютнаяКасса И (РезультатПоСчетам.СуммаКорОборотДт <> 0 И РезультатПоСчетам.ВалютнаяСуммаКорОборотДт = 0)
ИЛИ (РезультатПоСчетам.СуммаКорОборотКт <> 0 И РезультатПоСчетам.ВалютнаяСуммаКорОборотКт=0) Тогда
ЕстьКурсоваяРазница = Истина;
КонецЕсли;
КонецЦикла;
Строка.КоррСчет = СписокСчетов;
Строка.Приход = ?(Результат.СуммаКорОборотДт = 0, \"-\", Результат.СуммаКорОборотДт);
Строка.Расход = ?(Результат.СуммаКорОборотКт = 0, \"-\", Результат.СуммаКорОборотКт);
Строка.РасходПриход = ?(Результат.СуммаКорОборотДт = 0, 1, 0);
Если ВалютнаяКасса Тогда
Строка.ПриходВалюта = ?(Результат.ВалютнаяСуммаКорОборотДт = 0, \"\", Формат(Результат.ВалютнаяСуммаКорОборотДт,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
Строка.РасходВалюта = ?(Результат.ВалютнаяСуммаКорОборотКт = 0, \"\", Формат(Результат.ВалютнаяСуммаКорОборотКт,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
Строка.Валюта = Валюта.Наименование;
Если ЕстьКурсоваяРазница Тогда
Если ПустаяСтрока(Строка.Контрагент) Тогда
Строка.Контрагент = \"Курсова різниця\";
Иначе
Строка.Контрагент = Строка.Контрагент + \", Курсова різниця\";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Строка.Ордер = Результат.Регистратор;
ДатаПоследнейЗаписи = Результат.Период;
КонецЦикла;
Если (ОстатокЗаДень<>0)или(ПриходЗаДень<>0)или(РасходЗаДень<>0) Тогда
ТаблицаСтрокДляВывода.Сортировать(\"РасходПриход Возр, НомерОрдера Возр\");
Для каждого Строка Из ТаблицаСтрокДляВывода Цикл
ОбластьМакета = Макет.ПолучитьОбласть(\"Строка\");
ОбластьМакета.Параметры.Заполнить(Строка);
ДокументРезультат.Вывести(ОбластьМакета);
КонецЦикла;
ТаблицаСтрокДляВывода.Очистить();
ОбластьМакета = Макет.ПолучитьОбласть(\"ОстатокКонец\");
ОбластьМакета.Параметры.ОстатокКонец = ?(ОстатокЗаДень = 0, \"-\", ОстатокЗаДень);
ОбластьМакета.Параметры.Приход = ?(ПриходЗаДень = 0, \"-\", ПриходЗаДень);
ОбластьМакета.Параметры.Расход = ?(РасходЗаДень = 0, \"-\", РасходЗаДень);
Отбор = Новый Структура();
Отбор.Вставить(\"СтруктурнаяЕдиница\", Организация);
Отбор.Вставить(\"ОтветственноеЛицо\", Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер);
ОбластьМакета.Параметры.Бухгалтер = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(ДатаПоследнейЗап
иси, Отбор).ФизическоеЛицо.Наименование;
Отбор.Вставить(\"ОтветственноеЛицо\", Перечисления.ОтветственныеЛицаОрганизаций.Кассир);
ОбластьМакета.Параметры.Кассир = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(ДатаПоследнейЗап
иси, Отбор).ФизическоеЛицо.Наименование;
ФорматнаяСтрока = \"Л = uk_UA\";
КоличествоПКОЗаДень = ?(КоличествоПКОЗаДень = 0, \"- \", ЧислоПрописью(КоличествоПКОЗаДень, ФорматнаяСтрока));
КоличествоРКОЗаДень = ?(КоличествоРКОЗаДень = 0, \"- \", ЧислоПрописью(КоличествоРКОЗаДень, ФорматнаяСтрока));
КоличествоПКОЗаДень = СокрЛП(Лев(КоличествоПКОЗаДень, СтрДлина(КоличествоПКОЗаДень) - 3 ));
КоличествоРКОЗаДень = СокрЛП(Лев(КоличествоРКОЗаДень, СтрДлина(КоличествоРКОЗаДень) - 3 ));
ОбластьМакета.Параметры.КоличествоПКО = КоличествоПКОЗаДень;
ОбластьМакета.Параметры.КоличествоРКО = КоличествоРКОЗаДень;
Если ВалютнаяКасса Тогда
ОбластьМакета.Параметры.ОстатокКонецВалюта = ?(ВалютныйОстатокЗаДень = 0, \"\", Формат(ВалютныйОстатокЗаДень,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.ПриходВалюта = ?(ВалютныйПриходЗаДень = 0, \"\", Формат(ВалютныйПриходЗаДень,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.РасходВалюта = ?(ВалютныйРасходЗаДень = 0, \"\", Формат(ВалютныйРасходЗаДень,\"ЧЦ=15; ЧДЦ=2; ЧН=0,00\"));
ОбластьМакета.Параметры.Валюта = Валюта.Наименование;
КонецЕсли;
// количество листов за месяц
Если ВидЛистаКассовойКниги = \"Конец месяца\" Тогда
ОбластьМакета.Параметры.КоличествоЛистовМесяц = \"Листів з початку місяця: \" + СоответствиеНомеровМесяц.Получить(НачалоДня(ТекДата));
КонецЕсли;
// количество листов за год
Если ВидЛистаКассовойКниги = \"Конец года\" Тогда
ОбластьМакета.Параметры.КоличествоЛистовМесяц = \"Листів з початку місяця: \" + СоответствиеНомеровМесяц.Получить(НачалоДня(ТекДата));
ОбластьМакета.Параметры.КоличествоЛистовГод = \"Листів з початку року: \" + СоответствиеНомеровГод.Получить(НачалоДня(ТекДата));
КонецЕсли;
ДокументРезультат.Вывести(ОбластьМакета);
КонецЕсли;
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
КонецПроцедуры
Функция ПроверкаПериода()
ПроверкаПройдена=Истина;
Если ДатаНач > ДатаКон Тогда
Предупреждение(\"Неправильно задан период формирования отчета!\"
\"Дата начала больше даты окончания периода.\");
ПроверкаПройдена=Ложь;
ИначеЕсли ДатаНач=\'00010101\' Тогда
Предупреждение(\"Не указана дата начала отчета\");
ПроверкаПройдена=Ложь;
ИначеЕсли ДатаКон=\'00010101\' Тогда
Предупреждение(\"Не указана дата конца отчета\");
ПроверкаПройдена=Ложь;
КонецЕсли;
Возврат ПроверкаПройдена;
КонецФункции // ПроверкаПериода()
Процедура СформироватьОтчет(ДокументРезультат, ВидОтчета) Экспорт
Если НЕ ПроверкаПериода() Тогда
Возврат;
КонецЕсли;
Если Организация.Пустая() Тогда
Предупреждение(\"Не выбрана организация\");
Возврат;
КонецЕсли;
Если Валюта.Пустая() Тогда
Предупреждение(\"Не выбрана валюта\");
Возврат;
КонецЕсли;
ДокументРезультат.Очистить();
Если ВидОтчета = \"Журнал регистрации приходных ордеров\" Тогда
СформироватьЖурналРегистрацииПриходных(ДокументРезультат);
ИначеЕсли ВидОтчета = \"Журнал регистрации расходных ордеров\" Тогда
СформироватьЖурналРегистрацииРасходных(ДокументРезультат);
ИначеЕсли ВидОтчета = \"Журнал регистрации приходных и расходных ордеров\" Тогда
СформироватьЖурналРегистрацииРасходныхИПриходных(ДокументРезультат);
ИначеЕсли ВидОтчета = \"Книга учета принятых и выданных денег\" Тогда
СформироватьКнигаПринятыхВыданных(ДокументРезультат);
ИначеЕсли ВидОтчета = \"Кассовая книга\" Тогда
СформироватьКассоваяКнига(ДокументРезультат);
КонецЕсли;
КонецПроцедуры // СформироватьРезультат()
НП = Новый НастройкаПериода;
мВалютаРегламентированногоУчета = глЗначениеПеременной(\"ВалютаРегламентированногоУчета\");
#КонецЕсли
! |
| Ознакомьтесь с правилами форума.
|
Эта ошибка возникает только если выбрать период с 01.08.2012 г.или ранее. Если выбрать период с 02.08.2012 г. такой ошибки нет.