
- •Задание
- •5. Основные вопросы, подлежащие разработке.
- •Раздел 2.2 отражает процесс проектирования информационного обеспечения задачи [1, 2, 4, 5, 8, 9] и должен содержать:
- •Раздел 2.3 отражает процесс проектирования программного обеспечения задачи [1, 2, 4, 5, 8, 9] и должен содержать:
- •6. Список литературы
- •Введение
- •1Аналитическая часть
- •1.1Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «как есть»
- •1.1.1Характеристика предприятия и его деятельности
- •1.1.2Организационная структура управления предприятием
- •1.2Характеристика комплекса задач, задачи и обоснование необходимости автоматизации
- •1.2.1Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов
- •1.2.2Определение места проектируемой задачи в комплексе задач и ее описание
- •Расчет эффекта автоматизации
- •1.2.3Анализ системы обеспечения информационной безопасности и защиты информации
- •5.1.2Выбор и обоснование стратегии автоматизации задачи
- •5.1.3Выбор и обоснование способа приобретения ис для автоматизации задачи
- •5.2Обоснование проектных решений
- •5.2.1Обоснование проектных решений по техническому обеспечению
- •5.2.2Обоснование проектных решений по информационному обеспечению
- •5.2.3Обоснование проектных решений по программному обеспечению
- •6Проектная часть
- •6.1Разработка проекта автоматизации
- •6.1.1Этапы жизненного цикла проекта автоматизации
- •6.1.2Ожидаемые риски на этапах жизненного цикла и их описание
- •6.2Информационное обеспечение задачи
- •6.2.1Информационная модель и её описание
- •6.2.2Характеристика нормативно-справочной, входной и оперативной информации
- •6.2.3Характеристика результатной информации
- •6.2.4Формализация расчётов показателей
- •6.3.1Общие положения (дерево функций и сценарий диалога)
- •6.3.2Характеристика базы данных
- •6.3.3Структурная схема пакета (дерево вызова программных модулей)
- •6.3.4Описание программных модулей
- •6.4Контрольный пример реализации проекта и его описание
- •7Обоснование экономической эффективности проекта
- •7.1 Выбор и обоснование методики расчёта экономической эффективности
- •7.2Расчёт показателей экономической эффективности проекта
- •Базовый вариант работы старшего администратора
- •Проектный вариант
- •Список литературы
Список литературы
Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие, М.: Гелиос АРВ, 2007. - 368 стр.
Вигерс Карл, Разработка требований к программному обеспечению, Пер, с англ. - М.:Издательско-торговый дом "Русская Редакция", 2008. -576 стр.
Гвоздева Т. В., Б. А. Баллод, Проектирование информационных систем, М, Издательство: Феникс, 2009 г., 512 стр.
ГОСТ Р ИСО/МЭК 12207/99. Государственный стандарт РФ. Информационная технология. Процессы жизненного цикла информационных систем. Издание официальное. - М., 1999
Емельянова Н. З., Партыка Т. Л., И. И. Попов, Проектирование информационных систем, М, Издательство: Форум, 2009 г., 432 стр.
Емельянова Н. З., Т. Л. Партыка, И. И. Попов, М, Издательство Форум, 2007 г., , 416 стр.
Илюшечкин В. М. , Основы использования и проектирования баз данных, М, Издательство Юрайт, 2010 г., 224 стр.
Котляров В. П., Т. В. Коликова, Основы тестирования программного обеспечения, Издательства: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2009 г., 288 стр.
Кузнецов С. Д., Основы баз данных, М, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007 г., 488 стр.
Молчанов А. Ю., Системное программное обеспечение, М, Издательство: Питер, 2010 г., 400 стр.
Незнанов А. А., Программирование и алгоритмизация, М, Издательство: Академия, 2010 г., 304 стр.
Профессиональная разработка в системе 1С:Предприятие 8, Ажеронок В.А., Габец А.П, Издательство: 1С-Паблишинг, 2009 г., 416 стр.
Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. ГОСТ 19.701-90 (ИСО 5807-85) / Государственный комитет СССР по управлению качеством продукции и стандартам, 01.01.1992.
Фирма 1С. WWW:http://www.1c.ru
Чипига А. Ф., Информационная безопасность автоматизированных систем, М, Издательство: Гелиос АРВ, 2010 г., 336 стр.
Приложение. Листинг модуля формы
//Блок вызова обработок и предворительное заполнение
Процедура КонсольЗапросовНажатие(Элемент)
ОбработкаКонсольЗапросов = Обработки.КонсольЗапросов.Создать();
ОбработкаКонсольЗапросов.ПолучитьФорму(,ЭтаФорма).Открыть();
КонецПроцедуры
Процедура КонсольОтчетовНажатие(Элемент)
ОбработкаКонсольОтчетов = Обработки.КонсольОтчетов.Создать();
ОбработкаКонсольОтчетов.ПолучитьФорму(,ЭтаФорма).Открыть();
КонецПроцедуры
Процедура ПоискСсылокНаОбъектыНажатие(Элемент)
ТекущиеДанные = ЭлементыФормы.Гость.Значение;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
ОбработкаПоискСсылок = Обработки.ПоискСсылок.ПолучитьФорму();
ОбработкаПоискСсылок.ОтчетОбъект.ОбъектСсылка = ТекущиеДанные;
ОбработкаПоискСсылок.Открыть();
КонецПроцедуры
Процедура ПоискИЗаменаЗначенийНажатие(Элемент)
ОбработкаПоискИЗаменаЗначений = Обработки.ПоискИЗаменаЗначений.Создать();
ОбработкаПоискИЗаменаЗначений.ПолучитьФорму(,ЭтаФорма).Открыть();
КонецПроцедуры
//Блок вызова регистров с предзаполненными отборами по гостю
Процедура РегистрПродажиНажатие(Элемент)
ТекущиеДанные = ЭлементыФормы.Гость.Значение;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Форма = РегистрыНакопления.Продажи.ПолучитьФормуСписка();
Форма.РегистрНакопленияСписок.Отбор.Гость.ВидСравнения = ВидСравнения.Равно;
Форма.РегистрНакопленияСписок.Отбор.Гость.Значение = ТекущиеДанные;
Форма.РегистрНакопленияСписок.Отбор.Гость.Использование = Истина;
Форма.Открыть();
КонецПроцедуры
Процедура ВзаиморасчетыСГостямиНажатие(Элемент)
ТекущиеДанные = ЭлементыФормы.Гость.Значение;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Форма = РегистрыНакопления.ВзаиморасчетыСГостями.ПолучитьФормуСписка();
Форма.РегистрНакопленияСписок.Отбор.Гость.ВидСравнения = ВидСравнения.Равно;
Форма.РегистрНакопленияСписок.Отбор.Гость.Значение = ТекущиеДанные;
Форма.РегистрНакопленияСписок.Отбор.Гость.Использование = Истина;
Форма.Открыть();
КонецПроцедуры
Процедура ВзаиморасчетыКомпанииНажатие(Элемент)
Если ЗначениеЗаполнено(Гость) Тогда
Контрагент = Гость.КонтрагентПоУмолчанию;
Иначе
Контрагент = Неопределено;
КонецЕсли;
Форма = РегистрыНакопления.ВзаиморасчетыКомпании.ПолучитьФормуСписка();
Форма.РегистрНакопленияСписок.Отбор.Контрагент.ВидСравнения = ВидСравнения.Равно;
Форма.РегистрНакопленияСписок.Отбор.Контрагент.Значение = Контрагент;
Форма.РегистрНакопленияСписок.Отбор.Контрагент.Использование = Истина;
Форма.Открыть();
КонецПроцедуры
//Блок вызова отчетов с предзаполненными отборами по гостю
Процедура ОтчетПоПлатежам(Элемент)
ТекущиеДанные = ЭлементыФормы.Гость.Значение;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
// заполним параметры отчета
Отчет = Отчеты.Платежи.Создать();
Отчет.ВидОтчета = Перечисления.ВидыОтчетов.Обороты;
Отчет.РежимВыводаОтчета = Перечисления.РежимыВыводаОтчета.ТабличныйДокумент;
Отчет.РежимНастройки = Перечисления.РежимыНастройкиОтчетов.Эксперт;
Отчет.ИмяФормыНастроек = "НастройкиОбороты";
Отчет.ЗаполнитьНачальныеНастройки("ТекстЗапросаОбороты");
//фильтры
Отчет.ДатаНачала = Неопределено;
Отчет.ДатаКонца = Неопределено;
//Отчет.ПостроительОтчета.Отбор.("Гость");
Отчет.ПостроительОтчета.Отбор.Гость.ВидСравнения = ВидСравнения.Равно;
Отчет.ПостроительОтчета.Отбор.Гость.Значение = ТекущиеДанные;
Отчет.ПостроительОтчета.Отбор.Гость.Использование = Истина;
// измерения
Отчет.ПостроительОтчета.ИзмеренияСтроки.Очистить();
Отчет.ПостроительОтчета.ИзмеренияКолонки.Очистить();
// получить отчет и выведем его
ФормаОтчета = ПолучитьОбщуюФорму("Отчет",,ЭтаФорма);
ФормаОтчета.ОтчетОбъект = Отчет;
ФормаОтчета.Заголовок = "Продажи товаров";
ФормаОтчета.Открыть();
КонецПроцедуры
Процедура ОтчетПоПродажам(Элемент)
ТекущиеДанные = ЭлементыФормы.Гость.Значение;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
// заполним параметры отчета
Отчет = Отчеты.Продажи.Создать();
Отчет.ВидОтчета = Перечисления.ВидыОтчетов.Обороты;
Отчет.РежимВыводаОтчета = Перечисления.РежимыВыводаОтчета.ТабличныйДокумент;
Отчет.РежимНастройки = Перечисления.РежимыНастройкиОтчетов.Эксперт;
Отчет.ИмяФормыНастроек = "НастройкиОбороты";
Отчет.ЗаполнитьНачальныеНастройки("ТекстЗапросаОбороты");
//фильтры
Отчет.ДатаНачала = Неопределено;
Отчет.ДатаКонца = Неопределено;
Отчет.ПостроительОтчета.Отбор.Гость.ВидСравнения = ВидСравнения.Равно;
Отчет.ПостроительОтчета.Отбор.Гость.Значение = ТекущиеДанные;
Отчет.ПостроительОтчета.Отбор.Гость.Использование = Истина;
// измерения
Отчет.ПостроительОтчета.ИзмеренияСтроки.Очистить();
Отчет.ПостроительОтчета.ИзмеренияКолонки.Очистить();
// получить отчет и выведем его
ФормаОтчета = ПолучитьОбщуюФорму("Отчет",,ЭтаФорма);
ФормаОтчета.ОтчетОбъект = Отчет;
ФормаОтчета.Заголовок = "Продажи товаров";
ФормаОтчета.Открыть();
КонецПроцедуры
Процедура ГостьПриИзменении(Элемент)
ОбновитьДанные()
КонецПроцедуры
Процедура ОбновитьДанные()
ТекущиеДанные = ЭлементыФормы.Гость.Значение;
//Продажи на госте
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| ПродажиОбороты.Гость,
| ПродажиОбороты.ХозОперация,
| ПродажиОбороты.СтавкаНДС,
| ПродажиОбороты.Плательщик,
| ПродажиОбороты.КоличествоОборот,
| ПродажиОбороты.КоличествоДопОборот,
| ПродажиОбороты.СуммаОборот,
| ПродажиОбороты.СуммаУпрОборот,
| ПродажиОбороты.СуммаНДСОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
|ГДЕ
| ПродажиОбороты.Гость = &ТекГость
| И ПродажиОбороты.Плательщик = ПродажиОбороты.Гость");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
РезультатЗапросаВзаиморасчетов = Запрос.Выполнить();
Продажи = 0;
Если НЕ РезультатЗапросаВзаиморасчетов.Пустой() тогда
ТекущиеВзаиморасчеты = РезультатЗапросаВзаиморасчетов.Выбрать();
Пока ТекущиеВзаиморасчеты.Следующий() цикл
Продажи = Продажи + ТекущиеВзаиморасчеты.СуммаОборот;
КонецЦикла;
КонецЕсли;
ИтогоПродажи = Продажи;
ЭлементыФормы.Продажи.Значение = ИтогоПродажи;
КонецЕсли;
//Продажи на контрагенте
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| ПродажиОбороты.Гость,
| ПродажиОбороты.ХозОперация,
| ПродажиОбороты.СтавкаНДС,
| ПродажиОбороты.Плательщик,
| ПродажиОбороты.КоличествоОборот,
| ПродажиОбороты.КоличествоДопОборот,
| ПродажиОбороты.СуммаОборот,
| ПродажиОбороты.СуммаУпрОборот,
| ПродажиОбороты.СуммаНДСОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
|ГДЕ
| ПродажиОбороты.Гость = &ТекГость
| И ПродажиОбороты.Плательщик <> ПродажиОбороты.Гость");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
РезультатЗапросаВзаиморасчетов = Запрос.Выполнить();
ПродажиНаКонраненте = 0;
Если НЕ РезультатЗапросаВзаиморасчетов.Пустой() тогда
ТекущиеВзаиморасчеты = РезультатЗапросаВзаиморасчетов.Выбрать();
Пока ТекущиеВзаиморасчеты.Следующий() цикл
ПродажиНаКонраненте = ПродажиНаКонраненте + ТекущиеВзаиморасчеты.СуммаОборот;
КонецЦикла;
КонецЕсли;
ИтогоПродажиНаКонтрагенте = ПродажиНаКонраненте;
ЭлементыФормы.ПродажиНаКонтрагенте.Значение = ИтогоПродажиНаКонтрагенте;
КонецЕсли;
//Платежи гостя
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| ВзаиморасчетыСГостямиОстаткиИОбороты.Гость,
| ВзаиморасчетыСГостямиОстаткиИОбороты.СуммаОплатПриход
|ИЗ
| РегистрНакопления.ВзаиморасчетыСГостями.ОстаткиИОбороты КАК ВзаиморасчетыСГостямиОстаткиИОбороты
|ГДЕ
| ВзаиморасчетыСГостямиОстаткиИОбороты.Гость = &ТекГость");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
РезультатЗапросаПлатежей = Запрос.Выполнить();
Платежи = 0;
Списано = 0;
Если НЕ РезультатЗапросаПлатежей.Пустой() тогда
ТекущиеВзаиморасчетыПлатежи = РезультатЗапросаПлатежей.Выбрать();
Пока ТекущиеВзаиморасчетыПлатежи.Следующий() цикл
Платежи = Платежи + ТекущиеВзаиморасчетыПлатежи.СуммаОплатПриход;
КонецЦикла;
КонецЕсли;
//ИтогоСписано = Списано;
ИтогоПлатежи = Платежи;
ЭлементыФормы.Платежи.Значение = ИтогоПлатежи;
//ПлатежиМинусСписано = ИтогоПлатежи - ИтогоСписано;
КонецЕсли;
//Остаток
ОстатокИтого = ИтогоПродажи - ИтогоПлатежи;
ЭлементыФормы.Остаток.Значение = ОстатокИтого;
// Продажи и начисления по рекистру "Взаиморасчеты с гостями"
//Если ТекущиеДанные<>Неопределено Тогда
// Запрос = Новый Запрос("ВЫБРАТЬ
// | ВзаиморасчетыСГостямиОстаткиИОбороты.Гость,
// | ВзаиморасчетыСГостямиОстаткиИОбороты.СуммаОплатКонечныйОстаток,
// | ВзаиморасчетыСГостямиОстаткиИОбороты.СуммаОплатПриход,
// | ВзаиморасчетыСГостямиОстаткиИОбороты.СуммаОплатРасход
// |ИЗ
// | РегистрНакопления.ВзаиморасчетыСГостями.ОстаткиИОбороты КАК ВзаиморасчетыСГостямиОстаткиИОбороты
// |ГДЕ
// | ВзаиморасчетыСГостямиОстаткиИОбороты.Гость = &ТекГость");
// Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
// РезультатЗапросаПлатежей = Запрос.Выполнить();
// ПлатежиРег = 0;
// ПродажиРег = 0;
// СписаноРег = 0;
// Если НЕ РезультатЗапросаПлатежей.Пустой() тогда
// ТекущиеВзаиморасчетыПлатежи = РезультатЗапросаПлатежей.Выбрать();
// Пока ТекущиеВзаиморасчетыПлатежи.Следующий() цикл
//
// ПлатежиРег = ПлатежиРег + ТекущиеВзаиморасчетыПлатежи.СуммаОплатПриход;
// ПродажиРег = ПродажиРег + ТекущиеВзаиморасчетыПлатежи.СуммаОплатРасход;
//
// КонецЦикла;
// КонецЕсли;
// ИтогоСписаноРег = ПродажиРег;
// ИтогоПлатежиРег = ПлатежиРег;
// ЭлементыФормы.ПлатежиРег.Значение = ПлатежиРег;
// ЭлементыФормы.ПродажиРег.Значение = ПродажиРег;
// ЭлементыФормы.ОстатокРег.Значение = ТекущиеВзаиморасчетыПлатежи.СуммаОплатКонечныйОстаток;
//КонецЕсли;
// Путевки гостя
мДатаНачала = ?(ЗначениеЗаполнено(ДатаНачала), ДатаНачала, '19000101');
мДатаОкончания = ?(ЗначениеЗаполнено(ДатаОкончания), ДатаОкончания, '39991231');
//ТекущиеДанные = ЭлементыФормы.Гость.Значение;
ТаблицаПутевок.Очистить();
//Отберем путевки по гостю
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| Путевка.НомерПутевки КАК НомерПутевки,
| Путевка.ДатаНачала КАК ДатаС,
| Путевка.ДатаКонца КАК ДатаПо,
| Путевка.СуммаДокумента КАК Сумма,
| Путевка.Ссылка КАК Ссылка,
| Путевка.ИсточникФинансирования,
| ВЫБОР
| КОГДА Путевка.СтатусПутевки = ЗНАЧЕНИЕ(Перечисление.СтатусыПутевок.Выдана)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Выдана
|ИЗ
| Документ.Путевка КАК Путевка
|ГДЕ
| Путевка.Гость = &ТекГость
| И (Путевка.СтатусПутевки = ЗНАЧЕНИЕ(Перечисление.СтатусыПутевок.Заполнена)
| ИЛИ Путевка.СтатусПутевки = ЗНАЧЕНИЕ(Перечисление.СтатусыПутевок.Выдана))
| И Путевка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| ДатаС");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
Запрос.УстановитьПараметр("ДатаНачала", мДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", мДатаОкончания);
ТаблицаПутевок = Запрос.Выполнить().Выгрузить();
КонецЕсли;
// Чеки гостя
ТаблицаПлатежей.Очистить();
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЧекНаОплату.Дата КАК Дата,
| ЧекНаОплату.СуммаДокумента,
| ЧекНаОплату.Автор,
| ЧекНаОплату.Ссылка,
| ЧекНаОплату.ХозОперация
|ИЗ
| Документ.ЧекНаОплату КАК ЧекНаОплату
|ГДЕ
| ЧекНаОплату.Гость = &ТекГость
| И ЧекНаОплату.Проведен = ИСТИНА
| И ЧекНаОплату.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| Дата");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
Запрос.УстановитьПараметр("ДатаНачала", мДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", мДатаОкончания);
ТаблицаПлатежей = Запрос.Выполнить().Выгрузить();
КонецЕсли;
//Акты гостя
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| АктОбОказанииУслуг.Дата КАК Дата,
| АктОбОказанииУслуг.Номер КАК Номер,
| АктОбОказанииУслуг.ПодразделениеКомпании КАК Гостиница,
| АктОбОказанииУслуг.Ссылка,
| ЕСТЬNULL(АктОбОказанииУслуг.СуммаДокумента, 0) КАК СуммаАкта,
| СУММА(ЕСТЬNULL(ЧекНаОплату.СуммаДокумента, 0)) КАК СуммаЧека,
| АктОбОказанииУслуг.ХозОперация КАК ХозОперация,
| АктОбОказанииУслуг.ЛицевойСчет
|ИЗ
| Документ.АктОбОказанииУслуг КАК АктОбОказанииУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекНаОплату КАК ЧекНаОплату
| ПО АктОбОказанииУслуг.Ссылка = ЧекНаОплату.ДокументОснование
|ГДЕ
| АктОбОказанииУслуг.Гость = &ТекГость
| И АктОбОказанииУслуг.Проведен = ИСТИНА
|
|СГРУППИРОВАТЬ ПО
| АктОбОказанииУслуг.Ссылка,
| АктОбОказанииУслуг.Дата,
| АктОбОказанииУслуг.Номер,
| АктОбОказанииУслуг.ПодразделениеКомпании,
| ЕСТЬNULL(АктОбОказанииУслуг.СуммаДокумента, 0),
| АктОбОказанииУслуг.ХозОперация,
| АктОбОказанииУслуг.ЛицевойСчет
|
|УПОРЯДОЧИТЬ ПО
| Дата УБЫВ");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
//Запрос.УстановитьПараметр("ДатаНачала", мДатаНачала);
//Запрос.УстановитьПараметр("ДатаОкончания", мДатаОкончания);
ТаблицаАктов = Запрос.Выполнить().Выгрузить();
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаспределениеОплат.Дата КАК Дата,
| РаспределениеОплат.Автор,
| РаспределениеОплат.ДоговорВзаиморасчетов,
| РаспределениеОплат.Контрагент,
| РаспределениеОплат.Ссылка,
| РаспределениеОплатДолги.СуммаДолга,
| РаспределениеОплатДолги.Сумма,
| РаспределениеОплатДолги.ЛицевойСчет
|ИЗ
| Документ.РаспределениеОплат.Долги КАК РаспределениеОплатДолги
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеОплат КАК РаспределениеОплат
| ПО РаспределениеОплатДолги.Ссылка = РаспределениеОплат.Ссылка
|ГДЕ
| РаспределениеОплат.Проведен = ИСТИНА
| И РаспределениеОплатДолги.Гость = &ТекГость
| И РаспределениеОплат.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| Дата");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
Запрос.УстановитьПараметр("ДатаНачала", мДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", мДатаОкончания);
ТаблицаРаспределений = Запрос.Выполнить().Выгрузить();
КонецЕсли;
Если ЗначениеЗаполнено(Гость) Тогда
//Контрагент = Гость.КонтрагентПоУмолчанию;
//ЭлементыФормы.КонтрагентПоУмолчанию.Заголовок = "Контрагент по умолчанию"+ ": " +ТекущиеДанные.КонтрагентПоУмолчанию;
КонтрагентВыбор = Гость.КонтрагентПоУмолчанию;
ЭлементыФормы.КонтрагентВыбор.Значение= ТекущиеДанные.КонтрагентПоУмолчанию;
Иначе
//Контрагент = Неопределено;
КонтрагентВыбор = Неопределено;
КонецЕсли;
//Если Контрагент<>Неопределено Тогда
Если КонтрагентВыбор<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| Выписка.Дата КАК Дата,
| ВыпискаСостав.Контрагент,
| ВыпискаСостав.ДоговорВзаиморасчетов,
| ВыпискаСостав.СуммаПриход,
| Выписка.Автор,
| Выписка.Ссылка
|ИЗ
| Документ.Выписка.Состав КАК ВыпискаСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Выписка КАК Выписка
| ПО ВыпискаСостав.Ссылка = Выписка.Ссылка
|ГДЕ
| Выписка.Проведен = ИСТИНА
//| И ВыпискаСостав.Контрагент = &Контрагент
| И ВыпискаСостав.Контрагент = &КонтрагентВыбор
| И Выписка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| Дата");
Запрос.УстановитьПараметр("КонтрагентВыбор", КонтрагентВыбор);
Запрос.УстановитьПараметр("ДатаНачала", мДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", мДатаОкончания);
ТаблицаВыписок = Запрос.Выполнить().Выгрузить();
КонецЕсли;
//Размещения гостя
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| Размещение.Ссылка,
| Размещение.ДатаНачала КАК ДатаНачала,
| Размещение.ДатаКонца,
| РазмещениеГости.Гость,
| Размещение.ХозОперация,
| Размещение.Дата КАК Дата,
| Размещение.Номер,
| РазмещениеГости.ЛицевойСчет,
| Размещение.НомерРазмещения
|ИЗ
| Документ.Размещение.Гости КАК РазмещениеГости
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Размещение КАК Размещение
| ПО РазмещениеГости.Ссылка = Размещение.Ссылка
|ГДЕ
| Размещение.Проведен = ИСТИНА
| И РазмещениеГости.Гость = &ТекГость
| И Размещение.ХозОперация.Код <> ""000465""
| И Размещение.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Размещение.ДокументОснование");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
Запрос.УстановитьПараметр("ДатаНачала", мДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", мДатаОкончания);
ТаблицаРазмещений = Запрос.Выполнить().Выгрузить();
КонецЕсли;
//Долги гостя
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВЫБОР
| КОГДА ВзаиморасчетыСГостямиОстатки.Размещение.ДатаИзмененияПараметров = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ВзаиморасчетыСГостямиОстатки.Размещение.ДатаНачала
| ИНАЧЕ ВзаиморасчетыСГостямиОстатки.Размещение.ДатаИзмененияПараметров
| КОНЕЦ КАК НачалоПериода,
| ВзаиморасчетыСГостямиОстатки.Размещение.ПодразделениеКомпании КАК Подразделение,
| ВзаиморасчетыСГостямиОстатки.Гость КАК Гость,
| ВзаиморасчетыСГостямиОстатки.Размещение.Контрагент КАК Контрагент,
| ВзаиморасчетыСГостямиОстатки.Размещение.ДоговорВзаиморасчетов КАК Договор,
| ВзаиморасчетыСГостямиОстатки.Размещение КАК Размещение,
| ВзаиморасчетыСГостямиОстатки.Бронирование КАК Бронирование,
| ВзаиморасчетыСГостямиОстатки.СуммаОстаток,
| ВзаиморасчетыСГостямиОстатки.Размещение.Ссылка
|ПОМЕСТИТЬ втЗадолженности
|ИЗ
| РегистрНакопления.ВзаиморасчетыСГостями.Остатки(, ) КАК ВзаиморасчетыСГостямиОстатки
|ГДЕ
| ВзаиморасчетыСГостямиОстатки.Гость = &ТекГость
|
|ИНДЕКСИРОВАТЬ ПО
| Гость,
| Контрагент,
| Договор,
| Подразделение,
| Размещение,
| Бронирование
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втЗадолженности.НачалоПериода КАК НачалоПериода,
| ПродажиПроживание.КонецПериода КАК КонецПериода,
| втЗадолженности.Подразделение КАК Подразделение,
| втЗадолженности.Гость КАК Гость,
| втЗадолженности.Контрагент КАК Контрагент,
| втЗадолженности.Договор КАК Договор,
| втЗадолженности.Размещение КАК Размещение,
| втЗадолженности.Бронирование КАК Бронирование,
| ВЫБОР
| КОГДА ПродажиПроживание.КоличествоОборот = 0
| ТОГДА 0
| ИНАЧЕ ПродажиПроживание.СуммаОборот / ПродажиПроживание.КоличествоОборот
| КОНЕЦ КАК ПроживаниеЦена,
| ПродажиПроживание.КоличествоОборот КАК ПроживаниеКоличество,
| ПродажиПроживание.СуммаОборот КАК ПроживаниеСумма,
| ПродажиПрочие.КоличествоОборот КАК ПрочиеКоличество,
| ПродажиПрочие.СуммаОборот КАК ПрочиеСумма,
| втЗадолженности.СуммаОстаток,
| ПродажиПроживание.Размещение.Ссылка
|ПОМЕСТИТЬ втПродажиПроживание
|ИЗ
| втЗадолженности КАК втЗадолженности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| МАКСИМУМ(ВЫБОР
| КОГДА ПродажиОбороты.Регистратор.Дата > ПродажиОбороты.Размещение.ДатаКонца
| ТОГДА ПродажиОбороты.Размещение.ДатаКонца
| ИНАЧЕ ПродажиОбороты.Регистратор.Дата
| КОНЕЦ) КАК КонецПериода,
| ПродажиОбороты.Размещение КАК Размещение,
| СУММА(ВЫБОР
| КОГДА ПродажиОбороты.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.Проживание)
| ТОГДА ПродажиОбороты.КоличествоОборот
| ИНАЧЕ 0
| КОНЕЦ) КАК КоличествоОборот,
| СУММА(ПродажиОбороты.КоличествоДопОборот) КАК КоличествоДопОборот,
| СУММА(ПродажиОбороты.СуммаОборот) КАК СуммаОборот,
| СУММА(ПродажиОбороты.СуммаУпрОборот) КАК СуммаУпрОборот,
| СУММА(ПродажиОбороты.СуммаНДСОборот) КАК СуммаНДСОборот
| ИЗ
| РегистрНакопления.Продажи.Обороты(
| ,
| ,
| Регистратор,
| ВСоставеТарифа = ИСТИНА
| И Размещение В
| (ВЫБРАТЬ
| Задолженности.Размещение
| ИЗ
| втЗадолженности КАК Задолженности)) КАК ПродажиОбороты
|
| СГРУППИРОВАТЬ ПО
| ПродажиОбороты.Размещение) КАК ПродажиПроживание
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПродажиОбороты.Размещение КАК Размещение,
| СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот,
| СУММА(ПродажиОбороты.КоличествоДопОборот) КАК КоличествоДопОборот,
| СУММА(ПродажиОбороты.СуммаОборот) КАК СуммаОборот,
| СУММА(ПродажиОбороты.СуммаУпрОборот) КАК СуммаУпрОборот,
| СУММА(ПродажиОбороты.СуммаНДСОборот) КАК СуммаНДСОборот
| ИЗ
| РегистрНакопления.Продажи.Обороты(
| ,
| ,
| Регистратор,
| ВСоставеТарифа = ЛОЖЬ
| И Размещение В
| (ВЫБРАТЬ
| Задолженности.Размещение
| ИЗ
| втЗадолженности КАК Задолженности)) КАК ПродажиОбороты
|
| СГРУППИРОВАТЬ ПО
| ПродажиОбороты.Размещение) КАК ПродажиПрочие
| ПО ПродажиПроживание.Размещение = ПродажиПрочие.Размещение
| ПО втЗадолженности.Размещение = ПродажиПроживание.Размещение
|
|ИНДЕКСИРОВАТЬ ПО
| НачалоПериода,
| КонецПериода,
| Подразделение,
| Гость,
| Контрагент,
| Договор,
| Размещение,
| Бронирование
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втПродажиПроживание.НачалоПериода КАК НачалоПериода,
| втПродажиПроживание.КонецПериода,
| втПродажиПроживание.Подразделение КАК Подразделение,
| втПродажиПроживание.Размещение.НомерРазмещения КАК НомерРазмещения,
| втПродажиПроживание.Гость КАК Гость,
| втПродажиПроживание.Контрагент,
| втПродажиПроживание.Договор,
| втПродажиПроживание.Размещение,
| втПродажиПроживание.Бронирование,
| втПродажиПроживание.ПроживаниеЦена,
| втПродажиПроживание.ПроживаниеКоличество КАК ПроживаниеКоличество,
| втПродажиПроживание.ПроживаниеСумма КАК ПроживаниеСумма,
| втПродажиПроживание.ПрочиеКоличество КАК ПрочиеКоличество,
| втПродажиПроживание.ПрочиеСумма КАК ПрочиеСумма,
| втПродажиПроживание.СуммаОстаток КАК СуммаОстаток,
| втПродажиПроживание.Размещение.Ссылка
|ИЗ
| втПродажиПроживание КАК втПродажиПроживание
|
|УПОРЯДОЧИТЬ ПО
| НачалоПериода
|ИТОГИ
| СУММА(ПроживаниеКоличество),
| СУММА(ПроживаниеСумма),
| СУММА(ПрочиеКоличество),
| СУММА(ПрочиеСумма),
| СУММА(СуммаОстаток)
|ПО
| Гость,
| Подразделение");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
ДолгиГостя = Запрос.Выполнить().Выгрузить();
КонецЕсли;
//Выезда гостя
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| Выезд.Ссылка,
| Выезд.ХозОперация,
| Выезд.ТипНомера,
| Выезд.НомерРазмещения,
| Выезд.СуммаДокумента,
| Выезд.Дата КАК Дата
|ИЗ
| Документ.Выезд.Гости КАК ВыездГости
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Выезд КАК Выезд
| ПО ВыездГости.Ссылка = Выезд.Ссылка
|ГДЕ
| Выезд.Проведен = ИСТИНА
| И ВыездГости.Гость = &ТекГость
|
|УПОРЯДОЧИТЬ ПО
| Дата");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
ТаблицаВыездов = Запрос.Выполнить().Выгрузить();
КонецЕсли;
//Брони гостя
Если ТекущиеДанные<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| Бронирование.Дата КАК Дата,
| БронированиеГости.НомерРазмещения,
| БронированиеГости.Гость,
| БронированиеГости.ДатаНачала,
| БронированиеГости.ДатаКонца,
| БронированиеГости.ЛицевойСчет,
| Бронирование.Ссылка,
| Бронирование.ХозОперация КАК ХозОперация
|ИЗ
| Документ.Бронирование.Гости КАК БронированиеГости
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Бронирование КАК Бронирование
| ПО БронированиеГости.Ссылка = Бронирование.Ссылка
|ГДЕ
| Бронирование.Проведен = ИСТИНА
| И Бронирование.Гости.Гость = &ТекГость
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| ХозОперация
|ИТОГИ ПО
| Бронирование.ПодразделениеКомпании");
Запрос.УстановитьПараметр("ТекГость", ТекущиеДанные);
ТаблицаБроней = Запрос.Выполнить().Выгрузить();
КонецЕсли;
КонецПроцедуры
//Блок по работе со списками документов
Процедура тпПлатежиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельЧекиПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельЧекиПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.тпПлатежи.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
//Форма.ТолькоПросмотр = Истина;
Форма.Открыть();
КонецПроцедуры
Процедура тпВыпискиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельВыпискиПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельВыпискиПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.тпВыписки.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Форма.ТолькоПросмотр = Истина;
Форма.Открыть();
КонецПроцедуры
Процедура тпРаспределенияВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяРаспределенияПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяРаспределенияПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.тпПлатежи2.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Форма.Открыть();
КонецПроцедуры
Процедура ТаблицаРазмещенийВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельРазмещенияПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельРазмещенияПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.ТаблицаРазмещений.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Форма.Открыть();
КонецПроцедуры
Процедура ТаблицаВыездовВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельВыездыПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельВыездыПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.ТаблицаВыездов.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Форма.Открыть();
КонецПроцедуры
Процедура КонтрагентВыборПриИзменении(Элемент)
Если ЗначениеЗаполнено(КонтрагентВыбор) Тогда
ТекущиеДанные = ЭлементыФормы.КонтрагентВыбор.Значение;
Иначе
КонтрагентВыбор = Неопределено;
КонецЕсли;
Если КонтрагентВыбор<>Неопределено Тогда
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
| Выписка.Дата КАК Дата,
| ВыпискаСостав.Контрагент,
| ВыпискаСостав.ДоговорВзаиморасчетов,
| ВыпискаСостав.СуммаПриход,
| Выписка.Автор,
| Выписка.Ссылка
|ИЗ
| Документ.Выписка.Состав КАК ВыпискаСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Выписка КАК Выписка
| ПО ВыпискаСостав.Ссылка = Выписка.Ссылка
|ГДЕ
| Выписка.Проведен = ИСТИНА
| И ВыпискаСостав.Контрагент = &КонтрагентВыбор
|
|УПОРЯДОЧИТЬ ПО
| Дата");
Запрос.УстановитьПараметр("КонтрагентВыбор", КонтрагентВыбор);
ТаблицаВыписок = Запрос.Выполнить().Выгрузить();
КонецЕсли;
КонецПроцедуры
Процедура тпПлатежи1ПриПолученииДанных(Элемент, ОформленияСтрок)
Для Каждого ОформлениеСтроки из ОформленияСтрок Цикл
дкСписокПриВыводеСтроки(ЭтаФорма, Элемент, ОформлениеСтроки, ОформлениеСтроки.ДанныеСтроки);
КонецЦикла;
КонецПроцедуры
Процедура ОбновитьНажатие(Элемент)
ОбновитьДанные()
КонецПроцедуры
Процедура тпТаблицаАктовВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельАктыПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельАктыПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.тпТаблицаАктов.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
//Форма.ТолькоПросмотр = Истина;
Форма.Открыть();
КонецПроцедуры
Процедура тпПутевкиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельПутевкиПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельПутевкиПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.тпПутевки.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
//Форма.ТолькоПросмотр = Истина;
Форма.Открыть();
КонецПроцедуры
Процедура ТаблицаБронейВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КоманднаяПанельБрониПросмотр(Неопределено);
КонецПроцедуры
Процедура КоманднаяПанельБрониПросмотр(Кнопка)
ТекущиеДанные = ЭлементыФормы.ТаблицаБроней.ТекущиеДанные;
Если ТекущиеДанные=Неопределено Тогда
Возврат;
КонецЕсли;
Об = ТекущиеДанные.Ссылка.ПолучитьОбъект();
Форма = Об.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Форма.Открыть();
КонецПроцедуры
// печать развернутого счета
Процедура КоманднаяПанельСписокГостейСчет(Кнопка)
ТекущиеДанные = ЭлементыФормы.Гость;
Если ТекущиеДанные<>Неопределено Тогда
// печатаем в общую форму
ПечатнаяФорма = ПолучитьОбщуюФорму("ПечатнаяФормаДокументов", ТекущиеДанные.РазмещениеКорневой.ПолучитьОбъект());
// получим обработку
ИмяОбработки = "ПечатьСчетов_2";
ОбработкаНастройки = обПолучитьВнешнююОбработкуОбъект(ИмяОбработки);
Если ОбработкаНастройки = Неопределено Тогда
ОбработкаНастройки = Обработки[ИмяОбработки].Создать();
КонецЕсли;
ОбработкаНастройки.Размещение = ТекущиеДанные.РазмещениеКорневой;
ОбработкаНастройки.Гость = ТекущиеДанные.Гость;
ОбработкаНастройки.ПодразделениеКомпании = ТекущиеДанные.ПодразделениеКомпании;
ТабДок = ОбработкаНастройки.ПечатьСчета();
// выводим
ПечатнаяФорма.ЭлементыФормы.ТабличныйДокумент.Вывести(ТабДок);
ПечатнаяФорма.Объект = ТекущиеДанные.РазмещениеКорневой.ПолучитьОбъект();
ПечатнаяФорма.ОбъектПредставление = "Счет";
ПечатнаяФорма.Открыть();
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьСписокНАНажатие(Элемент)
Запрос = Новый Запрос("ВЫБРАТЬ
| НочнойАудит.Ссылка,
| НочнойАудит.Дата,
| НочнойАудит.ПодразделениеКомпании
|ИЗ
| Документ.НочнойАудит КАК НочнойАудит
|ГДЕ
| НочнойАудит.Дата МЕЖДУ &ДатаОтбораНАс И &ДатаОтбораНАпо
| И НочнойАудит.ПодразделениеКомпании = &ПодразделениеКомпании");
Запрос.УстановитьПараметр("ПодразделениеКомпании", Подразделение);
Запрос.УстановитьПараметр("ДатаОтбораНАс", ДатаОтбораНАс);
Запрос.УстановитьПараметр("ДатаОтбораНАпо", ДатаОтбораНАпо);
ТабличноеПолеНА = Запрос.Выполнить().Выгрузить();
КонецПроцедуры
Процедура ПересчитатьНажатие(Элемент)
Запрос = Новый Запрос("ВЫБРАТЬ
| НочнойАудит.Ссылка,
| НочнойАудит.Дата,
| НочнойАудит.ПодразделениеКомпании
|ИЗ
| Документ.НочнойАудит КАК НочнойАудит
|ГДЕ
| НочнойАудит.Дата МЕЖДУ &ДатаОтбораНАс И &ДатаОтбораНАпо
| И НочнойАудит.ПодразделениеКомпании = &ПодразделениеКомпании");
Запрос.УстановитьПараметр("ПодразделениеКомпании", Подразделение);
Запрос.УстановитьПараметр("ДатаОтбораНАс", ДатаОтбораНАс);
Запрос.УстановитьПараметр("ДатаОтбораНАпо", ДатаОтбораНАпо);
Выборка = Запрос.Выполнить().Выбрать();
Количество = Выборка.Количество();
Сч = 0;
Индикатор = 0;
Пока Выборка.Следующий() Цикл
Индикатор = 100*Сч/Количество;
// РУЛОК ->
НачатьТранзакцию();
// РУЛОК <-
// пересчитываем
Об = Выборка.Ссылка.ПолучитьОбъект();
// РУЛОК ->
//Об.Услуги.Очистить();
Если Об.Метаданные().ТабличныеЧасти.Найти("Услуги") <> Неопределено Тогда
Об.Услуги.Очистить();
КонецЕсли;
// РУЛОК <-
Попытка
// РУЛОК ->
Если Об.Метаданные().Имя = "Выезд" тогда
Об.Записать(РежимЗаписиДокумента.ОтменаПроведения,РежимПроведенияДокумента.Неоперативный);
КонецЕсли;
// РУЛОК <-
Об.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
// РУЛОК ->
ЗафиксироватьТранзакцию();
// РУЛОК <-
Исключение
// РУЛОК ->
ОтменитьТранзакцию();
// РУЛОК <-
Сообщить(ОписаниеОшибки(),СтатусСообщения.Важное);
Сч = Сч + 1;
КонецПопытки;
КонецЦикла;
Индикатор = 100;
КонецПроцедуры