• Как взламывают БД (MongoDB)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Не факт, что взламывают именно базу напрямую. Возможно скомпроментирован сервер, и в нем уже висит какой-то бекдор, через который ходят и вашу базу от имени локального mongo юзера коцают.
    Ответ написан
    Комментировать
  • Как в 1С 8.3 УПП программно создававать "Напоминания"?

    @SosnoviyAleksey
    Если не изменяет память, это регистр сведений.

    УПП под рукой нет , в торговле 11.1 это регистр сведений "НапоминанияПользователя". Создавать как запись регистра сведения с указанием пользователя для которого напоминание и времени срабатывания. По нажатию кнопки прекратить запись удаляется.
    Ответ написан
    Комментировать
  • Почему не пушится проект через GIT Bаsh?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Вы, скорее всего, вместо специальной SSH ссылки на ваш репозиторий скопировали HTTP ссылку и вставили её, когда писали git remote add origin
    Ответ написан
    1 комментарий
  • Как правильно реализовать большое приложение на c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Организовать большую команду, состоящую из множества более маленьких команд, которые специализируются на своей части. Сам проект разбивается на множество более мелких проектов, а эти проекты на еще более мелкие модули. Для каждой задачи или группы проектов - своя команда. Разработка приложений такого объема занимают сотни тысяч и миллионы человеко-часов. Примерно так:
    1. Составляется краткое ТЗ
    2. Максимально подробно описывается проект в виде более детального ТЗ
    3. Нанимаете опытного IT менеджера
    4. Менеджер собирает команду для разработки частного ТЗ полностью со всеми деталями проекта
    5. На основе ЧТЗ формируются требования к командам для реализации проекта
    6. Подготавливается план разработки проекта
    7. Нанимается команда или команды сопровождения и поддержки - системные администраторы, менеджеры, аналитики, консультанты, бухгалтеры, юристы и прочие
    8. Организовывается рабочее пространство для команд разработки
    9. Нанимаются и организовываются команды разработки в соответствии с планом
    10. Ну и далее начинается основная работа - поэтапная реализация проекта
    Ответ написан
    Комментировать
  • Почему операции с базами данных принято делать асинхронно?

    Alexandroppolus
    @Alexandroppolus
    кодир
    потому что API для БД всегда с асинхронными функциями, и делая async, ты внутри можешь делать await

    но это не обязательно, можно не использовать async и всё делать на цепочках промисов.
    Ответ написан
    3 комментария
  • Как задавать права?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    создай роль, в которой поставишь право использование. и раздать "правильным" пользователям
    667eb40be1b29479516504.png
    Ответ написан
    Комментировать
  • Как задавать права?

    @Dementor
    программист, архитектор, аналитик
    Я нашел в Администрирование - Настройки пользователей и прав, но не смог сходу разобраться что надо делать.

    Все верно. Этот пункт предназначен исключительно для настройки пользователей и прав!

    Сейчас столкнулся с такой проблемой: как сделать разграничение по правам? То есть как сделать чтобы эта форма открывалась не у всех а только тому кого я отмечу?

    Вариантов решения несколько:
    1) Добавить права на форму обработки в роль, которую назначать только нужным пользователям.
    2) Закрыть обработку параметризированной функциональной опцией, на основе настроек пользователя.
    3) В обработчике ПриСозданииНаСервере формы выполнить проверку настроек пользователя и принять решение - показывать или выставить ОТКАЗ = ИСТИНА.
    Ответ написан
    4 комментария
  • Как правильно группировать элементы на форме?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    дополню.... игра с формами еще то приключение. На мобилных наигрался, там очень влял № релиза платфоры

    из топорных предложений (рабочих), приведи все Заголовок реквизитов к одинаковой длине, т.е. банально добей пробелов )))
    При твоей компоновки групп, все станет на одну длину))
    Ответ написан
    Комментировать
  • Как правильно группировать элементы на форме?

    Fragster
    @Fragster
    помогло? отметь решением!
    Снять у групп галку "Объединенная". В Дальнейшем может потребоваться завернуть все группы в одну общую группу для выравнивания относительно остальных элементов
    Ответ написан
    Комментировать
  • Как правильно группировать элементы на форме?

    @Dementor
    программист, архитектор, аналитик
    1. Вместо горизонтальных групп можно использовать две вертикальные - одна для флажков и вторая для полей ввода.
    2. Для элементов-флажков можно явно задать одинаковые размеры.

    На управляемых формах и так временами можно получить нелогичные ситуации, а если бы платформа занималась расчетом "а сколько элементов в стоящих на одном уровне горизонтальных группах и можно ли их дополнительно выровнять", то формы сами по себе "плыли" намного чаще.
    Ответ написан
    Комментировать
  • Как добавить новый реквизит в План Видов Расчета в Расширении?

    @Dementor
    программист, архитектор, аналитик
    Не могу понять в чем дело. Как быть?

    Подтверждаю наличие этой ошибки в версии 8.3.22
    (возможно и в более поздних - нет под рукой для проверки)

    Как быть?

    1. Написать письмо на v8@1c.ru с описанием воспроизведения и номером вашего активного договора ИТС (иначе не зарегистрируют). Вам дадут номер ошибки, по которому сможете отслеживать статус исправления. Возможно починят в ближайшем 8.3.26
    2. Включить возможность редактирования в настройках поддержки основной конфигурации и добавить недостающий реквизит. Распространенная практика править структуру в основной конфе, а логику выносить в расширения, каждое из которых будет видеть новый реквизит.
    3. Добавить в расширении регистр сведений с измерениями как в вашем регистре расчета и с нужными реквизитами. При записи набора записей по регистру расчета делать синхронную запись в новый регистр сведений. В точке использования (отчет? динамический список формы?) добавить левое соединение с новым регистром.
    Ответ написан
    1 комментарий
  • Каков план личностного развития 1С программиста с нуля?

    @helycopternicht
    1) 1С Предприятие 8.2. Практическое пособие разработчика - это самая первая книжка которую знают все ОдинЭсники - получите необходимую основу подкрепленную практикой
    2) Дальше нужно прочитать и подкрепить практикой книгу - Конфигурирование и Администрирование для более глубокого понимания как там все работает
    3) Делаем самостоятельно практические задачи. Например (Товаро-оборот, Касса-Банк, Зарплата, Производство). ТЗ можно поискать в интернете.
    4) Пытаемся устроиться в контору стажером
    5) На работе дадут много новых и полезных навыков - так что дальше только общие советы
    Дальнейшие пункты нужны скорее после того как устроитесь на работу
    Обязательно очень хорошо разобраться с запросами это ой как сильно поможет.
    Обязательно получите хотя бы азы бухгалтерии - это тоже очень пригодится в работе
    Никогда не унывайте =)
    Ответ написан
    8 комментариев
  • Как правильно использовать сервисы и репозитории в web приложении?

    @kuftachev
    Yii2 и Laravel используют Active Record вместо Entity и Repository, то есть описание данных и доступ к ним.

    Service - это слой в котором у Java выполняется бизнес-логика, хотя у .Net часто прямо в моделях. (Первое называют анемичными моделями, кто-то рассматривает это как правильную архитектуру, кто-то как антипаттерн).

    Это я к тому, что в архитектуре больше философии, чем инженерии.

    В общем, не заморачивайтесь. Если у Вас просто CRUD, то нет смысла плодить кучу абстракций и нужно использовать Active Record и запросы через него в контроллере.

    Если запросы сложнее и это уже связано с доменной областью, то пишем в Active Query у Yii2 и методы под каждую ситуацию, чтобы при замене логики не искать по всему коду. Но это а том случае, если именно приложение, а не конкретного action.

    Если какая-то простая логика, типа сложить два числа, то можно прямо в самом Active Record, если уже что-то сложнее, то выноситься в уровень Service про который Вы и спрашивали. Тогда он будет запрашивать у Active Record, а Controller будет работать с Service.

    Repository даёт абстракцию над хранилищем, но я бы не использовал его с Yii2. Тоже очень неоднозначная штука, то что в Java почему-то называют Repository, на самом деле является просто DAO, при этом в .Net используют настоящие Repository.

    Главное правило, если кода много и начинаете в нем теряться, нужно думать о том, как его разделить. Остальное с опытом!
    Ответ написан
    Комментировать
  • Как из файла txt записать в Dictionary?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Не используйте File.ReadAllLines и подобные, это ошибка и вы не умеете правильно с ним работать, что бы его так использовать. Исправленный код:

    string fileTagsPath = $@"{AppDomain.CurrentDomain.BaseDirectory}tags\{имя файла}.txt";
    using (StreamReader reader = new StreamReader(fileTagsPath))
    {
        while (!reader.EndOfStream)
        {
            string line = reader.ReadLine();
            string[] lineParts = line.Split(", ");
            replacements.Add(lineParts[0], lineParts[1]);
        }
    }
    Ответ написан
    5 комментариев
  • В чём отличие между middleware и фильтрами в .Net?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Middleware работают на уровне запросов, а фильтры на уровне слоя MVC, применяются для контроллеров, actions.
    Ответ написан
    2 комментария
  • Какой шаблон проекта выбрать при написании телеграмм бота Visual Studio 2022?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    А что такое API? Это просто сервер, куда вы будете делать HTTP запросы и получать информацию. Как разница, откуда вы будете делать HTTP запрос используя HttpClient. Ваш шаблон просто будет показывать, как вы это собираетесь выводить пользователю.

    Хотите простенькую программу? Делайте Console Application
    Хотите минимальный, но рабочий GUI? Делайте на Windows Forms/WPF
    Хотите, что бы вашей программой пользовались на телефоне? Можете делать на Xamarin.NET или MUI
    Хотите, что бы ваша программа была доступна без скачивания? Делайте на asp.net mvc
    Хотите, что бы ваша программа была в интернете и имела красивый и быстрый UI? Можете сделать на asp.net web api и прикрепить туда в качестве клиента React, Angular или Vue.js
    Не хотите делать переадресация трафика через API? Можете сделать только на React, Angular или Vue.js
    Хотите быстрый GUI в браузере, но не хотите отходить от технологий Microsoft? используйте asp.net Blazor
    Ответ написан
    Комментировать
  • Cannot convert return expression of type, C# generic method, как вернуть конкретный тип?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    как можно вернуть конкретный тип значения без изменения сигнатуры?

    В данном случае - никак.
    T - это generic параметр для подстановки во время компиляции. Он означает конкретный тип.
    Так как никаких ограничений на него не выставлено, то считается, что может в него быть вставлено абсолютно что-угодно. Но возвращаемые значения должны уметь конвертироваться в этот возвращаемый тип, например, если T - long, то ParseInt сработает, т.к. int конвертируется к long (неявно и явно), а DateTime к long просто так нет. А теперь вместо T подставь byte или какой-нибудь класс и подумай - можно ли int к этому классу сконвертировать.

    Пишу парсер

    Когда я писал свой парсер, то делал базовый класс с абстрактным свойством, которое показывает что это за тип, и для каждого возможного значения - отдельный класс, который наследуется от базового. Чтобы понимать, что в результате пришло - смотрю на это поле.

    Дополнительно, в данном случае лучше применять какую-нидудь фабрику этих парсеров, т.к. в рантайме через рефлексию определять свой тип и на основании него парсить - такое себе.

    Например, так можно

    enum TokenType
    {
        Int,
        Decimal,
        DateTime,
    }
    
    public abstract class ParseResult
    {
          public abstract TokenType Type { get; }
    }
    
    public class IntParseResult: ParseResult
    {
           public override TokenType Type => TokenType.Int;
           public int Value { get; }
           IntParseResult(int value)
           {
                 Value = value;
            }
    }
    
    public class DecimalParseResult: ParseResult
    {
           public override TokenType Type => TokenType.Decimal;
           public decimal Value { get; }
           DecimalParseResult(decimal value)
           {
                 Value = value;
            }
    }
    
    public class DateTimeParseResult: ParseResult
    {
           public override TokenType Type => TokenType.DateTime;
           public DateTime Value { get; }
           DateTimeParseResult(DateTime value)
           {
                 Value = value;
            }
    }
    
    public interface IParser
    {
              ParseResult Parse(string str);
    }
    
    public class IntParser: IParser
    {
            public ParseResult Parse(string str) => ParseInt(str);
    }
    
    public class DecimalParser: IParser
    {
            public ParseResult Parse(string str) => ParseDecimal(str);
    }
    
    public class DateTimeParser: IParser
    {
            public ParseResult Parse(string str) => ParseDateTime(str);
    }
    
    public static class MyParser
       {
           private static IParser GetParserFor(string str) { /* .... */ };
           public static ParseResult Parse(string str)
           {
                  var parser = GetParserFor(str);
                  return parser.Parse(str);
           }
       }


    Я рекомендую убрать этот статический парсер и вынести решение о том какой парсер использовать выше по иерархии вызовов, либо пересмотреть логику парсинга, т.к. просто посмотреть на строку и понять как парсить - не самое эффективное решение.
    Ответ написан
    Комментировать
  • Как организовать передачу файлов с FTP сервера?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Самый простой и удобный способ - поднять рядом с ftp http-сервер. Можно даже с паролем (http basic auth).
    Ответ написан
    1 комментарий
  • Как начать писать собственный API?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Для начала напиши документацию на апи. Какие методы будут, по каким протоколом (GET|POST|DELETE|PUT|PATCH) надо обращаться. Какие параметры передадаются. Какие данные будут в ответе, в какой формат. Можешь прям сделать примеры. Плюс еще надо какие ошибки будет возвращать твой апи.

    После этого станет намного проще :)
    Ответ написан
    8 комментариев
  • Как изменить кодировку базы данных после создания?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    Базу данных нельзя заблокировать монопольно для выполнения операции.

    а если так? (предварительно убедившись в отсутствии других соединений к zk updated спасибо Константин Цветков .. хотя при закрытой базе, на сколько помню, прокатило бы )) :
    use master
    GO
    ALTER DATABASE zk COLLATE Chinese_PRC_CI_AS

    ps
    Collation - это таблица сопоставления
    а что вы хотели? перекодировки на лету?.. это именно знание как сортировать по каким то национальным правилам (для индексов upd и разумеется запросов с Ordered).. но это не контроль контента, и тем более не правка его
    Ответ написан
    2 комментария