1С: проверка пароля пользователя

Задача: проверить соответствие имени пользователю, введённый им пароль. Пользователи хранятся в стандартном справочнике «Пользователи»

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

  1. Получаем хэш текущего пароля
  2. Начинаем транзакцию
  3. Сохраняем введеный пароль пароль у пользователя
  4. Получаем хэш введенного пароля
  5. Отменяем транзакцию (тем самым отменяем изменения у пользователя)
  6. Сравниваем первый хэш со вторым. Если равны — значит пароль соответствует.

Воплощение:

Flutter: уведомления

Для Flutter существуют несколько пакетов для отображения уведомлений. Я использую flutter_easyloading, т.к. в нём по мимо собственно различного вида уведомлений, добавлена и анимация прогресбара. Который можно например использовать при загрузке сетевых запросов.

Установка в pubspec.yaml:

Пример использования:

Есть и некая кастомизация:

Flutter: работа с WebSocket

Получение данных по протоколу http/http как уже описывал это конечно хорошо, НО! обмен «онлайн» гораздо интереснее. Чтобы сервер в любой момент мог отправить информацию в приложение. И есть решение: при запуске приложения устанавливать соединен с сервером Websocket и дальше уже обменивать информацией по этому протоколу.

Пакет:

Пример кода:

Flutter: полноэкранный режим

В ранних версиях Flutter (до 3), полноэкранный режим приложения можно было выставить при помощи пакета Utils. Теперь же одним из вариантов может быть или пакет window_manager:

Или при помощи Flamer:

Однако ни тот ни другой способ не работают под Windows. Посему вопрос остается открытым..

Flutter: виджет Card

Данный виджет предназначен для того чтобы отобразить что-то в отдельной области «с тенью».

Например:

Получим:

1 49 50 51 52 53 293