1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
FransisDrake 27.02.20 - 13:50 | Коллеги, добрый день!
Столкнулся с такой проблемой, существует 4 Задачи. Мне нужно сделать внешнюю обработку, которая собрала информацию с этих задач и вывела бы их мне. Как построить запрос, чтобы он совсех четырех собрал информацию? | ||
ДенисЧ 1 - 27.02.20 - 13:52 | Лучше всего - запрос построить правильно.
А ещё лучше - показать, с чего начал, что не получилось | ||
FransisDrake 2 - 27.02.20 - 13:58 | Нууу...немного всё не получается..
Мне нужно, чтобы в итоговом списке были данные: Дата, Наименование, Предмет, Автор, ДатаВыполнения. выбрал я данные, а как их дальше сгруппировать? "ВЫБРАТЬ | НА_СогласованиеБюджетаПроекта.Дата,
| НА_СогласованиеВыбораПоставщика.Дата КАК Дата1,
| НА_СогласованиеЗаказаПоставщику.Дата КАК Дата2,
| НА_СогласованиеСоглашенияНаВыполненияРабот.Дата КАК Дата3,
| НА_ЗадачаСогласованияВыбораПоставщика.Наименование,
| НА_СогласованиеЗаказаПоставщику1.Наименование КАК Наименование1,
| НА_ЗадачаСогласования.Наименование КАК Наименование2,
| НА_ЗадачаСогласованияЗадачиПоИсполнителю.Наименование КАК Наименование3,
| НА_СогласованиеБюджетаПроекта.Предмет,
| НА_СогласованиеВыбораПоставщика.Предмет КАК Предмет1,
| НА_СогласованиеЗаказаПоставщику.Предмет КАК Предмет2,
| НА_СогласованиеСоглашенияНаВыполненияРабот.Предмет КАК Предмет3,
| НА_СогласованиеБюджетаПроекта.Автор,
| НА_СогласованиеВыбораПоставщика.Автор КАК Автор1,
| НА_СогласованиеЗаказаПоставщику.Автор КАК Автор2,
| НА_СогласованиеСоглашенияНаВыполненияРабот.Автор КАК Автор3,
| НА_ЗадачаСогласования.ДатаВыполнения,
| НА_ЗадачаСогласованияВыбораПоставщика.ДатаВыполнения КАК ДатаВыполнения1,
| НА_ЗадачаСогласованияЗадачиПоИсполнителю.ДатаВыполнения КАК ДатаВыполнения2,
| НА_СогласованиеЗаказаПоставщику1.ДатаВыполнения КАК ДатаВыполнения3
|ИЗ
| БизнесПроцесс.НА_СогласованиеВыбораПоставщика КАК НА_СогласованиеВыбораПоставщика
| ЛЕВОЕ СОЕДИНЕНИЕ Задача.НА_ЗадачаСогласованияВыбораПоставщика КАК НА_ЗадачаСогласованияВыбораПоставщика
| ПО НА_СогласованиеВыбораПоставщика.ВедущаяЗадача = НА_ЗадачаСогласованияВыбораПоставщика.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Задача.НА_СогласованиеЗаказаПоставщику КАК НА_СогласованиеЗаказаПоставщику1
| ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.НА_СогласованиеЗаказаПоставщику КАК НА_СогласованиеЗаказаПоставщику
| ПО НА_СогласованиеЗаказаПоставщику1.БизнесПроцесс = НА_СогласованиеЗаказаПоставщику.Ссылка
| ПО НА_СогласованиеВыбораПоставщика.ВедущаяЗадача = НА_СогласованиеЗаказаПоставщику1.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Задача.НА_ЗадачаСогласования КАК НА_ЗадачаСогласования
| ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.НА_СогласованиеСоглашенияНаВыполненияРабот КАК НА_СогласованиеСоглашенияНаВыполненияРабот
| ПО НА_ЗадачаСогласования.БизнесПроцесс = НА_СогласованиеСоглашенияНаВыполненияРабот.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.НА_СогласованиеБюджетаПроекта КАК НА_СогласованиеБюджетаПроекта
| ПО НА_ЗадачаСогласования.БизнесПроцесс = НА_СогласованиеБюджетаПроекта.Ссылка
| ПО НА_СогласованиеВыбораПоставщика.ВедущаяЗадача = НА_ЗадачаСогласования.Ссылка,
| Задача.НА_ЗадачаСогласования.ЗадачиПоИсполнителю КАК НА_ЗадачаСогласованияЗадачиПоИсполнителю" | ||
hhhh 3 - 27.02.20 - 14:09 | (2) лишние строчки выкиньте просто. | ||
FransisDrake 4 - 27.02.20 - 14:14 | (2) разве там есть лишние? | ||
D_E_S_131 5 - 27.02.20 - 15:32 | Зачем у Вас все через левое соединение связывается? | ||
hhhh 6 - 27.02.20 - 15:38 | (4) что это за хрень, Автор1, Автор2, Автор3? Нафига вам столько авторов? Они не лишние? | ||
FransisDrake 7 - 28.02.20 - 09:27 | Коллеги, добрый день!
С запросом я разобрался, всем спасибо! Но теперь у меня другой вопрос: На форме у меня есть реквизит Исполнитель с типом Справочники.Пользователи;мне нужно, чтобы при изменении исполнителя, изменялись данные. Сейчас он выводит все данные, независимо от выбора исполнителя: Запрос = Новый Запрос;
Исполнитель = ЭлементыФормы.Исполнитель;
Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
Запрос.УстановитьПараметр("Выполненные", Выполнена);
Запрос.Текст=
"ВЫБРАТЬ
| НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Автор КАК Автор,
| НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Предмет КАК Предмет,
| НА_ЗадачаСогласованияВыбораПоставщика.Дата,
| НА_ЗадачаСогласованияВыбораПоставщика.Наименование,
| НА_ЗадачаСогласованияВыбораПоставщика.ДатаВыполнения
|ИЗ
| Задача.НА_ЗадачаСогласованияВыбораПоставщика КАК НА_ЗадачаСогласованияВыбораПоставщика
|ГДЕ
| НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Автор = &Исполнитель
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НА_ЗадачаСогласования.БизнесПроцесс.Автор,
| НА_ЗадачаСогласования.БизнесПроцесс.Предмет,
| НА_ЗадачаСогласования.Дата,
| НА_ЗадачаСогласования.Наименование,
| НА_ЗадачаСогласования.ДатаВыполнения
|ИЗ
| Задача.НА_ЗадачаСогласования КАК НА_ЗадачаСогласования
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НА_СогласованиеЗаказаПоставщику.БизнесПроцесс.Автор,
| НА_СогласованиеЗаказаПоставщику.БизнесПроцесс.Предмет,
| НА_СогласованиеЗаказаПоставщику.Дата,
| НА_СогласованиеЗаказаПоставщику.Наименование,
| НА_СогласованиеЗаказаПоставщику.ДатаВыполнения
|ИЗ
| Задача.НА_СогласованиеЗаказаПоставщику КАК НА_СогласованиеЗаказаПоставщику";
Результат = Запрос.Выполнить();
ЭлементыФормы.Список.СоздатьКолонки();
Список.Загрузить(Запрос.Выполнить().Выгрузить()); | ||
МимохожийОднако 8 - 28.02.20 - 09:30 | Добавь условие в каждую таблицу | ||
FransisDrake 9 - 28.02.20 - 09:34 | (8) Теперь ничего не выводит
Запрос = Новый Запрос;
Исполнитель = ЭлементыФормы.Исполнитель;
Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
Запрос.Текст=
"ВЫБРАТЬ
| НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Автор КАК Автор,
| НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Предмет КАК Предмет,
| НА_ЗадачаСогласованияВыбораПоставщика.Дата,
| НА_ЗадачаСогласованияВыбораПоставщика.Наименование,
| НА_ЗадачаСогласованияВыбораПоставщика.ДатаВыполнения
|ИЗ
| Задача.НА_ЗадачаСогласованияВыбораПоставщика КАК НА_ЗадачаСогласованияВыбораПоставщика
|ГДЕ
| НА_ЗадачаСогласованияВыбораПоставщика.Исполнитель = &Исполнитель
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НА_ЗадачаСогласования.БизнесПроцесс.Автор,
| НА_ЗадачаСогласования.БизнесПроцесс.Предмет,
| НА_ЗадачаСогласования.Дата,
| НА_ЗадачаСогласования.Наименование,
| НА_ЗадачаСогласования.ДатаВыполнения
|ИЗ
| Задача.НА_ЗадачаСогласования КАК НА_ЗадачаСогласования
|ГДЕ
| НА_ЗадачаСогласования.Исполнитель = &Исполнитель
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НА_СогласованиеЗаказаПоставщику.БизнесПроцесс.Автор,
| НА_СогласованиеЗаказаПоставщику.БизнесПроцесс.Предмет,
| НА_СогласованиеЗаказаПоставщику.Дата,
| НА_СогласованиеЗаказаПоставщику.Наименование,
| НА_СогласованиеЗаказаПоставщику.ДатаВыполнения
|ИЗ
| Задача.НА_СогласованиеЗаказаПоставщику КАК НА_СогласованиеЗаказаПоставщику
|ГДЕ
| НА_СогласованиеЗаказаПоставщику.Исполнитель = &Исполнитель";
Результат = Запрос.Выполнить();
ЭлементыФормы.Список.СоздатьКолонки();
Список.Загрузить(Запрос.Выполнить().Выгрузить()); | ||
vicof 10 - 28.02.20 - 09:39 | Исполнитель это не элемент формы, а элемент справочника. | ||
FransisDrake 11 - 28.02.20 - 09:42 | (10) Всё равно, он выводит колонки, но не содержимое. | ||
FransisDrake 12 - 28.02.20 - 10:02 | Хелп?)) | ||
vicof 13 - 28.02.20 - 10:14 | намеков не понимаешь, ладно
Исполнитель = ЭлементыФормы.Исполнитель.Значение; | ||
D_E_S_131 14 - 28.02.20 - 10:48 | (9) "Исполнитель = ЭлементыФормы.Исполнитель;" - это лишнее. Если запрос выполняется в процедуре с контекстом формы, то ты его и так по имени "Исполнитель" получишь. | ||
FransisDrake 15 - 28.02.20 - 11:25 | На форме у меня стоит булево кнопка, не могу сообразить, как сделать так, чтобы если выбрано "ДА", вывелись только выполненные задачи а если "НЕТ", то все задачи? Запрос = Новый Запрос; Исполнитель = ЭлементыФормы.Исполнитель.Значение; Выполнена = ЭлементыФормы.Выполнено.Значение; Запрос.УстановитьПараметр("Исполнитель", Исполнитель); Запрос.УстановитьПараметр("ВсеЗадачи", Выполнена); Запрос.Текст= "ВЫБРАТЬ | НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Автор КАК Автор, | НА_ЗадачаСогласованияВыбораПоставщика.БизнесПроцесс.Предмет КАК Предмет, | НА_ЗадачаСогласованияВыбораПоставщика.Дата, | НА_ЗадачаСогласованияВыбораПоставщика.Наименование, | НА_ЗадачаСогласованияВыбораПоставщика.ДатаВыполнения |ИЗ | Задача.НА_ЗадачаСогласованияВыбораПоставщика КАК НА_ЗадачаСогласованияВыбораПоставщика |ГДЕ | НА_ЗадачаСогласованияВыбораПоставщика.Исполнитель = &Исполнитель | И (&ВсеЗадачи | ИЛИ НА_ЗадачаСогласованияВыбораПоставщика.Выполнена = ИСТИНА) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | НА_ЗадачаСогласования.БизнесПроцесс.Автор, | НА_ЗадачаСогласования.БизнесПроцесс.Предмет, | НА_ЗадачаСогласования.Дата, | НА_ЗадачаСогласования.Наименование, | НА_ЗадачаСогласования.ДатаВыполнения |ИЗ | Задача.НА_ЗадачаСогласования КАК НА_ЗадачаСогласования |ГДЕ | НА_ЗадачаСогласования.Исполнитель = &Исполнитель | И (&ВсеЗадачи | ИЛИ НА_ЗадачаСогласования.Выполнена = ИСТИНА) | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | НА_СогласованиеЗаказаПоставщику.БизнесПроцесс.Автор, | НА_СогласованиеЗаказаПоставщику.БизнесПроцесс.Предмет, | НА_СогласованиеЗаказаПоставщику.Дата, | НА_СогласованиеЗаказаПоставщику.Наименование, | НА_СогласованиеЗаказаПоставщику.ДатаВыполнения |ИЗ | Задача.НА_СогласованиеЗаказаПоставщику КАК НА_СогласованиеЗаказаПоставщику |ГДЕ | НА_СогласованиеЗаказаПоставщику.Исполнитель = &Исполнитель | И (&ВсеЗадачи | ИЛИ НА_СогласованиеЗаказаПоставщику.Выполнена = ИСТИНА)"; Результат = Запрос.Выполнить(); ЭлементыФормы.Список.СоздатьКолонки(); Список.Загрузить(Запрос.Выполнить().Выгрузить()); | ||
FransisDrake 16 - 28.02.20 - 11:26 | (15) На форме у меня стоит булево кнопка, не могу сообразить, как сделать так, чтобы если выбрано "ДА", вывелись только выполненные задачиа если "НЕТ", то все задачи? | ||
D_E_S_131 17 - 28.02.20 - 12:31 | (16) Запрос.УстановитьПараметр("ТолькоВыполненные", <путь к данным, которые связаны с кнопкой>); А в самом запросе поставь условие "НЕ &ТолькоВыполненные ИЛИ Задача.Выполнена".
"Исполнитель = ЭлементыФормы.Исполнитель.Значение; Выполнена = ЭлементыФормы.Выполнено.Значение;" - да хорош уже "пробираться в анус через гланды". Один ляпнул фигню, а другой зафиксировал в "стандартах разработки"... |
|
Список тем форума
|