все классно. Без лишних слов,все по делу, без нуятины и без этих надоедливых "ээээ" через каждые 5 секунд. Ваши уроки очень интересны и бесконечно полезны
Блин, он реально гений-обучений! Человек реально думает - как лучше объяснить и в каком порядке подать информацию, чтобы "пазлы сложились". Много курсов пытался смотреть, у большинства авторов уже после 2...3 уроков - начинаешь понимать, что что-то "недообъяснили" исходят из того, что все элементарно, явно важные моменты не пытаются объяснить, перескакивают. Илья Леоньев - ты супер! Еще нравится, что он как бы случайно делает типовые ошибки, объясняет, почему делают эти ошибки и как правильно - и самое главное почему так правильно. Ну, просто красавчик! :)
Как я тебя понимаю) Прямо сейчас прохожу такой курс и там автор как раз такой, каким ты его описал тут) Вот думаю начать по ютубу по этим роликам начать заниматься)
проходил курс начальной подготовки на edu.1c такой препод нудный был что нечерта за месяц не понял, Илюха ты пока что лучший в интернете по крайней мере по донесению информации слушателю! Ну это сугубо моё мнение! Спасибо!
Сделала на Трех числах. Все работает. Спасибо. Только осваиваю, когда что-то не работает - включайте мозг и и ищите ошибку в коде))))) Надо больше уроков по управляемой версии.
Здравствуйте. Сделайте тоже самое только на управляемом приложение, от обычного все уже уходят. И при переходе на управляемое приложение, просто ни чего не понятно. Просмотров будет еще больше. Успехов!
Здравствуйте Илья, после ваших уроков, многое становится понятно. Скажите пожалуйста, как можно выбрать процедуру или функцию при создании в поле модуля горячими клавишами кроме ctrl+пробел
1.Отличается-ли визуально, вызов функции от вызова процедуры? Нет ли каких либо ключевых слов ? 2.Функция должна быть описана в самом начале кода ? Я изучал Python и поэтому провожу аналогию.
Ключевое отличие процедуры от функции в 1С и других языках программирования. Примеры использования данных конструкций. Оператор "Возврат". Услуги 1С программиста в Москве: 1cproger.ru/ Читайте статьи по 1С на нашем сайте: programmist1s.ru/materialyi-po-1s/
Здравствуйте, делаю все в точь как у вас, у меня даже ошибка почему тоне вылезла как у вас, когда к словам Максимум добавляли (2,3) не знаю почему если честно, но когда писал формулу М = Максимум2(ЧислоА, ЧислоБ); Сообщить ("Максимум = " + М); пишет ошибку Переменная не определена (Число Б), почему?
А, Б и ЧислоА, ЧислоБ это не одно и тоже. Буквы А и Б можно с таким же успехом заменить на любые другие буквы и всё будет работать. Описывая функцию, после названия функции в скобках мы перечисляем её параметры. В данном примере функция Максимум2 принимает 2 числа и сохраняет их в переменных А и Б, в функции Максимум3 - 3 числа и сохраняет их в переменных А, Б и В. Функции по большому счёту всё равно что это за числа и откуда они взяты, её задача принять эти числа, обработать их (в данном случае сравнить что больше/меньше) и что то вернуть. А вот вызывая эту функцию мы уже и указываем то что должны передать на обработку, в данном примере в функции Максимум2 это ЧислоА и ЧислоБ, но это могут быть и любые другие данные, к примеру ЧислоА и Число В, или просто обычные числа.
Максимум2 (А,Б) //А и Б переменные Процедура ОсновныеДействияФормыОсновные.... Максимум2(ЧислоА, ЧислоБ); //Это вызов числа которые нам нужно сравнить. Получется эти числа (2) и (4) летят в (1,2) тобишь (А,Б) теперь в переменной А = 2, в Б = 4, далее ПРоцедура сравнивает их из функции (ну или сама функция сравнивает) эти числа между собой и выдает уже результат. Максимум2 (А,Б) //Это переменные //Название (переменная А - которая будет хранить числоА, переменная Б - которая будет хранить числоБ).
Ну ладно, допустимя я вместо А написал Ю. И что? Где мы назначаем в системе что Ю это переменная, и что на него записана такая-то функция или число? Ведь у нас есть текстовые поля с именем "ЧислоА", как он поймет и свяжет Ю с ЧислоА, если говорите что все будет работать?
Добрый день. Спасибо за материал. Вопрос: имеет ли значение порядок описания и вызова процедур и функций в модуле? Другими словами, если в первых строках будет обработка события нажания на кнопку, внутри этой обработки будет вызов функции. А сама функция будет описана ниже по модулю, чем процедура, которая к этой функции обращается? Компилятор обрабатывает сначала весь модуль, загружая все функции в память, либо он идёт построчно вниз? Спасибо за ответ заранее.
Добрый день. Не согласен. Можно проверить просто подставив числа. Допустим: А -10 Б-5 В-8 В этом случае А>Б И А>В сработает корректно в отличие от А>Б>В
@@hazrat6544, в общем, я до этого изучал Python, потом знакомые предложили попробовать 1С, дошёл до экзамена на 1С: Специалист по платформе. Прошёл курсы и за две недели до самого экзамена меня пригласили джуном по питону и я не задумываясь ушёл в питонисты, т.к. 1С мне не особо нравится.
Вопрос от начинающих... В чем разница между такими скобками () или такими {}? Для чего ставится ; в конце Строки? А Так же Важность наличия пробелов между текстом например "Если А > Б Тогда" Важно ли наличие пробелов между А > Б, или можно написать без пробелов А>Б? попробовал и так, и так работает, т.е. это вопрос только эстетики текста?
Добрый день, синтаксис 1с, наверное, как и синтаксис большинства языков, в смысле пробелов достаточно гибкий. И с пробелами и без язык все сворачивает и удачно компилирует в случае если нет синтаксических ошибок. Потому да, тут больше эстетика.
Илья, Добрый День! Во-первых, спасибо за уроки! Они реально кайфовые) Во-вторых, осмысливая данный урок, спросил себя, а теперь и Вас, почему нельзя было написать такой код? ) Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка) Максимум (ЧислоА, ЧислоБ); Сообщить (Максимум(ЧислоА, ЧислоБ)); КонецПроцедуры
Функция Максимум(А, Б); Если А > Б Тогда Возврат А; Иначе Возврат Б; КонецЕсли; КонецФункции; т.е. в кнопке Выполнить идет вывоз процедуры, которая вызывает Функцию и сообщает результат этой функции.
Можно было. Только имейте в виду, что при нажатии на кнопку у вас лишний раз происходит вызов функции Максимум(), он не нужен, его можете удалить. Достаточно написать только Сообщить (Максимум(ЧислоА, ЧислоБ)).
Почему в продцедуре сообшить. Максимум2(а, б) а в сообщить о максимуме (числоА, числоБ)? Если ввше закоментировали максимум2(числрА, числоБ). Кода нудно писать числоА и число Б. А когда можно просто укачать А Б?
Подскажите как вы вызываете подсказки при написании кода. Я имею ввиду в частности момент на 8:18, где у вас открыт после равно список математических функций.
Илья, здравствуйте! Начиная с того момента, как прописывается процедура СообщитьОМаксимуме у меня вылетала ошибка синтаксиса. Я долго не мог понять что такое, но потом поменял местами Процедуру СообщитьОМаксимуме и Процедуру кнопки (очень длинное название у которой) и все заработало! НО! Почему у Вас работает и так, а у меня нет?
Здесь 8:56 возникает ошибка Несоответствие типов (параметр номер '2'), не понимаю, где проблема, если честно. П. С. Думала уже все, не решу, а так глупо получилось. Запятая, чтоб тебя.
Я человек ленивый, поэтому функцию сравнения трех чисел написал вот так Функция макс3(А, Б, В) Возврат Макс2(Макс2(А,Б),Макс2(В,Б)); КонецФункции Может и не оптимально с точки зрения количества операций, выполняемых компьютером. Но зато в одну строчку.
Не могу понять, что происходит. Учебная версия, нахожу максимум из 3х. В первый раз после запуска внешней обработки все получилось... Во второй раз почему то перестал видеть числоВ (А и Б видит), какое бы большое значение "В" не возвращалось, учитывается только максимум А и Б. В третий раз перестала срабатывать кнопка выполнить, то есть, она срабатывает, но сообщение не выводит... Что это может быть?
Если в коде размещаю Процедуру после Функции, как в примере, то выдает ошибку "Определения процедур и функций должны размещаться перед операторами тела модуля". Когда поменял их местами - т.е. сначала идет Процедура затем Функция, то все работает. Может, что не так делаю?
Здравствуйте, сделал всё точь в точь, но выходит ошибка (конецесли). где прописали функцию максимум3(А,Б,В) пришлось 2 раза подряд написать конецесли и лишь тогда начинает работать. в чём прикол понять не могу.
Добрый день, а почему когда сравниваю 10 и 100, то пишет что "Максимум - 100", а когда сравниваю 111 и 22, то "Максимум - 22"? Как так получается, что он будто просто первые цифры только сравнивает?
не работало, пока не закомментировала //Функцию Максимум3 {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(41,11)}: Переменная не определена (B) Возврат
команды можно писать как на русском языке так и на английском. разницы к примеру между "Процедура" и "Procedure" нет ни какой. в справке 1с команда на русском языке, а в скобках синтаксис на английском - Процедура (Procedure)
@@olegf3728 ага) все прям так и используют английский вариант написания) проще сделать по-другому. Например, амперсанд - & - чтоб не переключаться, я использую альт + 38 (на цифр. клав.). Также и остальные символы.
Лучше тебе в этом вопросе изучить это более подробно, но если в двух словах - в обычном все делаешь сам, в управляемом половину вещей делает система. От этого меняется логика языка. Но для современного разработчика изучать лучше сразу управляемое
Люди внатуре не вникают, для чего нужны функции , как и я когда то. А ДЛЯ ТОГО ЧТОБЫ ОДИН И ТОТ ЖЕ КОД НЕ ПИСАТЬ 10 РАЗ, а подставлять нужные значения переменных или же сами эти переменные , в аргументы функции ( либо же выполнять некую масивную обработку функцией без аргументов)... Это нужно понять самому
вот так я все указал Функция Максимум2(А,Б) Если А > Б Тогда Возврат А; Иначе Возврат Б; КонецЕсли
КонецФункции Функция Максимум3(А, Б, В) Если А > Б И А > В Тогда Возврат А; ИначеЕсли Б > В Тогда Возврат Б; Иначе Возврат В; КонецЕсли КонецФункции Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка) // ЧислоА > ЧислоБ = Ложь //Если {Условие1} Тогда // {Оператор1}; //ИначеЕсли {Условие2} Тогда // {Оператор2}; //Иначе // {Оператор3} //КонецЕсли; М = Максимум2 (ЧислоА, ЧислоБ); Сообщить("Максимум = " + М);
в чем ошибка подскажите плиз ({ВнешняяОбработка.ВнешняяОбработка2.Форма.Кнопки.Форма(3,15)}: Переменная не определена (ЧислаА) М = Максимум(>ЧислаБ); )
Все видео у Ильи интересные. Но пока что ни у одного не увидел внятного объяснения, почему нельзя обходиться только Функцией. Например, из видео, тело процедуры поместить в функцию, ведь точно так же отработает. Зачем нужно это деление.
Разве процедура действия на кнопку не понадобится в любом случае? В ней, конечно, достаточно прописать лишь вызов функции, а все остальное прописать в функции. Но как совсем без процедуры обойтись - не понимаю что-то... Тогда же при нажатии на "Выполнить" - никакого толка
У меня тоже пишет переменная не определена, и при чем пишет что переменные должны быть поверх функций, задал Перем ЧислоА и Перем ЧислоБ, ошибку больше не выдает, но при отладке не сообщает результат, хотя в Процедуре указано Сообщить М как у вас. В чем может быть причина? Если кто разобрался - напишите
И зря не проверили Функцию максимум из трех! Работает не верно! Правильнее было ИначеЕсли В > А Тогда Возврат В; Иначе Возврат Б; . У нас по условию выходит В меньше А, если у нас Б будет больше В, то оно все-равно может быть меньше А. Отсюда ошибка. Не в обиду автора, огромное ему спасибо за уроки, очень познавательно, скорее всего просто был невнимателен =)
Вообще не понял. Как система понимает что А это число и что Б тоже число? Ведь мы не указывали, допустим как в других языках, что например "А = 1" и "Б = 2". В каком месте к этим буквам назначается число, и какое число назначается, когда мы успели их сделать переменными??? Даже если система берет А и Б из надписей "ЧислоА" и "ЧислоБ", то как он определяет какую букву из этого словосочетания взять? Почему он не может взять допустим букву Ч из "Число" и не запутатся в параметрах и в вычислении?????? Пробовал в параметрах писать всякую ахинею, синтаксическая проверка не прошлась. Так как млять этот гребаный язык программирования понял что есть А и что есть Б????? Мляяяя вообще хз че происходит DX
@@IlyaLeontyev , все равно не понятно, на этапе создания обработки мы создали реквизиты ЧислоА и ЧислоБ и указали что тип число, но негде не указывали что ЧислоА=А, я тоже на этом застопорился, почему в функции мы пишем просто А и Б, а в процедуре ЧислоА и ЧислоБ, пробовал в процедуре написать просто А и Б не проходит синтаксическую проверку. И было бы замечательно, если бы немного рассказали о правилах написания и дали бы какую нибудь ссылочку на справочную инфу по функциям и процедурам, где какие кавычки, скобки, точки с запятой надо ставить, где пробелы ставятся , а где нет.
Тоже ломал голову над этим вопросом, потом нашел на другом сайте описание функции и понял, что Кога мы описывали функцию вычисления максимума, мы могли там поставить любые буквы например Д и Е в качестве параметров, а вот при вызове этой функции (через вызов прцедуры сообщить) мы указываем эти параметры ЧислоА и ЧислоБ, мы можем еще раз добавить вызов процедуры сообщить А в качестве параметров указать ЧислоА и ЧислоС, и выведется 2 максимума.
@@sergejsimagin3741 А если мы в функцию передадим число и строку, функция крашнется. И будет сообщение об ошибке. {Форма.Форма.Форма(22)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата) Если А > Б тогда
Ахаха достигнуто предельное количество подключений к ИБ, это блин учебная версия ограничена по количеству запусков. Ну и жлобы. Только начал учить 1С програмирование а уже такой бред, придётся ставить пиратку, ибо такие ограничения ни в какие ворота не лезут.
Да на самом деле это дело вкуса и привычки. Я пока этим не занимаюсь (1С, посматриваю иногда из любопытства), а вот в своё время тренировался обычными ЯП, помню каким извращением и джунглями С++ со всеми этими { } ; * казался после VB. А через какое-то время после С++ уже VB казался "рукалицо" )) Ко всему привыкаешь за недельку... Соответственно и отвыкаешь.
все классно. Без лишних слов,все по делу, без нуятины и без этих надоедливых "ээээ" через каждые 5 секунд. Ваши уроки очень интересны и бесконечно полезны
Блин, он реально гений-обучений! Человек реально думает - как лучше объяснить и в каком порядке подать информацию, чтобы "пазлы сложились". Много курсов пытался смотреть, у большинства авторов уже после 2...3 уроков - начинаешь понимать, что что-то "недообъяснили" исходят из того, что все элементарно, явно важные моменты не пытаются объяснить, перескакивают.
Илья Леоньев - ты супер! Еще нравится, что он как бы случайно делает типовые ошибки, объясняет, почему делают эти ошибки и как правильно - и самое главное почему так правильно. Ну, просто красавчик! :)
подскажите, почему перед М не стоит Перем М; а потом уже М = Максимум2(ЧислоА, ЧислоБ);
@@albert10651 Потому что в операцию присваивания (знак равенства) уже включена операция определения переменной.
@@albert10651 смотри бро, после буквы "М" сразу идет знак равенства, там же сразу же присвоили имя переменной (Максимум2)
Понятно?)
Как я тебя понимаю) Прямо сейчас прохожу такой курс и там автор как раз такой, каким ты его описал тут) Вот думаю начать по ютубу по этим роликам начать заниматься)
Как у вас успехи, коллеги? На этом блоггере остановились или еще какой ресурс порекомендуете?
проходил курс начальной подготовки на edu.1c такой препод нудный был что нечерта за месяц не понял, Илюха ты пока что лучший в интернете по крайней мере по донесению информации слушателю! Ну это сугубо моё мнение! Спасибо!
И сугубо моё)
@@Gzugza И моё))
А что за препод? Фамилию не скажете? Потом, если что, можно удалить, как только я прочту)
Илья, огромнейшее спасибо за курс! Лучше, что мне пока встречалось, как для начинающего!
Так все понятно и лаконично. Только недавно начала изучать 1С и эти уроки очень помогают. Спасибо за Вашу работу))
Здесь звук мягче, лучше! Хорошие уроки, спасибо!
Однозначно Лайк! Без "воды" и все по делу!
Небольшое замечание про переключение языков: Чтобы не переключаться, можно нажимать Alt + НомерСимволаASCII. Например для знака "
У меня на получается (
Как нажимать "60"?
Гугл помог, все ок )
Сделала на Трех числах. Все работает. Спасибо. Только осваиваю, когда что-то не работает - включайте мозг и и ищите ошибку в коде))))) Надо больше уроков по управляемой версии.
It is very, very usefull. This is the best tutorial I saw. Thank you.
@@ИАП738 "Это очень, очень полезно. Это лучший туториал (обучалка) который я видел. Спасибо."
Здравствуйте. Сделайте тоже самое только на управляемом приложение, от обычного все уже уходят. И при переходе на управляемое приложение, просто ни чего не понятно. Просмотров будет еще больше. Успехов!
Спасибо, к управляемым скоро перейдем
Буду ждать, надеюсь долго ждать не придется). Успехов!
@@hanty9910 Попробовал допилить раннее созданное управляемое приложение кнопкой "НайтиМакс" , всё работает , принцип тот же.
Здравствуйте Илья, после ваших уроков, многое становится понятно. Скажите пожалуйста, как можно выбрать процедуру или функцию при создании в поле модуля горячими клавишами кроме ctrl+пробел
1.Отличается-ли визуально, вызов функции от вызова процедуры? Нет ли каких либо ключевых слов ?
2.Функция должна быть описана в самом начале кода ?
Я изучал Python и поэтому провожу аналогию.
9:35 работает Функция2, а показывает на Функцию3. Функция выше по Модулю.
То есть в 1С нету перегрузки функции?
Ключевое отличие процедуры от функции в 1С и других языках программирования. Примеры использования данных конструкций. Оператор "Возврат".
Услуги 1С программиста в Москве:
1cproger.ru/
Читайте статьи по 1С на нашем сайте:
programmist1s.ru/materialyi-po-1s/
Здравствуйте, делаю все в точь как у вас, у меня даже ошибка почему тоне вылезла как у вас, когда к словам Максимум добавляли (2,3) не знаю почему если честно, но когда писал формулу М = Максимум2(ЧислоА, ЧислоБ);
Сообщить ("Максимум = " + М); пишет ошибку Переменная не определена (Число Б), почему?
В максимуме из трех и выше, саму функцию можно взять за способ проверки и ссылаться на нее, для упрощения, в случае увеличения выборки.
Почему числа в функции мы называем просто А и Б? Они же у нас ЧИСЛА? ЧислоА и ЧислоБ. Как комп с этим разбирается?
А, Б и ЧислоА, ЧислоБ это не одно и тоже. Буквы А и Б можно с таким же успехом заменить на любые другие буквы и всё будет работать.
Описывая функцию, после названия функции в скобках мы перечисляем её параметры.
В данном примере функция Максимум2 принимает 2 числа и сохраняет их в переменных А и Б, в функции Максимум3 - 3 числа и сохраняет их в переменных А, Б и В.
Функции по большому счёту всё равно что это за числа и откуда они взяты, её задача принять эти числа, обработать их (в данном случае сравнить что больше/меньше) и что то вернуть.
А вот вызывая эту функцию мы уже и указываем то что должны передать на обработку, в данном примере в функции Максимум2 это ЧислоА и ЧислоБ, но это могут быть и любые другие данные, к примеру ЧислоА и Число В, или просто обычные числа.
Смотрите матчасть Переменные. P/S Язык программирования в вашем вопросе не важен
Артём Яшнов, спасибо тебе человек
Максимум2 (А,Б) //А и Б переменные
Процедура ОсновныеДействияФормыОсновные....
Максимум2(ЧислоА, ЧислоБ); //Это вызов числа которые нам нужно сравнить.
Получется эти числа (2) и (4) летят в (1,2) тобишь (А,Б) теперь в переменной А = 2, в Б = 4, далее ПРоцедура сравнивает их из функции (ну или сама функция сравнивает) эти числа между собой и выдает уже результат.
Максимум2 (А,Б) //Это переменные //Название (переменная А - которая будет хранить числоА, переменная Б - которая будет хранить числоБ).
Ну ладно, допустимя я вместо А написал Ю. И что? Где мы назначаем в системе что Ю это переменная, и что на него записана такая-то функция или число? Ведь у нас есть текстовые поля с именем "ЧислоА", как он поймет и свяжет Ю с ЧислоА, если говорите что все будет работать?
Здравствуйте! Подскажите пожалуйста, почему на этом занятии, при запуске режимной конфигурации у меня открывается окно управляемого приложения?
Если ">", тогда alt + 62 :) Спасибо за уроки!
Вот спасибочки
Добрый день. Спасибо за материал. Вопрос: имеет ли значение порядок описания и вызова процедур и функций в модуле? Другими словами, если в первых строках будет обработка события нажания на кнопку, внутри этой обработки будет вызов функции. А сама функция будет описана ниже по модулю, чем процедура, которая к этой функции обращается? Компилятор обрабатывает сначала весь модуль, загружая все функции в память, либо он идёт построчно вниз? Спасибо за ответ заранее.
Я проверил, ошибки не будет. Хотя 1С - интерпретируемый язык.
И еще, может быть Вы подскажете, где познакомиться с темой о переходах по навигационным ссылкам, о уникальных идентификаторах
Дополню, может кому пригодится: запись "Если А > Б и А > В Тогда" равна записи "Если А > Б > В Тогда"
Добрый день. Не согласен. Можно проверить просто подставив числа.
Допустим:
А -10
Б-5
В-8
В этом случае А>Б И А>В сработает корректно в отличие от А>Б>В
@@hazrat6544, спасибо! Про минусы не подумал.
@@ПатриотРоссии-е5у бывает. Пожалуйста
@@ПатриотРоссии-е5у Как успехи? Уже прошло пол года с момента написания этого комментария
@@hazrat6544, в общем, я до этого изучал Python, потом знакомые предложили попробовать 1С, дошёл до экзамена на 1С: Специалист по платформе. Прошёл курсы и за две недели до самого экзамена меня пригласили джуном по питону и я не задумываясь ушёл в питонисты, т.к. 1С мне не особо нравится.
Вопрос от начинающих... В чем разница между такими скобками () или такими {}? Для чего ставится ; в конце Строки? А Так же Важность наличия пробелов между текстом например "Если А > Б Тогда" Важно ли наличие пробелов между А > Б, или можно написать без пробелов А>Б? попробовал и так, и так работает, т.е. это вопрос только эстетики текста?
Добрый день, синтаксис 1с, наверное, как и синтаксис большинства языков, в смысле пробелов достаточно гибкий.
И с пробелами и без язык все сворачивает и удачно компилирует в случае если нет синтаксических ошибок.
Потому да, тут больше эстетика.
Но функция же может быть и без слова Возврат. Зачем тогда вообще нужны процедуры?
Есть ли курс обучения платный ?
Илья, Добрый День!
Во-первых, спасибо за уроки!
Они реально кайфовые)
Во-вторых, осмысливая данный урок, спросил себя, а теперь и Вас, почему нельзя было написать такой код? )
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
Максимум (ЧислоА, ЧислоБ);
Сообщить (Максимум(ЧислоА, ЧислоБ));
КонецПроцедуры
Функция Максимум(А, Б);
Если А > Б Тогда Возврат А;
Иначе
Возврат Б;
КонецЕсли;
КонецФункции;
т.е. в кнопке Выполнить идет вывоз процедуры, которая вызывает Функцию и сообщает результат этой функции.
Можно было. Только имейте в виду, что при нажатии на кнопку у вас лишний раз происходит вызов функции Максимум(), он не нужен, его можете удалить. Достаточно написать только Сообщить (Максимум(ЧислоА, ЧислоБ)).
немогу понять - почему в теле процедуры пишем "М =" ? а не Макс,или Максимум..?в подсказках "М" не нашел...
Почему в продцедуре сообшить. Максимум2(а, б) а в сообщить о максимуме (числоА, числоБ)? Если ввше закоментировали максимум2(числрА, числоБ). Кода нудно писать числоА и число Б. А когда можно просто укачать А Б?
опущен тонкий момент,
(Оператор1)ТОЧКА С ЗАПЯТОЙ
; это конец любого оператора.
Подскажите как вы вызываете подсказки при написании кода. Я имею ввиду в частности момент на 8:18, где у вас открыт после равно список математических функций.
В одном из предыдущих видео упоминалось об этом, комбинация CRTL + Пробел
Илья, здравствуйте! Начиная с того момента, как прописывается процедура СообщитьОМаксимуме у меня вылетала ошибка синтаксиса. Я долго не мог понять что такое, но потом поменял местами Процедуру СообщитьОМаксимуме и Процедуру кнопки (очень длинное название у которой) и все заработало! НО! Почему у Вас работает и так, а у меня нет?
Здесь 8:56 возникает ошибка Несоответствие типов (параметр номер '2'), не понимаю, где проблема, если честно.
П. С. Думала уже все, не решу, а так глупо получилось. Запятая, чтоб тебя.
Ребята, у меня в обработчике ошибка какая-то. Не могу понять, почему перед функцией и процедурой что то стоять должно.
Не работает
Функция Максимум1(А, Б)
Если А > Б Тогда
Возврат А;
Иначе
Возврат Б;
КонецЕсли;
КонецФункции
Процедура СообщитьОМаксимуме(А, Б)
М = Максимум1(А, Б);
Cообщить ("Максимум =" + М);
КонецПроцедуры
Процедура КомандаВыполнить(Команда)
СообщитьОМаксимуме (ЧислоА, ЧислоБ);
КонецПроцедуры
Я человек ленивый, поэтому функцию сравнения трех чисел написал вот так
Функция макс3(А, Б, В)
Возврат Макс2(Макс2(А,Б),Макс2(В,Б));
КонецФункции
Может и не оптимально с точки зрения количества операций, выполняемых компьютером. Но зато в одну строчку.
Можно так:
Функция Макс3(А, Б, В)
Возврат Макс2(Макс2(А,Б),В);
КонецФункции
@@user-ui1ub5rm6n Да так лучше.
Мне нра. Подскажите как изменить иконку в УТ 10.3 например у справочника номенклатура (по умолчанию шкаф с выдвинутым ящиком).
Не могу понять, что происходит. Учебная версия, нахожу максимум из 3х. В первый раз после запуска внешней обработки все получилось... Во второй раз почему то перестал видеть числоВ (А и Б видит), какое бы большое значение "В" не возвращалось, учитывается только максимум А и Б. В третий раз перестала срабатывать кнопка выполнить, то есть, она срабатывает, но сообщение не выводит... Что это может быть?
Чудеса, да и только: удалил реквизиты, удалил форму, создал все заново, опять работает как в первый раз. Интересно, надолго ли...
Легенда 1с
Если в коде размещаю Процедуру после Функции, как в примере, то выдает ошибку "Определения процедур и функций должны размещаться перед операторами тела модуля". Когда поменял их местами - т.е. сначала идет Процедура затем Функция, то все работает. Может, что не так делаю?
проблема была в поставленной точке с запятой после "Конецфункции"
Здравствуйте, сделал всё точь в точь, но выходит ошибка (конецесли). где прописали функцию максимум3(А,Б,В) пришлось 2 раза подряд написать конецесли и лишь тогда начинает работать. в чём прикол понять не могу.
Всё спасибо, нашёл ошибку, пробел поставил случайно
Добрый день, а почему когда сравниваю 10 и 100, то пишет что "Максимум - 100", а когда сравниваю 111 и 22, то "Максимум - 22"? Как так получается, что он будто просто первые цифры только сравнивает?
строки сравнивает, наверное. Надо тип задать, тогда будет числа сравнивать
не работало, пока не закомментировала //Функцию Максимум3
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(41,11)}: Переменная не определена (B)
Возврат
а нельзя в Сообщить() передать вызов процедуры или функции?
работает
Сообщить("Максимум = " + Максимум2(А, Б));
Вызов функции - можно. Вызов процедуры - нельзя.
@@TripolitovVladimir Оптимизация в деле)
Плохо, что на русской раскладке пишутся команды, постоянно переводить приходится с одного языка на DRUGOY
команды можно писать как на русском языке так и на английском. разницы к примеру между "Процедура" и "Procedure" нет ни какой. в справке 1с команда на русском языке, а в скобках синтаксис на английском - Процедура (Procedure)
@@olegf3728 ага) все прям так и используют английский вариант написания) проще сделать по-другому. Например, амперсанд - & - чтоб не переключаться, я использую альт + 38 (на цифр. клав.). Также и остальные символы.
я в 1 с не силен объясните пожалуйста в чем разница между "Управляемым" и "Обычным" режимом?
Лучше тебе в этом вопросе изучить это более подробно, но если в двух словах - в обычном все делаешь сам, в управляемом половину вещей делает система. От этого меняется логика языка. Но для современного разработчика изучать лучше сразу управляемое
Процедура или функция с указанным именем уже определена. Хоть как обзывай, ошибка не исчезает
Люди внатуре не вникают, для чего нужны функции , как и я когда то. А ДЛЯ ТОГО ЧТОБЫ ОДИН И ТОТ ЖЕ КОД НЕ ПИСАТЬ 10 РАЗ, а подставлять нужные значения переменных или же сами эти переменные , в аргументы функции ( либо же выполнять некую масивную обработку функцией без аргументов)... Это нужно понять самому
и показывает такое сообщение : {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(35,25)}: Переменная не определена (ЧислоБ)
М = Максимум2 (ЧислоА,
Проверь язык переменных, может ты указал английскую M, вместо русской M
30 Минут искал в чем ошибка))
вот так я все указал Функция Максимум2(А,Б)
Если А > Б Тогда
Возврат А;
Иначе
Возврат Б;
КонецЕсли
КонецФункции
Функция Максимум3(А, Б, В)
Если А > Б И А > В Тогда
Возврат А;
ИначеЕсли Б > В Тогда
Возврат Б;
Иначе
Возврат В;
КонецЕсли
КонецФункции
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
// ЧислоА > ЧислоБ = Ложь
//Если {Условие1} Тогда
// {Оператор1};
//ИначеЕсли {Условие2} Тогда
// {Оператор2};
//Иначе
// {Оператор3}
//КонецЕсли;
М = Максимум2 (ЧислоА, ЧислоБ);
Сообщить("Максимум = " + М);
В чем была ошибка? Мне также пишет, не могу разобраться..
Все настолько легко, проще пареной репы просто!
Странно что процедуры и функции разделены.
Решение проблемы:
Короче, я два дня не мог понять в чем ошибка
Я поставил ; после КонецФункции
После, синтаксических ошибок не обнаружено
в чем ошибка подскажите плиз ({ВнешняяОбработка.ВнешняяОбработка2.Форма.Кнопки.Форма(3,15)}: Переменная не определена (ЧислаА)
М = Максимум(>ЧислаБ);
)
Должно быть Объект.ЧислаА, а не ЧислаА.
Все видео у Ильи интересные. Но пока что ни у одного не увидел внятного объяснения, почему нельзя обходиться только Функцией. Например, из видео, тело процедуры поместить в функцию, ведь точно так же отработает. Зачем нужно это деление.
Разве процедура действия на кнопку не понадобится в любом случае? В ней, конечно, достаточно прописать лишь вызов функции, а все остальное прописать в функции. Но как совсем без процедуры обойтись - не понимаю что-то... Тогда же при нажатии на "Выполнить" - никакого толка
у меня не было ошибок, когда две функции были определены с одинаковым названием..
потому что namespace разный наверное
ВСе Я разобрался
Никита Кудрин в чем причина была? У меня такая же ошибка не могу понять что делать
У меня тоже пишет переменная не определена, и при чем пишет что переменные должны быть поверх функций, задал Перем ЧислоА и Перем ЧислоБ, ошибку больше не выдает, но при отладке не сообщает результат, хотя в Процедуре указано Сообщить М как у вас. В чем может быть причина? Если кто разобрался - напишите
И зря не проверили Функцию максимум из трех! Работает не верно! Правильнее было ИначеЕсли В > А Тогда Возврат В; Иначе Возврат Б; . У нас по условию выходит В меньше А, если у нас Б будет больше В, то оно все-равно может быть меньше А. Отсюда ошибка. Не в обиду автора, огромное ему спасибо за уроки, очень познавательно, скорее всего просто был невнимателен =)
Я вбил код на три числа с экрана и у меня всё работает. Читайте внимательно код, Б никак не может быть меньше А.
@@PartizannN437 как у нас Б не может быть меньше А, если первое же условие говорит что А>Б?
Вы знаете как работает оператор И? Если А > Б И А > В, тогда мы возвращаем А. Иначе А
Вообще не понял. Как система понимает что А это число и что Б тоже число? Ведь мы не указывали, допустим как в других языках, что например "А = 1" и "Б = 2". В каком месте к этим буквам назначается число, и какое число назначается, когда мы успели их сделать переменными??? Даже если система берет А и Б из надписей "ЧислоА" и "ЧислоБ", то как он определяет какую букву из этого словосочетания взять? Почему он не может взять допустим букву Ч из "Число" и не запутатся в параметрах и в вычислении?????? Пробовал в параметрах писать всякую ахинею, синтаксическая проверка не прошлась. Так как млять этот гребаный язык программирования понял что есть А и что есть Б????? Мляяяя вообще хз че происходит DX
Типы значения реквизитов А и Б мы определили на этапе их создания в обработке.
@@IlyaLeontyev , все равно не понятно, на этапе создания обработки мы создали реквизиты ЧислоА и ЧислоБ и указали что тип число, но негде не указывали что ЧислоА=А, я тоже на этом застопорился, почему в функции мы пишем просто А и Б, а в процедуре ЧислоА и ЧислоБ, пробовал в процедуре написать просто А и Б не проходит синтаксическую проверку. И было бы замечательно, если бы немного рассказали о правилах написания и дали бы какую нибудь ссылочку на справочную инфу по функциям и процедурам, где какие кавычки, скобки, точки с запятой надо ставить, где пробелы ставятся , а где нет.
Тоже ломал голову над этим вопросом, потом нашел на другом сайте описание функции и понял, что Кога мы описывали функцию вычисления максимума, мы могли там поставить любые буквы например Д и Е в качестве параметров, а вот при вызове этой функции (через вызов прцедуры сообщить) мы указываем эти параметры ЧислоА и ЧислоБ, мы можем еще раз добавить вызов процедуры сообщить А в качестве параметров указать ЧислоА и ЧислоС, и выведется 2 максимума.
@@sergejsimagin3741 А если мы в функцию передадим число и строку, функция крашнется. И будет сообщение об ошибке.
{Форма.Форма.Форма(22)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
Если А > Б тогда
норм
без домашних заданий это малоэффективное освоение материала.
ну так используй .В чем проблема ?
Ахаха достигнуто предельное количество подключений к ИБ, это блин учебная версия ограничена по количеству запусков. Ну и жлобы. Только начал учить 1С програмирование а уже такой бред, придётся ставить пиратку, ибо такие ограничения ни в какие ворота не лезут.
код на русском языке - извращение и боль глазам
Да на самом деле это дело вкуса и привычки. Я пока этим не занимаюсь (1С, посматриваю иногда из любопытства), а вот в своё время тренировался обычными ЯП, помню каким извращением и джунглями С++ со всеми этими { } ; * казался после VB. А через какое-то время после С++ уже VB казался "рукалицо" ))
Ко всему привыкаешь за недельку... Соответственно и отвыкаешь.
Что попало,только не для новичков,вообще ничего не понятно,хотя знаю другие языки программирования.
Всё ок, всё понятно, хотя не знаю языки программирования))