Имя: Пароль:
1C
 
Сценарии и правила обработки нарядов в Итилиум
0 NIGHTHUNTER
 
20.11.20
04:30
Конфигурация Итилиум, редакция 4.5 (4.5.3.6) .
По некоторым сведениям, в конфигурации, в режиме предприятия имеются инструменты, позволяющие обрабатывать кодом или прочими средствами поведение пользователей.
Например проверять заполняемость реквизитов документа Наряд. Или же, проверять правильность заполнения самого документа.

Вот тут задаются настройки этого http://joxi.ru/xAeZ8e6iXbPlJr .

Не подскажете ли как это работает? Я хочу пока проверить, просто при открытии документа Наряд вывести сообщение "Тест", все задаю как нужно но не работает.

Пробую настраивать это действие по разному, но вывести сообщение не получается . http://joxi.ru/DrlxEORHyGZ3vr
1 SleepyHead
 
гуру
20.11.20
04:34
(0) Когда ничего не получается - откройте, наконец, инструкцию...
2 NIGHTHUNTER
 
20.11.20
04:34
Как добиться вывода сообщения, что бы понять что настройки эти работают ?

http://joxi.ru/1A5ER9vUbz1QGA
3 NIGHTHUNTER
 
20.11.20
04:38
бесполезно, ничего не работает ((((
4 SleepyHead
 
гуру
20.11.20
04:39
(2) Что написано в документации к конфе "Итилиум", по этому функционалу?
5 NIGHTHUNTER
 
20.11.20
04:40
(4) у меня ее нету, да вот он функционал, пробую делать, но никакого результата ни эффекта нет
6 PR
 
20.11.20
04:48
(0) ИТИЛИУП?
Тогда уж ИТИЛИУПС
7 victuan1
 
20.11.20
04:48
В этом случае мне всегда помогает анализ исходного кода конфигурации и отладчик.
8 Bigbro
 
20.11.20
04:57
(5) пиратить нехорошо. доки у всех официальных покупателей есть.
9 NIGHTHUNTER
 
20.11.20
05:00
(6) Я опечатался. Конфигурация Итилиум, редакция 4.5 (4.5.3.6) .
(7) Да, врятли. Это или работает или нет. Если нет, то и не нужно пробовать заниматься этим. В коде править, подписки, расширения и тд.

Ну не работает вывод простого сообщения, при открытии наряда, с отбором по сегодняшней дате, или бои отбора. Пробовал как только можно. Никакого результата что это работает не увидел .

(8) Ну значит они есть. Нужно будет их поднять. Я пишу что пока что смотрю саму конфигурацию, и делаю настройки что бы увидеть результат. Но его нет ((( !
10 Bigbro
 
20.11.20
05:07
по моей памяти там не вполне интуитивно понятная конфа, мне приходилось лазить в доки постоянно еще и в саппорт периодически обращаться.
11 NIGHTHUNTER
 
20.11.20
05:21
(10) Да там много чего накручено. реквизит на реквизите. Но вот (0). там создаются настройки как я понимаю обрабатывающие собития документа и тд.
Хочу пока вывести просто сообщить. Ничего не работает. Я вот и не знаю что делать.
12 NIGHTHUNTER
 
20.11.20
05:38
(8) Получил инструкцию пользователя и инструкцию администратора.
Как это сейчас мне может помочь с (0) . Буду разбираться. Но мне сказали что эти настройки 100% работают. Что тогда я не так делаю ?!
13 NIGHTHUNTER
 
20.11.20
06:21
Если кто знает, как мне средствами описанными в (0) (2) вывести сообщение, при открытии документа, что бы понять что задаваемый код работает.

Пока все безрезультатно.
14 NIGHTHUNTER
 
20.11.20
06:28
вроде как сработало, решил к дате не привязываться, попробовал к номеру. да ещё настройки посмотрел, сообщение вышло. Буду продолжать исследование .
15 NIGHTHUNTER
 
20.11.20
07:02
Сейчас мне нужно при закрытии наряда, делать проверку на код закрытия и не давать закрывать документ.
Выполнять соответствующие действия.

http://joxi.ru/KAgREMdcKN6JO2

Сделал событие "Перед записью существующего документа"

Ну и выполняю там какой либо код. Отрабатывает при нажатии кнопки, Записать. Но При нажатии Записать и закрыть, ничего.

Как тут обрабатывать закрытие документа, по кнопке Записать и закрыть, проверяя код закрытия. А то получается что если пользователь нажмет Записать и закрыть, то ничего и не обработается.
16 NIGHTHUNTER
 
20.11.20
07:14
(15) Может сообщения закрываются вместе с документом?
Я делал предупредить, но тоже ничего не показывается.

Можно ли как то это отследить? Если работает при записать, то должно работать и при записать и закрыть. Может при закрытии формы, после ничего не показывается уже?
Я считал что форма закроется а сообщения или предупреждение выйдут .
17 NIGHTHUNTER
 
20.11.20
07:32
Да все отрабатывает.
По Записать и закрыть, в описание занес текст, все прописалось.

http://joxi.ru/Vm6jkblCvRz5Vm
18 NIGHTHUNTER
 
20.11.20
08:03
Вопрос такой, почему не отрабатывает вот этот код ?


Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда
Если ЭтотОбъект.ТрудозатратыФакт < 0,15 Тогда
Сообщить("Фактические трудозатраты по наряду равны значению: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт));
Сообщить("Значение фактических трудозатратов по наряду не может быть меньше 0,15 !
КонецЕсли;
КонецЕсли;
19 NIGHTHUNTER
 
20.11.20
08:14
ЭтотОбъект.ТрудозатратыФакт = 0,00

http://joxi.ru/BA0qa4NipvVxvr

Почему условие в (18) не выполняется?

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" И ЭтотОбъект.ТрудозатратыФакт < 0,15 Тогда
   Сообщить("Фактические трудозатраты по наряду равны значению: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт));
   Сообщить("Значение фактических трудозатратов по наряду не может быть меньше 0,15 !
КонецЕсли;
20 NIGHTHUNTER
 
20.11.20
08:20
почему то само вот это условие, вообще не выполняется

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" И ЭтотОбъект.ТрудозатратыФакт < 0,15 Тогда
   Сообщить("Фактические трудозатраты по наряду равны значению: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт));
   Сообщить("Значение фактических трудозатратов по наряду не может быть меньше 0,15 !
   ЭтотОбъект.Описание = "Занеслось при закрытии в цикле";
КонецЕсли;
ЭтотОбъект.Описание = "Занеслось при закрытии вне цикла";

такое вот выполняется

ЭтотОбъект.Описание = "Занеслось при закрытии вне цикла";

что не так в верхнем условии что оно вообще не срабатывает, не понятно .
21 HawkEye
 
20.11.20
09:04
(20) что мешает посмотреть в отладчике?
22 NIGHTHUNTER
 
20.11.20
09:25
(21) Все работает, тут я делаю в режиме предприятия в имеющемся конструкторе настроек.
И вопрос в том что, почему, когда я добавляю условие

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" И ЭтотОбъект.ТрудозатратыФакт < 0,15 Тогда

И, - перестает вообще работать ????
23 HawkEye
 
20.11.20
09:47
(22) дело не в бобине...

зы. ты определись, все работает или все-таки не работает? )
24 NIGHTHUNTER
 
20.11.20
09:48
вот это условие выполняется, то есть работает

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда  
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;

вот это уже нет, вообще, тишина. В чем может быть дело?

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда  
   Если ЭтотОбъект.ТрудозатратыФакт < 0,15 Тогда
      ЭтотОбъект.Описание = "Выполнен, трудозатраты меньше 0,15 и равны: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
   КонецЕсли;
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;
25 NIGHTHUNTER
 
20.11.20
09:49
(23) Перестает работать, вообще выполняться видимо, когда я добавляю ещё одно если, результат перестает выводиться
26 NIGHTHUNTER
 
20.11.20
09:52
Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда  
   ЭтотОбъект.Описание = "Выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;


Вот это работает, но мне нужно ещё проверку на ЭтотОбъект.ТрудозатратыФакт ставить, но при второй проверке перестает работать, как это понимать?
27 HawkEye
 
20.11.20
09:53
(25) у тебя результат условий один и тот-же, с чего ты решил, что оно выполняется...

если не выполняется, то вариантов 2:
1. ЭтотОбъект.КодЗакрытия.Наименование <> "Выполнен"
или
2. ЭтотОбъект.ТрудозатратыФакт >= 0,15
28 HawkEye
 
20.11.20
09:54
(26) ЭтотОбъект.ТрудозатратыФакт >= 0,15
29 NIGHTHUNTER
 
20.11.20
09:58
(28) Хотите сказать вот это будет работать ?

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда  
   Если ЭтотОбъект.ТрудозатратыФакт <= 0,15 Тогда
      ЭтотОбъект.Описание = "Выполнен, трудозатраты меньше 0,15 и равны: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
   КонецЕсли;
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;



(28) Мне нужно меньше <
30 HawkEye
 
20.11.20
10:02
(29) хочу сказать, что надо запустить отладчик и посмотреть почему не заходит в условие...
31 NIGHTHUNTER
 
20.11.20
10:02
Вот это не работает. В описании ничего не появляется.

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда
   Если ЭтотОбъект.ТрудозатратыФакт <= 0,15 Тогда
      ЭтотОбъект.Описание = "Выполнен, трудозатраты меньше 0,15 и равны: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
   КонецЕсли;
   ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
    ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;

В то время как (26) работает, я и не пойму в чем дело то?
32 NIGHTHUNTER
 
20.11.20
10:03
(30) Я же объясняю. Что это конструктор в режиме предприятия. Может он какой глючный!
Со вторым условием если отказывается работать, с одним условием если работает.
33 NIGHTHUNTER
 
20.11.20
10:06
вот так, работает! Что тогда получается? Что при втором если отказывается работать? Хоть комментарии понимает ещё

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда
   //Если ЭтотОбъект.ТрудозатратыФакт <= 0,15 Тогда
   //   ЭтотОбъект.Описание = "Выполнен, трудозатраты меньше 0,15 и равны: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
   //КонецЕсли;
   ЭтотОбъект.Описание = "Выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
    ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;
34 NIGHTHUNTER
 
20.11.20
10:07
Как мне запустить условие (33) без комментариев ?
35 HawkEye
 
20.11.20
10:07
(32) ну напиши Сообшить(ЭтотОбъект.ТрудозатратыФакт)
36 NIGHTHUNTER
 
20.11.20
10:07
(35) я делал так

Сообщить(ТипЗнч(ЭтотОбъект.ТрудозатратыФакт));
37 NIGHTHUNTER
 
20.11.20
10:08
написало ЧИСЛО, там было 0,00
то есть получается все в порядке, почему тогда не работает ?
38 NIGHTHUNTER
 
20.11.20
10:09
(35) вот же по условию (33) в Описание выходит

Выполнен, трудозатраты: 0

все то есть нормально, но почему (33) без комментариев не работает?
39 NIGHTHUNTER
 
20.11.20
10:12
Сейчас заработало с таким условием

Если ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" Тогда
   Если ЭтотОбъект.ТрудозатратыФакт <= 0 Тогда
      ЭтотОбъект.Описание = "Выполнен, трудозатраты меньше 0,15 и равны: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
   КонецЕсли;
   ЭтотОбъект.Описание = "Выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
Иначе
    ЭтотОбъект.Описание = "Не выполнен, трудозатраты: " + СТРОКА(ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;


То есть получается не нравилось 0,15
а как на это проверять тогда ???
40 NIGHTHUNTER
 
20.11.20
10:14
сюда не заходит

Если ЭтотОбъект.ТрудозатратыФакт <= 0 Тогда

то есть сравнение с трудозатратами не срабатывает, почему ?
41 Lexey_
 
20.11.20
10:52
(40) потому, что числа надо правильно писать
42 NIGHTHUNTER
 
20.11.20
10:55
(41) А что там например не правильного?
43 Lexey_
 
20.11.20
10:58
(42) например, синтаксис, почитай в СП как пишутся числа или в своем коде посмотри
44 VladZ
 
20.11.20
11:01
(0) Обращаться к разработчикам не пробовал?
45 NIGHTHUNTER
 
20.11.20
11:26
(44) не пробовал, сейчас любое обращение нужно оплачивать наверное, куда либо то не было, по вопросам такого характера
46 NIGHTHUNTER
 
20.11.20
11:28
(43) Мне нужно сравнивать значение ноль пятнадцать.
Пишется , либо так 0,15 либо та 0.15 . Какие ещё варианты? Если сравниваю с нулем, то пишу как 0. Как ещё?

Это можно попробовать и понять.

Дроблю проверки и выполняю их последовательно.
47 NIGHTHUNTER
 
20.11.20
11:32
Так вот, правильно. Продолжаю тестирование.

Если ЭтотОбъект.ТрудозатратыФакт = 0.15 Тогда
   Сообщить(1);
Иначе
   Сообщить(2);
КонецЕсли;
48 NIGHTHUNTER
 
20.11.20
11:32
То есть, не 0,15 А 0.15 .

(43) Благодарю, за поправку. Сейчас двойные буду условия проверять.
49 NIGHTHUNTER
 
20.11.20
11:53
Сейчас смотрю, как не дать провести документ, -

Если ЭтотОбъект.Состояние.Наименование = "Завершен" И ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" И ЭтотОбъект.ТрудозатратыФакт < 0.15 Тогда
   Сообщить("У завершенного и выполненного наряда, трудозатраты не могут быть меньше значения 0.15 !");
   Отказ = Истина;
   Возврат;
КонецЕсли;
50 NIGHTHUNTER
 
20.11.20
11:55
Вижу что вот это уже не срабатывает (49) , буду разбираться сейчас почему !
51 NIGHTHUNTER
 
20.11.20
12:23
У меня сработало вот это условие ! Код написал на стороне предприятия, и выполняется там же.
Подскажите как сейчас сделать что бы документ не проводился, и форма документа не закрывалась ???


Если ЭтотОбъект.Состояние.Наименование = "Завершен" И ЭтотОбъект.КодЗакрытия.Наименование = "Выполнен" И ЭтотОбъект.ТрудозатратыФакт < 0.15 Тогда
   Сообщить("Состояние: "              + ЭтотОбъект.Состояние.Наименование);
   Сообщить("Код закрытия: "           + ЭтотОбъект.КодЗакрытия.Наименование);
   Сообщить("Трудозатраты факт: "      + ЭтотОбъект.ТрудозатратыФакт);
КонецЕсли;