Имя: Пароль:
1C
1С v8
Цель: отчетом вывести те договора по которым оплата была раньше заключения
0 ultrannge89
 
18.09.14
06:42
Конфигурация бухгалтерия 2.0 + бит финанс

Сделал так:

ВЫБРАТЬ
    ХозрасчетныйОбороты.Период КАК ПериодПоступления,
    ХозрасчетныйОбороты.Регистратор,
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто2,
    ХозрасчетныйОбороты.СуммаОборотКт
ПОМЕСТИТЬ Поступления
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.бит_стр_РасчетыСДольщикамиПоСредствамПолученнымНаФинансированиеСтроительства), , , , ) КАК ХозрасчетныйОбороты
ГДЕ
    ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПоступлениеНаРасчетныйСчет
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Период КАК ПериодЗаключения,
    ХозрасчетныйОстаткиИОбороты.Регистратор,
    ХозрасчетныйОстаткиИОбороты.Субконто1,
    ХозрасчетныйОстаткиИОбороты.Субконто2,
    ХозрасчетныйОстаткиИОбороты.Субконто3,
    ХозрасчетныйОстаткиИОбороты.СуммаОборот
ПОМЕСТИТЬ Заключения
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , Регистратор, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.бит_стр_ЦелевоеФинансированиеПоДоговорамДолевогоУчастия), , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
    ХозрасчетныйОстаткиИОбороты.Регистратор ССЫЛКА Документ.бит_стр_ДоговорИнвестированияДолевогоУчастия
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Заключения.ПериодЗаключения,
    Заключения.Регистратор,
    Заключения.Субконто1,
    Заключения.Субконто2,
    Заключения.Субконто3,
    Заключения.СуммаОборот,
    Хозрасчетный.Содержание
ПОМЕСТИТЬ ТолькоЗакл
ИЗ
    Заключения КАК Заключения
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
        ПО Заключения.Регистратор = Хозрасчетный.Регистратор
            И (ПОДСТРОКА(Хозрасчетный.Содержание, 1, 4) = "Закл")
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Поступления.ПериодПоступления,
    ТолькоЗакл.ПериодЗаключения,
    Поступления.Регистратор КАК ПоступлениеРег,
    Поступления.Субконто1,
    Поступления.Субконто2 КАК Субконто2,
    Поступления.СуммаОборотКт,
    ТолькоЗакл.СуммаОборот,
    ТолькоЗакл.Содержание,
    ТолькоЗакл.Регистратор КАК ЗаключениеРег
ПОМЕСТИТЬ Врем
ИЗ
    ТолькоЗакл КАК ТолькоЗакл
        ПОЛНОЕ СОЕДИНЕНИЕ Поступления КАК Поступления
        ПО ТолькоЗакл.Субконто1 = Поступления.Субконто1
            И ТолькоЗакл.Субконто2 = Поступления.Субконто2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Врем.Субконто1,
    Врем.Субконто2,
    Врем.СуммаОборотКт,
    Врем.СуммаОборот,
    Врем.ПериодПоступления,
    Врем.ПериодЗаключения,
    Врем.ПоступлениеРег,
    Врем.ЗаключениеРег
ИЗ
    Врем КАК Врем
ГДЕ
    Врем.ПериодПоступления < Врем.ПериодЗаключения


Но до этого не пользовался полным соединением, поэтому думаю может все хрень какую то сделал... =)
1 Балоун
 
18.09.14
06:46
ПО Заключения.Регистратор = Хозрасчетный.Регистратор
            И (ПОДСТРОКА(Хозрасчетный.Содержание, 1, 4) = "Закл")

согласен
2 ultrannge89
 
18.09.14
06:52
(1), это я сделал, чтобы отобрать только проводки по заключенным договорам, у них в проводке у реквизита содержание = "Заключение"
3 ultrannge89
 
18.09.14
06:54
Ну судя по результату все хорошо, бывает конечно что повторяет договора, но от этого не избавиться, т.к. люди платят частями и соответсвенно несколько оплат и одно заключение выводит 2 и более строки при полном соединении
4 ultrannge89
 
18.09.14
06:58
Ну хотя можно и избавиться если сгруппировать как надо, допустим дата поступления (минимум), дата заключения всегда одна(группа), оплата поступления (сумма), сумма заключения (группа), ну и субконто1 субк2 (группа)
Ошибка? Это не ошибка, это системная функция.