Имя: Пароль:
1C
1С v8
Задача.ОсновнойОбъектАдресации ERP 1С
, ,
0 BenDiget
 
19.12.22
10:57
Привет!
Ребят, подскажите пожалуйста, как работать с задачами в ERP? Мне просто надо назначить Исполнителя, и чтобы у него на начальном экране отображалось. Пишу привычный с УПП код:

        Задача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
    Задача.Исполнитель = Пользователи.НайтиПоИмени("Макиев Олег Юрьевич");
    Задача.Автор = Пользователи.ТекущийПользователь();
    Задача.Наименование = "Тест";
    Задача.Описание = "Тест2";
    Задача.Предмет = Документы.ЗаявкаНаРасходованиеДенежныхСредств.НайтиПоНомеру("СА00-003620");
    Задача.СрокИсполнения = '20221231';
    Задача.Дата = '20221219';
    Задача.Записать();

Но задача не появляется, в запросе данные ERP получает из Задача.ЗадачаИсполнителя.ЗадачиПоИсполнителю
Но такого реквизита - ЗадачиПоИсполнителю - нет, не понимаю как это работает.
Прошу написать простейший код, как заполнить там исполнителя и прочее, без душноты, ок? Пожалуйста!
1 BenDiget
 
19.12.22
11:35
Неужели никто не знает?)
2 Галахад
 
гуру
19.12.22
11:36
(1) Покажи запрос, что-ли.
3 Гипервизор
 
19.12.22
11:38
Так и в УПП запросы к таблице ЗадачиПоИсполнителю.
4 Garykom
 
гуру
19.12.22
11:47
Скобочки не забыл?

И да, без душноты не получится
Потому что нуб
5 BenDiget
 
19.12.22
11:54
(2) Вот таким запросом формируется список задач на начальном экране:
ВЫБРАТЬ
    ЗадачиПоИсполнителю.Ссылка,
    ЗадачиПоИсполнителю.ПометкаУдаления,
    ЗадачиПоИсполнителю.Номер,
    ЗадачиПоИсполнителю.Дата,
    ЗадачиПоИсполнителю.БизнесПроцесс,
    ЗадачиПоИсполнителю.ТочкаМаршрута,
    ЗадачиПоИсполнителю.Наименование,
    ЗадачиПоИсполнителю.Выполнена,
    ЗадачиПоИсполнителю.СрокИсполнения,
    ВЫБОР
        КОГДА ЗадачиПоИсполнителю.ДатаНачала = &НезаполненнаяДата
            ТОГДА &НачалоДня
        ИНАЧЕ ЗадачиПоИсполнителю.ДатаНачала
    КОНЕЦ КАК ДатаНачала,
    ЗадачиПоИсполнителю.ДатаИсполнения,
    ЗадачиПоИсполнителю.Важность,
    ЗадачиПоИсполнителю.Описание,
    ЗадачиПоИсполнителю.РольИсполнителя,
    ЗадачиПоИсполнителю.Исполнитель,
    ЗадачиПоИсполнителю.Представление,
    ЗадачиПоИсполнителю.ПредметСтрокой,
    ЗадачиПоИсполнителю.Автор,
    ЗадачиПоИсполнителю.ПринятаКИсполнению,
    ВЫБОР
        КОГДА ЗадачиПоИсполнителю.Важность = ЗНАЧЕНИЕ(Перечисление.ВариантыВажностиЗадачи.Низкая)
            ТОГДА 0
        КОГДА ЗадачиПоИсполнителю.Важность = ЗНАЧЕНИЕ(Перечисление.ВариантыВажностиЗадачи.Высокая)
            ТОГДА 2
        ИНАЧЕ 1
    КОНЕЦ КАК ВажностьКартинка,
    ЗадачиПоИсполнителю.Предмет,
    ВЫБОР
        КОГДА ЗадачиПоИсполнителю.СрокИсполнения <= &ТекущаяДата
            ТОГДА &Просрочено
        КОГДА ЗадачиПоИсполнителю.СрокИсполнения > &ТекущаяДата И ЗадачиПоИсполнителю.СрокИсполнения <= &КонецДня
            ТОГДА &Сегодня
        КОГДА ЗадачиПоИсполнителю.СрокИсполнения > &КонецДня И ЗадачиПоИсполнителю.СрокИсполнения <= &КонецНедели
            ТОГДА &ЭтаНеделя
        КОГДА ЗадачиПоИсполнителю.СрокИсполнения > &КонецНедели И ЗадачиПоИсполнителю.СрокИсполнения <= &КонецСледующейНедели
            ТОГДА &СледующаяНеделя
        ИНАЧЕ &Позднее
    КОНЕЦ КАК СрокДляГруппировки
ИЗ
    Задача.ЗадачаИсполнителя.ЗадачиПоИсполнителю КАК ЗадачиПоИсполнителю
ГДЕ
    ЗадачиПоИсполнителю.СостояниеБизнесПроцесса = ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Активен)
6 BenDiget
 
19.12.22
11:59
(4) В какой строке скобочки должны быть?
7 Garykom
 
гуру
19.12.22
12:30
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
    
    Если ТипЗнч(ДанныеЗаполнения) = Тип("ЗадачаОбъект.ЗадачаИсполнителя") Тогда
        ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения,
            "БизнесПроцесс,ТочкаМаршрута,Наименование,Исполнитель,РольИсполнителя,ОсновнойОбъектАдресации,"
            + "ДополнительныйОбъектАдресации,Важность,ДатаИсполнения,Автор,Описание,СрокИсполнения,"
            + "ДатаНачала,РезультатВыполнения,Предмет");
        Дата = ТекущаяДатаСеанса();
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(Важность) Тогда
        Важность = Перечисления.ВариантыВажностиЗадачи.Обычная;
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(СостояниеБизнесПроцесса) Тогда
        СостояниеБизнесПроцесса = Перечисления.СостоянияБизнесПроцессов.Активен;
    КонецЕсли;
    
КонецПроцедуры
8 BenDiget
 
19.12.22
12:48
(7) Исходя из кода, ДанныеЗаполнения должны включать в себя: ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации. Я думаю проблема именно в этом, как формируется эта переменная?
"ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации"
Потому что как ты мог видеть, Наименование, Исполнитель я и так заполнил
9 Галахад
 
гуру
19.12.22
12:55
10 BenDiget
 
19.12.22
13:12
(9) Это я читал, там написано как создать начальную страницу. Она по умолчанию уже создана и настроена, как в этой теории. Мне надо добавить задачу. Реквизиты адресации. Их надо как то заполнить.
11 BenDiget
 
19.12.22
13:23
(9) https://disk.yandex.ru/i/9bFzhA7ehzneJQ
Вот скрин... Нет такого объекта доступного задачапоисполнителю
12 Галахад
 
гуру
19.12.22
13:33
(11) Это в конфигураторе или в предприятии?
13 Гипервизор
 
19.12.22
13:38
(11) Откройте конструктор запроса и удивитесь.
Ещё раз: ЗадачиПоИсполнителю это виртуальная таблица для объекта метаданных Задача.
Неужели не сталкивались с этим в "привычном с УПП коде"?
14 BenDiget
 
19.12.22
13:46
Как формируется виртуальная таблица ЗадачиПоИсполнителям? Господа профессионалы. Повторюсь, я создал объект задача исполнителя, добавил исполнителя, но его не видно на начальном экране, что делать?
15 Гипервизор
 
19.12.22
13:53
(14) Странный вопрос. А как вообще формируются виртуальные таблицы?

Созданная задача запросом видна?
Запрос, которым формируется список задач на начальном экране, уже проанализировали на условия, которыми может отсекаться ваша задача?
Попробовали выполнить этот запрос вообще без условий?
16 Мультук
 
гуру
19.12.22
13:58
Есть мнение, что автор прочёл (9) по диагонали и не стал разбираться с адресацией и заполнять
e1cib/list/РегистрСведений.ИсполнителиЗадач
17 BenDiget
 
19.12.22
14:01
(15) Так задача видна:
ВЫБРАТЬ
    ЗадачиПоИсполнителю.Ссылка КАК Ссылка
ИЗ
    Задача.ЗадачаИсполнителя КАК ЗадачиПоИсполнителю

А так не видна:

ВЫБРАТЬ
    ЗадачиПоИсполнителю.Ссылка    
ИЗ
    Задача.ЗадачаИсполнителя.ЗадачиПоИсполнителю КАК ЗадачиПоИсполнителю
18 BenDiget
 
19.12.22
14:05
(16) Эмм... Но как заполнить объекты адресации?
РС заполнен исполнителями и ролями. Объекты адресации пустые. Дело в них?


Напишите пожалуйста пример.
19 Гипервизор
 
19.12.22
14:09
(17) Вас не смущает, что исполнителя в задаче вы не указывали, но строите запрос к таблице ЗадачиПоИсполнителю?
20 BenDiget
 
19.12.22
14:11
(19) Вот тут Задача. Авторизованный пользователь указан. Это типовое заполнение. https://disk.yandex.ru/i/-rW2_XLksUMnyw

Исполнитель указан:

        Задача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
    Задача.Исполнитель = Пользователи.НайтиПоИмени("Макиев Олег Юрьевич");
    Задача.Автор = Пользователи.ТекущийПользователь();
    Задача.Наименование = "Тест";
    Задача.Описание = "Тест2";
    Задача.Предмет = Документы.ЗаявкаНаРасходованиеДенежныхСредств.НайтиПоНомеру("СА00-003620");
    Задача.СрокИсполнения = '20230123';
    Задача.Дата = '20221218';
    Задача.ДатаНачала = '20221218';
    Задача.Записать();
21 BenDiget
 
19.12.22
14:12
(19) вторая строка
22 BenDiget
 
19.12.22
14:15
(19) Я уже кучу задач насоздавал, везде есть исполнитель https://disk.yandex.ru/d/J5rea2mw5yrHww
23 BenDiget
 
19.12.22
14:16
Однако в списке Мои задачи их нет
24 Гипервизор
 
19.12.22
14:27
(20) Нет, вы не заполняете исполнителя. Сравните тип реквизита адресации Исполнитель и тип возвращаемого значения Пользователи.НайтиПоИмени().
25 Гипервизор
 
19.12.22
14:28
И если бы вы в (17) получали запросом не только лишь ссылку, а несколько больше данных, вы бы это увидели.
26 BenDiget
 
19.12.22
14:34
(24) (25)  во втором моем запросе вообще 0 значений. Поэтому мне сложно увидеть это.

Тип ОсновнойОбъектАдресации = Характеристика.ОбъектыАдресацииЗадач

Мне надо заполнить это Задача.ОсновнойОбъектАдресации = ?
Но чем это заполнить?
Вот план видов характеристик, там ведь не пользователи: https://disk.yandex.ru/i/cTM4c1pnZgPUyA
27 BenDiget
 
19.12.22
14:34
(25) Вы можете написать код? Мне без примера сложно понять. А пример я нигде не могу найти
28 Гипервизор
 
19.12.22
14:49
(27) Вы и сами можете создать пример.
Я вот создаю простую задачу и она у меня видна запросом и к Задача.ЗадачаИсполнителя, и к Задача.ЗадачаИсполнителя.ЗадачиПоИсполнителю.
Что вам сложно увидеть в (24)? Проверьте, что вы передаёте в исполнителя. У вас точно находится этот Макиев и нужного ли типа это значение.
29 BenDiget
 
19.12.22
14:55
(28) Напишите пожалуйста свой код заполнения задачи.
У меня Задача.Исполнитель - это пользователь ссылка
РС ИсполнителиЗадач - Измерение Исполнитель - это Пользователь ссылка
Я ведь не первый раз создаю задачу. Ранее я делал это в УПП, но там никогда не было этих дебильных адресаци, ну или я просто не заполнял, работало и без них.
30 BenDiget
 
19.12.22
15:00
Если вы знаете как заполнить напишите код. Это сложно?
31 BenDiget
 
19.12.22
15:04
Этот форум для чего? В угадайки играть? Или тут помогают?
32 1Сергей
 
19.12.22
15:05
(31) "Сделайте за меня" тут не прокатывает
33 Гипервизор
 
19.12.22
15:06
(29) Ну а я с задачами практически не работал. Не знаю про дебильные адресации, но реквизит Исполнитель есть и в УПП, так что тут ничего нового.
Покажите на скрине, что вот это находит пользователя, как вы уверяете: Пользователи.НайтиПоИмени("Макиев Олег Юрьевич").
Я взял ваш код из (0), убрал для примера Предмет, и совершенно точно заполнил Исполнителя. И задача моя видна запросом к ВТ ЗадачиПоИсполнителю.
34 Гипервизор
 
19.12.22
15:06
(30) Просто проверить то, что советуют - сложно?
35 BenDiget
 
19.12.22
15:08
36 BenDiget
 
19.12.22
15:19
(34) Все верно? на скриншоте
37 Гипервизор
 
19.12.22
15:47
(36) Согласен, пользователь по имени находится.
38 Гипервизор
 
19.12.22
15:49
Вот, проверил на тестовой базе: https://yapx.ru/album/VNNn9
Разница с вашим кодом только в пользователе-исполнителе ну и в поиске документа (у вас некорректно ищется заявка), но Предмет задачи можно вообще пропустить, работает и без него.
39 BenDiget
 
19.12.22
16:04
(38) Видимо это доработки предыдущего подрядчика... Целый день убить. Спасибо за помощь! И за потраченное время!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший