Как список документов из запроса отобразить в журнале
Хочу отобразить в журнале СкладскиеДокументы, документы полученные следующим запросом:
ВЫБРАТЬ
ПеремещениеТоваров.Ссылка КАК Перемещение,
СписаниеТоваров.Ссылка КАК Списание
ИЗ
Документ.ПеремещениеТоваров КАК ПеремещениеТоваров,
Документ.СписаниеТоваров КАК СписаниеТоваров
ГДЕ
ПеремещениеТоваров.ДокОснование.Ссылка = &ТекВедом
И СписаниеТоваров.ДокОснование.Ссылка = &ТекВедом
ВЫБРАТЬ
ПеремещениеТоваров.Ссылка КАК Перемещение,
СписаниеТоваров.Ссылка КАК Списание
ИЗ
Документ.ПеремещениеТоваров КАК ПеремещениеТоваров,
Документ.СписаниеТоваров КАК СписаниеТоваров
ГДЕ
ПеремещениеТоваров.ДокОснование.Ссылка = &ТекВедом
И СписаниеТоваров.ДокОснование.Ссылка = &ТекВедом
По теме из базы знаний
- Всякие полезности
- Работа с журналом документов (или как боролся за вывод комментария в журнале операций)
- Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах
- Пример пошагового решения проблемы производительности на базе Postgres SQL с картинками
- Управление сборкой. Расширение для конфигурации СППР
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) sidalexsandr,
http://www.google.ru/search?q=запрос+1с+объединение
читать, пробовать... все получится...
читать, пробовать... все получится...
(5) sidalexsandr,
ЖурналДокументовСписок.<Имя журнала документов> (DocumentJournalList.<Имя журнала документов>)
Отбор (Filter)
Использование:
Только чтение.
Описание:
Тип: Отбор.
Содержит объект Отбор, по которому осуществляется текущая фильтрация документов в списке журнала.
В списке журнала документов доступен отбор по графам журнала, дате, номеру и виду документов, а также критериям отбора, затронувшие документы отображаемые в журнале.
Добавить в Отбор "Ссылка", ну и пробовать...
что то типа такого
только вместо дата Ссылка
ЖурналДокументовСписок.<Имя журнала документов> (DocumentJournalList.<Имя журнала документов>)
Отбор (Filter)
Использование:
Только чтение.
Описание:
Тип: Отбор.
Содержит объект Отбор, по которому осуществляется текущая фильтрация документов в списке журнала.
В списке журнала документов доступен отбор по графам журнала, дате, номеру и виду документов, а также критериям отбора, затронувшие документы отображаемые в журнале.
Добавить в Отбор "Ссылка", ну и пробовать...
что то типа такого
ФормаЖурнала.Отбор.Дата.Использование = Истина;
ФормаЖурнала.Отбор.Дата.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
ФормаЖурнала.Отбор.Дата.ЗначениеС = НачалоДня(ДатаНачала);
ФормаЖурнала.Отбор.Дата.ЗначениеПо = КонецДня(ДатаОкончания);
только вместо дата Ссылка
(9) Написал: РезультатЗапроса = ПолучитьСписокПодчДок();
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = РезультатЗапроса;
ФормаЖурнала.Открыть();
Выдает ошибку: Документ.Ведомость.Форма.ФормаДокумента.Форма(745)}: Ошибка при установке значения атрибута контекста (Значение)
ФормаЖурнала.Отбор.Ссылка.Значение = РезультатЗапроса;
по причине:
Неверный тип значения
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = РезультатЗапроса;
ФормаЖурнала.Открыть();
Выдает ошибку: Документ.Ведомость.Форма.ФормаДокумента.Форма(745)}: Ошибка при установке значения атрибута контекста (Значение)
ФормаЖурнала.Отбор.Ссылка.Значение = РезультатЗапроса;
по причине:
Неверный тип значения
Спасибо. С твоей помощью удалось. Вот Рабочая Процедура:
Процедура ЖурнПодчДок(Элемент)
СписокРз = Новый СписокЗначений;
РезультатЗапроса = ПолучитьСписокПодчДок();
Рз = РезультатЗапроса.Выгрузить();
Рзз = Рз.ВыгрузитьКолонку("Ссылка");
СписокРз.ЗагрузитьЗначения(Рзз);
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
Если РезультатЗапроса <> "Нет подчиненных док-тов." Тогда
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = СписокРз;
КонецЕсли;
ФормаЖурнала.Открыть();
КонецПроцедуры
Процедура ЖурнПодчДок(Элемент)
СписокРз = Новый СписокЗначений;
РезультатЗапроса = ПолучитьСписокПодчДок();
Рз = РезультатЗапроса.Выгрузить();
Рзз = Рз.ВыгрузитьКолонку("Ссылка");
СписокРз.ЗагрузитьЗначения(Рзз);
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
Если РезультатЗапроса <> "Нет подчиненных док-тов." Тогда
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = СписокРз;
КонецЕсли;
ФормаЖурнала.Открыть();
КонецПроцедуры
И вот ещё функция:
Функция ПолучитьСписокПодчДок()
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ПеремещениеТоваров.Ссылка КАК Ссылка
|
|ИЗ
| Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
|
|ГДЕ
| ПеремещениеТоваров.ДокОснование.Ссылка = &ТекВедом
|
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|
| СписаниеТоваров.Ссылка КАК Ссылка
|ИЗ
|
| Документ.СписаниеТоваров КАК СписаниеТоваров
|ГДЕ
| СписаниеТоваров.ДокОснование.Ссылка = &ТекВедом";
Запрос.УстановитьПараметр("ТекВедом", ЭтотОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если Запрос.Выполнить().Пустой() = Истина Тогда
Возврат "Нет подчиненных док-тов.";
Иначе
// В запросе есть документы подчиненные Ведомости док-ты
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецЕсли;
КонецФункции // ПолучитьСписокПодчДок()
Функция ПолучитьСписокПодчДок()
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ПеремещениеТоваров.Ссылка КАК Ссылка
|
|ИЗ
| Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
|
|ГДЕ
| ПеремещениеТоваров.ДокОснование.Ссылка = &ТекВедом
|
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|
| СписаниеТоваров.Ссылка КАК Ссылка
|ИЗ
|
| Документ.СписаниеТоваров КАК СписаниеТоваров
|ГДЕ
| СписаниеТоваров.ДокОснование.Ссылка = &ТекВедом";
Запрос.УстановитьПараметр("ТекВедом", ЭтотОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если Запрос.Выполнить().Пустой() = Истина Тогда
Возврат "Нет подчиненных док-тов.";
Иначе
// В запросе есть документы подчиненные Ведомости док-ты
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецЕсли;
КонецФункции // ПолучитьСписокПодчДок()
(14)
И вот ещё функция:
Функция ПолучитьСписокПодчДок()
...
...
РезультатЗапроса = Запрос.Выполнить();
Если Запрос.Выполнить().Пустой() = Истина Тогда
Возврат "Нет подчиненных док-тов.";
Иначе
// В запросе есть документы подчиненные Ведомости док-ты
РезультатЗапроса = Запрос.Выполнить(); Показать
Может не актуально уже.
Может я ошибаюсь, поправьте, а зачем ТРИ раза выполнять запрос?
И вот ещё функция:
Функция ПолучитьСписокПодчДок()
...
...
РезультатЗапроса = Запрос.Выполнить();
Если Запрос.Выполнить().Пустой() = Истина Тогда
Возврат "Нет подчиненных док-тов.";
Иначе
// В запросе есть документы подчиненные Ведомости док-ты
РезультатЗапроса = Запрос.Выполнить();
Может не актуально уже.
Может я ошибаюсь, поправьте, а зачем ТРИ раза выполнять запрос?
Подправил Процедура ЖурнПодчДок(), на случай когда нет подчинённых документов:
Процедура ЖурнПодчДок(Элемент)
СписокРз = Новый СписокЗначений;
РезультатЗапроса = ПолучитьСписокПодчДок();
Если РезультатЗапроса <> "Нет подчиненных док-тов." Тогда
Рз = РезультатЗапроса.Выгрузить();
Рзз = Рз.ВыгрузитьКолонку("Ссылка");
СписокРз.ЗагрузитьЗначения(Рзз);
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = СписокРз;
ФормаЖурнала.Открыть();
Иначе
Предупреждение("Нет подчиненных док-тов.");
КонецЕсли;
КонецПроцедуры
Процедура ЖурнПодчДок(Элемент)
СписокРз = Новый СписокЗначений;
РезультатЗапроса = ПолучитьСписокПодчДок();
Если РезультатЗапроса <> "Нет подчиненных док-тов." Тогда
Рз = РезультатЗапроса.Выгрузить();
Рзз = Рз.ВыгрузитьКолонку("Ссылка");
СписокРз.ЗагрузитьЗначения(Рзз);
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение = СписокРз;
ФормаЖурнала.Открыть();
Иначе
Предупреждение("Нет подчиненных док-тов.");
КонецЕсли;
КонецПроцедуры
(16) sidalexsandr, тогда уж так...
............
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецЕсли;
КонецФункции // ПолучитьСписокПодчДок()
//========================================================== ========
Процедура ЖурнПодчДок(Элемент)
МассивДокументов = ПолучитьСписокПодчДок();
Если МассивДокументов.Количество() > 0 Тогда
ФормаЖурнала = ЖурналыДокументов.СкладскиеДокументы.ПолучитьФорму();
ФормаЖурнала.Отбор.Ссылка.Использование = Истина;
ФормаЖурнала.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаЖурнала.Отбор.Ссылка.Значение.ЗагрузитьЗначения(МассивДокументов);
ФормаЖурнала.Открыть();
Иначе
Предупреждение("Нет подчиненных док-тов.");
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот