Имя: Пароль:
1C
 
Получение счет фактур в привязке к счету
0 SamHinkie
 
11.04.19
08:59
Всем привет, можно ли в запросе получить все счета фактуры, которые относятся к счету.

То есть в выгрузке хочу получать в одной строке первая колонка - счет, вторая колонка - список счетов фактур?
1 один я дАртаньян
 
11.04.19
09:00
Я не против.
2 SamHinkie
 
11.04.19
09:01
я тоже, но вот сделать не получается)
3 один я дАртаньян
 
11.04.19
09:07
Если документ поступления/реализации создан на основании счета, то счет записан как документ основания.

В примитивном варианте Счет будет равняться Счет-Фактура.ДокументОснования.ДокументОснования.

Это при условии, что если счет-фактура соответствует один поступлению/реализация, если несколько, то усложняется.

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

Короче: неопнятно даже про какие счета фактуры речь выданные или полученные. Не понятно какая конфигурация? Непонятна есть ли связь счетов с документами реализация/поступления.
4 SamHinkie
 
11.04.19
09:10
конфа БП

Получить проблем, это всё не вызывает. Ниже запрос. Не получается именно сделать так, чтобы в запросе получалось не

Счет 1 - Счет фактура 1
Счет 1 - Счет фактура 2
Счет 1 - Счет фактура 3

а

Счет 1 - Счет фактура 1
       - Счет фактура 2
       - Счет фактура 3


ВЫБРАТЬ
    СчетФактураВыданный.Ссылка КАК СФВ,
    СчетНаОплатуПокупателю.Ссылка КАК СчетНаОплату
ПОМЕСТИТЬ СФВ
ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный
        ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = СчетФактураВыданный.ДоговорКонтрагента
ГДЕ
    СчетНаОплатуПокупателю.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И СчетНаОплатуПокупателю.Ссылка = &СчетНаОплатуПокупателя
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СчетНаОплатуПокупателюТовары.Ссылка,
    СчетФактуры.СФВ
ИЗ
    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары,
    СФВ КАК СчетФактуры
ГДЕ
    СчетНаОплатуПокупателюТовары.Ссылка = &СчетНаОплатуПокупателя
5 один я дАртаньян
 
11.04.19
09:11
(4) Где делаешь? СКД или обрабатываешь результаты?

В СКД в ручную группировку сделай если обрабатываешь результаты сделай итоги.
6 catena
 
11.04.19
09:14
(4)В запросе этого делать не нужно. Это уже отображение.
7 SamHinkie
 
11.04.19
09:35
(5) имелось ввиду примерно такой подход?

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    СчетФактураВыданный.Ссылка КАК СФВ,
    |    СчетНаОплатуПокупателю.Ссылка КАК СчетНаОплату
    |ПОМЕСТИТЬ СФВ
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный
    |        ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = СчетФактураВыданный.ДоговорКонтрагента
    |ГДЕ
    |    СчетНаОплатуПокупателю.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |    И СчетНаОплатуПокупателю.Ссылка = &СчетНаОплатуПокупателя
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    СчетНаОплатуПокупателюТовары.Ссылка,
    |    СчетФактуры.СФВ
    |ПОМЕСТИТЬ ТаблицаСчетов
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары,
    |    СФВ КАК СчетФактуры
    |ГДЕ
    |    СчетНаОплатуПокупателюТовары.Ссылка = &СчетНаОплатуПокупателя
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаСчетов.Ссылка КАК Ссылка,
    |    ТаблицаСчетов.СФВ
    |ИЗ
    |    ТаблицаСчетов КАК ТаблицаСчетов
    |ИТОГИ ПО
    |    Ссылка";
    
    Запрос.УстановитьПараметр("ДатаНачала",'20190101' );
    
    Запрос.УстановитьПараметр("ДатаОкончания", '20190228');
    
    Запрос.УстановитьПараметр("СчетНаОплатуПокупателя", Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00000000037", '20190101'));
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Выгрузка = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);


(6) согласен, но мне нужно потом выгружать в xml файл. хотелось, как то разом всё добавить по типу
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 1, СФВ 2, СФВ 3

а не
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 1
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 2
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 3

тем более, ещё выгружается в разрезе строк номенклатуры, то есть

счет 1 - строка 1 - номенклатура 1 - контрагент 1 - грузополучатель 1 - СВФ 1
счет 1 - строка 1 - номенклатура 1 - контрагент 1 - грузополучатель 1 - СВФ 2
счет 1 - строка 1 - номенклатура 1 - контрагент 1 - грузополучатель 1 - СВФ 3
8 SamHinkie
 
11.04.19
09:36
(6) согласен, но мне нужно потом выгружать в xml файл. хотелось, как то разом всё добавить по типу
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 1, СФВ 2, СФВ 3

а не
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 1
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 2
счет 1 - Контрагент 1 - Грузополучатель 1 - СФВ 3

тем более, ещё выгружается в разрезе строк номенклатуры, то есть

счет 1 - строка 1 - номенклатура 1 - контрагент 1 - грузополучатель 1 - СВФ 1
счет 1 - строка 1 - номенклатура 1 - контрагент 1 - грузополучатель 1 - СВФ 2
счет 1 - строка 1 - номенклатура 1 - контрагент 1 - грузополучатель 1 - СВФ 3
9 1Сергей
 
11.04.19
09:37
(7) Тебе нужны ИТОГИ в запросе
10 1Сергей
 
11.04.19
09:39
(9) * в смысле


//вот тут
Выгрузка = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
//у тебя в выгрузке будет не таблица значений, а дерево значений
11 SamHinkie
 
11.04.19
09:44
(10) Да так, и получается, а что значит ИТОГИ в запросе?

можно ткнуть на пример? Имеется ввиду не это?

  |ВЫБРАТЬ
    |    ТаблицаСчетов.Ссылка КАК Ссылка,
    |    ТаблицаСчетов.СФВ
    |ИЗ
    |    ТаблицаСчетов КАК ТаблицаСчетов
    |ИТОГИ ПО
    |    Ссылка";
12 1Сергей
 
11.04.19
09:45
(11) это
13 SamHinkie
 
11.04.19
09:47
(10)

тогда как получить таблицу значений? или только дерево можно?
14 1Сергей
 
11.04.19
09:48
(13) Выгрузка = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПРЯМОЙ);
15 catena
 
11.04.19
09:54
(13)Итоги - это дерево. И по вашему описанию вы хотите дерево. А в конкатенацию запросы не умеют. Либо перебор по группировкам с итогами, либо через СКД.