Вход | Регистрация
 
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) Запрос.УстановитьПараметр("ТолькоВыполненные", <путь к данным, которые связаны с кнопкой>); А в самом запросе поставь условие "НЕ &ТолькоВыполненные ИЛИ Задача.Выполнена".

"Исполнитель = ЭлементыФормы.Исполнитель.Значение;
Выполнена = ЭлементыФормы.Выполнено.Значение;" - да хорош уже "пробираться в анус через гланды". Один ляпнул фигню, а другой зафиксировал в "стандартах разработки"...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.