#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)";
КонецПроцедуры
#КонецОбласти
Функция КодВидаЗачисленияПоСпособуВыплат(ЗарплатныйПроект, СпособВыплат) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЗарплатныеПроектыВидыЗачисленийПоСпособамВыплат.ВидЗачисления КАК ВидЗачисления
|ИЗ
| Справочник.ЗарплатныеПроекты.ВидыЗачисленийПоСпособамВыплат КАК ЗарплатныеПроектыВидыЗачисленийПоСпособамВыплат
|ГДЕ
| ЗарплатныеПроектыВидыЗачисленийПоСпособамВыплат.Ссылка = &ЗарплатныйПроект
| И ЗарплатныеПроектыВидыЗачисленийПоСпособамВыплат.СпособВыплат = &СпособВыплат";
Запрос.УстановитьПараметр("ЗарплатныйПроект", ЗарплатныйПроект);
Запрос.УстановитьПараметр("СпособВыплат", СпособВыплат);
Выборка = Запрос.Выполнить().Выбрать();
Если Не Выборка.Количество() = 0 Тогда
Выборка.Следующий();
Возврат Выборка.ВидЗачисления;
Иначе
Возврат "01";
КонецЕсли;
КонецФункции
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция ИспользующиеДиректБанк() Экспорт
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьОбменСБанками") Тогда
Возврат Новый Массив
КонецЕсли;
Возврат ИспользующиеЭлектронныйДокументооборотСБанком(Истина)
КонецФункции
Функция ИспользующиеВыгрузкуФайла() Экспорт
Возврат ИспользующиеЭлектронныйДокументооборотСБанком(Ложь)
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция МаксимальнаяДлинаИмениДержателяКарты(ЗарплатныйПроект) Экспорт
МаксимальнаяДлинаИмениДержателяКарты =
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
ЗарплатныйПроект,
"МаксимальнаяДлинаИмениДержателяКарты");
Возврат
?(ЗначениеЗаполнено(МаксимальнаяДлинаИмениДержателяКарты),
МаксимальнаяДлинаИмениДержателяКарты,
МаксимальнаяДлинаИмениДержателяКартыПоУмолчанию());
КонецФункции
Функция МаксимальнаяДлинаИмениДержателяКартыПоУмолчанию()
Возврат 19
КонецФункции
Функция ИспользующиеЭлектронныйДокументооборотСБанком(ДиректБанк)
ИспользующиеЭлектронныйДокументооборотСБанком = Новый Массив;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗарплатныеПроекты.Организация КАК Организация,
| ЗарплатныеПроекты.Банк КАК Банк
|ИЗ
| Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты
|ГДЕ
| ЗарплатныеПроекты.ИспользоватьЭлектронныйДокументооборотСБанком = ИСТИНА
| И НЕ ЗарплатныеПроекты.ВАрхиве
| И НЕ ЗарплатныеПроекты.ПометкаУдаления";
БанкиЗарплатныхПроектов = Запрос.Выполнить().Выгрузить();
БанкиЗарплатныхПроектовСНастройкамиОбмена = ОбменСБанками.НастройкиОбмена(БанкиЗарплатныхПроектов);
БанкиСПрямымОбменом = ОбменСБанками.БанкиСПрямымОбменом();
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| БанкиСНастройкамиОбмена.Организация КАК Организация,
| БанкиСНастройкамиОбмена.Банк КАК Банк,
| БанкиСНастройкамиОбмена.ЕстьНастройкаОбмена КАК ЕстьНастройкаОбмена
|ПОМЕСТИТЬ ВТБанкиСНастройкамиОбмена
|ИЗ
| &БанкиСНастройкамиОбмена КАК БанкиСНастройкамиОбмена
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫРАЗИТЬ(БанкиСПрямымОбменом.БИК КАК СТРОКА(9)) КАК БИК,
| БанкиСПрямымОбменом.ЗарплатныйПроект КАК ЗарплатныйПроект
|ПОМЕСТИТЬ ВТБанкиСПрямымОбменом
|ИЗ
| &БанкиСПрямымОбменом КАК БанкиСПрямымОбменом
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗарплатныеПроекты.Ссылка КАК ЗарплатныйПроект,
| ВЫБОР
| КОГДА БанкиСПрямымОбменом.БИК ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ПрямойОбмен,
| БанкиСНастройкамиОбмена.ЕстьНастройкаОбмена КАК ЕстьНастройкаОбмена
|ИЗ
| Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТБанкиСНастройкамиОбмена КАК БанкиСНастройкамиОбмена
| ПО ЗарплатныеПроекты.Банк = БанкиСНастройкамиОбмена.Банк
| И ЗарплатныеПроекты.Организация = БанкиСНастройкамиОбмена.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ ВТБанкиСПрямымОбменом КАК БанкиСПрямымОбменом
| ПО ЗарплатныеПроекты.Банк.Код = БанкиСПрямымОбменом.БИК
| И (БанкиСПрямымОбменом.ЗарплатныйПроект = ИСТИНА)
| И (НЕ ЗарплатныеПроекты.ВАрхиве)
| И (НЕ ЗарплатныеПроекты.ПометкаУдаления)";
Запрос.УстановитьПараметр("БанкиСНастройкамиОбмена", БанкиЗарплатныхПроектовСНастройкамиОбмена);
Запрос.УстановитьПараметр("БанкиСПрямымОбменом", БанкиСПрямымОбменом);
Запрос.УстановитьПараметр("ДиректБанк", ДиректБанк);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если (ДиректБанк = Выборка.ПрямойОбмен)
Или (ДиректБанк = Ложь И Выборка.ПрямойОбмен = Истина И Выборка.ЕстьНастройкаОбмена = Ложь) Тогда
ИспользующиеЭлектронныйДокументооборотСБанком.Добавить(Выборка.ЗарплатныйПроект)
КонецЕсли
КонецЦикла;
Возврат ИспользующиеЭлектронныйДокументооборотСБанком;
КонецФункции
#Область ПервоначальноеЗаполнениеИОбновлениеИнформационнойБазы
Процедура ЗаполнитьМаксимальнаяДлинаИмениДержателяКарты(ПараметрыОбновления = Неопределено) Экспорт
ОбновлениеИБ = ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗарплатныеПроекты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты
|ГДЕ
| ЗарплатныеПроекты.МаксимальнаяДлинаИмениДержателяКарты = 0";
ОписаниеБлокировки = ОбновлениеИБ.ОписаниеБлокируемыхДанных(Метаданные.Справочники.ЗарплатныеПроекты);
ОбновляемыеДанные = ОбновлениеИБ.ВыполнитьЗапросПолученияОбновляемыхДанных(Запрос, ПараметрыОбновления);
Если ОбновляемыеДанные.Пустой() Тогда
ОбновлениеИБ.ЗавершитьОбработчик(ПараметрыОбновления);
Возврат;
Иначе
ОбновлениеИБ.ПродолжитьОбработчик(ПараметрыОбновления);
КонецЕсли;
ВыборкаОбновляемыхДанных = ОбновляемыеДанные.Выбрать();
Пока ВыборкаОбновляемыхДанных.Следующий() Цикл
ОписаниеБлокировки.ПоляБлокировки.Ссылка = ВыборкаОбновляемыхДанных.Ссылка;
Если Не ОбновлениеИБ.НачатьОбновлениеДанных(ОписаниеБлокировки, ПараметрыОбновления) Тогда
Возврат
КонецЕсли;
ЗарплатныйПроект = ВыборкаОбновляемыхДанных.Ссылка.ПолучитьОбъект();
ЗарплатныйПроект.МаксимальнаяДлинаИмениДержателяКарты = МаксимальнаяДлинаИмениДержателяКартыПоУмолчанию();
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ЗарплатныйПроект);
ОбновлениеИБ.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли