Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Автоматическое подставление в документе

Автоматическое подставление в документе
Я
   terletskiyab
 
21.05.18 - 06:28
Доброго времени суток, друзья! Я новичок и хотел бы спросить, как мне сделать чтобы при выбора семестра - курс подбивался автоматически, это у меня документ Учебный план.
То есть если 1 и 2 семестр, то автоматически подбивался бы 1 курс
Если бы 3 и 4 семестр, то автоматически подбивался бы 2 курс и так далее.
Курсы и Семестры у меня перечисление.
Распишите где нужно написать код и какой он должен быть, заранее благодарю.
 
 
   МимохожийОднако
 
1 - 21.05.18 - 06:30
Кофе для телепатов где выдают?
   terletskiyab
 
2 - 21.05.18 - 06:31
   terletskiyab
 
3 - 21.05.18 - 06:32
Я понял что в менеджере объекта, теперь не знаю какой код написать, в событиях ничего не нашел :(
   фросия
 
4 - 21.05.18 - 06:42
> чтобы при выбора семестра 
значит код надо засунуть в процедуру при изменении семестра

>
если 1 и 2 семестр, то автоматически подбивался бы 1 курс
так и пишите: Если семестр =  перечисление.семестры.семестр1 ИЛИ ...2 тогда курс = перечисл.курсы.курс1
иначеесли ....
конецесли;
названия объектов свои добавьте
   terletskiyab
 
5 - 21.05.18 - 06:45
Какое событие сделать, как оно называется? ПриИзменении, я просто полный новичок
   terletskiyab
 
6 - 21.05.18 - 06:53
Можете написать шаблон кода чтобы я отталкивался, пожалуйста :(
   catena
 
7 - 21.05.18 - 06:55
(5)Ну это наглость уже, хотя бы справку можно прочесть.
   2S
 
8 - 21.05.18 - 06:57
Цел от деления на 2 и все твое решение
   terletskiyab
 
9 - 21.05.18 - 06:59
Ребят извините за наглость, просто я реально не понимаю и справку я читал, вот что получилось:


Процедура ПриИзменениеСеместра()
    Если Семестр = Перечисления.Семестры.ПервыйСеместр ИЛИ Перечисления.Семестры.ВторойСеместр Тогда
        Курс = Перечисления.Курсы.ПервыйКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ТретийСеместр ИЛИ Перечисления.Семестры.ЧетвертыйСеместр Тогда
        Курс = Перечисления.Курсы.ВторойКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ПятыйСеместр ИЛИ Перечисления.Семестры.ШестойСеместр Тогда
         Курс = Перечисления.Курсы.ТретийКурс
    КонецЕсли;
КонецПроцедуры

А как теперь сделать чтобы автоматически выбиралось смотреть в скриншотах, помогите пожалуйста :(
   terletskiyab
 
10 - 21.05.18 - 07:01
То есть при выборе семестра, автоматически подбивался курс
 
 Рекламное место пустует
   фросия
 
11 - 21.05.18 - 07:06
тыкни на семестр на форме.перейди в свойства- там есть список действий который можно привязать к полю.
выбери При изменении.
т.е. не просто прописать процедуру в модуле а что б она автоматически создалась.
второе- у вас УФ или нет?
если УФ то надо еще разделить команды  #НаКлиенте и #НаСервере
далее Если Семестр = Перечисления.Семестры.ПервыйСеместр ИЛИ Перечисления.Семестры.ВторойСеместр Тогда
 Если ( Логическое выражение ) ИЛИ (логическое выражение) ТОгда
Семестр = Перечисления.Семестры.ПервыйСеместр -  похоже на логическое выражение
Перечисления.Семестры.ВторойСеместр - вообще не логическое выражение. 

Семестр =  - тоже работать не будет. надо что-то вроде  ТекущиеДанные.Семестр = 
примерно так
   igorPetrov
 
12 - 21.05.18 - 07:07
(9) Плохо читал.
   terletskiyab
 
13 - 21.05.18 - 07:11
У меня УФ
   igorPetrov
 
14 - 21.05.18 - 07:13
(13) Поздравляем!
   фросия
 
15 - 21.05.18 - 07:14
(13) не страшно.
посмотрите как работает заполнение других реквизитов, всегда проще сделать что-то по образцу
   terletskiyab
 
16 - 21.05.18 - 07:15
Фросия спасибо, я приблизительно знаю что писать на сервере, а вот на клиенте что писать-то? Вообще не понимаю
   ПегийЛунь
 
17 - 21.05.18 - 07:23
Примерно так:

&НаСервере
Функция ПолучитьКурс(Семестр)
КурсСеместра = Перечисления.Семестры.ПервыйСеместр;
    Если Семестр = Перечисления.Семестры.ПервыйСеместр ИЛИ Перечисления.Семестры.ВторойСеместр Тогда
        КурсСеместра = Перечисления.Курсы.ПервыйКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ТретийСеместр ИЛИ Перечисления.Семестры.ЧетвертыйСеместр Тогда
        КурсСеместра = Перечисления.Курсы.ВторойКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ПятыйСеместр ИЛИ Перечисления.Семестры.ШестойСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ТретийКурс
    КонецЕсли;
Возврат КурсСеместра;
КонецФункции

&НаКлиенте
Процедура СеместрыПриИзменении(Элемент)
СеместрИКурс=Элементы.Дисциплины.ТекущиеДанные;
СеместрИКурс.Курс=ПолучитьКурс(СеместрИКурс.Семестр);
КонецПроцедуры
   fgaabbb
 
18 - 21.05.18 - 07:25
дипломники )))
начни с начала - ознакомься хотя бы с одним бесплатным курсом.

можно отсюда.

http://programmist1s.ru/programmirovanie-1s/

лучше:
http://www.spec8.ru/1c-prog-fast-start
   terletskiyab
 
19 - 21.05.18 - 07:29
Спасибо fgaabbb, я просто начал работать стажером в компании по 1С, вот учусь на боевых заданиях и дома видеоматериал смотрю, спасибо
   ПегийЛунь
 
20 - 21.05.18 - 07:34
(19) Сей час придут профессионалы и скажут, что реализация задачи в корне не верная (проектировка базы данных).
   terletskiyab
 
21 - 21.05.18 - 08:09
https://cloud.mail.ru/home/Помогите/3.png   посмотрите пожалуйста в чем ошибки
   terletskiyab
 
22 - 21.05.18 - 08:09
Я уже как только не исправлял :)
   фросия
 
23 - 21.05.18 - 08:13
(21) не могу вашу картинку открыть
   фросия
 
24 - 21.05.18 - 08:14
параметр не передали на сервер
условия не поправили
   фросия
 
25 - 21.05.18 - 08:15
&НаКлиенте
Процедура СеместрыПриИзменении(Элемент)
СеместрИКурс=Элементы.Дисциплины.ТекущиеДанные;
СеместрИКурс.Курс=ПолучитьКурс(СеместрИКурс.Семестр);

вот вам готовый код из двух строк написали, почему вы решили использовать только одну строку и то не полностью?
   terletskiyab
 
26 - 21.05.18 - 08:18
Фросия, я вот поправил https://cloud.mail.ru/home/Помогите/4.png
   МимохожийОднако
 
27 - 21.05.18 - 08:19
(0) научись пользоваться отладчиком для проверки кода
   terletskiyab
 
28 - 21.05.18 - 08:20
Я отладчиком как раз таки не могу воспользоваться, пока выше на скрине 2 ошибки не уйдут, я бы давно уже посмотрел, а они не дают мне посмотреть
   фросия
 
29 - 21.05.18 - 08:23
ну давайте почитаем вместе сообщения об ошибке.
начинайте , я вам подскажу что не так
   terletskiyab
 
30 - 21.05.18 - 08:23
   фросия
 
31 - 21.05.18 - 08:24
давайте с первый вы сами разберетесь, а второе я подскажу?
   фросия
 
32 - 21.05.18 - 08:25
процедура или функция ПолучитьКурс() не определена. 
вы вызываете одно а на сервере описали другое. (название к одному приведите)
чем функция от процедуры отличается знаете?
   terletskiyab
 
33 - 21.05.18 - 08:25
Да
 
 
   фросия
 
34 - 21.05.18 - 08:26
(33) чем?
   terletskiyab
 
35 - 21.05.18 - 08:27
Функции 1С и процедуры в 1С работают аналогично другим языкам — функция это именованная подпрограмма для вызова из других мест программного кода.
   terletskiyab
 
36 - 21.05.18 - 08:28
https://cloud.mail.ru/home/Помогите/5.png я тут изменил ранее, но вышли ошибки и я по разному пробывал
   фросия
 
37 - 21.05.18 - 08:30
(35) вопрос- в чем отличие процедуры от функции
   terletskiyab
 
38 - 21.05.18 - 08:31
Из любой функции можно сделать процедуру. Функция отличается тем, что ее имени можно присвоить изнутри функции значение и использовать это имя как обычную переменную с параметрами в скобках, а процедуру нужно вызывать отдельным оператором.
   фросия
 
39 - 21.05.18 - 08:31
(36) вот там где ошибки вышли- там же написано какие ошибки, прочитайте , все по-русски ведь
   фросия
 
40 - 21.05.18 - 08:34
(38)
главное отличие:функция возвращает значение, процедура нет
функция Реши мне задачку(условие задачки)
решает; решает; решил;
Возврат ответ;
конецфункции

процедура Реши мне задачку (Условие Задачки)
решает; решает; решил;
КонецПроцедуры
   Irbis
 
41 - 21.05.18 - 08:37
(40) Тоже не права, процедура может возвращать значения, да ещё и не одно, а может и не возвращать, в отличие от функции, которая возвращает всегда и только одно.
   фросия
 
42 - 21.05.18 - 08:39
(41) Ответ = РешиМнеЗадачку(условиеЗадачки);
в такой конструкции можно использовать процедуру?
   фросия
 
43 - 21.05.18 - 08:40
1ска говорит попытка использования процедуры как функции.
   2S
 
44 - 21.05.18 - 08:41
(41) че?
параметры хоть напередавайтесь
   igorPetrov
 
45 - 21.05.18 - 08:58
(41) Ась?
   terletskiyab
 
46 - 21.05.18 - 09:06
&НаСервере
Функция КурсДляИзменения(Семестр)
    

         
    Если Семестр = Перечисления.Семестры.ПервыйСеместр ИЛИ Семестр = Перечисления.Семестры.ВторойСеместр Тогда
        КурсСеместра  = Перечисления.Курсы.ПервыйКурс
    ИначеЕсли  Семестр = Перечисления.Семестры.ТретийСеместр ИЛИ Семестр = Перечисления.Семестры.ЧетвертыйСеместр Тогда
        КурсСеместра  = Перечисления.Курсы.ВторойКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ПятыйСеместр ИЛИ Семестр =  Перечисления.Семестры.ШестойСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ТретийКурс
    ИначеЕсли Семестр =  Перечисления.Семестры.СедьмойСеместр ИЛИ Семестр = Перечисления.Семестры.ВосьмойСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ЧетвертыйКурс
    ИначеЕсли Семестр = Перечисления.Семестры.ДевятыйСеместр ИЛИ Семестр = Перечисления.Семестры.ДесятыйСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ПятыйКурс
    ИначеЕсли Семестр =  Перечисления.Семестры.ОдиннадцатыйСеместр ИЛИ  Семестр = Перечисления.Семестры.ДвенадцатыйСеместр Тогда
         КурсСеместра = Перечисления.Курсы.ШестойКурс
    ИначеЕсли Семестр =  Перечисления.Семестры.ТринадцатыйСеместр ИЛИ Семестр = Перечисления.Семестры.ЧетырнадцатыйСеместр Тогда
         КурсСеместра = Перечисления.Курсы.СедьмойКурс;
         
    КонецЕсли;
    Возврат Семестр;

     

КонецФункции

&НаКлиенте
Процедура ДисциплиныСеместрПриИзменении(Элемент)
    СеместрИКурс = Элементы.Дисциплины.ТекущиеДанные;
    СеместрИКурс.Курс = КурсДляИзменения(СеместрИКурс.Семестр); 
КонецПроцедуры

Конечный итог, но почему-то не работает
   2S
 
47 - 21.05.18 - 09:09
Возврат Семестр;


бьемся головой об стену до понимания
   2S
 
48 - 21.05.18 - 09:14
и вообще - решение говеное, нах это все держать в перечислениях.
   catena
 
49 - 21.05.18 - 09:15
(48)Ну наконец-то, с (20) ждем))
 
 Рекламное место пустует
   фросия
 
50 - 21.05.18 - 09:16
(46) курсСеместра надо либо определить до условий, либо в условия добавить ИНАЧЕ курсСеместр- чего нибудь присвоить
   2S
 
51 - 21.05.18 - 09:16
(49) в (8) все написано
   фросия
 
52 - 21.05.18 - 09:16
(46) отладчик что говорит?
   МимохожийОднако
 
53 - 21.05.18 - 09:20
(28) Поставь точку останова еще раньше. Закомментируй явно ошибочные строки
   МимохожийОднако
 
54 - 21.05.18 - 09:21
ОФФ: ТС уволили
   ПегийЛунь
 
55 - 21.05.18 - 09:23
(54)Возьмите вместо ТС меня. У умею пользоваться головой и гуглом :)
   Segate
 
56 - 21.05.18 - 09:23
А зачем вообще курсы и семестры хранить в перечислениях, когда это числа?
1е задается руками, второе - расчетное и получается целочисленным делением первого на 3
   Segate
 
57 - 21.05.18 - 09:24
(56) тьфу... на два конечно же


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