🔸 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
Довольно часто к программисту приходит задача с формулировкой: «при таком-то простом условии от бизнеса заблокировать запись документа».
Задача сама по себе несложная, для новичка выглядит очевидным в событии документа ПриЗаписи добавить простое условие и установить Отказ = Истина.
И ошибка заключается в том, что программисты не уточняют следующие вопросы:
Бывает нужно просто вывести сообщение, а блокировать нет необходимости.
Как правило на полные права она распространяется.
Бывает так, что он создаётся автоматически из другой обработки и это тоже надо учесть.
На такой вопрос заказчик может задуматься и правда найти исключение в своем условии.
Если пользовательское, то эту проверку надо перенести на форму. Если не задаться этим вопросом, можно заблокировать какой-нибудь обмен данными, который возможно происходит и без установленного флага ОбменДанными.Загрузка = Истина.
Бывают документы с огромным количеством строк, и если пользователь который их вбивал несколько часов, не сможет записать документ, то он вряд ли обрадуется, когда выяснит, что теперь ему надо внести данные заново.
На какие-то вопросы нужно получить ответ от бизнеса, а на какие-то можно постараться найти самим ответы. Но только после получения ответов на эти вопросы, можно говорить о жесткой блокировке записи документа.
Можно привязать данное условие к какому-то функционалу, который можно отключить. Например, константы, или периодический регистр сведений, чтобы отсекать по дате, где проверка нужна, а где нет и т.п.
> > > Случайный пост < < <
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35💯5🔥2☃1❤1
Суть ошибки - обращение к данным программно по коду или наименованию. Например, когда в коде идет поиск основной номенклатуры представляющей собой услугу по коду.
В чем проблема? Вот мы видим в базе код элемента справочника номенклатура, ищем по коду через типовую процедуру....
А проблема в том, что код может измениться, как и наименование, если поиск по наименованию.
Если это что-то совсем редко меняющееся, то как правило используют константу, а если предполагается регулярная смена, то данные хранят в периодическом регистре сведений.
Но есть ещё один вариант, это создать специальный справочник "Дополнительные настройки системы".
Когда-то мне рассказали про него, где-то я его внедрил, а на текущем моем рабочем месте он уже был. Имеет разные вариации, но суть одна - это создавать в нем предопределенные элементы и уже к ним обращаться программно.
Я предлагаю свой вариант, возможно не самый навороченный, но все-таки работающий.
Это справочник с 2-мя реквизитами (значение настройки и флаг "ЭтоСписок") и табличной частью (если нужно хранить некий список).
Видел также вариант что-то типа соответствия, реализованного через 2 ТЧ: ТЧ1-ключи, ТЧ2-ключ и значение.
На скриншоте представлен код обращения к предопределенному элементу напрямую, через "ПолучитьОбъект()", не самый верный вариант.
Как доработать? Сделать обращение к данным через запрос и разместить код в общем модуле повторного использования.
> > > Случайный пост < < <
#ЕБ_Повседневность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥5
Четвертый дайджест за четвертый квартал 2023
🔴 Посты с 01.10.23 по 31.12.23:
- ХЕШ строка. Задача по уникальности/сравнению
- Мобильная разработка в 1С, тайминги
- Думал просто Выборка, а оказалось нет)
- Мысли и заметки с конференции Инфостарт 2023
- Топ 3 сервисов по тестированию 1С навыков и знаний
- Публикация своих обработок и использование БСП. Сервис 42clouds.com
- Развитие команды. Внутренний хакатон
- Работа с Postgre SQL
- Точное время и замер времени выполнения кода
- Задача с собеседования. Валидность строки по части скобок
- Частая ошибка новичков - заблокировать запись документа
- Ещё одна частая ошибка новичков - обращение к данным из кода. Возможное решение
Спасибо всем, кто подписан, за лайки и комментарии!
- ХЕШ строка. Задача по уникальности/сравнению
- Мобильная разработка в 1С, тайминги
- Думал просто Выборка, а оказалось нет)
- Мысли и заметки с конференции Инфостарт 2023
- Топ 3 сервисов по тестированию 1С навыков и знаний
- Публикация своих обработок и использование БСП. Сервис 42clouds.com
- Развитие команды. Внутренний хакатон
- Работа с Postgre SQL
- Точное время и замер времени выполнения кода
- Задача с собеседования. Валидность строки по части скобок
- Частая ошибка новичков - заблокировать запись документа
- Ещё одна частая ошибка новичков - обращение к данным из кода. Возможное решение
Спасибо всем, кто подписан, за лайки и комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤2
Всем привет!
Год подходит к концу, это последний пост в этом году, пора подвести небольшие итоги по каналу:
------------------------
------------------------
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥5🎄4🍾3