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