воскресенье, 16 октября 2016 г.

Пару слов о нумерации

Думал, думал и понял.

У вас огромная корпорация с кучей дочерних фирм, с распределенной региональной структурой и 200000 пользователей.

Вам нельзя генерировать логины исходя из ФИО пользователя. Только цифры. Максимум букву впереди. Причем буква должна быть одна на всех и нумерация сквозная по всем пользователям. И не выделяйте диапазоны по организациям. И не выделяйте диапазоны по региональному делению.

Лучший поставщик комплектующих

Эффективность оборота в рознице

Тут в общем "на подумать". Стало быть есть магазин. Один из хозяев волнуется, что они покупают товар, который слабо продается. Соответственно деньги лежат на складе и не работают. Сели с ним подумали. И магазин за неделю оплачивает поставщикам сумму. Пускай Сз=186000. В 1С делаем отчет по закупкам за неделю и там как раз эту сумму показывают. А продает он за неделю на Св=454000. Это видно из отчета по прибыли из той же 1С. Причем себестоимость проданного товара Сс=259000. И вот из этого что можно заключить? Предполагаю, что на данном временном промежутке они довольно эффективно расторговывают товар. И беспокоиться хозяину нужно начинать когда Сз начнет стремиться к Сс

Лучший поставщик комплектующих

суббота, 15 октября 2016 г.

При создании номенклатуры в УТ 11.2 не активна кнопка "Заполнить наименование для печати по шаблону"

"Заполнить наименование для печати по шаблону" так называется эта кнопка. И раньше до обновления клиент ей с успехом пользовался. А сейчас она не активна. И они мучаются. Они выделяют текст. Нажимают правой клавишей мыши слово "Копировать". Щелкают на поле внизу. Нажимают правой клавишей мыши слово "Вставить". Чувствуете глубину страданий. Это физически больно наблюдать. Необходимо исправить ситуацию.
Посмотрел в "НСИ и Администрирование - Настройка параметров системы - Номенклатура". Не нашёл ничего, что бы помогло решить проблему.
Покопавшись в форме номенклатуры выяснил, что доступность этой кнопки зависела от реквизитов вида номенклатуры. Дальше было проще. Идем в "НСИ и Администрирование - НСИ - Классификаторы номенклатуры - Настройка ведения товаров" там на вкладке "Шаблоны наименований" жмём "Изменить..." в пункте "Наименование для печати". Открывается форма редактирования формулы с очень богатым функционалом. Но клиенту нужно простое копирование. Поэтому жмём на "+", что бы открыть поля номенклатуры и дважды щелкаем на "Наименование" оно попадает в нижние поле в виде [Наименование]. Далее все сохраняем. Идём создавать новый товар.  Хоп-ла-ла-лай! Кнопка активна и выполняет свои функции.



Лучший поставщик комплектующих

Почтовое сообщение по протоколу SMTP из Java с использованием SSL

Собственно нужно было послать. Из программы. С почтового ящика на Yandex. А Яндекс перешёл на SSL

Что характерно копи-паст из интернета ничего не дал. Все время вылазили исклчючения. Или письма вроде как уходили, но в ящик не приходили.
Полез сюда в раздел Programming на oracle.com. Нашёл вот такое:

Q: What are some of the most common mistakes people make when using JavaMail? A: Unfortunately, the internet is full of copy and paste programmers who don't understand the code they're using, which has resulted in a lot of unnecessarily complex and often incorrect examples. The most common mistakes are:
  • Use of Session.getDefaultInstance. Almost all code should use Session.getInstanceinstead, as described below
  • Calling the send method on a Transport instance variable. As described belowsend is a static method and ignores the Transport instance you use to call it.
  • Setting various socketFactory properties. Long, long ago JavaMail didn't have built in support for SSL connections, so it was necessary to set these properties to use SSL. This hasn't been the case for years; remove these properties and simplify your code. The easiest way to enable SSL support in current versions of JavaMail is to set the property "mail.smtp.ssl.enable" to "true". (Replace "smtp" with "imap" or "pop3" as appropriate.)
  • Using an Authenticator just to supply a username and password. There's really nothing wrong with using an Authenticator, it's just unnecessarily complex. A more straightforward approach is to call the connect method that takes a username and password when connecting to a Store. When sending a message, use the static Transport.send method that takes a username and password.
что характерно, прямо про меня.
Последовал рекомендациям и о чудо все получилось. Приведу функцию полностью как она работает у меня:
    public void sendMail(String paramTo, String paramSubject, String paramBody)
    {
        try
        {
            Properties props = new Properties();
            props.put("mail.smtp.host", "smtp.yandex.ru");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.port", "465");
            props.put("mail.smtp.ssl.enable","true");
            Session session = Session.getInstance(props);
           
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("my_mailbox@yandex.ru"));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(paramTo.trim()));
            message.setContent("This is a test", "text/plain");
            message.setSubject(paramSubject);
            message.setText(paramBody);
            Transport.send(message,"user_name", "user_password");
            System.out.println("Sent message successfully....");
        } catch (Exception mex)
        {
            System.out.println("******* ERROR sending Email *******");
            mex.printStackTrace();
        }
    }
Тащемта всё.



Лучший поставщик комплектующих