|
Помочь с кодом. 🠗 (Волшебник 08.10.2020 08:08) | ☑ | ||
---|---|---|---|---|
0
undertale
07.10.20
✎
12:08
|
Помогите пожауйлста. Я новенький в 1с и если будут какие-либо вопросы по теме , я вам отпишу.
Мне нужно чтобы : 1. Когда в документе « КП_ДокументыПоСтажерам» , реквизит «ДатаТрудоустройства» тогда реквизит статус стажера необходимо поставить в значение «планируется выход». 2. Когда в документе « КП_ДокументыПоСтажерам» , реквизит «ДатаТрудоустройства» проставлена, тогда реквизит «СтатусСтажера» необходимо поставить в значение «На испытательном сроке». 3. Когда в базе , руководитель заполнил элемент справочника «КП_ОценкаСотрудника», тогда реквизит «СтатусСтажера» в документе КП_ДокументыПоСтажерам необходимо поставить в значение «Прошел испытательный срок» . Проблема в том , что у меня не появляются записи. Я 4 часа сижу в отладке и не понимаю в чем проблема, помогите разобраться. Если какая-либо информация нужна будет, я вас ей обеспечу по теме. вот мой код: Процедура КП_ОбновлениеСтатусовСтажеров() Экспорт Запрос = Новый Запрос("ВЫБРАТЬ | КП_ДокументыПоСтажерам.Ссылка |ИЗ | Документ.КП_ДокументыПоСтажерам КАК КП_ДокументыПоСтажерам |ГДЕ | КП_ДокументыПоСтажерам.Проведен = ИСТИНА | И КП_ДокументыПоСтажерам.ПометкаУдаления = ЛОЖЬ | И РАЗНОСТЬДАТ(КП_ДокументыПоСтажерам.Дата, &ТекущаяДата, ДЕНЬ) < 90"); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); РезультатЗапроса = Запрос.Выполнить().Выбрать() ; Пока РезультатЗапроса.Следующий() Цикл КарточкаСтажера = РезультатЗапроса.Ссылка.ПолучитьОбъект(); ПИС = ПолучитьЛистОценки(КарточкаСтажера.ФИО); ОтсутствуетОтметка = Ложь; Для Каждого Строка из КарточкаСтажера.Инструктажи Цикл Если Строка.Отметка = Ложь Тогда ОтсутствуетОтметка = Истина; Прервать; КонецЕсли; КонецЦикла; Если КарточкаСтажера.ДатаТрудоустройства < ТекущаяДата() тогда КарточкаСтажера.СтатусСтажера = Перечисления.КП_СтатусСтажера.ПланируетсяВыход; КонецЕсли; Если КарточкаСтажера.ДатаТрудоустройства > ТекущаяДата() Тогда КарточкаСтажера.СтатусСтажера = Перечисления.КП_СтатусСтажера.НаИспытательномСроке; КонецЕсли; Если ПИС = Истина тогда КарточкаСтажера.СтатусСтажера = Перечисления.КП_СтатусСтажера.ПрошёлИспытатльныйСрок; КонецЕсли; КарточкаСтажера.Записать(РежимЗаписиДокумента.Запись); КонецЦикла; КонецПроцедуры Функция ПолучитьЛистОценки(пФизЛицо) Запрос = Новый Запрос ; Запрос.Текст = "ВЫБРАТЬ | КП_ОценкаСотрудника.Ссылка, | КП_ОценкаСотрудника.Сотрудник |ИЗ | Справочник.КП_ОценкаСотрудника КАК КП_ОценкаСотрудника |ГДЕ | КП_ОценкаСотрудника.Сотрудник = &ФизЛицо"; Запрос.УстановитьПараметр("ФизЛицо",пФизЛицо); апапа = Запрос.Выполнить().Выгрузить(); Если апапа.Количество()=0 тогда Возврат ложь; Иначе возврат истина; КонецЕсли; КонецФункции |
|||
1
undertale
07.10.20
✎
12:09
|
Хотя, мне кажется, что невозможно помочь не видя конфигурации, но попытка - не пытка.
|
|||
2
mikecool
07.10.20
✎
12:11
|
код работает?
|
|||
3
undertale
07.10.20
✎
12:17
|
(2) ошибок нет
|
|||
4
undertale
07.10.20
✎
12:18
|
(2) Мне сказали дословно: Тебе нужно сделать так , чтобы выдавал истину , а проверять через отладчик.
Я нифига не понимаю что и как делать в итоге. Больше скажу, я не понимаю, что человек имел ввиду. |
|||
5
mikecool
07.10.20
✎
12:19
|
(4) тогда пойми сначала , что заказчик имеет ввиду, чтобы не делать абы что
|
|||
6
arsik
гуру
07.10.20
✎
12:20
|
(0) Что значит - "не появляются записи."?
|
|||
7
undertale
07.10.20
✎
12:21
|
(5) Я знаю, что у меня проблемы в том, что статус стажера не выводиться.
Про это он и имел ввиду. |
|||
8
Волшебник
07.10.20
✎
12:21
|
Ахтунг! Запросы в цикле!
|
|||
9
undertale
07.10.20
✎
12:23
|
(6) Не присваивается значение у "СтатусСтажера"
в верху писал о том, что нужно сделать, то и не появляется. |
|||
10
undertale
07.10.20
✎
12:23
|
(8) Помилуйте
|
|||
11
arsik
гуру
07.10.20
✎
12:23
|
(7) А СтатусСтажера точно с типом Перечисления.КП_СтатусСтажера
|
|||
12
undertale
07.10.20
✎
12:24
|
(11) Да
|
|||
13
undertale
07.10.20
✎
12:25
|
(11) Говорит, что проблемы начинаются в самом присвоении
|
|||
14
arsik
гуру
07.10.20
✎
12:25
|
(12) Посмотри в модуле документа процедуру ПередЗаписью, возможно там устанавливается пустое значение в этот реквизит.
|
|||
15
undertale
07.10.20
✎
12:28
|
(14) Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ЭтотОбъект.ДополнительныеСвойства.Вставить("Новый", ЭтоНовый()); КонецПроцедуры |
|||
16
arsik
гуру
07.10.20
✎
12:28
|
(13) Если поставить точку останова на КарточкаСтажера.Записать(РежимЗаписиДокумента.Запись) и посмотреть что хранится в переменной КарточкаСтажера.СтатусСтажера?
|
|||
17
undertale
07.10.20
✎
12:29
|
(14) Сюда что-то нужно написать? Сам этот код, который я написал, написан через Регламентные задания если что
|
|||
18
undertale
07.10.20
✎
12:36
|
(16) КарточкаСтажера.СтатусСтажера Прошёл испытатльный срок ПеречислениеСсылка.КП_СтатусСтажера
Вот что храниться |
|||
19
arsik
гуру
07.10.20
✎
12:47
|
(18) Еще посмотри эту же переменную уже после записи.
|
|||
20
undertale
07.10.20
✎
12:48
|
(19) в каком плане " после записи"?
|
|||
21
Мимохожий Однако
07.10.20
✎
12:51
|
(20) Поставь точку останова в конце процедуры ПослеЗаписи()
|
|||
22
arsik
гуру
07.10.20
✎
12:52
|
(20) Ниже строки КарточкаСтажера.Записать(РежимЗаписиДокумента.Запись)
|
|||
23
arsik
гуру
07.10.20
✎
12:55
|
И еще этот кусок бы я так переписал
Пока РезультатЗапроса.Следующий() Цикл
|
|||
24
arsik
гуру
07.10.20
✎
12:57
|
Блин сам ошибся. ВОт так
Пока РезультатЗапроса.Следующий() Цикл
|
|||
25
undertale
07.10.20
✎
13:04
|
(22) посмотрел, ничего не изменилось
|
|||
26
undertale
07.10.20
✎
13:05
|
(24) я бы с удовольствием переписал бы код, но я начинающий, если я перепишу , то боюсь, что буду путаться
|
|||
27
arsik
гуру
07.10.20
✎
13:05
|
Ну значит все правильно. Реквизит заполняется и записывается. Что еще нужно?
|
|||
28
undertale
07.10.20
✎
13:10
|
(27) Та я не знаю. Смотри: У меня ПИС - истина. Может быть человек говорил как раз чтобы я дождался выдачи истины и контролировал это через отладку , нет?
В итоге у меня все работает , наверное. Я боюсь просто спросить или что-то еще , ибо и так спрашивал у него уже сегодня помощи. |
|||
29
undertale
07.10.20
✎
13:13
|
(27) может быть мне нужно поставить точку останова на том месте, где самое первое "ЕСЛИ" и ждать когда выдаст вот этот результат?
Если ПИС = Истина тогда КарточкаСтажера.СтатусСтажера = Перечисления.КП_СтатусСтажера.ПрошёлИспытатльныйСрок; КонецЕсли; |
|||
30
arsik
гуру
07.10.20
✎
13:17
|
КарточкаСтажера.СтатусСтажера = Перечисления.КП_СтатусСтажера.НЕПрошелИспытательнйСрок;
|
|||
31
SadrArt
07.10.20
✎
13:27
|
(30) +1
|
|||
32
undertale
08.10.20
✎
06:29
|
(30) Спасибо больше, у меня всё работает. Ты мне очень сильно помог на самом деле, дал уверенности так скажем. Благодарю тебя)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |