This media is not supported in your browser
VIEW IN TELEGRAM
А пока я собираю идеи новых постов и заряжаюсь энергией на конференции Инфостарт, пятничное мем-видео)
👍15😁8🔥4
Е.БУДНИ программиста 1С | Роман Чумадин pinned Deleted message
Думал просто Выборка, а оказалось нет)
На конференции Инфостарт был стенд, где можно было пройти демо-тестирование, выбрал тему «Запросы», и нашел для себя интересную функцию у выборки «НайтиСледующий()».
В работе чаще всего использовал «Следующий», поэтому решил изучить какие ещё есть методы у выборки и поделиться с вами.
Выбрать() * для результата запроса – метод предназначен для получения выборки из результата запроса.
Выбрать() ! для выборки – получает выборку из подчиненной выборки, если указан тип обхода результата запроса «ПоГруппировкам»
Владелец() – функция, возвращающая результат запроса из которого получена выборка. Обратное действие Выбрать() !
НайтиСледующий() – аналогичен методу Следующий(), но за тем исключением, что переход выполняется не на просто следующую запись, а на следующую запись соответствующую отбору. Отбор задается либо структурой, либо параметрами Значение и Колонка.
Группировка() – функция возвращает имя группировки текущей записи, если она есть
Есть ряд понятных функций выборки по их названию и контексту: Сбросить(), Количество(), Уровень(), ТипЗаписи().
- - - - - - - - -
Случайный пост > > >
Где брать инфу начинающему разработчику
#ЕБ_Повседневность
На конференции Инфостарт был стенд, где можно было пройти демо-тестирование, выбрал тему «Запросы», и нашел для себя интересную функцию у выборки «НайтиСледующий()».
В работе чаще всего использовал «Следующий», поэтому решил изучить какие ещё есть методы у выборки и поделиться с вами.
Выбрать() * для результата запроса – метод предназначен для получения выборки из результата запроса.
Выбрать() ! для выборки – получает выборку из подчиненной выборки, если указан тип обхода результата запроса «ПоГруппировкам»
Выборка = РезультатЗапроса.Выбрать*(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() Цикл
ПодчВыборка = Выборка.Выбрать();
…
Следующий() – метод возвращающий тип булево. Истина если получена следующая запись результата запроса и Ложь если следующей записи нет.Владелец() – функция, возвращающая результат запроса из которого получена выборка. Обратное действие Выбрать() !
НайтиСледующий() – аналогичен методу Следующий(), но за тем исключением, что переход выполняется не на просто следующую запись, а на следующую запись соответствующую отбору. Отбор задается либо структурой, либо параметрами Значение и Колонка.
Пока Выборка.НайтиСледующий(Новый Структура("Колонка1, Колонка2", Значение1, Значение2)) Цикл
...
ИЛИ
Пока Выборка.НайтиСледующий(Значение, Колонка)) Цикл
...
СледующийПоЗначениюПоля() - аналогичен методу Следующий(), но значение выборки переходит к следующей строке со значением по указанному полю отличным от текущего положения.Выборка.СледующийПоЗначениюПоля("ИмяПоля");
Получить() – позволяет выбрать запись результата запроса по индексу, аналог квадратных скобок «[]»Группировка() – функция возвращает имя группировки текущей записи, если она есть
Есть ряд понятных функций выборки по их названию и контексту: Сбросить(), Количество(), Уровень(), ТипЗаписи().
- - - - - - - - -
Случайный пост > > >
Где брать инфу начинающему разработчику
#ЕБ_Повседневность
👍38🔥10🤔2❤1
Так видит меня нейросеть. Мысли и заметки с конференции!
Далеко не все доклады удалось посмотреть, но для участников они уже доступны в записи, а для остальных они через какой-то период попадают в общий доступ, как понимаю.
🔸 Было несколько докладов о нашумевшем использовании нейросетей в работе.
Варианты:
- Для автоматизации поддержки, то есть нейросеть обучили инструкциям и она отвечает на вопросы пользователей.
- Для написания (используя вашу базу) или описания (что делает) кода через Copilot.
Тема очень нашумевшая и интересная, но большинство сервисов не позволяют либо внести оплату, либо даже просто использовать сервисы на территории России.
🔸 Понравились мысли про Pet-проекты (личные, домашние), что даже небольшие проекты нужно автоматизировать в плане тестирования, автосборки и хранения версий. На практике знаю как без этого плохо, но пока не услышишь со стороны, само иногда не доходит)
🔸 Классная идея про мотивацию сотрудников, сделав некий исторический онлайн или физический стенд, куда "вывешивать" разработчиков за какие-то заслуженные проекты, весомые механизмы и т.п. Кажется, это может реально дополнительно мотивировать, когда ты не просто сделал, тебя похвалили, дали премию и т.п., а ещё оставили в истории компании.
❗️ И самая важная мысль для новичков и не только, не помню на каком докладе была или пришла мне, это выполнение запросов в консоли в рабочей базе только при обдуманной необходимости. То есть, если нет необходимости, то консолью запроса для отладки запроса лучше пользоваться в копии базы и в идеале на отдельном сервере. Так как запрос без отбора или с соединением без условия может положить всю базу. И на это натыкаются не только новички, но и профессионалы с многолетним опытом)
А на фото - это переделанная моя фотография, которую делали на входе конференции)
Случайный пост > > >
ХЕШ строка
#ЕБ_Повседневность
Далеко не все доклады удалось посмотреть, но для участников они уже доступны в записи, а для остальных они через какой-то период попадают в общий доступ, как понимаю.
🔸 Было несколько докладов о нашумевшем использовании нейросетей в работе.
Варианты:
- Для автоматизации поддержки, то есть нейросеть обучили инструкциям и она отвечает на вопросы пользователей.
- Для написания (используя вашу базу) или описания (что делает) кода через Copilot.
Тема очень нашумевшая и интересная, но большинство сервисов не позволяют либо внести оплату, либо даже просто использовать сервисы на территории России.
🔸 Понравились мысли про Pet-проекты (личные, домашние), что даже небольшие проекты нужно автоматизировать в плане тестирования, автосборки и хранения версий. На практике знаю как без этого плохо, но пока не услышишь со стороны, само иногда не доходит)
🔸 Классная идея про мотивацию сотрудников, сделав некий исторический онлайн или физический стенд, куда "вывешивать" разработчиков за какие-то заслуженные проекты, весомые механизмы и т.п. Кажется, это может реально дополнительно мотивировать, когда ты не просто сделал, тебя похвалили, дали премию и т.п., а ещё оставили в истории компании.
А на фото - это переделанная моя фотография, которую делали на входе конференции)
Случайный пост > > >
ХЕШ строка
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤5🔥1
🔸 1. 1Skiller от Programming Store. Есть 2 варианта тестов: платный и бесплатный. Бесплатный чем-то похож на профессионала от 1С, но вопросы больше по специалисту 1С. В платной версии нет вариантов ответа.
*В бесплатной версии без подготовки набрал 81 из 100 баллов, если пройдете, пишите результаты в комментарии.
🔸 2. 1С-ТЕСТЦЕНТР от компании КРОН совместно с фирмой 1С. Платный, но слышал положительные отзывы. Если кто проходил, поделитесь опытом.
🔸 3. 1С:Учебное тестирование. Подходит для новичков, для проверки своих навыков перед экзаменом 1С:Профессионал.
Легендарный 1С:Профессионал. Не включен в ТОП 3, так как не всегда доступен онлайн.
Ранее был отличный, на мой взгляд, сервис где было тестирование по 1С - это сервис от компании Retratech. Но к сожалению сайт больше не работает и связаться с авторами не удалось. Если кто-то проходил и помнит результаты, жду в комментариях
---------------
Лично я считаю все тесты достаточно условными. Так как с чем-то можно не работать, что-то забывается, но при этом ищется за секунды во время работы и т.п.
А как вы относитесь к тестам по навыкам работы с 1С
---------------
Случайный пост > > >
ТОП 3 сборника задач по 1С
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3❤1
Публикация своих обработок и использование БСП
Так как работаю в найме, у меня редко появляются решения для общего использования, но иногда все-таки появляются. Решил попробовать сервис 42clouds.com.
Несколько заметок по моментам, с которыми столкнулся, касаются больше применения БСП на практике, и могут пригодиться где-то ещё:
⏩ 1. Первое с чем столкнулся, это работа дополнительной обработки в безопасном режиме. А моя обработка работает с файлами. Ранее не было необходимости работы в таком режиме, и даже не знал, как это обойти, а оказалось все просто. Нужно запросить разрешение при помощи общего модуля
Код запроса разрешения будет выглядеть следующим образом:
⏩ 2. Сведения о внешней обработке. Раньше, чтобы добавить обработку как внешнюю, я использовал свой шаблон фикции
⏩ 3. Нельзя обращаться к имени обработки напрямую из кода.
В моей обработки была дополнительная форма и открыть её простым способом не вышло -
Так как уникальное имя изменяется при работе через сервис.
Для решения данной проблемы нашел два решения:
- Вычислять имя формы из полного имени основной формы:
- Либо как советуют разработчики сервиса через ПолноеИмя() через Метаданные() в процедуре ПриСозданииНаСервере определить полное имя объекта для дальнейшего обращения к нему:
И далее в месте использования писать:
-------------
Кто знает подобные сервисы, кроме Инфостарт, пишите в комментариях, соберу топ по таким сервисам и опишу их💬
-------------
Случайный пост > > >
Оксфордская задача с собеседования 1С
#ЕБ_Повседневность
Так как работаю в найме, у меня редко появляются решения для общего использования, но иногда все-таки появляются. Решил попробовать сервис 42clouds.com.
Несколько заметок по моментам, с которыми столкнулся, касаются больше применения БСП на практике, и могут пригодиться где-то ещё:
РаботаВБезопасномРежиме
и соответствующей функции, например, в моем случае это РазрешениеНаИспользованиеКаталогаВременныхФайлов
Код запроса разрешения будет выглядеть следующим образом:
РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина, "Сохранение данных декларации во временные файлы и последующее их чтение");
СведенияОВнешнейОбработке
, но для этого есть специальная функция в общем модуле ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке
, которая сама создает нужную структуру и где остается просто переопределить нужные параметры обработки.В моей обработки была дополнительная форма и открыть её простым способом не вышло -
ОткрытьФорму("ВнешняяОбработки._ИмяОбработки_.Форма»)
Так как уникальное имя изменяется при работе через сервис.
Для решения данной проблемы нашел два решения:
- Вычислять имя формы из полного имени основной формы:
Лев(ЭтотОбъект.ИмяФормы, СтрНайти(ЭтотОбъект.ИмяФормы, ".", НаправлениеПоиска.СКонца)) + ИмяНужнойФормы
- Либо как советуют разработчики сервиса через ПолноеИмя() через Метаданные() в процедуре ПриСозданииНаСервере определить полное имя объекта для дальнейшего обращения к нему:
ПолноеИмяОбъекта = РеквизитФормыВЗначение("Объект").Метаданные().ПолноеИмя();
И далее в месте использования писать:
ПолноеИмяОбъекта + ".ЧтоНамТребуется"
-------------
Кто знает подобные сервисы, кроме Инфостарт, пишите в комментариях, соберу топ по таким сервисам и опишу их
-------------
Случайный пост > > >
Оксфордская задача с собеседования 1С
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤4💯3🔥1
Пятничное настроение)
🔥17👍6😁1
Развитие команды. Внутренний хакатон
Во всех командах программисты развиваются по разному.
В нашей команде проходят хакатоны, когда один из разработчиков либо знает какую-то конкретную область, либо изучает нужную область и делится со всеми.
Хакатон проходит в формате встречи разработчиков в зум. Выбирается один человек, который готовится к докладу, ищет теорию и рассказывает её на встрече с примерами и кейсами применения. Далее есть несколько вариантов:
⚫️ 1. Все просто повторяют своими руками, иногда с небольшими дополнениями;
⚫️ 2. Одна большая задача разбивается на всех по кусочкам;
Если же это только теория, то идет просто обсуждение по теме с ответами на вопросы.
Темы могут быть совершенно разными, не связанными с 1С, но как правило всё-таки технические.
Например, кто-то из команды дома изучает или использует другой язык программирования и рассказывает их отличие, так были хакатоны по Python, Go, C#. Если в рамках 1С, то были по модулям обмена, каким-то внутренним подсистемам, по инструментам разработчика и т.д.
На прошедшей неделе была моя очередь подготовки хакатона по теме работы с Postgre SQL. В ближайшее время оформлю выжимку в отдельном техническом посте.
Пишите в комментариях как вам такой формат и какие форматы совместного обучения проходят в вашей команде💬
Случайный пост > > >
Тема скрыта, так как это случайный пост, и быть может вы узнаете для себя неожиданно полезную информацию
#ЕБ_Повседневность
Во всех командах программисты развиваются по разному.
В нашей команде проходят хакатоны, когда один из разработчиков либо знает какую-то конкретную область, либо изучает нужную область и делится со всеми.
Хакатон проходит в формате встречи разработчиков в зум. Выбирается один человек, который готовится к докладу, ищет теорию и рассказывает её на встрече с примерами и кейсами применения. Далее есть несколько вариантов:
Если же это только теория, то идет просто обсуждение по теме с ответами на вопросы.
Темы могут быть совершенно разными, не связанными с 1С, но как правило всё-таки технические.
Например, кто-то из команды дома изучает или использует другой язык программирования и рассказывает их отличие, так были хакатоны по Python, Go, C#. Если в рамках 1С, то были по модулям обмена, каким-то внутренним подсистемам, по инструментам разработчика и т.д.
На прошедшей неделе была моя очередь подготовки хакатона по теме работы с Postgre SQL. В ближайшее время оформлю выжимку в отдельном техническом посте.
Пишите в комментариях как вам такой формат и какие форматы совместного обучения проходят в вашей команде
Случайный пост > > >
Тема скрыта, так как это случайный пост, и быть может вы узнаете для себя неожиданно полезную информацию
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥7
Работа с Postgre SQL
Делюсь выжимкой с хакатона по работе с Postgre SQL, который готовил на той неделе.
Задача: считать данные из таблицы в базе на Postgre SQL сервере.
Чтобы подключиться к базе и увидеть её структуру, можно воспользоваться программой pgAdmin.
Она бесплатная и можно скачать с официального сайта.
Есть два основных варианта, с помощью которых можно считать данные через 1С:
- ADODB (COM объект)
- Внешние источники данных (объект платформы)
🔹Считать записи первым способом можно используя код из Листинга 1.
На выходе у нас есть подключение к базе, и мы можем делать что нам требуется (на что хватит прав). Можно работать через sql запросы, либо с объектами напрямую.
🔸Второй вариант позволяет сразу увидеть структуру самой базы данных.
Внешние источники данных - это обособленный объект конфигурации, который позволяет работать с данными различного формата и совместимыми программами. Под работой предполагается не только чтение данных, но и хранение и изменение.
При создании внешнего источника данных можно либо вручную задать структуру внешних таблиц, либо воспользоваться конструктором таблиц, в котором задаются параметры подключения и выполняется подключение к базе данных. После подключения к БД, появляется структура базы и можно выбрать нужные таблицы.
❗️ Важный нюанс!!! То подключение, которое мы выполнили в конфигураторе, не сохраняется.
Для того чтобы данный источник заработал в режиме 1С: Предприятие, необходимо либо в коде один раз задать параметры подключения (листинг 2), либо воспользоваться платформенной обработкой "Управление внешними источниками данных".❗️
🔹 Особенности подключения ADODB:
⏩ Требуется драйвер OLEDB
⏩ Можем выполнять SQL запросы
⏩ Необходимо знать структуру базы данных
⏩ Работает медленнее чем второй способ (но есть исключения)
🔸 Особенности подключения через внешние источники данных:
⏩ Требуется драйвер ODBC
⏩ Можно использовать в динамических списках и СКД
⏩ Требуется выполнить подключение в режиме предприятия
⏩ Можно работать с объектом в привычном конструкторе запросов
⏩ Нельзя использовать временные таблицы после выборки данных из внешней базы. Необходимо предварительно выгрузить результат запроса в ТЗ.
⏩ Работает в разы быстрее, чем ADODB
До этого мне не приходилось использовать такой объект как внешние источники данных, но у него явно есть большой потенциал.
Если у вас есть опыт работы с базами на Postgre SQL и внешними источниками данных, буду рад, если поделитесь им в комментариях💬
#ЕБ_Повседневность
Делюсь выжимкой с хакатона по работе с Postgre SQL, который готовил на той неделе.
Задача: считать данные из таблицы в базе на Postgre SQL сервере.
Чтобы подключиться к базе и увидеть её структуру, можно воспользоваться программой pgAdmin.
Она бесплатная и можно скачать с официального сайта.
Есть два основных варианта, с помощью которых можно считать данные через 1С:
- ADODB (COM объект)
- Внешние источники данных (объект платформы)
🔹Считать записи первым способом можно используя код из Листинга 1.
На выходе у нас есть подключение к базе, и мы можем делать что нам требуется (на что хватит прав). Можно работать через sql запросы, либо с объектами напрямую.
🔸Второй вариант позволяет сразу увидеть структуру самой базы данных.
Внешние источники данных - это обособленный объект конфигурации, который позволяет работать с данными различного формата и совместимыми программами. Под работой предполагается не только чтение данных, но и хранение и изменение.
При создании внешнего источника данных можно либо вручную задать структуру внешних таблиц, либо воспользоваться конструктором таблиц, в котором задаются параметры подключения и выполняется подключение к базе данных. После подключения к БД, появляется структура базы и можно выбрать нужные таблицы.
Для того чтобы данный источник заработал в режиме 1С: Предприятие, необходимо либо в коде один раз задать параметры подключения (листинг 2), либо воспользоваться платформенной обработкой "Управление внешними источниками данных".
🔹 Особенности подключения ADODB:
🔸 Особенности подключения через внешние источники данных:
До этого мне не приходилось использовать такой объект как внешние источники данных, но у него явно есть большой потенциал.
Если у вас есть опыт работы с базами на Postgre SQL и внешними источниками данных, буду рад, если поделитесь им в комментариях
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3👏3
Точное время и замер времени выполнения кода
В 1С есть отличная функция ТекущаяУниверсальнаяДатаВМиллисекундах().
Если обрамить ею участок кода, то можно более точно замерить время выполнения.
Да, для этого можно использовать замер производительности, который я затрагивал в своем посте ранее.
Но может либо не быть отладки, либо это нужно регулярно.
Например, при работе с 1С в облаке, если у вас нет доступа к конфигуратору. Я так же использовал данную функцию для замера разницы выполнения скорости запроса к базе Postgre SQL. И в рамках секунд мой запрос выполнялся одинаково при использовании двух вариантов соединения с базой, а при замере в миллисекундах разница была многократной.
Пример использования:
#ЕБ_Повседневность
В 1С есть отличная функция ТекущаяУниверсальнаяДатаВМиллисекундах().
Если обрамить ею участок кода, то можно более точно замерить время выполнения.
Да, для этого можно использовать замер производительности, который я затрагивал в своем посте ранее.
Но может либо не быть отладки, либо это нужно регулярно.
Например, при работе с 1С в облаке, если у вас нет доступа к конфигуратору. Я так же использовал данную функцию для замера разницы выполнения скорости запроса к базе Postgre SQL. И в рамках секунд мой запрос выполнялся одинаково при использовании двух вариантов соединения с базой, а при замере в миллисекундах разница была многократной.
Пример использования:
ДатаНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
// Код который хотим замерить на скорость
ДатаОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить(ДатаОкончания - ДатаНачала); // получаем разницу в миллисекундах
#ЕБ_Повседневность
👍25💯3❤1
Всем привет! В особенности новым подписчикам. Рад, что вы присоединились)
Немного навёл порядок в закреплённых постах и оставил только "пост знакомства" и он же "о канале".
Там же можно найти ссылки на дайджесты - сборники постов по периодам.
Если вам нужна консультация или помощь в решении текущих задач, по обучению и другое, то можете обращаться ко мне напрямую или через площадку GetMentor
Всем хороших выходных!
Немного навёл порядок в закреплённых постах и оставил только "пост знакомства" и он же "о канале".
Там же можно найти ссылки на дайджесты - сборники постов по периодам.
Если вам нужна консультация или помощь в решении текущих задач, по обучению и другое, то можете обращаться ко мне напрямую или через площадку GetMentor
Всем хороших выходных!
👍16🔥3❤🔥1❤1
На той неделе был в командировке по работе, при чем очно) довольно редкое явление при работе удаленно.
Почти каждый год нас стараются собирать, чтобы так или иначе мы знали друг друга не только в 2D формате, но и лично. Поводом в этот раз стала внутренняя
При чем это все за счёт работодателя.
Ранее уже был опрос и пост про мотивацию сотрудников, и считаю это отличным дополнением к мотивации и явное проявление лояльности к сотрудникам.
А как вы относитесь к оффлайн мероприятиям на удаленке и бывают ли они у вас?
------------
Кстати, на фото фигурки супергероев 1С, напечатанные мной на 3D принтере для конференции. Незапланированное совпадение с прошлым постом о мотивации)
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥4😍1
А у вас такое было?
У меня была ситуация, когда я остался почти самым "старым", и возможно из-за того, что в компании убрали активности сотрудников, по примеру прошлого поста)
У меня была ситуация, когда я остался почти самым "старым", и возможно из-за того, что в компании убрали активности сотрудников, по примеру прошлого поста)
👍19😁13🔥4❤2
Задача с собеседования. Валидность строки по части скобок
🤯 Давно не было задачек с собеседования, будем исправлять)
Дана строка, содержащая открывающиеся и закрывающиеся скобки, например, « { ( } [ ] ) ». Необходимо написать функцию для определения валидности строки. Валидность строки определяется равенством количества открытых и закрытых скобок, а также корректностью вложенности скобок. Важно: учитывать три вида скобок "()","{}", "[]"
Предлагаю одно из возможных решений (на скриншоте), а в комментариях вы можете предложить свое, более правильно и оптимальное)))💬
Решение в текстовом виде оставлю для вас в комментариях.
> > > Случайный пост < < <
#ЕБ_Повседневность
Дана строка, содержащая открывающиеся и закрывающиеся скобки, например, « { ( } [ ] ) ». Необходимо написать функцию для определения валидности строки. Валидность строки определяется равенством количества открытых и закрытых скобок, а также корректностью вложенности скобок. Важно: учитывать три вида скобок "()","{}", "[]"
Предлагаю одно из возможных решений (на скриншоте), а в комментариях вы можете предложить свое, более правильно и оптимальное)))
Решение в текстовом виде оставлю для вас в комментариях.
> > > Случайный пост < < <
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤2🤔2