Skip to content

Instantly share code, notes, and snippets.

@ulvham
Last active August 29, 2015 14:17
Show Gist options
  • Save ulvham/cf020c6d4736f5014036 to your computer and use it in GitHub Desktop.
Save ulvham/cf020c6d4736f5014036 to your computer and use it in GitHub Desktop.
bla
Функция ПодключитьКоннектор() Экспорт
ОбъектСоед = Новый COMОбъект("V82.COMConnector.1");
СтрокаПодключения = "Srvr=10.4.122.9; Ref=Abon_Demo;Usr=Администратор;Pwd=ufp;";
Соединение = ОбъектСоед.Connect(СтрокаПодключения);
Возврат Соединение;
КонецФункции
Соединение = ПодключитьКоннектор();
Запрос0 = Соединение.NewObject("Запрос");
// Текст ="
//|ВЫБРАТЬ
//| ДосудебнаяРабота.Ссылка,
//| ДосудебнаяРабота.Должник
//|ИЗ
//| Документ.ДосудебнаяРабота КАК ДосудебнаяРабота
//|ГДЕ
//| ДосудебнаяРабота.Дата > ДАТАВРЕМЯ(2015, 1, 20)";
Текст ="
|ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ), МЕСЯЦ, 1) КАК ДатаСоб,
| ВЫРАЗИТЬ(СУММА(ВложенныйЗапрос.СуммаСоб)*100 КАК ЧИСЛО(15,0)) КАК СуммаСоб,
| ВложенныйЗапрос.ДосудебнаяРаботаСсылка КАК Ссылка,
| ВложенныйЗапрос.ДосудебнаяРаботаДолжник КАК Должник,
| ВложенныйЗапрос.Ссылка КАК Событие,
| ВЫРАЗИТЬ(ВложенныйЗапрос1.СуммаДолга*100 КАК ЧИСЛО(15,0)) КАК СуммаДолга,
| ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ), МЕСЯЦ, 1) КАК Поле1,
| ВложенныйЗапрос.ДосудебнаяРаботаСудопроизводство КАК Судопроизводство,
| ВложенныйЗапрос.ДосудебнаяРаботаОтветственный КАК Ответственный,
| ВложенныйЗапрос.ДатаСоб КАК ДатаСобПолн
|ИЗ
| (ВЫБРАТЬ
| ДокументСобытие.Дата КАК ДатаСоб,
| ДокументСобытие.ДосудебнаяРабота КАК ДосудебнаяРабота,
| СУММА(ДокументСобытие.Сумма) КАК СуммаСоб,
| ДокументСобытие.ДосудебнаяРабота.Ссылка КАК ДосудебнаяРаботаСсылка,
| ДокументСобытие.ДосудебнаяРабота.Должник КАК ДосудебнаяРаботаДолжник,
| ДокументСобытие.Ссылка КАК Ссылка,
| ДокументСобытие.ДосудебнаяРабота.Судопроизводство КАК ДосудебнаяРаботаСудопроизводство,
| ДокументСобытие.ДосудебнаяРабота.Ответственный КАК ДосудебнаяРаботаОтветственный
| ИЗ
| Документ.ДокументСобытие КАК ДокументСобытие
| ГДЕ
| ДокументСобытие.ПометкаУдаления = ЛОЖЬ
| И ДокументСобытие.Дата >= ДАТАВРЕМЯ(2015, 1, 1)
| И ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Ссылка, 0) <> 0
|
| СГРУППИРОВАТЬ ПО
| ДокументСобытие.ДосудебнаяРабота,
| ДокументСобытие.Дата,
| ДокументСобытие.ДосудебнаяРабота.Ссылка,
| ДокументСобытие.ДосудебнаяРабота.Должник,
| ДокументСобытие.Ссылка,
| ДокументСобытие.ДосудебнаяРабота.Судопроизводство,
| ДокументСобытие.ДосудебнаяРабота.Ответственный) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ДосудебнаяРаботаДолгиПоПериодамНаНачало.Ссылка.Ссылка КАК Ссылка,
| СУММА(ДосудебнаяРаботаДолгиПоПериодамНаНачало.СуммаДолга) КАК СуммаДолга
| ИЗ
| Документ.ДосудебнаяРабота.ДолгиПоПериодамНаНачало КАК ДосудебнаяРаботаДолгиПоПериодамНаНачало
|
| СГРУППИРОВАТЬ ПО
| ДосудебнаяРаботаДолгиПоПериодамНаНачало.Ссылка.Ссылка) КАК ВложенныйЗапрос1
| ПО ВложенныйЗапрос.ДосудебнаяРабота = ВложенныйЗапрос1.Ссылка
|ГДЕ
| ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ), МЕСЯЦ, 1) <> ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ), МЕСЯЦ, 1)
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.ДосудебнаяРаботаДолжник,
| ВложенныйЗапрос.ДосудебнаяРаботаСсылка,
| ВложенныйЗапрос1.СуммаДолга,
| ВложенныйЗапрос.ДосудебнаяРаботаСудопроизводство,
| ВложенныйЗапрос.ДосудебнаяРаботаОтветственный,
| ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ), МЕСЯЦ, 1),
| ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ), МЕСЯЦ, 1),
| ВложенныйЗапрос.ДатаСоб";
ИмяТаблицыФормы = "ДолгиПоПериодамНаНачало";
Запрос0.Текст = Текст;
Выборка = Запрос0.Выполнить().Выбрать();
//Резбля = Запрос0.Выполнить().Выгрузить().ВыгрузитьКолонку("СуммаСоб");
//Для Каждого ЭлементМассива из Резбля Цикл
// Сообщить(ЭлементМассива); // 100 300 500
// КонецЦикла;
//ВыборкаТабл = НовыйДокумент.ДолгиПоПериодамНаНачало.Загрузить(Рез);
Пока Выборка.Следующий() Цикл
СсылкаНаЛюбойДокумент = Выборка.Ссылка;
ОбъектДокумента = СсылкаНаЛюбойДокумент.ПолучитьОбъект();
Соединение.ПИРСервер.ДобавитьЗаписьВРегистрСведенийСостоянияДосудебнойРаботы(СсылкаНаЛюбойДокумент, Соединение.ПредопределенноеЗначение("Справочник.СостоянияДосудебнойРаботы.Завершено"), ТекущаяДата(), , , , "Обработка переноса событий на новую досудебную работу.");
НовыйДокумент = Соединение.Документы.ДосудебнаяРабота.СоздатьДокумент();
НовыйДокумент.Дата = Выборка.ДатаСобПолн;
НовыйДокумент.Должник = ОбъектДокумента.Должник;
НовыйДокумент.УчетныйМесяцНачала = ДобавитьМесяц(Выборка.ДатаСоб,-1);
НовыйДокумент.УчетныйМесяцОкончания = ДобавитьМесяц(Выборка.ДатаСоб,-1) + 60*60*90*24;
НовыйДокумент.Комментарий = ОбъектДокумента.Комментарий + "_ранее_[" + СсылкаНаЛюбойДокумент.Номер+ " от " + СсылкаНаЛюбойДокумент.Дата + "]";
НовыйДокумент.Ответственный = ОбъектДокумента.Ответственный;
НовыйДокумент.Судопроизводство = ОбъектДокумента.Судопроизводство;
НовыйДокумент.Записать();
НовыйДокументСсылка = НовыйДокумент.Ссылка;
СобСС = Выборка.Событие;
ОбъектСщбСС = СобСС.ПолучитьОбъект();
ОбъектСщбСС.ДосудебнаяРабота = НовыйДокументСсылка;
ОбъектСщбСС.Записать();
МЗ = Соединение.РегистрыСведений.СостоянияДокументовСобытий.СоздатьМенеджерЗаписи();
МЗ.ДокументСобытие = СобСС;
МЗ.Период = Выборка.Событие.Дата;
МЗ.Состояние = Соединение.ПредопределенноеЗначение("Справочник.СостоянияДокументов.Новый");
МЗ.Агент = Неопределено;
МЗ.Записать();
////ОбъектДокумента.НачислитьСкидку(10);
////ЗначениеВРеквизитФормы(ОбъектДокумента, "Объект");
//ОбъектДокумента.УчетныйМесяцОкончания = ОбъектДокумента.УчетныйМесяцНачала + 60*60*90*24;
//ОбъектДокумента.Записать();
УМДокумента = ОбъектДокумента.УчетныйМесяцНачала;//Выборка.ДатаСоб;//ДобавитьМесяц(ОбъектДокумента.УчетныйМесяцНачала,1);
//УМДокумента = ОбъектДокумента.УчетныйМесяцОкончания;
Запрос = Соединение.NewObject("Запрос");
Текст1 ="ВЫБРАТЬ
| ВложенныйЗапрос.Услуга КАК УслугаНаселению,
| ВложенныйЗапрос.ПериодДолга КАК ПериодДолга,
| СУММА(ВложенныйЗапрос.Сумма) КАК СуммаДолга
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА АвансыОстатки.УслугаНаселению = ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ПустаяСсылка)
| ТОГДА ЕСТЬNULL(НастройкиПараметровУчетаПоПодразделениям.УслугаДляПереносаАвансов, ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ПустаяСсылка))
| ИНАЧЕ АвансыОстатки.УслугаНаселению
| КОНЕЦ КАК Услуга,
| АвансыОстатки.ПериодДолга КАК ПериодДолга,
| АвансыОстатки.СуммаОстаток КАК Сумма
| ИЗ
| РегистрНакопления.Авансы.Остатки(
| ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&УчетныйМесяц, МЕСЯЦ), СЕКУНДА, 1),
| Абонент = &Абонент
| И (&ПоВсемУслугам
| ИЛИ УслугаНаселению = ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ГазоснабжениеПрироднымГазом))) КАК АвансыОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПараметровУчетаПоПодразделениям КАК НастройкиПараметровУчетаПоПодразделениям
| ПО АвансыОстатки.Подразделение = НастройкиПараметровУчетаПоПодразделениям.Подразделение
| И (НастройкиПараметровУчетаПоПодразделениям.ВидУслуг В (ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ГазоснабжениеПрироднымГазом)))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПодЗапрос.УслугаНаселению,
| ПодЗапрос.ПериодДолга,
| СУММА(ПодЗапрос.Сумма)
| ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ДолгиОстатки.УслугаНаселению = ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ГазоснабжениеПрироднымГазом)
| ИНАЧЕ ДолгиОстатки.УслугаНаселению
| КОНЕЦ КАК УслугаНаселению,
| ДолгиОстатки.ПериодДолга КАК ПериодДолга,
| ДолгиОстатки.СуммаОстаток КАК Сумма
| ИЗ
| РегистрНакопления.Долги.Остатки(
| ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&УчетныйМесяц, МЕСЯЦ), СЕКУНДА, 1),
| Абонент = &Абонент
| И (&ПоВсемУслугам
| ИЛИ УслугаНаселению = ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ГазоснабжениеПрироднымГазом))
| И ПериодДолга < &УчетныйМесяц) КАК ДолгиОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ПредоставленнаяРассрочкаОстатки.Соглашение.УслугаНаселению,
| ПредоставленнаяРассрочкаОстатки.Соглашение.ПериодДолга,
| -ПредоставленнаяРассрочкаОстатки.СуммаОстаток
| ИЗ
| РегистрНакопления.ПредоставленнаяРассрочка.Остатки(
| ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&УчетныйМесяц, МЕСЯЦ), СЕКУНДА, 1),
| Соглашение.Абонент = &Абонент
| И (&ПоВсемУслугам
| ИЛИ Соглашение.УслугаНаселению = ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ГазоснабжениеПрироднымГазом))
| И Соглашение.ПериодДолга < &УчетныйМесяц) КАК ПредоставленнаяРассрочкаОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РеструктуризацияДолгаОстатки.Заявление.УслугаНаселению,
| РеструктуризацияДолгаОстатки.ПериодДолга,
| -СУММА(РеструктуризацияДолгаОстатки.СуммаОстаток)
| ИЗ
| РегистрНакопления.РеструктуризацияДолга.Остатки(
| ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&УчетныйМесяц, МЕСЯЦ), СЕКУНДА, 1),
| Заявление.Абонент = &Абонент
| И (&ПоВсемУслугам
| ИЛИ Заявление.УслугаНаселению = ЗНАЧЕНИЕ(Справочник.УслугиНаселению.ГазоснабжениеПрироднымГазом))
| И ПериодДолга < &УчетныйМесяц) КАК РеструктуризацияДолгаОстатки
|
| СГРУППИРОВАТЬ ПО
| РеструктуризацияДолгаОстатки.Заявление.УслугаНаселению,
| РеструктуризацияДолгаОстатки.ПериодДолга) КАК ПодЗапрос
|
| СГРУППИРОВАТЬ ПО
| ПодЗапрос.УслугаНаселению,
| ПодЗапрос.ПериодДолга) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Услуга,
| ВложенныйЗапрос.ПериодДолга";
Запрос.Текст = Текст1;
Запрос.УстановитьПараметр("УчетныйМесяц", УМДокумента);
Запрос.УстановитьПараметр("Абонент", Выборка.Должник);
Запрос.УстановитьПараметр("ПоВсемУслугам", ЛОЖЬ);
Рез = Запрос.Выполнить().Выгрузить();
УМДокумента = ОбъектДокумента.УчетныйМесяцНачала;
НовыйДокумент.ДолгиПоПериодамНаНачало.Загрузить(Рез);
//Числобля = Число(Выборка.СуммаСоб);
//Сообщить(Выборка.СуммаСоб.Value);
////СтрокаСостава = НовыйДокумент.ДолгиПоПериодамНаНачало.Добавить();
////СтрокаСостава.УслугаНаселению = Соединение.Справочники.УслугиНаселению.ГазоснабжениеПрироднымГазом;
////СтрокаСостава.СуммаДолга = (Выборка.СуммаСоб-Выборка.СуммаДолга)/100;
//ОбъектДокумента.ЗаполнитьДолгиПоПериодамИУслугамСервер(Истина, "ДолгиПоПериодамНаНачало", СсылкаНаЛюбойДокумент);
//ОбъектДокумента.Форма.ЗаполнитьДолгиПоПериодамИУслугам(Истина, "ДолгиПоПериодамНаНачало");
//ОбъектДокумента["ДолгиПоПериодамНаНачало"].Загрузить(Соединение.Документы.ДосудебнаяРабота.ЗаполнитьДолгиПоПериодамИУслугамСервер(Соединение.ИспользоватьНастройки, УМДокумента, ОбъектДокумента.Ссылка));
НовыйДокумент.Записать();
КонецЦикла;
ВЫБРАТЬ
ВложенныйЗапрос.Абонент,
ВложенныйЗапрос.Досудебная,
ВЫБОР
КОГДА ВложенныйЗапрос.СостояниеТекДос = ЗНАЧЕНИЕ(Справочник.СостоянияДосудебнойРаботы.Завершено)
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК ДосудебнаяЗевершена,
ВЫБОР
КОГДА ЕСТЬNULL(ВложенныйЗапрос.Досудебная.УчетныйМесяцОкончания, ДАТАВРЕМЯ(1, 1, 1)) = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК ИсправитьДатаОкончания,
ВложенныйЗапрос.Событие,
ВЫБОР
КОГДА ВложенныйЗапрос.НовоеСостояние >= 1
ТОГДА "Нет"
ИНАЧЕ "Да"
КОНЕЦ КАК ИсправитьСостояниеСобытия,
ЕСТЬNULL(ВложенныйЗапрос.СуммаСобытие, 0) - ЕСТЬNULL(ВложенныйЗапрос.СуммаДосудебная, 0) КАК ХвостКСуммеДос,
ВЫБОР
КОГДА ВложенныйЗапрос.МесяцДосудебная <> ВложенныйЗапрос.МесяцСобытие
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК ИсправитьМесяцыНеРавны,
ВложенныйЗапрос.СостояниеЗавершеноВСтаройДосудебной КАК ИсправитьСуммыПриПеремещении,
ВЫБОР
КОГДА ВложенныйЗапрос.Досудебная = ВложенныйЗапрос1.ДосудебнаяН
ТОГДА "Нет"
ИНАЧЕ ЕСТЬNULL(ВложенныйЗапрос1.ДосудебнаяН, "Нет")
КОНЕЦ КАК ЕстьНужнаяДосудебная,
ВЫБОР
КОГДА ВложенныйЗапрос.Досудебная = ВложенныйЗапрос1.ДосудебнаяН
ТОГДА "Нет"
ИНАЧЕ ЕСТЬNULL(ВЫБОР
КОГДА ВложенныйЗапрос1.СостояниеН = ЗНАЧЕНИЕ(Справочник.СостоянияДосудебнойРаботы.Завершено)
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ, "Нет")
КОНЕЦ КАК СостояниеСуществующейДосудебнойЗавершено
ИЗ
(ВЫБРАТЬ
ВложенныйЗапрос.ДосудебнаяРаботаДолжник КАК Абонент,
ВложенныйЗапрос.ДосудебнаяРаботаСсылка КАК Досудебная,
ВложенныйЗапрос.Ссылка КАК Событие,
ВЫРАЗИТЬ(ВложенныйЗапрос1.СуммаДолга КАК ЧИСЛО(15, 2)) КАК СуммаДосудебная,
ВЫРАЗИТЬ(СУММА(ВложенныйЗапрос.СуммаСоб) КАК ЧИСЛО(15, 2)) КАК СуммаСобытие,
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ) КАК МесяцДосудебная,
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ) КАК МесяцСобытие,
ВложенныйЗапрос.Состояние КАК НовоеСостояние,
ВЫБОР
КОГДА ВложенныйЗапрос.Ссылка.Дата = ВложенныйЗапрос2.ДатаСоб
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК СостояниеЗавершеноВСтаройДосудебной,
ВложенныйЗапрос.Состояние1 КАК СостояниеТекДос
ИЗ
(ВЫБРАТЬ
ДокументСобытие.Дата КАК ДатаСоб,
ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота, "---") КАК ДосудебнаяРабота,
СУММА(ДокументСобытие.Сумма) КАК СуммаСоб,
ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Ссылка, "---") КАК ДосудебнаяРаботаСсылка,
ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Должник, "---") КАК ДосудебнаяРаботаДолжник,
ДокументСобытие.Ссылка КАК Ссылка,
ДокументСобытие.ВидДокумента КАК ВидДокумента,
ВложенныйЗапрос.Состояние КАК Состояние,
СостоянияДосудебнойРаботыСрезПоследних.Состояние КАК Состояние1
ИЗ
Документ.ДокументСобытие КАК ДокументСобытие
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СостоянияДокументовСобытий.ДокументСобытие КАК ДокументСобытиеСостояние,
КОЛИЧЕСТВО(СостоянияДокументовСобытий.Состояние) КАК Состояние,
СостоянияДокументовСобытий.Период КАК Период
ИЗ
РегистрСведений.СостоянияДокументовСобытий КАК СостоянияДокументовСобытий
ГДЕ
СостоянияДокументовСобытий.Состояние = ЗНАЧЕНИЕ(Справочник.СостоянияДокументов.Новый)
И НАЧАЛОПЕРИОДА(СостоянияДокументовСобытий.Период, МЕСЯЦ) = НАЧАЛОПЕРИОДА(СостоянияДокументовСобытий.ДокументСобытие.Дата, МЕСЯЦ)
СГРУППИРОВАТЬ ПО
СостоянияДокументовСобытий.ДокументСобытие,
СостоянияДокументовСобытий.Период) КАК ВложенныйЗапрос
ПО ДокументСобытие.Ссылка = ВложенныйЗапрос.ДокументСобытиеСостояние
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияДосудебнойРаботы.СрезПоследних КАК СостоянияДосудебнойРаботыСрезПоследних
ПО ДокументСобытие.ДосудебнаяРабота = СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота
ГДЕ
ДокументСобытие.ПометкаУдаления = ЛОЖЬ
И ДокументСобытие.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
СГРУППИРОВАТЬ ПО
ДокументСобытие.Дата,
ДокументСобытие.Ссылка,
ДокументСобытие.ВидДокумента,
ВложенныйЗапрос.Состояние,
СостоянияДосудебнойРаботыСрезПоследних.Состояние,
ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Должник, "---"),
ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота, "---"),
ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Ссылка, "---")) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ДосудебнаяРаботаДолгиПоПериодамНаНачало.Ссылка.Ссылка КАК Ссылка,
СУММА(ДосудебнаяРаботаДолгиПоПериодамНаНачало.СуммаДолга) КАК СуммаДолга
ИЗ
Документ.ДосудебнаяРабота.ДолгиПоПериодамНаНачало КАК ДосудебнаяРаботаДолгиПоПериодамНаНачало
СГРУППИРОВАТЬ ПО
ДосудебнаяРаботаДолгиПоПериодамНаНачало.Ссылка.Ссылка) КАК ВложенныйЗапрос1
ПО ВложенныйЗапрос.ДосудебнаяРабота = ВложенныйЗапрос1.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
МАКСИМУМ(ДокументСобытиеН.ДатаСоб) КАК ДатаСоб,
ДокументСобытиеН.МесяцМакс КАК МесяцМакс,
ДокументСобытиеН.Должник КАК Должник
ИЗ
(ВЫБРАТЬ
ДокументСобытие.Дата КАК ДатаСоб,
НАЧАЛОПЕРИОДА(ДокументСобытие.Дата, МЕСЯЦ) КАК МесяцМакс,
ДокументСобытие.Должник КАК Должник
ИЗ
Документ.ДокументСобытие КАК ДокументСобытие
ГДЕ
ДокументСобытие.ПометкаУдаления = ЛОЖЬ
И ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Ссылка, 0) <> 0
И ДокументСобытие.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И ДокументСобытие.ВидДокумента В(&ВидДокумента)
СГРУППИРОВАТЬ ПО
ДокументСобытие.Дата,
ДокументСобытие.Должник) КАК ДокументСобытиеН
СГРУППИРОВАТЬ ПО
ДокументСобытиеН.МесяцМакс,
ДокументСобытиеН.Должник) КАК ВложенныйЗапрос2
ПО ВложенныйЗапрос.ДосудебнаяРаботаДолжник = ВложенныйЗапрос2.Должник
И ВложенныйЗапрос.Ссылка.Дата = ВложенныйЗапрос2.ДатаСоб
ГДЕ
ВложенныйЗапрос.ВидДокумента В(&ВидДокумента)
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Ссылка,
ВложенныйЗапрос.ДосудебнаяРаботаДолжник,
ВложенныйЗапрос.ДосудебнаяРаботаСсылка,
ВложенныйЗапрос1.СуммаДолга,
ВложенныйЗапрос.Состояние,
ВложенныйЗапрос.Состояние1,
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ),
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ),
ВЫБОР
КОГДА ВложенныйЗапрос.Ссылка.Дата = ВложенныйЗапрос2.ДатаСоб
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВложенныйЗапрос.ДосудебнаяН КАК ДосудебнаяН,
ВложенныйЗапрос.МесяцН КАК МесяцН,
ВложенныйЗапрос.СостояниеН КАК СостояниеН,
ВложенныйЗапрос.Должник КАК Должник
ИЗ
(ВЫБРАТЬ
НАЧАЛОПЕРИОДА(СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота.Дата, МЕСЯЦ) КАК МесяцН,
СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота.Ссылка КАК ДосудебнаяН,
СостоянияДосудебнойРаботыСрезПоследних.Состояние КАК СостояниеН,
ДосудебнаяР.Должник КАК Должник
ИЗ
РегистрСведений.СостоянияДосудебнойРаботы.СрезПоследних КАК СостоянияДосудебнойРаботыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДосудебнаяРабота КАК ДосудебнаяР
ПО СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота = ДосудебнаяР.Ссылка
ГДЕ
ДосудебнаяР.ПометкаУдаления = ЛОЖЬ) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.ДосудебнаяН,
ВложенныйЗапрос.МесяцН,
ВложенныйЗапрос.СостояниеН,
ВложенныйЗапрос.Должник) КАК ВложенныйЗапрос1
ПО ВложенныйЗапрос.Абонент = ВложенныйЗапрос1.Должник
И ВложенныйЗапрос.МесяцСобытие = ВложенныйЗапрос1.МесяцН
УПОРЯДОЧИТЬ ПО
ВложенныйЗапрос.Абонент.Наименование
| Sub joinword(folder_, numindoc)
| Dim strFile
| Set oFS = CreateObject("Scripting.FileSystemObject")
| i=1
| if numindoc=0 then
| j=1
| else
| j=numindoc
| end if
| For Each oFile In oFS.GetFolder(folder_).Files
| if i=1 then
| Set objWord = CreateObject("Word.Application")
| objWord.Visible = True
| Set objDoc = objWord.Documents.Add()
| Set objSelection = objWord.Selection
| With objDoc.PageSetup
| .TopMargin = objWord.CentimetersToPoints(1.8)
| .BottomMargin = objWord.CentimetersToPoints(0.1)
| .LeftMargin = objWord.CentimetersToPoints(2)
| .RightMargin = objWord.CentimetersToPoints(2)
| End With
| end if
| objSelection.InsertFile oFile.Path
| objSelection.Delete 1
| objSelection.TypeBackspace
| objSelection.InsertBreak 1
| if i=j then
| i=1
| else
| i=i+1
| end if
| objSelection.TypeBackspace
| objSelection.WholeStory
| With objSelection.ParagraphFormat
| .SpaceBefore = 0
| .SpaceAfter = 0
| .LineSpacingRule = 0
| .WidowControl = True
| .LineUnitBefore = 0
| .LineUnitAfter = 0
| End With
| objWord.Browser.Previous
| objWord.Visible = True
| Next
| End Sub
ВЫБРАТЬ
ВложенныйЗапрос.Абонент,
ВложенныйЗапрос.Досудебная,
ВЫБОР
КОГДА ВложенныйЗапрос.СостояниеТекДос = ЗНАЧЕНИЕ(Справочник.СостоянияДосудебнойРаботы.Завершено)
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК ДосудебнаяЗевершена,
ВЫБОР
КОГДА ЕСТЬNULL(ВложенныйЗапрос.Досудебная.УчетныйМесяцОкончания, ДАТАВРЕМЯ(1, 1, 1)) = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК ИсправитьДатаОкончания,
ВложенныйЗапрос.Событие,
ВЫБОР
КОГДА ВложенныйЗапрос.НовоеСостояние >= 1
ТОГДА "Нет"
ИНАЧЕ "Да"
КОНЕЦ КАК ИсправитьСостояниеСобытия,
ЕСТЬNULL(ВложенныйЗапрос.СуммаСобытие, 0) - ЕСТЬNULL(ВложенныйЗапрос.СуммаДосудебная, 0) КАК ХвостКСуммеДос,
ВЫБОР
КОГДА ВложенныйЗапрос.МесяцДосудебная <> ВложенныйЗапрос.МесяцСобытие
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК ИсправитьМесяцыНеРавны,
ВложенныйЗапрос.СостояниеЗавершеноВСтаройДосудебной КАК ИсправитьСуммыПриПеремещении,
ВЫБОР
КОГДА ВложенныйЗапрос.Досудебная = ВложенныйЗапрос1.ДосудебнаяН
ТОГДА "Нет"
ИНАЧЕ ЕСТЬNULL(ВложенныйЗапрос1.ДосудебнаяН, "Нет")
КОНЕЦ КАК ЕстьНужнаяДосудебная,
ВЫБОР
КОГДА ВложенныйЗапрос.Досудебная = ВложенныйЗапрос1.ДосудебнаяН
ТОГДА "Нет"
ИНАЧЕ ЕСТЬNULL(ВЫБОР
КОГДА ВложенныйЗапрос1.СостояниеН = ЗНАЧЕНИЕ(Справочник.СостоянияДосудебнойРаботы.Завершено)
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ, "Нет")
КОНЕЦ КАК СостояниеСуществующейДосудебнойЗавершено
ИЗ
(ВЫБРАТЬ
ВложенныйЗапрос.ДосудебнаяРаботаДолжник КАК Абонент,
ВложенныйЗапрос.ДосудебнаяРаботаСсылка КАК Досудебная,
ВложенныйЗапрос.Ссылка КАК Событие,
ВЫРАЗИТЬ(ВложенныйЗапрос1.СуммаДолга КАК ЧИСЛО(15, 2)) КАК СуммаДосудебная,
ВЫРАЗИТЬ(СУММА(ВложенныйЗапрос.СуммаСоб) КАК ЧИСЛО(15, 2)) КАК СуммаСобытие,
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ) КАК МесяцДосудебная,
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ) КАК МесяцСобытие,
ВложенныйЗапрос.Состояние КАК НовоеСостояние,
ВЫБОР
КОГДА ВложенныйЗапрос.Ссылка.Дата = ВложенныйЗапрос2.ДатаСоб
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ КАК СостояниеЗавершеноВСтаройДосудебной,
ВложенныйЗапрос.Состояние1 КАК СостояниеТекДос
ИЗ
(ВЫБРАТЬ
ДокументСобытие.Дата КАК ДатаСоб,
ДокументСобытие.ДосудебнаяРабота КАК ДосудебнаяРабота,
СУММА(ДокументСобытие.Сумма) КАК СуммаСоб,
ДокументСобытие.ДосудебнаяРабота.Ссылка КАК ДосудебнаяРаботаСсылка,
ДокументСобытие.ДосудебнаяРабота.Должник КАК ДосудебнаяРаботаДолжник,
ДокументСобытие.Ссылка КАК Ссылка,
ДокументСобытие.ВидДокумента КАК ВидДокумента,
ВложенныйЗапрос.Состояние КАК Состояние,
СостоянияДосудебнойРаботыСрезПоследних.Состояние КАК Состояние1
ИЗ
Документ.ДокументСобытие КАК ДокументСобытие
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СостоянияДокументовСобытий.ДокументСобытие КАК ДокументСобытиеСостояние,
КОЛИЧЕСТВО(СостоянияДокументовСобытий.Состояние) КАК Состояние
ИЗ
РегистрСведений.СостоянияДокументовСобытий КАК СостоянияДокументовСобытий
ГДЕ
СостоянияДокументовСобытий.Состояние = ЗНАЧЕНИЕ(Справочник.СостоянияДокументов.Новый)
СГРУППИРОВАТЬ ПО
СостоянияДокументовСобытий.ДокументСобытие) КАК ВложенныйЗапрос
ПО ДокументСобытие.Ссылка = ВложенныйЗапрос.ДокументСобытиеСостояние
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияДосудебнойРаботы.СрезПоследних КАК СостоянияДосудебнойРаботыСрезПоследних
ПО ДокументСобытие.ДосудебнаяРабота = СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота
ГДЕ
ДокументСобытие.ПометкаУдаления = ЛОЖЬ
И ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Ссылка, 0) <> 0
И ДокументСобытие.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
СГРУППИРОВАТЬ ПО
ДокументСобытие.ДосудебнаяРабота,
ДокументСобытие.Дата,
ДокументСобытие.ДосудебнаяРабота.Ссылка,
ДокументСобытие.ДосудебнаяРабота.Должник,
ДокументСобытие.Ссылка,
ДокументСобытие.ВидДокумента,
ВложенныйЗапрос.Состояние,
СостоянияДосудебнойРаботыСрезПоследних.Состояние) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ДосудебнаяРаботаДолгиПоПериодамНаНачало.Ссылка.Ссылка КАК Ссылка,
СУММА(ДосудебнаяРаботаДолгиПоПериодамНаНачало.СуммаДолга) КАК СуммаДолга
ИЗ
Документ.ДосудебнаяРабота.ДолгиПоПериодамНаНачало КАК ДосудебнаяРаботаДолгиПоПериодамНаНачало
СГРУППИРОВАТЬ ПО
ДосудебнаяРаботаДолгиПоПериодамНаНачало.Ссылка.Ссылка) КАК ВложенныйЗапрос1
ПО ВложенныйЗапрос.ДосудебнаяРабота = ВложенныйЗапрос1.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
МАКСИМУМ(ДокументСобытиеН.ДатаСоб) КАК ДатаСоб,
ДокументСобытиеН.МесяцМакс КАК МесяцМакс,
ДокументСобытиеН.Должник КАК Должник
ИЗ
(ВЫБРАТЬ
ДокументСобытие.Дата КАК ДатаСоб,
НАЧАЛОПЕРИОДА(ДокументСобытие.Дата, МЕСЯЦ) КАК МесяцМакс,
ДокументСобытие.Должник КАК Должник
ИЗ
Документ.ДокументСобытие КАК ДокументСобытие
ГДЕ
ДокументСобытие.ПометкаУдаления = ЛОЖЬ
И ЕСТЬNULL(ДокументСобытие.ДосудебнаяРабота.Ссылка, 0) <> 0
И ДокументСобытие.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И ДокументСобытие.ВидДокумента В(&ВидДокумента)
СГРУППИРОВАТЬ ПО
ДокументСобытие.Дата,
ДокументСобытие.Должник) КАК ДокументСобытиеН
СГРУППИРОВАТЬ ПО
ДокументСобытиеН.МесяцМакс,
ДокументСобытиеН.Должник) КАК ВложенныйЗапрос2
ПО ВложенныйЗапрос.ДосудебнаяРаботаДолжник = ВложенныйЗапрос2.Должник
И ВложенныйЗапрос.Ссылка.Дата = ВложенныйЗапрос2.ДатаСоб
ГДЕ
ВложенныйЗапрос.ВидДокумента В(&ВидДокумента)
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Ссылка,
ВложенныйЗапрос.ДосудебнаяРаботаДолжник,
ВложенныйЗапрос.ДосудебнаяРаботаСсылка,
ВложенныйЗапрос1.СуммаДолга,
ВложенныйЗапрос.Состояние,
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДосудебнаяРабота.Дата, МЕСЯЦ),
НАЧАЛОПЕРИОДА(ВложенныйЗапрос.ДатаСоб, МЕСЯЦ),
ВложенныйЗапрос.Состояние1,
ВЫБОР
КОГДА ВложенныйЗапрос.Ссылка.Дата = ВложенныйЗапрос2.ДатаСоб
ТОГДА "Да"
ИНАЧЕ "Нет"
КОНЕЦ) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВложенныйЗапрос.ДосудебнаяН КАК ДосудебнаяН,
ВложенныйЗапрос.МесяцН КАК МесяцН,
ВложенныйЗапрос.СостояниеН КАК СостояниеН,
ВложенныйЗапрос.Должник КАК Должник
ИЗ
(ВЫБРАТЬ
НАЧАЛОПЕРИОДА(СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота.Дата, МЕСЯЦ) КАК МесяцН,
СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота.Ссылка КАК ДосудебнаяН,
СостоянияДосудебнойРаботыСрезПоследних.Состояние КАК СостояниеН,
ДосудебнаяР.Должник КАК Должник
ИЗ
РегистрСведений.СостоянияДосудебнойРаботы.СрезПоследних КАК СостоянияДосудебнойРаботыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДосудебнаяРабота КАК ДосудебнаяР
ПО СостоянияДосудебнойРаботыСрезПоследних.ДосудебнаяРабота = ДосудебнаяР.Ссылка
ГДЕ
ДосудебнаяР.ПометкаУдаления = ЛОЖЬ) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.ДосудебнаяН,
ВложенныйЗапрос.МесяцН,
ВложенныйЗапрос.СостояниеН,
ВложенныйЗапрос.Должник) КАК ВложенныйЗапрос1
ПО ВложенныйЗапрос.Абонент = ВложенныйЗапрос1.Должник
И ВложенныйЗапрос.МесяцСобытие = ВложенныйЗапрос1.МесяцН
УПОРЯДОЧИТЬ ПО
ВложенныйЗапрос.Абонент.Наименование
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment