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