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