Программирование в 1С | Школа Programming Store


Channel's geo and language: Russia, Russian
Category: Technologies


Школа Programming Store — образовательный проект от экспертов компани с опытом в 1С 15+ лет.
Попробуй себя в роли 1С-программиста — https://clck.ru/3FCskj
Обучение программированию в 1С с нуля, курсы для разработчиков с опытом и митапы.

Related channels  |  Similar channels

Channel's geo and language
Russia, Russian
Statistics
Posts filter


👨‍💻 С Днём программиста!

Поздравляем всех, работает с кодом, решает сложные задачи и создаёт полезные продукты и сервисы.

Желаем интересных проектов, профессионального роста, хорошей команды и как можно меньше неожиданных ошибок в самый неподходящий момент 😄

А в честь праздника решили собрать небольшой полезный список для 1С-разработчиков — что стоит изучать помимо самой платформы.

Собрали три направления, с которых можно начать:

🔹SQL
Пригодится, когда нужно понять, почему запрос работает медленно и где возникает лишняя нагрузка на базу.
Для старта достаточно разобраться с JOIN, группировками, индексами и планом выполнения запросов.

🔹Git
Нужен для командной разработки и нормальной работы с изменениями.
Минимальный набор: понимать, что такое commit, branch, merge, уметь сравнивать версии и разбираться с конфликтами.

🔹HTTP, API и JSON
Без этого сложно обойтись в интеграциях. 1С часто нужно связать с сайтом, CRM, мобильным приложением или другим сервисом.
Полезно знать методы GET и POST, коды ответов HTTP, структуру JSON и понимать, как работает REST API.

✨ Как учить эффективнее: не пытайтесь закрыть всё теорией. Возьмите маленькую практическую задачу: оптимизируйте запрос, создайте учебный репозиторий в Git или попробуйте получить данные из открытого API.


А что бы вы добавили в этот список для 1С-разработчика?


🐎 Самая быстрая лошадь на скачках

Говорят, эту задачку дают на собеседованиях Microsoft.

У вас есть 25 лошадей и 5 беговых дорожек. При этом заранее неизвестно, какая лошадь быстрее другой, а секундомера нет — после каждого забега можно определить только порядок участников на финише.

Задача: найти тройку самых быстрых лошадей за минимально возможное количество забегов.

Попробуйте сначала решить самостоятельно и посчитать, сколько гонок вам понадобится 👀

Ответ — ниже 👇

Первые 5 забегов нужны, чтобы разделить всех 25 лошадей на пять групп и определить порядок внутри каждой.

Затем проводим 6-й забег между победителями пяти групп. Допустим, результат такой:

A1 > B1 > C1 > D1 > E1

После него круг претендентов сильно сужается. На место в тройке всё ещё могут рассчитывать только:

A1, A2, A3, B1, B2 и C1.

Почему? Например, C2 уже точно медленнее C1, B1 и A1 — значит, в топ-3 она не попадёт. По той же логике исключаем остальных.

A1 уже гарантированно самая быстрая лошадь.

Остаётся провести 7-й забег между:

A2, A3, B1, B2 и C1.

Две самые быстрые лошади в этом забеге вместе с A1 и составят итоговую тройку победителей.

🏁 Ответ: минимально нужно 7 забегов.

А у вас получилось решить без подсказки?


🤨 Как подготовиться к экзамену 1С:Специалист?

В карточках Валентина, сертифицированный преподаватель фирмы «1С», автор и преподаватель курсов Школы программистов Programming Store, собрала лайфхаки, которые помогут выстроить подготовку к экзамену 1С:Специалист и не потерять темп по пути.

🌟 Читайте, сохраняйте и используйте на практике.

А если чувствуете, что нужна более системная подготовка, в Школе Programming Store есть курс «Программирование в 1С. Специалист».


Лето наступило — отличное время, чтобы начать что-то новое ☀️

Например, чтобы наконец разобраться, как войти в 1С-разработку и стать специалистом, которого ищут работодатели.

Мы подготовили статью-дорожную карту для тех, кто хочет стать востребованным 1С-разработчиком с нуля.

🔍 Внутри разобрали:
— с чего начать обучение;
— какие навыки нужны на старте;
— что важно знать про платформу 1С;
— как перейти от теории к практике;
— какие ошибки мешают новичкам расти быстрее.

Статья подойдет тем, кто только присматривается к профессии, и тем, кто уже начал учиться, но пока не понимает, куда двигаться дальше.


🌟 Читайте материал по ссылке и сохраняйте, чтобы возвращаться к нему во время обучения: https://dzen.ru/a/ahAefwvsoEortPwh


❓ А вот и ответы на викторину по теме «Стандарты разработки конфигураций» 🔽

❓Какие причины неоптимальной работы запросов существуют?


Ой-ой, просим прощения, тут вкралась ошибочка.
1-й вариант должен быть: «соединения с виртуальными таблицами».

В таком случае верными будут варианты 1, 2 и 4, т. к. использование вложенных запросов, конечно же, не противозаконно 😉

❓В каком случае нужно использовать индексирование временной таблицы в запросе?


Как указано в стандартах, индексирование временных таблиц обязательно в том случае, если эти таблицы в дальнейшем участвуют в соединениях или в отборах. Но это касается только таблиц, количество строк в которых превышает 1000.

❓При использовании виртуальных таблиц в запросах следует передавать в параметры таблиц все условия, относящиеся к данной виртуальной таблице. В каких случаях это утверждение верно?


Все мы знаем, что условие в параметрах виртуальной таблицы предпочтительнее, чем условие в предложении ГДЕ.

Но не всегда 😉

Если нужно наложить условие, например, на ресурс регистра сведений, то условие в ГДЕ и условие в параметрах приведут к разным результатам. То есть если речь идет об измерениях регистра, условие в параметрах — единственно верный вариант. А вот если о ресурсах или реквизитах — тут уже все не так однозначно.

❓Можно ли использовать в запросе разыменование полей? (обращаться через точку к реквизитам ссылки)


Любое разыменование полей — это соединение с соответствующей таблицей. А если поле имеет составной тип, то разыменование приводит к соединению со всеми таблицами, соответствующими выбранным типам.

Например, если регистраторами в регистре указаны 15 документов, то, казалось бы, безобидное поле «Регистратор.Дата» приведет к 15 соединениям. Так что разыменование поля составного типа — это грубейшая ошибка. А вот разыменование обычных ссылочных полей вполне допустимо.

❓Отказ = ЕстьОшибки();
Соответствует ли такой код стандартам разработки 1С?


По стандартам параметру Отказ можно присваивать только значение Истина.

Представьте, что в процедуре ОбработкаПроведения где-то выше параметру Отказ уже присвоили Истина. И что произойдет, если ниже мы присвоим ему значение функции? Например, эта функция вернет Ложь.

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

А если мы напишем:

Если ЕстьОшибки() Тогда
Отказ = Истина;
КонецЕсли;

то сможем избежать такой неприятной ситуации.

Как вам викторина?
Оставьте реакцию:
❤️ — легкотня
🔥 — полезно, узнал(-а) кое-что новое
👍 — хочу еще викторину, да посложнее

#викторина@learn_prosto


На этом всё! Спасибо всем за участие в викторине! Правильные ответы разберём в следующем посте. Желаем вам хороших выходных 🎉

#викторина@learn_prosto


Отказ = ЕстьОшибки(); Соответствует ли такой код стандартам разработки 1С?
Poll
  •   Соответствует
  •   Стандарты разработки нарушены: параметру Отказ можно присваивать только значение Истина
  •   Стандарты разработки нарушены: параметру Отказ нельзя присваивать значение функции
21 votes


Можно ли использовать в запросе разыменование полей? (обращаться через точку к реквизитам ссылки)
Poll
  •   Можно, в любом случае
  •   Нельзя, правильнее использовать левое соединение
  •   Если поле имеет составной тип — нельзя. В других случаях —можно
20 votes


При использовании виртуальных таблиц в запросах, следует передавать в параметры таблиц все условия, относящиеся к данной виртуальной таблице. В каких случаях это утверждение верно?
Poll
  •   Это утверждение верно в любом случае
  •   Это утверждение не является верным
  •   Это утверждение верно только в случае, если условие накладывается на измерения регистра
33 votes


В каком случае нужно использовать индексирование временной таблицы в запросе?
Poll
  •   В любом случае
  •   Если временная таблица участвует в соединении
  •   Если временная таблица содержит более 1000 строк и участвует в соединении
  •   Если временная таблица содержит более 1000 строк и участвует в соединении либо в операторе В()
2 votes


Какие причины неоптимальной работы запросов существуют?
Poll
  •   Соединения с временными таблицами
  •   Использование логического ИЛИ в конструкции ГДЕ
  •   Использование вложенных запросов
  •   Разыменование полей составного типа
  •   Все ответы верные
  •   Верны ответы 1, 2, 4
  •   Верны ответы 1, 3, 4
2 votes


Среда почти как пятница, особенно на короткой неделе 🙂

Чтобы настроиться на майские выходные, подготовили для вас викторину по теме «Стандарты разработки конфигураций» ⭐️

#викторина@learn_prosto


Осторожно, тест на внимательность 👀

Говорят, если найти число 88 быстрее чем за 10 секунд, день будет удачным. Проверим?

На картинке спряталось число 88. Засекайте время и попробуйте найти его как можно быстрее.

Нашли? Ставьте 🔥




Научиться чему-то можно только на практике, поэтому в наших курсах максимальная концентрация на практических задачах из реального опыта разработчиков 💪


Спешим ответить на вопрос из рубрики:
❓Вопросы с реальных собеседований и тех. интервью


Вопрос:

Чем отличаются директивы
&НаСервере
&НаСервереБезКонтекста
и
&НаКлиентеНаСервереБезКонтекста?

Ответ:

При использовании директивы &НаСервере, весь контекст формы (элементы формы и ее реквизиты) передается на сервер. После выполнения процедуры (или функции) на сервере, весь контекст формы возвращается обратно на клиент. Т.е. мы гоняем туда-сюда всю форму, со всеми ее элементами и данными.

Но далеко не каждой процедуре на сервере требуются данные формы. Чтобы минимизировать трафик между клиентом и сервером, такие процедуры описывают с директивой &НаСервереБезКонтекста

При использовании этой директивы, контекст формы на сервере будет недоступен. А если все же нужно передать данные с клиента на сервер, не передавая весь контекст, это можно сделать в параметрах такой процедуры.

А вот директива &НаКлиентеНаСервереБезКонтекста используется при описании процедур, которые с одинаковым успехом могут быть выполнены как на клиенте, так и на сервере, и да, контекст формы для их выполнения также не нужен.

➡️ Что же это за процедуры такие?

Если процедура может выполняться и на клиенте, и на сервере, значит, она не должна обращаться ни к данным формы, ни к базе данных. Т.е. такая процедура может оперировать ТОЛЬКО переданными в нее параметрами.

Например, функция возведения числа в степень может быть описана как раз с директивой &НаКлиентеНаСервереБезКонтекста. Потому что она может быть выполнена и на клиенте и на сервере, и для ее работы не требуется ничего, кроме переданных параметров.


❤️ — если было полезно
#вопросы_с_собеседований@learn_prosto


Всем привет! Время для рубрики:
❓ Вопросы с реальных собеседований и тех. интервью

Вопрос:
Чем отличаются директивы
&НаСервере
&НаСервереБезКонтекста
и
&НаКлиентеНаСервереБезКонтекста?

Ответы пишите в комментариях, прячьте под снежком.
Правильный ответ опубликуем в понедельник.

Хороших выходных ✨

#вопросы_с_собеседований@learn_prosto







20 last posts shown.