У тебя не оспоримый плюс - очень хорошо поставленная дикция. Восприятие материала на уровне Гилева. Но и реальные кейсы рассматриваешь (не академические), это круто, особенно для джунов.
Я "молодой" программист 1С8. Нахрена например велосипед с преобразованием в дату? Есть же функция Дата, типовая которой 100 лет в обед... Я бы ещё понял, если бы ухерительная функция БСП сама бы определяла формат и пыталась вернуть в виде даты (а может быть и со временем). А так получается, что раньше надо было строку сначала скомпоновать и впихнуть в Дату, и сейчас то же самое компонуешь строку к определенному формату и отправляешь в функцию. Если нет разницы, то зачем мне такой же баян, только с видом с боку? Причем, этот баян работает только в конфе с БСП, а любой другой пролетит как фанера над Парижем?
Доброго времени прошел небольшой курс, курс примерно такой: основы программирования 1с хранение справочной информации программная работа с объектами работа с формами, управляемые формы запросы в 1с печатные формы достаточно ли этого, что бы пробовать идти на стажировку ?
6:00 есть ещё вариант, где в значения реквизитов объекта передаётся вторым параметром не список реквизитов через запятую, а структура - в которой ключи это желаемые нами предоставления реквизитов, а значения - собственно имена реквизитов в конфигураторе
Там еще круче можно сделать со структурой, т.е. ключ это псевдоним, а в значении можно указать через точку. Например так Новый Структура("ИНН", "Товар.ОсновнойПоставщик.ИНН")
@@timurdanilenko3582 и даже можно туда выражения писать - например "ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Стр.Контрагент, Новый Структура("КонтрагентКод, КонтрагентНаименование, КонтрагентЕДРПОУ, КонтрагентGLN, КонтрагентАдрес", "Код", "Наименование", "ОКПО", "К2_GLN", "ОсновнойАдресДоставки.Улица + "", "" + ОсновнойАдресДоставки.Дом"))"
отлично видео. Предложение для следующего ролика: сохраняемые данные на форме (через хранилище или через отметку "Сохранить"). Правильный порядок получения и примеры работы с ними, с учетом стандартов 1С
Еще как вариант можно сделать видео на тему. Как сделать макеты печатных форм доступными к редактированию пользователем. Не совсем там все очевидно. Даже опытные программисты бывает не справляются
Спасибо за комментарий) Конкретно для изучения БСП можно начать с документации на ИТС. Всё помнить нереально, самое главное - много практики, учиться регулярно, ну и любить своё дело)
За видео спасибо! Был бы рад, если-б записали видео по блокировкам... ... Начитался ИТС-а, инфостарт-а ... В голове каша. Хрен поймешь ка правильно блокировать остатки, чтобы избежать излишних блокировок. Как работать с конфой если у неё стоит управляемые, а на объекте(регистр накопления) автоматические. Что за исключительная ситуация и т.д. Заранее спасибо.
Пожалуйста! СКАЖИТЕ!!! Как запоминать все модули по которым раскиданы эти функции? Я могу запомнить что есть готовая возможность в БСП, например доставать ФИО, или правильно вытаскивать значения реквизитов. Как запомнить в каком модуле это искать?
Можно не запоминать, а использовать Шаблоны текста в 1С. Создаешь новый шаблон, указываешь Название: "Строка в число", Автоматически заменять строку: "БСП[Строки]", Текст шаблона: "СтроковыеФункцииКлиентСервер.СтрокаВЧисло(Сумма);". В коде, когда тебе нужно будет вызвать функцию СтрокаВЧисло, просто пишешь "БСПС" (БСПСтроки), нажимаешь Ctrl+q, появится форма с выбором шаблона "Строка в число", выбираешь нужный шаблон, текст шаблона автоматически появится в редакторе текста
Объясните молодому, пожалуйста 1) Для чего использовать длинные вызовы, если можно показать сообщение через "Сообщить()"? 2) Из строки в число можно преобразовать через функцию "Число()" - это короче 3) Из строки в дату вроде тоже работает через функцию "Дата()"
Здравствуйте!) 1. Метод Сообщить() считается устаревшим, для вывода сообщений рекомендуется использовать объект СообщениеПользователю 2. Да, через Число() можно, но будет исключение при попытке преобразовать к числу значение, которое не может быть преобразовано к числу, например, такую строку "абв". Функции БСП используют для преобразования объект ОписаниеТипов, это не приводит к исключениям в ситуации, описанной выше. 3. Тут смысл такой же как в пункте 2: если к дате не получится привести значение, функция Дата() вызовет исключение, а метод БСП - нет :)
А можно спросить мне нужно лицензионный программу и чтобы там были функции все. Отчет учётов, бух учет, банковские отчеты , таможенный функция, приемка товара где его скачать я сам живу в Азербайджане
Поиск по коду и по наименованию - это очень ненадежно, т.к. код и наименование элемента справочника могут поменяться (либо пользователь изменит, либо какой-либо алгоритм, например, при обмене)
Иван, спасибо, тебе и твоей команде! Очень помогаете разбираться в тонкостях работы 1С. И еще может подскажете, недавно столкнулся с задачей, в которой на входе получал дату типа "17 декабря 2023" (строка), далее эту дату нужно было преобразовать в 17.12.2023 (дата). Есть ли типовая функция выполняющая данное действие?
К сожалению, для преобразования строки вида "17 декабря 2023" в дату готовой функции нет - нужно писать свою: получать части строки (день, месяц, год), составлять строку вида "YYYYMMDD", и уже её преобразовывать к дате)
Так решили разработчики платформы) Возможно, задумка в том, чтобы на всякий случай считывать сразу все данные объекта, чтобы не надо было делать запрос, если программист 1С будет писать так: Артикул = Товар.Артикул; Наименование = Товар.Наименование; ЕдиницаИзмерения = Товар.ЕдиницаИзмерения; Один запрос, который прочитает сразу всё вместо 3-х маленьких, каждый из которых будет считывать одно поле только)
Спасибо за видео! Скажите, а в ЗначениеРеквизитаОбъекта(Ссылка, "ИмяРеквизита") можно ли через Имя реквизита сразу достать что-то по точке? Например, "ФизическоеЛицо.Код"? Или для таких случаев нужна другая функция? Или последовательно вызывать ЗначениеРеквизитаОбъекта(), получая сначала реквизит, затем от реквизитам опять ЗначениеРеквизитаОбъекта()? Всегда интересовал этот вопрос :) Спасибо!
Спасибо! По БСП вообще ни книгу не найти, ни доступной официальной документации (ИТС пробник на неделю, потом только закрытая для клиентов). Интересно, выгрузка ТЗ в массив структур (AoS), а не в структуру массивов (SoA) выбрали из практики, или по аналогии с табличной моделью, для удобства перебора строками?
Со структурой массивов на практике не очень удобно работать, удобнее с массивом структур) Структура хорошо подходит для хранения данных строки табличной части. Одна строка табличной части - одна структура, коллекция строк табличной части - массив структур)
А через точку достает табличные части, или ссылку на табличные части? Если ссылка то не так и много достает Проблема програмистов 1С что сильно учат оптимизировать, местами через-чур, вот недавно встретился - передал(1с 10 лет опыт) в процедуру с формы два параметра, потом чтото поменялось и бери меняй ту процедуру после него; а можно было передать туда сразу ссылку и из нее достать что надо(пусть даже через точку что быстрее и меньше заморачиватся); неудобно передавать параметры, нужно передавать объекты используемые А так &НаСервереБезКонтекста больше оптимизирует чем операция через точку(достанет подумаешь 5 реквизитов и 3 ссылки на таб части, зато скорость написания выше в раза 2) Могу конечно ошибатся, сразу таб части достает через точку или всетаки ссылки на таб части?
Ох меня сейчас заплюют) Согласен, больше на предварительную оптимизацию походит. В узких местах можно его использовать, но на постоянной основе это ухудшает читаемость, вынуждая отходить от объектного подхода, плюс потом искать куда сложнее, где использовался реквизит объекта. Также зачастую при вызове другого метода либо передаётся куча параметров, либо ссылка + повторный запрос, так что тут ещё смотреть надо, когда это действительно влияет положительно. Сходу из кейсов только обращение к разным обьектам в цикле приходит на ум.
У тебя не оспоримый плюс - очень хорошо поставленная дикция. Восприятие материала на уровне Гилева. Но и реальные кейсы рассматриваешь (не академические), это круто, особенно для джунов.
Одни не оспоримые плюсы. Минусов нет.
И охрененный минус ебанутая музыка в фоне
Супер, емко, информативно, без лишней воды, обожаю ваши видео, спасибо!
Отличное видео! Можно даже вывести в отдельный формат, думаю многим будет полезно.
Всегда без воды, четко и по делу. Всегда лайк
За "типы данных" отдельное спасибо. Не знал что такое есть. Вручную, через квалификаторы парился всегда.
Круто, Иван!) Благодарю за ценную лекцию. Был бы рад курсу по БСП.
Нужно больше таких видео, что бы молодые "программисты" не изобретали велосипед.
Я "молодой" программист 1С8. Нахрена например велосипед с преобразованием в дату? Есть же функция Дата, типовая которой 100 лет в обед... Я бы ещё понял, если бы ухерительная функция БСП сама бы определяла формат и пыталась вернуть в виде даты (а может быть и со временем). А так получается, что раньше надо было строку сначала скомпоновать и впихнуть в Дату, и сейчас то же самое компонуешь строку к определенному формату и отправляешь в функцию. Если нет разницы, то зачем мне такой же баян, только с видом с боку? Причем, этот баян работает только в конфе с БСП, а любой другой пролетит как фанера над Парижем?
@@КонстантинФилиппов-е1ю Гений на Константине)
огонь, спасибо, Иван
Быстро, четко, как всегда - топ!
Отлично, еще один повод покопаться в дебрях общих модулей! :)
Отличное видео, без лишней воды, все по делу. Спасибо!
Круто, Вань! Можно сделать такие видосы на постоянной основе. Рассмотреть какие-то еще полезные фишки БСП ))
Половина для себя приметил)) спасибо большое! Ещё хотим))
Супер! Спасибо! Больше бы таких видео!
Познавательно, спасибо! А если запишите такое же краткое видео про оптимизицию, явные и неявные вызовы - было бы супер!
Спасибо, очень классно рассказано и показано, прям с удовольствием посмотрел
Часто использую большинство из этих функции. Спасибо за материал.
Наконец-то, давно ждал что-то про бсп)
Кратко, но содержательно и с приятной, правильной дикцией.
Какой хороший выпуск, большое спасибо!!!
Спасибо большое, очень полезно.
Спасибо за видео, очень познавательно. Побольше бы таких кратких, но ёмких уроков.
Ваня, ты как всегда супер! так бы курсы 1с-овские проводили..
Спасибо! Очень полезно! Можно еще видео, со следующими 10 функциями БСП?
Сделаем)
когда уже, нужно чтобы вы выделили и описали ещё 20-30 самых частых функций, будет полезно очень многим, я поставлю свечку и помолюсь за вас@ills-1c
Как всегда Лайк! Спасибо
Один из самых понятных источников информации по 1С в интернете!
Спасибо :)
Очень полезные функции, спасибо!
Доброго времени
прошел небольшой курс, курс примерно такой:
основы программирования 1с
хранение справочной информации
программная работа с объектами
работа с формами, управляемые формы
запросы в 1с
печатные формы
достаточно ли этого, что бы пробовать идти на стажировку ?
да
Превосходно, собственно как и всегда. 🎉
Как всегда на высоте, спасибо большое за видео)
Спасибо, очень полезные, информативные и интересные видео.
Отличное видео, спасибо!
Выучу наизусть просто! ❤❤❤
Всегда очень приятная подача материала.
Огонь. Вы молодей. 1000 лайков
У автора большой талант в подаче материала!
Спасибо)
Редко выходишь, давай почаще)
Все чётко и быстро. Спасибо!
Очень полезное видео! Когда-то я писал свою функцию ФИО и только потом я узнал, что оказывается есть стандартная.
Иван, спасибо!!!
Спасибо Вам за полезные видео)
6:00 есть ещё вариант, где в значения реквизитов объекта передаётся вторым параметром не список реквизитов через запятую, а структура - в которой ключи это желаемые нами предоставления реквизитов, а значения - собственно имена реквизитов в конфигураторе
Там еще круче можно сделать со структурой, т.е. ключ это псевдоним, а в значении можно указать через точку. Например так Новый Структура("ИНН", "Товар.ОсновнойПоставщик.ИНН")
@@timurdanilenko3582 и даже можно туда выражения писать - например "ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Стр.Контрагент,
Новый Структура("КонтрагентКод, КонтрагентНаименование, КонтрагентЕДРПОУ, КонтрагентGLN, КонтрагентАдрес",
"Код", "Наименование", "ОКПО", "К2_GLN", "ОсновнойАдресДоставки.Улица + "", "" + ОсновнойАдресДоставки.Дом"))"
Ваня очень крутой. Спасибо!
Иногда, создавать свои велосипеды полезно для саморазвития.
С этим не поспоришь)
Очень полезное видео, спасибо большое
Спасибо, очень полезное видео!
отлично видео. Предложение для следующего ролика: сохраняемые данные на форме (через хранилище или через отметку "Сохранить"). Правильный порядок получения и примеры работы с ними, с учетом стандартов 1С
Спасибо большое за идею для ролика)
Ты лучший! 👍
очень круто!
Строка в число не сделает того что сделает
Функция ПривестиСтрокуКЧислу(ЧислоСтрокой, ВозвращатьНеопределено = Ложь)
ОписаниеТипаЧисла = Новый ОписаниеТипов("Число");
ЗначениеЧисла = ОписаниеТипаЧисла.ПривестиЗначение(ЧислоСтрокой);
Если ВозвращатьНеопределено И (ЗначениеЧисла = 0) Тогда
Стр = Строка(ЧислоСтрокой);
Если Стр = "" Тогда
Возврат Неопределено;
КонецЕсли;
Стр = СтрЗаменить(СокрЛП(Стр), "0", "");
Если (Стр "") И (Стр ".") И (Стр ",") Тогда
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
Возврат ЗначениеЧисла;
КонецФункции
Прошу Вас рассмотреть тему для новых видео: rls. Как настраивать ограничения доступа на уровне записей на стороне конфигурации. Спасибо!
Спасибо за идею для ролика)
Ничего нового не узнал, но новичкам полезно
Какого было мое удивление, когда я откопал эти функции, после того, как большую часть из них писал самостоятельно под определенные задачи)
Еще как вариант можно сделать видео на тему. Как сделать макеты печатных форм доступными к редактированию пользователем. Не совсем там все очевидно. Даже опытные программисты бывает не справляются
Спасибо за идею)
Супер!
Ваня, ты даёшь хорошие знания, спасибо тебе. Можно спросить, как ты этой всей информации владеешь, по каким источникам изучаешь?. Заранее спасибо.
Спасибо за комментарий) Конкретно для изучения БСП можно начать с документации на ИТС. Всё помнить нереально, самое главное - много практики, учиться регулярно, ну и любить своё дело)
Спасибо!
Про все знал, только не всегда при работе вспоминаю о них)
За видео спасибо!
Был бы рад, если-б записали видео по блокировкам...
... Начитался ИТС-а, инфостарт-а ... В голове каша. Хрен поймешь ка правильно блокировать остатки, чтобы избежать излишних блокировок. Как работать с конфой если у неё стоит управляемые, а на объекте(регистр накопления) автоматические. Что за исключительная ситуация и т.д.
Заранее спасибо.
Большое спасибо за классную идею для видео, сделаем ;)
Отлично! Взяла!
Спасибо огромное за ваши полезные видео! Можно узнать что за консоль такая интересная в видео используется?
Спасибо за комментарий) Консоль создавали для студентов наших курсов на основе вот этой: github.com/salexdv/bsl_console
Можно видео для магазина с покупка продаж склад и кассой пж😊
Спасибо! Очень полезно! А можно где-то скачать консоль кода?
Можно вот тут глянуть пример консоли: github.com/salexdv/bsl_console
Умопомрачительно!
Четко, держи подписку
Добро пожаловать! :)
Меня больше консоль кода заинтересовала)
Мы дорабатывали под себя вот эту: github.com/salexdv/bsl_console
Функция ФамилияИнициалы Экспортная. Но в Документообороте когда пишешь скрипт в автоподстановке для объектов такой функции нет, а можно узнать почему?
Пожалуйста! СКАЖИТЕ!!! Как запоминать все модули по которым раскиданы эти функции? Я могу запомнить что есть готовая возможность в БСП, например доставать ФИО, или правильно вытаскивать значения реквизитов. Как запомнить в каком модуле это искать?
Можно не запоминать, а использовать Шаблоны текста в 1С.
Создаешь новый шаблон, указываешь Название: "Строка в число", Автоматически заменять строку: "БСП[Строки]", Текст шаблона: "СтроковыеФункцииКлиентСервер.СтрокаВЧисло(Сумма);".
В коде, когда тебе нужно будет вызвать функцию СтрокаВЧисло, просто пишешь "БСПС" (БСПСтроки), нажимаешь Ctrl+q, появится форма с выбором шаблона "Строка в число", выбираешь нужный шаблон, текст шаблона автоматически появится в редакторе текста
Расскажите почему не надо "поискПоКоду" в рабочей базе?
Иван, добрый день. Может мой вопрос покажется глупым, но как искать все эти функции в описании БСП на сайте ИТС??)
Иван, как называется шрифт установленный в консоли?
consolas - для программного кода, прям отличный)
Функции есть для создания пользователя в 1с с ролями типа администратор только чтение и тд?
про блокировку забыли сказать. при объектном чтении блокировка может быть наложена при наличии табличных частей
Спасибо за уточнение)
Объясните молодому, пожалуйста
1) Для чего использовать длинные вызовы, если можно показать сообщение через "Сообщить()"?
2) Из строки в число можно преобразовать через функцию "Число()" - это короче
3) Из строки в дату вроде тоже работает через функцию "Дата()"
Здравствуйте!)
1. Метод Сообщить() считается устаревшим, для вывода сообщений рекомендуется использовать объект СообщениеПользователю
2. Да, через Число() можно, но будет исключение при попытке преобразовать к числу значение, которое не может быть преобразовано к числу, например, такую строку "абв". Функции БСП используют для преобразования объект ОписаниеТипов, это не приводит к исключениям в ситуации, описанной выше.
3. Тут смысл такой же как в пункте 2: если к дате не получится привести значение, функция Дата() вызовет исключение, а метод БСП - нет :)
выкладывайте больше видео плиииз
А можно спросить мне нужно лицензионный программу и чтобы там были функции все. Отчет учётов, бух учет, банковские отчеты , таможенный функция, приемка товара где его скачать я сам живу в Азербайджане
Программу можно купить у партнеров фирмы 1С, список партнеров в вашем регионе: clck.ru/36Jb97
А почему на 4:20 в рабочих базах так не надо делать? Можете, пожалуйста, дать пояснения?
Поиск по коду и по наименованию - это очень ненадежно, т.к. код и наименование элемента справочника могут поменяться (либо пользователь изменит, либо какой-либо алгоритм, например, при обмене)
А что за трэк играет на фоне?
Эх вот бы еще простыми словами объяснить фоновое многопоточное выполнение внешних обработок с возвратом результата во время работы.
Неистово присоединяюсь к пожеланию
Иван, клаасная тема! Поделитесь консолью
Мы дорабатывали консоль под себя на основе вот этой: github.com/salexdv/bsl_console
@@ironskills-1cкак то заполучить доработанную можно?
спасибо
Благодарю! Очень полезная информация.
П.С.Подскажите, пожалуйста, а какой программой видеомантажа вы пользуетесь в данном видео?...
1 с
Хорошие программы для монтажа: Adobe premiere pro, DaVinci Resolve
1. Нужны таймкоды
2. Нужно описание ключевых моментов для улучшенного поиска
Иван, спасибо, тебе и твоей команде! Очень помогаете разбираться в тонкостях работы 1С. И еще может подскажете, недавно столкнулся с задачей, в которой на входе получал дату типа "17 декабря 2023" (строка), далее эту дату нужно было преобразовать в 17.12.2023 (дата). Есть ли типовая функция выполняющая данное действие?
Есть. Называется Формат
К сожалению, для преобразования строки вида "17 декабря 2023" в дату готовой функции нет - нужно писать свою: получать части строки (день, месяц, год), составлять строку вида "YYYYMMDD", и уже её преобразовывать к дате)
Где можно взять такую "Консоль кода" ?
В видео используется доработанная консоль, на основе вот этой: github.com/salexdv/bsl_console
Очень полезно. А где такую консоль взять?
В видео используем доработанную консоль, за основу брали вот эту: github.com/salexdv/bsl_console
Оч круто, жалко что функций, маловато)
Функций много. Но всю БСП в 12 минут не уложишь. :)
Иван привет, как можно тебе написать? по сотрудничеству
Привет!) Можно написать на email, который в разделе "Контакты" на нашем сайте (ironskills.by)
Почему нельзя сразу на уровне платформы вытаскивать не весь объект, а только сам реквизит, при обращении к нему через точку?
Так решили разработчики платформы) Возможно, задумка в том, чтобы на всякий случай считывать сразу все данные объекта, чтобы не надо было делать запрос, если программист 1С будет писать так:
Артикул = Товар.Артикул;
Наименование = Товар.Наименование;
ЕдиницаИзмерения = Товар.ЕдиницаИзмерения;
Один запрос, который прочитает сразу всё вместо 3-х маленьких, каждый из которых будет считывать одно поле только)
Про свернуть массив не знал :)
Спасибо за видео! Скажите, а в ЗначениеРеквизитаОбъекта(Ссылка, "ИмяРеквизита") можно ли через Имя реквизита сразу достать что-то по точке? Например, "ФизическоеЛицо.Код"? Или для таких случаев нужна другая функция? Или последовательно вызывать ЗначениеРеквизитаОбъекта(), получая сначала реквизит, затем от реквизитам опять ЗначениеРеквизитаОбъекта()? Всегда интересовал этот вопрос :) Спасибо!
Да, через точку тоже можно ;)
Спасибо! По БСП вообще ни книгу не найти, ни доступной официальной документации (ИТС пробник на неделю, потом только закрытая для клиентов). Интересно, выгрузка ТЗ в массив структур (AoS), а не в структуру массивов (SoA) выбрали из практики, или по аналогии с табличной моделью, для удобства перебора строками?
Со структурой массивов на практике не очень удобно работать, удобнее с массивом структур)
Структура хорошо подходит для хранения данных строки табличной части. Одна строка табличной части - одна структура, коллекция строк табличной части - массив структур)
А через точку достает табличные части, или ссылку на табличные части?
Если ссылка то не так и много достает
Проблема програмистов 1С что сильно учат оптимизировать, местами через-чур,
вот недавно встретился - передал(1с 10 лет опыт) в процедуру с формы два параметра, потом чтото поменялось и бери меняй ту процедуру после него; а можно было передать туда сразу ссылку и из нее достать что надо(пусть даже через точку что быстрее и меньше заморачиватся); неудобно передавать параметры, нужно передавать объекты используемые
А так &НаСервереБезКонтекста больше оптимизирует чем операция через точку(достанет подумаешь 5 реквизитов и 3 ссылки на таб части, зато скорость написания выше в раза 2)
Могу конечно ошибатся, сразу таб части достает через точку или всетаки ссылки на таб части?
Ох меня сейчас заплюют)
Согласен, больше на предварительную оптимизацию походит. В узких местах можно его использовать, но на постоянной основе это ухудшает читаемость, вынуждая отходить от объектного подхода, плюс потом искать куда сложнее, где использовался реквизит объекта. Также зачастую при вызове другого метода либо передаётся куча параметров, либо ссылка + повторный запрос, так что тут ещё смотреть надо, когда это действительно влияет положительно. Сходу из кейсов только обращение к разным обьектам в цикле приходит на ум.
Добавьте таймкоды, пожалуйста.
а где такую консольку кода можно приобрести?
Вот тут можно скачать бесплатно похожую: github.com/salexdv/bsl_console
Спасибо!
@@ironskills-1c
Большое спасибо!@@ironskills-1c 🙂
Всё классно. Один минус: научишься применять БСП, будешь тупить там, где БСП нет.
А версия бсп какая ,где появились эти апи?не слова
В версиях 3.1.5 и выше эти функции уже точно есть, в более младших - надо проверить в документации)
А почему не использовать функцию всторенного языка Дата(), И Число() уже давно платформа роспознает НПП-пробел
Спасибо, смотрю и понимаю, что велосипедов я уже изобрела😅
М - мутабельность. Поэтому нельзя передавать сложные типы с сервера на клиент.