helpf.pro
Регистрация

Данные из табличной части документа

Name1
21.09.2010 11:50Прочитано: 23675
Пишу отчет на СКД. В отчет надо взять данные из регистра накопления и документа (в том числе и из табличной части документа). Как лучше это сделать? Регистр накопления - запрос, это понятно, а для документа - объект, вложенный запрос? С вложенным запросом что-то не получилось, а при программировании запроса - ошибки передачи параметров. Может есть пример? Или свой выслать?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
21.09.2010 12:14Ответ № 1
Используй или как отдельный запрос а потом через Связь соединяй в результат
или в том же запросе через Временные таблицы
Name1
21.09.2010 13:23Ответ № 2
Так и есть: 2 отдельных запроса (по регистру накопления "ЗаказыПокупателейОбороты" и по документу "Счет") - связаны по ссылке на документ "Заказ покупателя". Надо еще связать по полю "Номенклатура" для случая, когда в табличной части счета несколько строк. После установки связи по полю "Номенклатура" при запуске отчета в 1С:Преднриятии "Ошибка инициализации
по причине: В выражении связи набора данных - приемника разрешено использовать только поля набора данных - приемника "Счет.Товары.Номенклатура".

"или в том же запросе через Временные таблицы" - можно подробнее?
E_Migachev
21.09.2010 14:11Ответ № 3
Ошибка инициализации - неправильный запрос или связь *03
про Временные таблицы ща кину примерчик*13
E_Migachev
21.09.2010 14:53Ответ № 4
(2) ксатит, а зачем ты соединяешь с документом, в регистре нет этих данных? и по ссылке регистратора нельзя их получить?
E_Migachev
21.09.2010 15:56Ответ № 5
+(3) Например нужно в отчете СКД Связать Данные из Регистра Накопления ВзаиморасчетыСРаботниками и Табличной Части Документа ЗарплатаКВыплате по Ссылке на документ и ФизЛицу! Вывести полученные данные за указанный Период - Запрос будет такой:
Код 1C v 8.х
 
ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизаций.Период,
ВзаиморасчетыСРаботникамиОрганизаций.Физлицо,
ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов,
ВзаиморасчетыСРаботникамиОрганизаций.Организация,
ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов,
ВзаиморасчетыСРаботникамиОрганизаций.Регистратор
ПОМЕСТИТЬ РегВзаимРасч
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций
ГДЕ
ВзаиморасчетыСРаботникамиОрганизаций.Период МЕЖДУ &ДатаН И &ДатаК
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РегВзаимРасч.Период,
РегВзаимРасч.Физлицо,
РегВзаимРасч.СуммаВзаиморасчетов,
ДокумЗарплКВыпл.Сумма,
ДокумЗарплКВыпл.ВыплаченностьЗарплаты,
ДокумЗарплКВыпл.КомпенсацияЗаЗадержкуЗарплаты
ИЗ
РегВзаимРасч КАК РегВзаимРасч
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокумЗарплКВыпл КАК ДокумЗарплКВыпл
ПО РегВзаимРасч.Регистратор = ДокумЗарплКВыпл.Ссылка
И РегВзаимРасч.Физлицо = ДокумЗарплКВыпл.Физлицо
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ РегВзаимРасч
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДокумЗарплКВыпл
Name1
22.09.2010 15:46Ответ № 6
Спасибо большое.
2 времнные таблицы - все получилось.
А если нужны данные и из табличной части, и реквизиты документа, писать несколько "ВЫБРАТЬ"?
А можно в одном ВЫБРАТЬ описать и связать поля из регистров как обычно и из временных таблиц? Тогда соединение не ВНУТРЕННЕЕ, а ЛЕВОЕ?
E_Migachev
22.09.2010 16:47Ответ № 7
(6) по первому: Нет - выбираешь табличную часть, а реквизиты документа через Ссылка
по второму: Можно, только перед этим выбрать, должны быть Выбрать для создания временных таблиц
Name1
23.09.2010 13:54Ответ № 8
Извините, "реквизиты документа через Ссылка" - а можно подробнее?
E_Migachev
23.09.2010 14:13Ответ № 9
(8) Когда делаешь запрос по табличной части документа, то там есть такой реквизит как ССЫЛКА, жмешь на + и видишь что после расткрытия - перед тобой все реквизиты документа
Name1
28.09.2010 10:14Ответ № 10
Спасибо. Теперь понятно, получилось.
А как можно не писать запрос вручную, а использовать Конструктор
запросов - на закладке "Таблицы и поля" в списке "Таблицы" есть значок "Создать описание впеменной таблицы". Хотелось бы это использовать.
E_Migachev
04.10.2010 14:09Ответ № 11
(10) Создаешь запрос как обычно, далее идешь на закладку Дополнительно и ставишь Создание временной таблицы и пишешь ее имя! Потом на закладке Пакет запросов создаешь еще запрос и в Дополнительно опять указываешь что это Временная таблица
Name1
06.10.2010 11:39Ответ № 12
Спасибо!
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.