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