Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468

Приложение MVVM. VMs и навигация

08.02.2023, 19:59. Показов 9784. Ответов 134
Метки mvvm, wpf (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Имеются следующие вопросы.
Как при соблюдении mvvm передать в VM свойства view такие как SelectedItem? Знаю, что можно передавать через параметр команды, но в моем случае за раз в VM нужно отправить 2 объекта - логин и пароль (в модели у меня нет этих свойств, соответственно, я не должен определять их в VM. Хотя многие так делают, но это всё-таки нарушение). Нашёл решение с помощью применения MultiBinding для параметра, но мне кажется, что это слишком громоздко, так как при таком подходе каждый раз придется реализовывать конвертер. Вообще, говоря, очень трудно приходится, когда в VM нет нужных свойств, от этого обстоятельства не выходит отключать кнопку (альтернативой может служить триггер на свойство IsEnabled во view, но от этого снова приходится прикладывать больше усилий из-за описания стиля и, возможно, конвертера. Элд Хасп подсказывал, что для этих целей можно сделать прокси класс, но я недоумеваю как и где. Было бы удобно, если бы по правилам mvvm в VM допускалось хранить все необходимые свойства, а не только те, которые имеются в модели.

По той же причине не стал помещать в VM команду для кнопки, которая предназначена для входа в роли гостя. Пока что в коде view подписал хелпера на щелчок по ней. В результате просто должен произойти переход к другому view, это не логика модели. Сама навигация вызывает дополнительный вопрос, нужны рекомендации по её реализации.

Также можно отдельно рассмотреть модель. Правда там пока что немного кода. Важны все замечания.

Ещё имеется dll библиотека с вспомогательными классами, применимыми к mvvm. По ней тоже можно сделать замечания.

Вот ссылка на репозиторий https://github.com/INexteR/NewTrade/tree/Trial. В нем также содержится документ с заданием.

Связанные темы
  1. Приложение MVVM, VMs и навигация: Создание Модели Авторизация.
  2. Приложение MVVM. VMs и фильтрация по значению свойства (выбрать по производителю).
  3. Приложение MVVM. VMs и поиск (фильтрация по текстовому значению).
  4. Приложение MVVM. Ограничение пользовательского ввода для численных свойств.
  5. Приложение MVVM. Представление авторизации - Валидация.
  6. Приложение MVVM. Контекстное меню (удаление, редактирование) для элемента (Товара) в ListBox.
  7. Приложение MVVM. Диалог добавления/редактирования товара: получение данных, вызов, взаимодействие с VM и прочее.


Техническое ЗаданиеАвторизация
При запуске приложения окно входа – первое, что видит пользователь. На ней пользователю предлагается ввести свой логин и пароль или есть возможность перейти на экран просмотра товаров в роли гостя.
Только после удачной авторизации пользователь получает доступ к остальным модулям системы:
• авторизованный клиент может просмотреть товары;
• менеджер может просматривать товары;
• администратор может добавлять/редактировать/удалять товары.
Реализуйте необходимые интерфейсы для всех пользователей системы. После входа в любую учетную запись должна быть реализована возможность выхода на главный экран – окно входа. При переходе в любую учетную запись в интерфейсе (правый верхний угол) должны отображаться ФИО пользователя.
После первой попытки неуспешной авторизации система выдает сообщение о неуспешной авторизации, а затем помимо ввода логина и пароля просит ввести captcha, состоящую из 4 символов (цифры и буквы латинского алфавита) и графического шума.
CAPTCHA - должна содержать минимум 4 символа (буква или цифра), которые выведены не в одной линии. Символы должны быть либо перечеркнуты либо наложены друг на друга.
После попытки неудачной авторизации с вводом captcha, система блокирует возможность входа на 10 секунд.

Список товаров
Очень важно постоянно получать актуальную информацию об остатках товаров на складах, поэтому необходимо реализовать вывод товаров, которые хранятся в базе данных, согласно предоставленному макету. При отсутствии изображения необходимо вывести картинку-заглушку из ресурсов (picture.png) .
Вывод должен осуществляться списком.

Обратите внимание, должна выводится вся информация о товаре из базы данных.
Товары, которых нет на складе, должны отображаться на сером фоне.
Пользователь должен иметь возможность искать товары, используя поисковую строку. Поиск должен осуществляться по всем доступным данным, в том числе по нескольким атрибутам одновременно.
Пользователь должен иметь возможность отсортировать товары (по возрастанию и убыванию) по стоимости.
Кроме этого, пользователь должен иметь возможность отфильтровать данные по производителю. Выбор производителя должен быть из выпадающего списка. Первым элементом в выпадающем списке должен быть “Все производители”, при выборе которого настройки фильтра сбрасываются.
Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия кнопки “найти”/ ”отфильтровать” и т.п. Фильтрация и поиск должны применяться совместно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.
В верхней части окна необходимо показывать количество выведенных данных и общее количество записей в базе. Например, 15 из 37 . В случае, если данные в таблицу выводятся после фильтрации или поиска, количество выведенных данных необходимо обновить исходя из размера выборки.
Реализуйте удаление товара. Товар, который присутствует в заказе, удалить нельзя. Товар, у которого есть дополнительные товары, удаляется из базы данных вместе с информацией о дополнительных товарах, если ни один из товаров (даже дополнительный) не заказан.
Реализуйте переход на окно добавления товара и окно редактирования выбранного товара.

Добавление/ редактирование товаров
Необходимо реализовать возможность добавления и редактирования исходных товаров (сырья) для всей продукции компании. Редактировать данные может только администратор.
Необходимо добавить возможность редактирования данных существующего товара, а также добавление нового товара в новом окне - форме для добавления/ редактирования товара. Переходы на данное окно должны быть реализованы из формы списка: для редактирования - при нажатии на конкретный элемент, для добавления - при нажатии кнопки “Добавить товар”.
На форме должны быть предусмотрены следующие поля: наименование, категория (выпадающий список), количество на складе, единица измерения, поставщик, стоимость за единицу, изображение и подробное описание (с возможностью многострочного ввода) . Стоимость товара может включать сотые части, а также не может быть отрицательной. Минимальное количество также не может принимать отрицательные значения.
При открытии формы для редактирования все поля выбранного объекта должны быть подгружены в соответствующие поля из базы данных, а таблица заполнена актуальными значениями.
ID товара при добавлении не отображается, автоматически вычисляется +1 к имеющемуся в БД, при редактировании ID доступно только для чтения.
Пользователь может добавить/ заменить изображение у товара. Изображение, которое загружает пользователь при добавлении или редактировании, должно сохраняться в папку с приложением. Для оптимального объема реализуйте ограничение на размер фото: 300Х200 пикселей. В базе данных необходимо хранить путь к изображению. При замене изображения, старое фото из папки должно быть удалено.
Для того, чтобы администратор случайно не изменял несколько товаров, предусмотрите невозможность открытия более одного окна редактирования.
После редактирования/добавления/удаления товаров данные в окне списка товаров должны быть обновлены.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2023, 19:59
Ответы с готовыми решениями:

Приложение MVVM, VMs и навигация: Создание Модели Авторизация.
Здравствуйте. Имеются следующие вопросы. Как при соблюдении mvvm передать в VM свойства view такие как SelectedItem? Знаю, что можно...

Приложение MVVM. VMs и поиск (фильтрация по текстовому значению)
Пользователь должен иметь возможность искать товары, используя поисковую строку. Поиск должен осуществляться по всем...

Приложение MVVM. VMs и фильтрация по значению свойства (выбрать по производителю)
Да, понятно, разобрался, отличное решение. Сейчас работаю над фильтрацией и поиском. Возникают вопросы. Фильтрация: пользователь ...

134
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
18.02.2023, 20:35
Студворк — интернет-сервис помощи студентам
INexteR, внедрил интерфейсы и отправил фиксацию.
Посмотрите. Там нужно добавить реализацию проверки пользователя. Изменить хранение пароля на хранение байтового массива его хеша.

Добавлено через 1 минуту
Цитата Сообщение от INexteR Посмотреть сообщение
так как по заданию необходимо сделать удаление/добавление/редактирование. В случае изменения думаю создать отдельное окно или view, где DTO будет ....
Пока мы делаем "идеальную реализацию". Чтобы вы поняли границы разделения функционала.
В идеальной реализации право на создание, изменение данных есть только у Модели.
VM не может ничего сама менять в DTO.

Добавлено через 3 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
А ещё я думаю в самих DTO реализовать механизм уведомления об изменении
Тогда это уже не DTO будет.

Посмотрите, я в IUser добавил метод проверки пароля.
Но после отправки, понял, что это не верно.
HashPassword и CheckPassword не должны быть в интерфейсе.

Добавлено через 10 минут
INexteR, Забыл все сеттеры сдеть internal и вынос пароля из интерфейса. Создание хелпера для Модели.

Добавлено через 37 секунд
Вот теперь вроде более менее. Получились нормальные DTO.

Добавлено через 37 секунд
Внутри Модели их можно менять, а за её границами - нет.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
18.02.2023, 20:47  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Изменить хранение пароля на хранение байтового массива его хеша
Интересно посмотреть на эту реализацию, однако в базе пароль хранится в виде текста.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В идеальной реализации право на создание, изменение данных есть только у Модели.
VM не может ничего сама менять в DTO.
Вот такого я не знал. Считал, что в DTO можно изменять данные, ведь это же не сама сущность, и далее предоставить этот объект модели. Как же тогда реализовать редактирование? Очень интересно
Цитата Сообщение от Элд Хасп Посмотреть сообщение
HashPassword и CheckPassword не должны быть в интерфейсе.
На самом деле я пока не знаю как работают алгоритмы хэширования. Буду благодарен, если Вы поможете внедрить эту идею
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
18.02.2023, 20:59
Цитата Сообщение от INexteR Посмотреть сообщение
однако в базе пароль хранится в виде текста.
Храните байтовый массив.
Я показал просто получение string.GetHashCode в массив байт. Для учебного задания этого хватает.
Для более серьёзного нужно использовать что-то продвинутое, с защищённой передачей пароля даже внутри приложения.
Пример: Присоединённые свойства (Attached Property) для PasswordBox: привязка Password и безопасная работа с паролем
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
18.02.2023, 21:00  [ТС]
Я посмотрел ваши правки. Вы реализуете интерфейсы прямо на классах, которые представляют сущности. Я думал, что эти классы вообще нельзя как-то менять
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
18.02.2023, 21:06
Цитата Сообщение от INexteR Посмотреть сообщение
Как же тогда реализовать редактирование? Очень интересно
Дойдём до этого. Всему своё время.

Добавлено через 5 минут
Цитата Сообщение от INexteR Посмотреть сообщение
Вы реализуете интерфейсы прямо на классах, которые представляют сущности. Я думал, что эти классы вообще нельзя как-то менять
Это упрощённая реализация. Чтобы не делать маршалинга из EF сущностей в DTO реализующие интерфейсы.
Этакий "финт ушами".
Допусти́м, если сущности не будут приатачены. Так как Модель этот вопрос сама регулирует, то в данном случае такое допустимо.

Есть много разных способов реализации абстракции, и одновременно все использовать нельзя.
В данной случае мы будем реализовывать создание контекста БД только на время транзакции. Поэтому все сущности после запроса будут детач.
1
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
18.02.2023, 21:19  [ТС]
Элд Хасп, ого, хорошо. Тогда все мои классы DTO удаляем? И можно ли сделать хэширование в самом конце? Просто сейчас на другом хочется сделать акцент, пусть пока будут храниться сами строки
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
18.02.2023, 21:25
Цитата Сообщение от INexteR Посмотреть сообщение
Тогда все мои классы DTO удаляем?
За все пока не скажу.
Но идём в этом направлении.

Цитата Сообщение от INexteR Посмотреть сообщение
пусть пока будут храниться сами строки
Пусть, раз вам так удобнее.

Добавлено через 2 минуты
INexteR, и заметьте, такой "финт ушами" возможен только, если Модель и Репозиторий находятся в проекте (или дружественных проектах) отдельном от остальных слоёв приложения.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
18.02.2023, 21:44  [ТС]
Элд Хасп, хорошо, принял, а что мне сейчас делать? С моделью у меня как-то совсем трудно идет, поэтому переключился на view и VM. В vm пришлось проталкивать локатор для смены view, иначе я просто не знаю как сделать. Хотя хотел, чтобы в VM было только то, что содержит модель
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
18.02.2023, 23:26
Цитата Сообщение от INexteR Посмотреть сообщение
а что мне сейчас делать? С моделью у меня как-то совсем трудно идет,
Мы же пока занимаемся ТОЛЬКО авторизацией.
Что нужно для авторизации -посмотрите интерфейс.
Нужно реализовать метод public void Login(string login, string password) в файле Shop.IShop.cs.
Для его реализации понадобится сделать получение получение нужного пользователя из БД.
Сделайте это, так как вашу БД я не могу у себя проверять.

Добавлено через 1 минуту
Если при выходе пользователя из авторизации нужно произвести какие-то действия в БД, то дополните метод public void Exit().
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
19.02.2023, 10:50  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Сделайте это, так как вашу БД я не могу у себя проверять.
На данный момент для работоспособности программы с вашей стороны я добавил два текстовых файла users и products. Получение данных происходит от туда. Посмотрите методы Login и GetProducts.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
19.02.2023, 13:30
Цитата Сообщение от INexteR Посмотреть сообщение
я добавил два текстовых файла users и products.
Отлично!
Я тоже хотел предложить вам создать тестовое хранилище, но вы сами пришли к такому же решению.

Добавлено через 1 минуту
Свою ветку я удалил чтобы путаницы не было.

Добавлено через 19 минут
Цитата Сообщение от INexteR Посмотреть сообщение
. Посмотрите методы Login и GetProducts.
Направление верное, но сделано не верно.
Мы же тестовыми данными замещаем данные БД.
В остальном код не должен меняться.
Значит тестовые данные должен возвращать репозиторий (Context).

Сейчас накидаю примерный код.

Добавлено через 2 часа 2 минуты
INexteR, фиксация Демо данные в Контексте БД. Реализация авторизации. Устранение ошибок..

Посмотрите изменения.
На отладку не было времени.

"По уму" демо-данные в контексте БД нужно создавать с помощью EntityFramework Reverse POCO Generator или MockDbSet.
Прочитайте Тестирование с помощью макетной платформы.
Как я писал ранее, я не шибко в темах по БД. Поэтому по этому вопросу вам лучше обратиться в раздел БД.

Заглушки я начал писать, но нужно что при запросах не было попытки подключения БД. Этот момент я ещё не реализовал.

Добавлено через 8 минут
INexteR, обратите внимание, что зависимости от IShop и IAuthorization - разные.
Хотя в данной реализации это один и тот же объект, но их разделение позволяет сравнительно безболезненно изменить реализацию IShop не меняя при этом реализацию IAuthorization и зависимости отнего.
Например, в VM авторизации не нужен IShop. Поэтому туда передаём только IAuthorization.

Добавлено через 5 минут
Даже в ProductsViewModel лучше разделить передачу IShop и IAuthorization.
Чтобы конструктор получал их как независимые объекты.

Так же не понял вашу затею с локатором.
Локатор, вообще-то, это сущность уровня View - вспомогательный класс Представления.
Что он делает на уровне VM.... не понятно.
1
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
19.02.2023, 14:04  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Даже в ProductsViewModel лучше разделить передачу IShop и IAuthorization.
Чтобы конструктор получал их как независимые объекты.
Да, это правильно
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Так же не понял вашу затею с локатором.
Локатор, вообще-то, это сущность уровня View - вспомогательный класс Представления.
Что он делает на уровне VM.... не понятно.
Я ещё в самом начале уточнил:
Цитата Сообщение от INexteR Посмотреть сообщение
Объект Locator переместил в проект ShopViewModels, изначально он был в проекте NewTrade. Я перенес, так как навигация выполняется через слой VM. И вообще я не уверен, правильно ли я ее реализовал.
Я без понятия как выполнять навигацию на уровне view, только на уровне VM умею, поэтому туда и переместил
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
19.02.2023, 14:19
Цитата Сообщение от INexteR Посмотреть сообщение
Я ещё в самом начале уточнил:
Забыл уже об этом.

Цитата Сообщение от INexteR Посмотреть сообщение
Я без понятия как выполнять навигацию на уровне view,
Ок, тогда придём у этому.

Добавлено через 3 минуты
Сейчас занят личными делами.
Чуть позже добавлю использование VM авторизации в View и навигацию после авторизации.

С демо-данными через Контекст БД - пока не буду разбираться. Нет времени на это.

Вы пока разберитесь с изменениями что я уже внёс. И если будет время, как правильно демо-данные через контекст БД прокидывать.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
19.02.2023, 22:18
INexteR, В View реализована авторизация и переход на страницу каталога.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
22.02.2023, 02:48
INexteR, Реализован вывод продуктом с картинками в режиме дизайнера.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
22.02.2023, 14:56
INexteR, там две фиксации с одинаковым именем. Основные изменения в более ранней.

Добавлено через 1 минуту
INexteR, по вопросу темы - понятно как реализована навигация зависящая от состояния Модели?
1
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
22.02.2023, 18:38  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
понятно как реализована навигация зависящая от состояния Модели?
Да, понятно, разобрался, отличное решение.
Сейчас работаю над фильтрацией и поиском. Возникают вопросы.
Фильтрация: пользователь должен иметь возможность отфильтровать данные по производителю. Выбор производителя должен быть из выпадающего списка. Первым элементом в выпадающем списке должен быть “Все производители”, при выборе которого настройки фильтра сбрасываются. Здесь мне коллекцию производителей разместить в хелпере или в VM? Просто ещё нужно добавить первый элемент в виде строки.
Поиск: должен осуществляться по всем доступным данным, в том числе по нескольким атрибутам одновременно. Здесь, я так понимаю, нужно будет иметь несколько текстовых полей. В таком случае мне придется в ProductsViewSource создавать несколько DP свойств?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
22.02.2023, 19:27
Цитата Сообщение от INexteR Посмотреть сообщение
Сейчас работаю над фильтрацией и поиском.
По вопросам фильтрации отвечу тут: Приложение MVVM. VMs и фильтрация по значению свойства (выбрать по производителю)

Поиск - пока оставим. Одновременно за две темы сейчас нет времени браться.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
26.02.2023, 12:58
INexteR, внедрил SQLite.
Теперь тестирование упростится и станет таким же как для MySQL

Добавлено через 27 минут
Пока есть дублирующий код - не стал его убирать, чтобы увидели как задавать настройку БД с помощью атрибутов у классов сущностей и их свойств.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
27.02.2023, 11:09
INexteR, кстати.
А почему картинки хранятся в сборке, а не в БД?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2023, 11:09

Навигация по страницам wpf и mvvm
Здравствуйте Подскажите, плиз, есть ли способ , в рамках паттерна mvvm, вернутся на исходную страницу, без использования кнопок...

Навигация страниц UWP MVVM
Добрый день! Мой проект состоит из 3х страниц: 1. Загрузка данных с сервера; 2. Расчётные операции на основе этих данных; 3....

Приложение MVVM. Быстрая "Нестрогая MVVM" реализация
В этой теме будет размещена простая и быстрая реализация. Основная тема:...

MVVM первое приложение
Здравствуйте. Пишу курсовую по БД, и почитав в инете разные ссылки решил сделать по шаблону MVVM. идея шаблона понятна, но сама...

WPF приложение с паттерном MVVM
Добрый день Всем! Хочу сделать небольшое приложение с формулами, но нужна помощь в освоении, опыт программирования имею только на языке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru