Помогите с запросом (Формирование записей книги покупок)

1. stjucha1109 26.04.21 17:00 Сейчас в теме
Здравствуйте. Программированию только учусь, поэтому требуется подсказка.
Дано: нужен отчет, который показывает расхождения с документах "ФормированиеЗаписейКнигиПокупок" и "ФормированиеЗаписейКнигиПродаж". Где договор контрагента, указанный в табличных частях не соответствует договору, указанному в привязанной счет-фактуре.
Подобное нужно по всем табличным частям, где есть столбец "Договор контрагента"

Пытаюсь пока что-то сделать в консоли запросов, пока безуспешно. Вот, мой пример


ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	ФормированиеЗаписейКнигиПокупок.Ссылка КАК ФормированиеЗаписейКнигиПокупок,
	ФормированиеЗаписейКнигиПродаж.Ссылка КАК Ссылка1,
	ФормированиеЗаписейКнигиПродаж.Представление
ИЗ
	Документ.ФормированиеЗаписейКнигиПокупок КАК ФормированиеЗаписейКнигиПокупок,
	Документ.ФормированиеЗаписейКнигиПродаж КАК ФормированиеЗаписейКнигиПродаж
ГДЕ
	(ФормированиеЗаписейКнигиПокупок.НДСсАвансов.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПокупок.НДСсАвансов.СчетФактура.ДоговорКонтрагента
			ИЛИ ФормированиеЗаписейКнигиПокупок.НДСсАвансовВыданных.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПокупок. НДСсАвансовВыданных.СчетФактура.ДоговорКонтрагента
			ИЛИ ФормированиеЗаписейКнигиПокупок.ВычетНДСПоНалоговомуАгенту.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПокупок.ВычетНДСПоНалоговомуАгенту.СчетФактура.ДоговорКонтрагента
			ИЛИ ФормированиеЗаписейКнигиПродаж.Реализация.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПродаж.Реализация.СчетФактура.ДоговорКонтрагента
			ИЛИ ФормированиеЗаписейКнигиПродаж.Авансы.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПродаж.Авансы.СчетФактура.ДоговорКонтрагента
			ИЛИ ФормированиеЗаписейКнигиПродаж.НачисленКУплате.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПродаж.НачисленКУплате.СчетФактура.ДоговорКонтрагента
			ИЛИ ФормированиеЗаписейКнигиПродаж.ВосстановленПоАвансам.ДоговорКонтрагента <> ФормированиеЗаписейКнигиПродаж.ВосстановленПоАвансам.СчетФактура.ДоговорКонтрагента)
АВТОУПОРЯДОЧИВАНИЕ
;
Показать


Проблема еще заключается в том, что в последующем нужно будет сделать группировку по документу, чтобы красиво выводилось. Но поскольку здесь имеются табличные части, не удается настроить группировку. Помогите, пожалуйста
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. o.nikolaev 214 26.04.21 19:59 Сейчас в теме
Не усложняйте запрос - сделайте сначала на одном типе документа и только для одной табличной части, например - только на ФормированиеЗаписейКнигиПокупок только для ТЧ ДоговорКонтрагента. Потом по аналогии добавите для остальных. РАЗРЕШЕННЫЕ - не надо пока втыкать, потом добавите. РАЗЛИЧНЫЕ вообще не надо, запрос потом в СКД положите, она сама все сгруппирует.

Как-то так можно начать:

ВЫБРАТЬ
    НДСсАвансов.Ссылка КАК ДокументНДС,
    НДСсАвансов.СчетФактура КАК СчетФактура,
	НДСсАвансов.ДоговорКонтрагента КАК ДоговорКонтрагента,    ​
ПОМЕСТИТЬ ВТ_Договоры
ИЗ
   ​ФормированиеЗаписейКнигиПокупок.НДСсАвансов КАК НДСсАвансов
ИНДЕКСИРОВАТЬ ПО ДокументНДС, СчетФактура, ДоговорКонтрагента
;
ВЫБРАТЬ
	НДСсАвансов.Ссылка КАК ДокументНДС,
	НДСсАвансов.СчетФактура КАК СчетФактура,
	ЕСТЬNULL(НДСсАвансов.СчетФактура.ДоговорКонтрагента, ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)) КАК ДоговорКонтрагентаСчФ
ПОМЕСТИТЬ ВТ_ДоговорыСчФ
ИЗ
	​ФормированиеЗаписейКнигиПокупок.НДСсАвансов КАК НДСсАвансов
ИНДЕКСИРОВАТЬ ПО ДокументНДС, СчетФактура, ДоговорКонтрагентаСчФ
;
ВЫБРАТЬ
	ВТ_Договоры.ДокументНДС, ВТ_Договоры.СчетФактура, ВТ_Договоры.ДоговорКонтрагента, ВТ_ДоговорыСчФ.ДоговорКонтрагентаСчФ
ИЗ
	ВТ_Договоры ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДоговорыСчФ
		ПО ВТ_Договоры.ДокументНДС = ВТ_ДоговорыСчФ.ДокументНДС
		И ВТ_Договоры.СчетФактура = ВТ_ДоговорыСчФ.СчетФактура И НЕ (ВТ_Договоры.ДоговорКонтрагента = ВТ_ДоговорыСчФ.ДоговорКонтрагентаСчФ)
		
Показать


Потом для остальных тч просто ОБЪЕДИНИТЬ ВСЕ снизу прицепите
stjucha1109; +1 Ответить
3. stjucha1109 27.04.21 09:02 Сейчас в теме
(2)
оры.ДокументН


Спасибо большое. Если правильно поняла, то я делаю 1 большой запрос для каждого типа документов с временными таблицами.

Получается, я делаю временные таблицы для всех остальных табличных частей. А вот эту часть кода тоже добавлять во временную таблицу?

ВЫБРАТЬ
    ВТ_Договоры.ДокументНДС, ВТ_Договоры.СчетФактура, ВТ_Договоры.ДоговорКонтрагента, ВТ_ДоговорыСчФ.ДоговорКонтрагентаСчФ
ИЗ
    ВТ_Договоры ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДоговорыСчФ
        ПО ВТ_Договоры.ДокументНДС = ВТ_ДоговорыСчФ.ДокументНДС
        И ВТ_Договоры.СчетФактура = ВТ_ДоговорыСчФ.СчетФактура И НЕ (ВТ_Договоры.ДоговорКонтрагента = ВТ_ДоговорыСчФ.ДоговорКонтрагентаСчФ)


И в конце запроса выбирать из нескольких подобных и группировать по Документу "ФормированиеЗаписейКнигиПокупок", верно?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот