Как список документов из запроса отобразить в журнале

1. sidalexsandr 4 11.12.12 10:02 Сейчас в теме
Хочу отобразить в журнале СкладскиеДокументы, документы полученные следующим запросом:
ВЫБРАТЬ
ПеремещениеТоваров.Ссылка КАК Перемещение,
СписаниеТоваров.Ссылка КАК Списание
ИЗ
Документ.ПеремещениеТоваров КАК ПеремещениеТоваров,
Документ.СписаниеТоваров КАК СписаниеТоваров
ГДЕ
ПеремещениеТоваров.ДокОснование.Ссылка = &ТекВедом
И СписаниеТоваров.ДокОснование.Ссылка = &ТекВедом
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. m-serg74 46 11.12.12 10:27 Сейчас в теме
(1) sidalexsandr, во первых наверное все таки надо объединение, а во вторых в чем проблема список документов из результата запроса вставить в отбор журнала по Ссылке?
3. sidalexsandr 4 11.12.12 10:36 Сейчас в теме
(2) Проблема в том, что я не знаю как.
4. m-serg74 46 11.12.12 10:44 Сейчас в теме
5. sidalexsandr 4 11.12.12 10:52 Сейчас в теме
(4) Спасибо. Объединение понятно как. Не понятно: проблема список документов из результата запроса вставить в отбор журнала по Ссылке?
6. m-serg74 46 11.12.12 11:00 Сейчас в теме
(5) sidalexsandr,
ЖурналДокументовСписок.<Имя журнала документов> (DocumentJournalList.<Имя журнала документов>)
Отбор (Filter)
Использование:

Только чтение.
Описание:

Тип: Отбор.
Содержит объект Отбор, по которому осуществляется текущая фильтрация документов в списке журнала.
В списке журнала документов доступен отбор по графам журнала, дате, номеру и виду документов, а также критериям отбора, затронувшие документы отображаемые в журнале.

Добавить в Отбор "Ссылка", ну и пробовать...
что то типа такого
	ФормаЖурнала.Отбор.Дата.Использование = Истина;
	ФормаЖурнала.Отбор.Дата.ВидСравнения  = ВидСравнения.ИнтервалВключаяГраницы;
	ФормаЖурнала.Отбор.Дата.ЗначениеС  = НачалоДня(ДатаНачала);
	ФормаЖурнала.Отбор.Дата.ЗначениеПо = КонецДня(ДатаОкончания);


только вместо дата Ссылка
7. sidalexsandr 4 11.12.12 11:20 Сейчас в теме
8. sidalexsandr 4 11.12.12 11:24 Сейчас в теме
Что написать, что процедура в документе открывала ФормуСписка журнала СкладскиеДокументы и передавала при открытии отбор по ссылка на документы полученные запросом?
9. m-serg74 46 11.12.12 11:28 Сейчас в теме
(8) sidalexsandr, я не знаю откуда открывается форма журнала с Вашим отбором, откуда будете открывать там и пишите...
10. sidalexsandr 4 11.12.12 12:10 Сейчас в теме
(9) Написал: РезультатЗапроса = ПолучитьСписокПодчДок();
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = РезультатЗапроса;
ФормаЖурнала.Открыть();

Выдает ошибку: Документ.Ведомость.Форма.ФормаДокумента.Форма(745)}: Ошибка при установке значения атрибута контекста (Значение)
ФормаЖурнала.Отбор.Ссылка.Значение = РезультатЗапроса;
по причине:
Неверный тип значения
11. m-serg74 46 11.12.12 12:12 Сейчас в теме
(10) sidalexsandr,
ВидСравнения = ВидСравнения.ВСписке; 

значит Значение должно быть СпискомЗначений, а ты что пхаешь туды?
12. m-serg74 46 11.12.12 12:56 Сейчас в теме
(10) sidalexsandr,
Написал: РезультатЗапроса = ПолучитьСписокПодчДок();

по Вашему я телепат - угадывать что в "ПолучитьСписокПодчДок()"?
13. sidalexsandr 4 11.12.12 13:01 Сейчас в теме
Спасибо. С твоей помощью удалось. Вот Рабочая Процедура:
Процедура ЖурнПодчДок(Элемент)

СписокРз = Новый СписокЗначений;
РезультатЗапроса = ПолучитьСписокПодчДок();
Рз = РезультатЗапроса.Выгрузить();
Рзз = Рз.ВыгрузитьКолонку("Ссылка");
СписокРз.ЗагрузитьЗначения(Рзз);

ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
Если РезультатЗапроса <> "Нет подчиненных док-тов." Тогда
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = СписокРз;
КонецЕсли;

ФормаЖурнала.Открыть();

КонецПроцедуры
14. sidalexsandr 4 11.12.12 13:02 Сейчас в теме
И вот ещё функция:
Функция ПолучитьСписокПодчДок()

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ПеремещениеТоваров.Ссылка КАК Ссылка
|
|ИЗ
| Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
|
|ГДЕ
| ПеремещениеТоваров.ДокОснование.Ссылка = &ТекВедом
|
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|
| СписаниеТоваров.Ссылка КАК Ссылка
|ИЗ
|
| Документ.СписаниеТоваров КАК СписаниеТоваров
|ГДЕ
| СписаниеТоваров.ДокОснование.Ссылка = &ТекВедом";
Запрос.УстановитьПараметр("ТекВедом", ЭтотОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();

Если Запрос.Выполнить().Пустой() = Истина Тогда
Возврат "Нет подчиненных док-тов.";
Иначе
// В запросе есть документы подчиненные Ведомости док-ты
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецЕсли;


КонецФункции // ПолучитьСписокПодчДок()
18. Niberu 5 31.01.13 02:27 Сейчас в теме
(14)



И вот ещё функция:
Функция ПолучитьСписокПодчДок()
...
...

РезультатЗапроса = Запрос.Выполнить();

Если Запрос.Выполнить().Пустой() = Истина Тогда
Возврат "Нет подчиненных док-тов.";
Иначе
// В запросе есть документы подчиненные Ведомости док-ты
РезультатЗапроса = Запрос.Выполнить();
Показать


Может не актуально уже.
Может я ошибаюсь, поправьте, а зачем ТРИ раза выполнять запрос?
15. sidalexsandr 4 11.12.12 13:02 Сейчас в теме
16. sidalexsandr 4 11.12.12 13:08 Сейчас в теме
Подправил Процедура ЖурнПодчДок(), на случай когда нет подчинённых документов:
Процедура ЖурнПодчДок(Элемент)

СписокРз = Новый СписокЗначений;

РезультатЗапроса = ПолучитьСписокПодчДок();
Если РезультатЗапроса <> "Нет подчиненных док-тов." Тогда
Рз = РезультатЗапроса.Выгрузить();
Рзз = Рз.ВыгрузитьКолонку("Ссылка");
СписокРз.ЗагрузитьЗначения(Рзз);
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = СписокРз;
ФормаЖурнала.Открыть();
Иначе
Предупреждение("Нет подчиненных док-тов.");
КонецЕсли;

КонецПроцедуры
17. m-serg74 46 11.12.12 13:54 Сейчас в теме
(16) sidalexsandr, тогда уж так...

          ............
          РезультатЗапроса = Запрос.Выполнить();
          Возврат РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка");
     КонецЕсли; 
КонецФункции // ПолучитьСписокПодчДок() 

//==========================================================­========
Процедура ЖурнПодчДок(Элемент)
     МассивДокументов = ПолучитьСписокПодчДок();
     Если МассивДокументов.Количество() > 0 Тогда
          ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
          ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
          ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
          ФормаЖурнала.Отбор.Ссылка.Значение.ЗагрузитьЗначения(МассивДокументов);
          ФормаЖурнала.Открыть();
     Иначе
          Предупреждение("Нет подчиненных док-тов.");
     КонецЕсли;
КонецПроцедуры
Показать
Оставьте свое сообщение

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