Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запрос по дебиторской задолженности
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Serg_T
Доброго времени
Нужно для дебиторской задолженности реализацию соединить с оплатой
ВЫБРАТЬ
    РсчДокОплата.Период КАК ДатаРеализации,
    РсчДокОплата.НомерСтроки,
    РсчДокОплата.ВидДвижения,
    РсчДокОплата.Сделка,
    РсчДокОплата.ДокументРасчетовСКонтрагентом,
    РсчДокОплата.Контрагент КАК Контрагент,
    ОстаткиНужногоТипа.Сделка.СуммаДокумента КАК СуммаСделки,
    РсчДокОплата.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
    РсчДокОплата.Сделка.Номер КАК СделкаНомер,
    ОстаткиНужногоТипа.СуммаВзаиморасчетовОстаток КАК Остаток,
    ОстаткиНужногоТипа.Сделка.ДатаОплаты,
    ВЫБОР
        КОГДА ГОД(ОстаткиНужногоТипа.Сделка.ДатаОплаты) = 1
            ТОГДА -1
        ИНАЧЕ РАЗНОСТЬДАТ(РсчДокОплата.Период, ОстаткиНужногоТипа.Сделка.ДатаОплаты, ДЕНЬ)
    КОНЕЦ КАК УслОпл
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, {(Контрагент).* КАК Контрагент, (Сделка).* КАК Сделка, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Организация).* КАК Организация}) КАК ОстаткиНужногоТипа
        ЛЕВОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            РсчДокОплата.Период ,
            РсчДокОплата.НомерСтроки,
            РсчДокОплата.ВидДвижения,
            РсчДокОплата.Сделка,
            РсчДокОплата.ДокументРасчетовСКонтрагентом,
            РсчДокОплата.Контрагент КАК Контрагент,
            РсчДокОплата.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
            РсчДокОплата.Сделка.Номер КАК СделкаНомер,
            ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов({(Сделка).* КАК Сделка ,(ДокументРасчетовСКонтрагентом).* КАК ДокументРасчетовСКонтрагентом}) KAK РсчДокОплата
            ГДЕ
              ВЫРАЗИТЬ(РсчДок.ДокументРасчетовСКонтрагентом КАК Документ.ПлатежноеПоручениеВходящее) ЕСТЬ НЕ NULL
        ) KAK РсчДокОплата
        ПО (РсчДокОплата.ДоговорКонтрагента = ОстаткиНужногоТипа.ДоговорКонтрагента)
            И (РсчДокОплата.Сделка = ОстаткиНужногоТипа.Сделка)
            
ГДЕ
        ОстаткиНужногоТипа.СуммаВзаиморасчетовОстаток > 0
    И РсчДокОплата.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

УПОРЯДОЧИТЬ ПО
    РсчДокОплата.Контрагент,
    РсчДокОплата.Сделка.Номер
ИТОГИ
    СУММА(СуммаВзаиморасчетов),
    СУММА(Остаток)
ПО
    Контрагент


Ругается:

Цитата
Синтаксическая ошибка "ИЗ"
<<?>>ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов({(Сделка).* КАК Сделка ,(ДокументРасчетовСКонтрагентом).* КАК ДокументРасчетовСКонтрагентом}) KAK РсчДокОплата

Что-то не нравится в запросе который соединяется. Не могу разобраться
Vofka
Цитата
  РсчДокОплата.Сделка.Номер КАК СделкаНомер,

Запятая в конце лишняя
Serg_T
Спасибо. Исправил и после
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов({(Сделка).* КАК Сделка ,(ДокументРасчетовСКонтрагентом).* КАК ДокументРасчетовСКонтрагентом})
теперь поставил скобку
 ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов({(Сделка).* КАК Сделка ,(ДокументРасчетовСКонтрагентом).* КАК ДокументРасчетовСКонтрагентом})) KAK РсчДокОплата


теперь
Цитата
по причине:
{(30, 172)}: Ожидается имя таблицы
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов({(Сделка).* КАК Сделка ,(ДокументРасчетовСКонтрагентом).* КАК ДокументРасчетовСКонтрагентом})) KAK <<?>>РсчДокОплата
Vofka
Скобка лишняя перед КАК
Serg_T
ВЫБРАТЬ
    РсчДокОплата.Период КАК ДатаРеализации,
    РсчДокОплата.НомерСтроки,
    РсчДокОплата.ВидДвижения,
    РсчДокОплата.Сделка,
    РсчДокОплата.ДокументРасчетовСКонтрагентом,
    РсчДокОплата.Контрагент КАК Контрагент,
    ОстаткиНужногоТипа.Сделка.СуммаДокумента КАК СуммаСделки,
    РсчДокОплата.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
    РсчДокОплата.Сделка.Номер КАК СделкаНомер,
    ОстаткиНужногоТипа.СуммаВзаиморасчетовОстаток КАК Остаток,
    ОстаткиНужногоТипа.Сделка.ДатаОплаты,
    ВЫБОР
        КОГДА ГОД(ОстаткиНужногоТипа.Сделка.ДатаОплаты) = 1
            ТОГДА -1
        ИНАЧЕ РАЗНОСТЬДАТ(РсчДокОплата.Период, ОстаткиНужногоТипа.Сделка.ДатаОплаты, ДЕНЬ)
    КОНЕЦ КАК УслОпл
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, {(Контрагент).* КАК Контрагент, (Сделка).* КАК Сделка, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Организация).* КАК Организация}) КАК ОстаткиНужногоТипа
        ЛЕВОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            РсчДокОплата.Период ,
            РсчДокОплата.НомерСтроки,
            РсчДокОплата.ВидДвижения,
            РсчДокОплата.Сделка,
            РсчДокОплата.ДокументРасчетовСКонтрагентом,
            РсчДокОплата.Контрагент КАК Контрагент,
            РсчДокОплата.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
            РсчДокОплата.Сделка.Номер КАК СделкаНомер
            ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов(,,,,ДокументРасчетовСКонтрагентом,,,) KAK РсчДокОплата
            ГДЕ
              ВЫРАЗИТЬ(РсчДок.ДокументРасчетовСКонтрагентом КАК Документ.ПлатежноеПоручениеВходящее) ЕСТЬ НЕ NULL
        ) KAK РсчДокОплата
        ПО (РсчДокОплата.ДоговорКонтрагента = ОстаткиНужногоТипа.ДоговорКонтрагента)
            И (РсчДокОплата.Сделка = ОстаткиНужногоТипа.Сделка)
            
ГДЕ
        ОстаткиНужногоТипа.СуммаВзаиморасчетовОстаток > 0
    И РсчДокОплата.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

УПОРЯДОЧИТЬ ПО
    РсчДокОплата.Контрагент,
    РсчДокОплата.Сделка.Номер
ИТОГИ
    СУММА(СуммаВзаиморасчетов),
    СУММА(Остаток)
ПО
    Контрагент


Цитата
{(30, 115)}: Ожидается выражение ")"
ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов(,,,,ДокументРа
счетовСКонтрагентом,,,) KAK <<?>>РсчДокОплата


Вот здесь необходимо зарегистрироваться для просмотра ссылки похожий пример
все работает. не пойму что не так .. 09000000.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.