10 функций БСП, которые должен знать каждый программист 1С
🔴В этом видео мы покажем вам 10 функций из 1С:БСП, которые должен знать каждый программист 1С. Эти функции помогут писать код быстрее и сделают ваш код более компактным.
💥 Записаться на курс "Программист 1С: с нуля до профи": ironskills.by/kursi/programmi...
Поддержать канал:
donate.stream/ya410011655962993
✅Подписывайтесь на наш канал чтобы первыми получать новые видео.
#1с #ironskills #1с_бсп
---
С уважением, команда IRONSKILLS
Пікірлер: 174
Нужно больше таких видео, что бы молодые "программисты" не изобретали велосипед.
У тебя не оспоримый плюс - очень хорошо поставленная дикция. Восприятие материала на уровне Гилева. Но и реальные кейсы рассматриваешь (не академические), это круто, особенно для джунов.
@user-fm6ux1ig8p
6 ай бұрын
Одни не оспоримые плюсы. Минусов нет.
Супер, емко, информативно, без лишней воды, обожаю ваши видео, спасибо!
Всегда без воды, четко и по делу. Всегда лайк
огонь, спасибо, Иван
Спасибо за видео, очень познавательно. Побольше бы таких кратких, но ёмких уроков.
Половина для себя приметил)) спасибо большое! Ещё хотим))
Круто, Иван!) Благодарю за ценную лекцию. Был бы рад курсу по БСП.
Отличное видео, без лишней воды, все по делу. Спасибо!
Отличное видео! Можно даже вывести в отдельный формат, думаю многим будет полезно.
Супер! Спасибо! Больше бы таких видео!
Какой хороший выпуск, большое спасибо!!!
Как всегда на высоте, спасибо большое за видео)
Быстро, четко, как всегда - топ!
Познавательно, спасибо! А если запишите такое же краткое видео про оптимизицию, явные и неявные вызовы - было бы супер!
Спасибо, очень классно рассказано и показано, прям с удовольствием посмотрел
Как всегда Лайк! Спасибо
Часто использую большинство из этих функции. Спасибо за материал.
Отлично, еще один повод покопаться в дебрях общих модулей! :)
Превосходно, собственно как и всегда. 🎉
Редко выходишь, давай почаще)
Круто, Вань! Можно сделать такие видосы на постоянной основе. Рассмотреть какие-то еще полезные фишки БСП ))
Спасибо большое, очень полезно.
Спасибо Вам за полезные видео)
Отличное видео, спасибо!
Все чётко и быстро. Спасибо!
Выучу наизусть просто! ❤❤❤
Супер!
Всегда очень приятная подача материала.
Наконец-то, давно ждал что-то про бсп)
@Andronav
2 ай бұрын
Так все ж в документации лежит )) Читайте и юзайте интефейсную часть.
Огонь. Вы молодей. 1000 лайков
Ваня, ты как всегда супер! так бы курсы 1с-овские проводили..
очень круто!
Спасибо!
Отлично! Взяла!
Ваня очень крутой. Спасибо!
Какого было мое удивление, когда я откопал эти функции, после того, как большую часть из них писал самостоятельно под определенные задачи)
Ты лучший! 👍
Один из самых понятных источников информации по 1С в интернете!
@ironskills-1c
6 ай бұрын
Спасибо :)
Про все знал, только не всегда при работе вспоминаю о них)
Спасибо! Очень полезно! Можно еще видео, со следующими 10 функциями БСП?
@ironskills-1c
6 ай бұрын
Сделаем)
@gudfest
2 ай бұрын
когда уже, нужно чтобы вы выделили и описали ещё 20-30 самых частых функций, будет полезно очень многим, я поставлю свечку и помолюсь за вас@ills-1c
У автора большой талант в подаче материала!
@ironskills-1c
6 ай бұрын
Спасибо)
спасибо
отлично видео. Предложение для следующего ролика: сохраняемые данные на форме (через хранилище или через отметку "Сохранить"). Правильный порядок получения и примеры работы с ними, с учетом стандартов 1С
@ironskills-1c
5 ай бұрын
Спасибо большое за идею для ролика)
Иногда, создавать свои велосипеды полезно для саморазвития.
@ironskills-1c
6 ай бұрын
С этим не поспоришь)
Спасибо огромное за ваши полезные видео! Можно узнать что за консоль такая интересная в видео используется?
@ironskills-1c
6 ай бұрын
Спасибо за комментарий) Консоль создавали для студентов наших курсов на основе вот этой: github.com/salexdv/bsl_console
Еще как вариант можно сделать видео на тему. Как сделать макеты печатных форм доступными к редактированию пользователем. Не совсем там все очевидно. Даже опытные программисты бывает не справляются
@ironskills-1c
6 ай бұрын
Спасибо за идею)
Умопомрачительно!
Четко, держи подписку
@ironskills-1c
5 ай бұрын
Добро пожаловать! :)
Можно видео для магазина с покупка продаж склад и кассой пж😊
Благодарю! Очень полезная информация. П.С.Подскажите, пожалуйста, а какой программой видеомантажа вы пользуетесь в данном видео?...
@vadimsergeev7874
7 ай бұрын
1 с
@ironskills-1c
6 ай бұрын
Хорошие программы для монтажа: Adobe premiere pro, DaVinci Resolve
Ничего нового не узнал, но новичкам полезно
6:00 есть ещё вариант, где в значения реквизитов объекта передаётся вторым параметром не список реквизитов через запятую, а структура - в которой ключи это желаемые нами предоставления реквизитов, а значения - собственно имена реквизитов в конфигураторе
@timurdanilenko3582
7 ай бұрын
Там еще круче можно сделать со структурой, т.е. ключ это псевдоним, а в значении можно указать через точку. Например так Новый Структура("ИНН", "Товар.ОсновнойПоставщик.ИНН")
@helmetson652
6 ай бұрын
@@timurdanilenko3582 и даже можно туда выражения писать - например "ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Стр.Контрагент, Новый Структура("КонтрагентКод, КонтрагентНаименование, КонтрагентЕДРПОУ, КонтрагентGLN, КонтрагентАдрес", "Код", "Наименование", "ОКПО", "К2_GLN", "ОсновнойАдресДоставки.Улица + "", "" + ОсновнойАдресДоставки.Дом"))"
За видео спасибо! Был бы рад, если-б записали видео по блокировкам... ... Начитался ИТС-а, инфостарт-а ... В голове каша. Хрен поймешь ка правильно блокировать остатки, чтобы избежать излишних блокировок. Как работать с конфой если у неё стоит управляемые, а на объекте(регистр накопления) автоматические. Что за исключительная ситуация и т.д. Заранее спасибо.
@ironskills-1c
6 ай бұрын
Большое спасибо за классную идею для видео, сделаем ;)
Прошу Вас рассмотреть тему для новых видео: rls. Как настраивать ограничения доступа на уровне записей на стороне конфигурации. Спасибо!
@ironskills-1c
5 ай бұрын
Спасибо за идею для ролика)
Ваня, ты даёшь хорошие знания, спасибо тебе. Можно спросить, как ты этой всей информации владеешь, по каким источникам изучаешь?. Заранее спасибо.
@ironskills-1c
Ай бұрын
Спасибо за комментарий) Конкретно для изучения БСП можно начать с документации на ИТС. Всё помнить нереально, самое главное - много практики, учиться регулярно, ну и любить своё дело)
Спасибо! Очень полезно! А можно где-то скачать консоль кода?
@ironskills-1c
6 ай бұрын
Можно вот тут глянуть пример консоли: github.com/salexdv/bsl_console
выкладывайте больше видео плиииз
Иван, спасибо, тебе и твоей команде! Очень помогаете разбираться в тонкостях работы 1С. И еще может подскажете, недавно столкнулся с задачей, в которой на входе получал дату типа "17 декабря 2023" (строка), далее эту дату нужно было преобразовать в 17.12.2023 (дата). Есть ли типовая функция выполняющая данное действие?
@KarlayThe
4 ай бұрын
Есть. Называется Формат
@ironskills-1c
4 ай бұрын
К сожалению, для преобразования строки вида "17 декабря 2023" в дату готовой функции нет - нужно писать свою: получать части строки (день, месяц, год), составлять строку вида "YYYYMMDD", и уже её преобразовывать к дате)
Эх вот бы еще простыми словами объяснить фоновое многопоточное выполнение внешних обработок с возвратом результата во время работы.
Иван, клаасная тема! Поделитесь консолью
@ironskills-1c
6 ай бұрын
Мы дорабатывали консоль под себя на основе вот этой: github.com/salexdv/bsl_console
@NetworM74
6 ай бұрын
@@ironskills-1cкак то заполучить доработанную можно?
Топ
Иван, как называется шрифт установленный в консоли?
@ironskills-1c
Ай бұрын
consolas - для программного кода, прям отличный)
Очень полезно. А где такую консоль взять?
@ironskills-1c
6 ай бұрын
В видео используем доработанную консоль, за основу брали вот эту: github.com/salexdv/bsl_console
А что за трэк играет на фоне?
1. Нужны таймкоды 2. Нужно описание ключевых моментов для улучшенного поиска
Спасибо за видео! Скажите, а в ЗначениеРеквизитаОбъекта(Ссылка, "ИмяРеквизита") можно ли через Имя реквизита сразу достать что-то по точке? Например, "ФизическоеЛицо.Код"? Или для таких случаев нужна другая функция? Или последовательно вызывать ЗначениеРеквизитаОбъекта(), получая сначала реквизит, затем от реквизитам опять ЗначениеРеквизитаОбъекта()? Всегда интересовал этот вопрос :) Спасибо!
@ironskills-1c
6 ай бұрын
Да, через точку тоже можно ;)
Функции есть для создания пользователя в 1с с ролями типа администратор только чтение и тд?
Хорош
Иван привет, как можно тебе написать? по сотрудничеству
@ironskills-1c
6 ай бұрын
Привет!) Можно написать на email, который в разделе "Контакты" на нашем сайте (ironskills.by)
Оч круто, жалко что функций, маловато)
@ivernik
7 ай бұрын
Функций много. Но всю БСП в 12 минут не уложишь. :)
про блокировку забыли сказать. при объектном чтении блокировка может быть наложена при наличии табличных частей
@ironskills-1c
6 ай бұрын
Спасибо за уточнение)
Функция ФамилияИнициалы Экспортная. Но в Документообороте когда пишешь скрипт в автоподстановке для объектов такой функции нет, а можно узнать почему?
Про свернуть массив не знал :)
А почему на 4:20 в рабочих базах так не надо делать? Можете, пожалуйста, дать пояснения?
@ironskills-1c
4 ай бұрын
Поиск по коду и по наименованию - это очень ненадежно, т.к. код и наименование элемента справочника могут поменяться (либо пользователь изменит, либо какой-либо алгоритм, например, при обмене)
Спасибо! По БСП вообще ни книгу не найти, ни доступной официальной документации (ИТС пробник на неделю, потом только закрытая для клиентов). Интересно, выгрузка ТЗ в массив структур (AoS), а не в структуру массивов (SoA) выбрали из практики, или по аналогии с табличной моделью, для удобства перебора строками?
@ironskills-1c
6 ай бұрын
Со структурой массивов на практике не очень удобно работать, удобнее с массивом структур) Структура хорошо подходит для хранения данных строки табличной части. Одна строка табличной части - одна структура, коллекция строк табличной части - массив структур)
Пожалуйста! СКАЖИТЕ!!! Как запоминать все модули по которым раскиданы эти функции? Я могу запомнить что есть готовая возможность в БСП, например доставать ФИО, или правильно вытаскивать значения реквизитов. Как запомнить в каком модуле это искать?
@MrHydeELV
6 ай бұрын
Можно не запоминать, а использовать Шаблоны текста в 1С. Создаешь новый шаблон, указываешь Название: "Строка в число", Автоматически заменять строку: "БСП[Строки]", Текст шаблона: "СтроковыеФункцииКлиентСервер.СтрокаВЧисло(Сумма);". В коде, когда тебе нужно будет вызвать функцию СтрокаВЧисло, просто пишешь "БСПС" (БСПСтроки), нажимаешь Ctrl+q, появится форма с выбором шаблона "Строка в число", выбираешь нужный шаблон, текст шаблона автоматически появится в редакторе текста
А можно спросить мне нужно лицензионный программу и чтобы там были функции все. Отчет учётов, бух учет, банковские отчеты , таможенный функция, приемка товара где его скачать я сам живу в Азербайджане
@ironskills-1c
6 ай бұрын
Программу можно купить у партнеров фирмы 1С, список партнеров в вашем регионе: clck.ru/36Jb97
🥰💥❤💋
Где можно взять такую "Консоль кода" ?
@ironskills-1c
6 ай бұрын
В видео используется доработанная консоль, на основе вот этой: github.com/salexdv/bsl_console
а где такую консольку кода можно приобрести?
@ironskills-1c
5 ай бұрын
Вот тут можно скачать бесплатно похожую: github.com/salexdv/bsl_console
@user-tv3vq4ed4w
5 ай бұрын
Спасибо! @@ironskills-1c
@user-tv3vq4ed4w
5 ай бұрын
Большое спасибо!@@ironskills-1c 🙂
МЕГА!!!
Объясните молодому, пожалуйста 1) Для чего использовать длинные вызовы, если можно показать сообщение через "Сообщить()"? 2) Из строки в число можно преобразовать через функцию "Число()" - это короче 3) Из строки в дату вроде тоже работает через функцию "Дата()"
@ironskills-1c
5 ай бұрын
Здравствуйте!) 1. Метод Сообщить() считается устаревшим, для вывода сообщений рекомендуется использовать объект СообщениеПользователю 2. Да, через Число() можно, но будет исключение при попытке преобразовать к числу значение, которое не может быть преобразовано к числу, например, такую строку "абв". Функции БСП используют для преобразования объект ОписаниеТипов, это не приводит к исключениям в ситуации, описанной выше. 3. Тут смысл такой же как в пункте 2: если к дате не получится привести значение, функция Дата() вызовет исключение, а метод БСП - нет :)
Почему нельзя сразу на уровне платформы вытаскивать не весь объект, а только сам реквизит, при обращении к нему через точку?
Строка в число не сделает того что сделает Функция ПривестиСтрокуКЧислу(ЧислоСтрокой, ВозвращатьНеопределено = Ложь) ОписаниеТипаЧисла = Новый ОписаниеТипов("Число"); ЗначениеЧисла = ОписаниеТипаЧисла.ПривестиЗначение(ЧислоСтрокой); Если ВозвращатьНеопределено И (ЗначениеЧисла = 0) Тогда Стр = Строка(ЧислоСтрокой); Если Стр = "" Тогда Возврат Неопределено; КонецЕсли; Стр = СтрЗаменить(СокрЛП(Стр), "0", ""); Если (Стр "") И (Стр ".") И (Стр ",") Тогда Возврат Неопределено; КонецЕсли; КонецЕсли; Возврат ЗначениеЧисла; КонецФункции
Всё классно. Один минус: научишься применять БСП, будешь тупить там, где БСП нет.
Меня больше консоль кода заинтересовала)
@ironskills-1c
6 ай бұрын
Мы дорабатывали под себя вот эту: github.com/salexdv/bsl_console
Спасибо, смотрю и понимаю, что велосипедов я уже изобрела😅
А версия бсп какая ,где появились эти апи?не слова
@ironskills-1c
6 ай бұрын
В версиях 3.1.5 и выше эти функции уже точно есть, в более младших - надо проверить в документации)
М - мутабельность. Поэтому нельзя передавать сложные типы с сервера на клиент.
Часть этих функций и есть велосипеды. Утешает только, что они от самой 1С )
@ironskills-1c
6 ай бұрын
Это да)
добрый вечер Иван откуда можно получить этого БСП бесплатно
А через точку достает табличные части, или ссылку на табличные части? Если ссылка то не так и много достает Проблема програмистов 1С что сильно учат оптимизировать, местами через-чур, вот недавно встретился - передал(1с 10 лет опыт) в процедуру с формы два параметра, потом чтото поменялось и бери меняй ту процедуру после него; а можно было передать туда сразу ссылку и из нее достать что надо(пусть даже через точку что быстрее и меньше заморачиватся); неудобно передавать параметры, нужно передавать объекты используемые А так &НаСервереБезКонтекста больше оптимизирует чем операция через точку(достанет подумаешь 5 реквизитов и 3 ссылки на таб части, зато скорость написания выше в раза 2) Могу конечно ошибатся, сразу таб части достает через точку или всетаки ссылки на таб части?
@gravity102
7 ай бұрын
Ох меня сейчас заплюют) Согласен, больше на предварительную оптимизацию походит. В узких местах можно его использовать, но на постоянной основе это ухудшает читаемость, вынуждая отходить от объектного подхода, плюс потом искать куда сложнее, где использовался реквизит объекта. Также зачастую при вызове другого метода либо передаётся куча параметров, либо ссылка + повторный запрос, так что тут ещё смотреть надо, когда это действительно влияет положительно. Сходу из кейсов только обращение к разным обьектам в цикле приходит на ум.
А почему не использовать функцию всторенного языка Дата(), И Число() уже давно платформа роспознает НПП-пробел
ЗначениеВМассиве тоже
@ironskills-1c
6 ай бұрын
Да, спасибо, это тоже полезная функция)
Консольку очень хотелось бы получить ...
@ironskills-1c
6 ай бұрын
Можно вот тут похожую скачать: github.com/salexdv/bsl_console
@user-fq9mm9yl8q
6 ай бұрын
@@ironskills-1c Такая уже давно есть, спасибо. Тогда вопросик - у Вас есть что-то типа справочника алгоритмов. А где Вы храните алгоритмы для внешней обработки? Или при старте считываете какую-то папку?
А почему просто нельзя Число() использовать? Также быстрее)
@PTolkachev
7 ай бұрын
Функция из БСП не выбрасывает исключение, если переданное знание не может быть преобразовано в число, а возвращает Неопределенно. Ещё при просмотре удивился, почему автор не уточнил этот момент. Ведь сразу возникает данный очевидный вопрос.
@ironskills-1c
6 ай бұрын
Спасибо за уточнение) Да, стоило об этом сказать, согласен)
В чем преимущество бсп перед запросами? Так же лишнего нет.
0:30 - Зачем??? Просто "Сообщить()" да и всё
@user-yh9np3cv7f
7 ай бұрын
так там не сообщить, а целое СообщениеПользователю, только как Сообщить
@kaaasteeenTV
7 ай бұрын
На ИТС написано, что метод "Сообщить()" использовать не рекомендуется на управляемых формах.
@kaaasteeenTV
7 ай бұрын
@@cryptone11, Да, я знаю - спасибо. Решил проще ответить)
@PTolkachev
7 ай бұрын
@@cryptone11а СообщениеПользователю.Сообщить() пипец какой асинхронный :)))