Здравствуйте, проблема в следующем: необходимо из 3 разных запросов, заполнить 3 области, и просто вывести их параллельно друг другу.
Вопрос, можно ли это реализовать, если да то как?
(23)
Скопируй то что есть, чтоб была архивная копия.
Сделай макет, в котором будет 1 строка со всеми параметрами.
http://prntscr.com/mqsz6n - чтоб вот так в макете было. В соседних ячейках.
Ниже запрос. Я мог накосячить, потому что у меня нет базы с такими метаданными. Писал без консоли запросов.
Дальше 1 циклом заполняешь свою область и выводишь
//Таблица бизнес-процесса
Запрос = Новый Запрос("ВЫБРАТЬ
| СнижениеРисковПричины.Ссылка,
| СнижениеРисковПричины.Риск,
| СнижениеРисковПричины.Причина,
| СнижениеРисковПричины.Мероприятие,
| СнижениеРисковПричины.Ответственный,
| СнижениеРисковПричины.Срок
|ПОМЕСТИТЬ ВТ_Таблица
|ИЗ
| БизнесПроцесс.СнижениеРисков.Причины КАК СнижениеРисковПричины
| ГДЕ
| СнижениеРисковПричины.Ссылка = &Ссылка;
|
//ПервыйДокумент
|ВЫБРАТЬ ПЕРВЫЕ 1
|ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс,
|ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
|ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
|ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР
|ПОМЕСТИТЬ ПервыйДокумент
| ИЗ
|Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
|
|ГДЕ
| ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ОценкаЗначимостиРискаОценка.Ссылка.Дата УБЫВ;
//ВторойДокумент
|ВЫБРАТЬ ПЕРВЫЕ 1
|ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс,
|ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
|ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
|ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР
|ПОМЕСТИТЬ ВторойДокумент
| ИЗ
|Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
|
|ГДЕ
| ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ОценкаЗначимостиРискаОценка.Ссылка.Дата Возр;
|
|ВЫБРАТЬ
|ВТ_Таблица.Риск,
|ВТ_Таблица.Причина,
|ВТ_Таблица.Мероприятие,
|ВТ_Таблица.Ответственный,
|ВТ_Таблица.Срок,
|ПервыйДокумент.ВР,
|ПервыйДокумент.ПР,
|ПервыйДокумент.ЗР,
|ВторойДокумент.ВР КАК ВР1,
|ВторойДокумент.ПР КАК ПР1,
|ВторойДокумент.ЗР КАК ЗР1
|ИЗ ВТ_Таблица КАК ВТ_Таблица
|ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
|ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
|ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
|ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс");
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
ОбластьТаблица.параметры.Заполнить(РезультатЗапроса);
КонецЦикла;
(11)оценки типа: Вер, Пос, Знач.
В первом случае выводятся оценки из первого документа, во втором случае из второго.
То есть, Есть два документа что то типа до и после, До там значения 1 1 1, после 1 2 2, как то так
(12) Я вижу 1 и тот же Документ, но ладно.
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
Запрос3.УстановитьПараметр("Ссылка", Объект.Ссылка);
Пустота там, потому что макет 1 и тот же. грубо говоря ТабличныйДокумент3 имеет в себе параметры
Риск,
Причина,
Мероприятие,
Ответственный,
Срок
Но они пустые.
Проще всего сделай отдельно макет с областями Оценок.
http://prntscr.com/mqs615 - вот тут вот это, но пустое
Или сделай как посоветовали в 6
(11)Я переделал макет, видимо в макете проблема была какая - то, что то типа были невидимые ячейки, и область 2 присоединялась после этих невидимых ячеек
(15)Нет, табдок 3 имел в себе только 3 параметра, это ВР, ПР,ЗР.
Я создал заново такой же макет, и все стало на свои места.
Спасибо большое.
Если не сложно ответьте на еще один вопрос?
Как в выборке выбрать первую строку и запихнуть его в параметр?
Запрос2 = Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| СнижениеРисков.Причины.(
| Риск,
| Причина,
| Мероприятие,
| Ответственный,
| Срок
| ),
| ОценкаЗначимостиРиска.Оценка.(
| ВероятностьРиска КАК ВР,
| ПоследствияРиска КАК ПР,
| ЗначимостьРиска КАК ЗР
| )
|ИЗ
| БизнесПроцесс.СнижениеРисков КАК СнижениеРисков
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОценкаЗначимостиРиска КАК ОценкаЗначимостиРиска
| ПО СнижениеРисков.Ссылка = ОценкаЗначимостиРиска.БизнесПроцесс
|ГДЕ
| СнижениеРисков.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса2 = Запрос2.Выполнить();
Выборка2 = РезультатЗапроса2.Выбрать();
Пока Выборка2.Следующий() Цикл
ТабДок2.Вывести(ОбластьЗаголовокТаблицы);
ВыборкаПричины = Выборка2.Причины.Выбрать();
Пока ВыборкаПричины.Следующий() Цикл
ВыборкаОценка = Выборка2.Оценка.Выбрать(); //// Вот тут надо как-то выбрать первую строку и только ей заполнить параметры
Пока ВыборкаОценка.Следующий() Цикл
ОбластьТаблица.параметры.Заполнить(ВыборкаОценка);
КонецЦикла;
ОбластьТаблица.параметры.заполнить(ВыборкаПричины);
ТабДок2.Вывести(ОбластьТаблица);
КонецЦикла;
КонецЦикла;
Показать
У меня получается в выборке 2 документа, поэтому и на макете получается две таблицы. а надо в выборке выбрать 1 документ.
Как - то так.
Можно в пример привести еще:
Выборка = результатЗапроса.Выполнить().Выгрузить()[0] - по индексу
выбираем первую строку, как в выборке сделать примерно так же
На скрине покажу.
У меня получается: Первый Скрин
Надо как на: Второй скрин
(23)
Скопируй то что есть, чтоб была архивная копия.
Сделай макет, в котором будет 1 строка со всеми параметрами.
http://prntscr.com/mqsz6n - чтоб вот так в макете было. В соседних ячейках.
Ниже запрос. Я мог накосячить, потому что у меня нет базы с такими метаданными. Писал без консоли запросов.
Дальше 1 циклом заполняешь свою область и выводишь
//Таблица бизнес-процесса
Запрос = Новый Запрос("ВЫБРАТЬ
| СнижениеРисковПричины.Ссылка,
| СнижениеРисковПричины.Риск,
| СнижениеРисковПричины.Причина,
| СнижениеРисковПричины.Мероприятие,
| СнижениеРисковПричины.Ответственный,
| СнижениеРисковПричины.Срок
|ПОМЕСТИТЬ ВТ_Таблица
|ИЗ
| БизнесПроцесс.СнижениеРисков.Причины КАК СнижениеРисковПричины
| ГДЕ
| СнижениеРисковПричины.Ссылка = &Ссылка;
|
//ПервыйДокумент
|ВЫБРАТЬ ПЕРВЫЕ 1
|ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс,
|ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
|ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
|ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР
|ПОМЕСТИТЬ ПервыйДокумент
| ИЗ
|Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
|
|ГДЕ
| ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ОценкаЗначимостиРискаОценка.Ссылка.Дата УБЫВ;
//ВторойДокумент
|ВЫБРАТЬ ПЕРВЫЕ 1
|ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс,
|ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
|ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
|ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР
|ПОМЕСТИТЬ ВторойДокумент
| ИЗ
|Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
|
|ГДЕ
| ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ОценкаЗначимостиРискаОценка.Ссылка.Дата Возр;
|
|ВЫБРАТЬ
|ВТ_Таблица.Риск,
|ВТ_Таблица.Причина,
|ВТ_Таблица.Мероприятие,
|ВТ_Таблица.Ответственный,
|ВТ_Таблица.Срок,
|ПервыйДокумент.ВР,
|ПервыйДокумент.ПР,
|ПервыйДокумент.ЗР,
|ВторойДокумент.ВР КАК ВР1,
|ВторойДокумент.ПР КАК ПР1,
|ВторойДокумент.ЗР КАК ЗР1
|ИЗ ВТ_Таблица КАК ВТ_Таблица
|ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
|ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
|ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
|ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс");
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
ОбластьТаблица.параметры.Заполнить(РезультатЗапроса);
КонецЦикла;
(24)Я переделал запроса, получилось так, он работает, проверил.
Сейчас буду пытаться заполнять им макет.
ВЫБРАТЬ
СнижениеРисковПричины.Ссылка,
СнижениеРисковПричины.Риск,
СнижениеРисковПричины.Причина,
СнижениеРисковПричины.Мероприятие,
СнижениеРисковПричины.Ответственный,
СнижениеРисковПричины.Срок
ПОМЕСТИТЬ ВТ_Таблица
ИЗ
БизнесПроцесс.СнижениеРисков.Причины КАК СнижениеРисковПричины
ГДЕ
СнижениеРисковПричины.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс
ПОМЕСТИТЬ ПервыйДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата ВОЗР;
//////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс
ПОМЕСТИТЬ ВторойДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата УБЫВ;
/////////////////////////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Таблица.Риск,
ВТ_Таблица.Причина,
ВТ_Таблица.Мероприятие,
ВТ_Таблица.Ответственный,
ВТ_Таблица.Срок,
ПервыйДокумент.ВР,
ПервыйДокумент.ПР,
ПервыйДокумент.ЗР,
ВторойДокумент.ВР КАК ВР1,
ВторойДокумент.ПР КАК ПР1,
ВторойДокумент.ЗР КАК ЗР1
ИЗ ВТ_Таблица КАК ВТ_Таблица
ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс
(23) И у меня еще 1 вопрос. Если в документе ОценкаЗначимостиРиска в табличной части Оценки есть несколько строк, как связывать строку оценки и бизнес-процесс?
(28)Получилось вот как: Почти как надо, единственное почему то документ не правильно выводиться. В первом случае ВР,Пр,Зр, должны быть 1 1 1, во втором случае 2 2 2.
//////Ошибка
Вот я дурак, в макете вместо ВР1, было написано ВР. так же и с ПР и ЗР.
Все работает как мне надо!!!!
Спасибо!!!!!
Осталоьс в запросе еще некоторые данные получить, и так же вывести их в макет.
Буду разбираться как это сделать, просто с временными таблицами я плохо взаимодействую
(29)
Надо проверить правильно ли ты обозвал параметры в макете.
Что возвращает запрос.
.....
Умеешь пользоваться отладкой?
У тебя есть консоль запросов?
(30)Вы прям как ванга, я написал в пред сообщении что макет был не правильный, потом прочитал ваше смс про макет))
Да, консоль есть, в консоли выводится все так, как надо. Я проверял.
В итоге, все получилось как надо. Спасибо большое.
У меня в целом документ, связан с бп, По реквизиту "Основание", то есть эти оценки, типа 1 1 1 , 2 2 2, ни какие-то левые значения, это именно те значения, которые привязаны через документ к бп.
(35)
БП имеет таб. часть Причины в которой может быть несколько строк
ОценкаЗначимостиРиска имеет таб. часть оценка, в которой может быть несколько строк
Я просто предполагал, что оценивается каждый риск отдельно (каждая строка ТЧ бизнес-процесса имеет свои собственные оценки из ТЧ документа)
Я просто предполагал, что оценивается каждый риск отдельно (каждая строка ТЧ бизнес-процесса имеет свои собственные оценки из ТЧ документа)
так и есть.
например. в тч бп написано:
Риск
Риск1
Риск2
в тч документа точно так же,
только
Риск Оценка
Риск1 1 2 4
Риск2 2 3 6
дело наверное в том, что порядок в тч документа не меняется, а остается таким же как и в тч бп, так что связывать их думаю нет смысла, хотя Вы правльно догодались об этом, ну можно условие поставить что ТЧ.Оценка.Риск.Ссылка = БП.Причины.Риск.Ссылка?
ну на данный момент у меня все, как надо))
Поправка. оказалось НЕ все как мне надо.
Надо связывать каждую строку, Вы правильно написали, спасибо за мысль
(37)
Значит здесь нужно связывать не только по документу, но еще и по риску
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс ,
ОценкаЗначимостиРискаОценка.КакНазываетсяПолеРискаВДокументеВТЧ КАК Риск
ПОМЕСТИТЬ ПервыйДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата ВОЗР;
//////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс ,
ОценкаЗначимостиРискаОценка.КакНазываетсяПолеРискаВДокументеВТЧ КАК Риск
ПОМЕСТИТЬ ВторойДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата УБЫВ;
ВЫБРАТЬ
ВТ_Таблица.Риск,
ВТ_Таблица.Причина,
ВТ_Таблица.Мероприятие,
ВТ_Таблица.Ответственный,
ВТ_Таблица.Срок,
ЕСТЬNULL(ПервыйДокумент.ВР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ВР,
ЕСТЬNULL(ПервыйДокумент.ПР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ПР,
ЕСТЬNULL(ПервыйДокумент.ЗР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ЗР,
ЕСТЬNULL(ВторойДокумент.ВР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ВР1,
ЕСТЬNULL(ВторойДокумент.ПР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ПР1,
ЕСТЬNULL(ВторойДокумент.ЗР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ЗР1
ИЗ ВТ_Таблица КАК ВТ_Таблица
ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
И ВТ_Таблица.Риск = ПервыйДокумент.Риск
ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс
И ВТ_Таблица.Риск = ВторойДокумент.Риск
(38) Сделал, в итоге не выводятся все значения, а выводится только первые 2 строки
ВЫБРАТЬ
СнижениеРисковПричины.Ссылка,
СнижениеРисковПричины.Риск,
СнижениеРисковПричины.Причина,
СнижениеРисковПричины.Мероприятие,
СнижениеРисковПричины.Ответственный,
СнижениеРисковПричины.Срок
ПОМЕСТИТЬ ВТ_Таблица
ИЗ
БизнесПроцесс.СнижениеРисков.Причины КАК СнижениеРисковПричины
ГДЕ
СнижениеРисковПричины.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс,
ОценкаЗначимостиРискаОценка.Риск КАК Риск
ПОМЕСТИТЬ ПервыйДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс,
ОценкаЗначимостиРискаОценка.Риск КАК Риск
ПОМЕСТИТЬ ВторойДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Таблица.Риск,
ВТ_Таблица.Причина,
ВТ_Таблица.Мероприятие,
ВТ_Таблица.Ответственный,
ВТ_Таблица.Срок,
ПервыйДокумент.ВР,
ПервыйДокумент.ПР,
ПервыйДокумент.ЗР,
ВторойДокумент.ВР КАК ВР1,
ВторойДокумент.ПР КАК ПР1,
ВторойДокумент.ЗР КАК ЗР1
ИЗ
ВТ_Таблица КАК ВТ_Таблица
ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
И ВТ_Таблица.Риск = ПервыйДокумент.Риск
ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс
И ВТ_Таблица.Риск = ПервыйДокумент.Риск
Сделай вот так
ЕСТЬNULL(ПервыйДокумент.ВР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ВР,
ЕСТЬNULL(ПервыйДокумент.ПР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ПР,
ЕСТЬNULL(ПервыйДокумент.ЗР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ЗР,
ЕСТЬNULL(ВторойДокумент.ВР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ВР1,
ЕСТЬNULL(ВторойДокумент.ПР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ПР1,
ЕСТЬNULL(ВторойДокумент.ЗР, "ЗначениеКотороеПодставитсяЕслиНетОценки") КАК ЗР1
(39) И для второгоТоже самое. ПЕРВЫЕ 1 - это мы взяли 1 строку из ТЧ. А надо было 1 документ. Т.е нужно разбить на 2 Временные таблицы. 1 найти документ. 2 - взять из него ТЧ
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРиска.Ссылка КАК Ссылка
ПОМЕСТИТЬ ПервыйДокумент_отбор
ИЗ
Документ.ОценкаЗначимостиРиска КАК ОценкаЗначимостиРиска
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс,
ОценкаЗначимостиРискаОценка.Риск КАК Риск
ПОМЕСТИТЬ ПервыйДокумент
ИЗ
ПервыйДокумент_отбор.ссылка.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРискаОценка.Ссылка.Дата
(42) а как сделать В конце проверку?, голову сломал не получается.
По идее надо сравнить Что риск из тч документа = риск из тч БП и ссылка на тч документа = Ссылке на док?
ВЫБРАТЬ
СнижениеРисковПричины.Ссылка,
СнижениеРисковПричины.Риск,
СнижениеРисковПричины.Причина,
СнижениеРисковПричины.Мероприятие,
СнижениеРисковПричины.Ответственный,
СнижениеРисковПричины.Срок
ПОМЕСТИТЬ ВТ_Таблица
ИЗ
БизнесПроцесс.СнижениеРисков.Причины КАК СнижениеРисковПричины
ГДЕ
СнижениеРисковПричины.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРиска.Ссылка КАК Ссылка
ПОМЕСТИТЬ ПервыйДокумент_отбор
ИЗ
Документ.ОценкаЗначимостиРиска КАК ОценкаЗначимостиРиска
ГДЕ
ОценкаЗначимостиРиска.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРиска.Дата ВОЗР
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс КАК БизнесПроцесс,
ОценкаЗначимостиРискаОценка.Риск КАК Риск,
ОценкаЗначимостиРискаОценка.Ссылка как Ссылка1
ПОМЕСТИТЬ ПервыйДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ОценкаЗначимостиРиска.Ссылка КАК Ссылка4
ПОМЕСТИТЬ ВторойДокумент_отбор
ИЗ
Документ.ОценкаЗначимостиРиска КАК ОценкаЗначимостиРиска
ГДЕ
ОценкаЗначимостиРиска.БизнесПроцесс = &Ссылка
УПОРЯДОЧИТЬ ПО
ОценкаЗначимостиРиска.Дата УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР,
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс,
ОценкаЗначимостиРискаОценка.Риск КАК Риск,
ОценкаЗначимостиРискаОценка.Ссылка как Ссылка2
ПОМЕСТИТЬ ВторойДокумент
ИЗ
Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
ГДЕ
ОценкаЗначимостиРискаОценка.Ссылка.БизнесПроцесс = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Таблица.Риск,
ВТ_Таблица.Причина,
ВТ_Таблица.Мероприятие,
ВТ_Таблица.Ответственный,
ВТ_Таблица.Срок,
ПервыйДокумент.ВР,
ПервыйДокумент.ПР,
ПервыйДокумент.ЗР,
ВторойДокумент.ВР КАК ВР1,
ВторойДокумент.ПР КАК ПР1,
ВторойДокумент.ЗР КАК ЗР1
ИЗ
ВТ_Таблица КАК ВТ_Таблица
ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
И ВТ_Таблица.Риск = ПервыйДокумент.Риск
ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс
И (ВТ_Таблица.Риск = ПервыйДокумент.Риск)
ВТ_Таблица КАК ВТ_Таблица
ЛЕВОЕ СОЕДИНЕНИЕ ПервыйДокумент КАК ПервыйДокумент
ПО ВТ_Таблица.Ссылка = ПервыйДокумент.БизнесПроцесс
И ВТ_Таблица.Риск = ПервыйДокумент.Риск
ЛЕВОЕ СОЕДИНЕНИЕ ВторойДокумент КАК ВторойДокумент
ПО ВТ_Таблица.Ссылка = ВторойДокумент.БизнесПроцесс
И (ВТ_Таблица.Риск = ПервыйДокумент.Риск)
Вот тут перепутал. Во втором случае тоже ВторойДокумент должен быть.
Это как раз и есть сравнение риска в тч бп и в тч документа.
(45)Да, я там исправил, еще вчера, и все стало как надо), похоже я там вставил строку скопировав из первого условия, и забыл исправить первый доку на второй))
Спасибо!!! еще раз
(19)Нет, документов по этому бп может быть только 2. потому что больше двух программно запрещено создавать.
В первом случае, мне нужен первый документ по дате, допустим нужен документ с датой 26.02.2019
Во втором случае, мне нужен второй документ, у которого дата 27.02.2019
(13) Если по серьезному, то можно было обойтись 1 запросом и 1 циклом.
"ВЫБРАТЬ
| СнижениеРисков.Причины.(
| Риск,
| Причина,
| Мероприятие,
| Ответственный,
| Срок
| ),
|ИЗ
| БизнесПроцесс.СнижениеРисков КАК СнижениеРисков
Это можно написать по другому. Вот так. Тогда не нужно дополнительно извлекать что-то
"ВЫБРАТЬ
| СнижениеРисковПричины.Риск,
| СнижениеРисковПричины.Причина,
| СнижениеРисковПричины.Мероприятие,
| СнижениеРисковПричины.Ответственный,
| СнижениеРисковПричины.Срок,
| ОценкаЗначимостиРискаОценка.ВероятностьРиска КАК ВР,
| ОценкаЗначимостиРискаОценка.ПоследствияРиска КАК ПР,
| ОценкаЗначимостиРискаОценка.ЗначимостьРиска КАК ЗР
|
|ИЗ
| БизнесПроцесс.СнижениеРисков.Причины КАК СнижениеРисковПричины
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОценкаЗначимостиРиска.Оценка КАК ОценкаЗначимостиРискаОценка
| ПО СнижениеРисковПричины.Ссылка = ОценкаЗначимостиРискаОценка.БизнесПроцесс
|ГДЕ
| СнижениеРисковПричины.Ссылка = &Ссылка"