воскресенье, 4 декабря 2016 г.

Счет на оплату в УТ 11 BANK INFORMATION


Тут в общем оказалось, что 1С печатает счета с какой то странной шапкой. Некрасиво - вызывает озабоченность у заинтересованной публики.
Выглядит вот так:




В интернете по этой теме обнаружил только такое http://forum.infostart.ru/forum9/topic148018/ - не вдохновило. Однако тема подтолкнула к решению проблемы.
Посмотрел, что у организации от имени которой выписывается счет в "Банковских счетах", а там:




Поменял, стало быть, через "Все действия"->"Разрешить изменение реквизитов", забугорное "RUB", на родное посконное "руб.":




И, ура! Всё получилось:


Катарсис...




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

воскресенье, 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();
        }
    }
Тащемта всё.



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

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

Пропадает подключаемое оборудование в 1С

Собственно, симптомы:


  1. Подключился по RDP; 
  2. Зашёл в 1С (у нас УТ 11); 
  3. Настроил оборудование;
  4. Всё работает;
  5. Вышел из 1С; 
  6. Вышел из RDP сессии;
  7. Снова подключился по RDP;
  8. Зашёл в 1С;

Ан оборудования, то и нет!!!

Всё дело в том, что Windows Server (у нас 2012) все время меняет идентификатор клиента и генерирует новый при каждом новом подключении одного и того же пользователя по RDP. Вылечил в итоге так:

  1. Удалил пользователя Windows Server прямо из консоли lusrmgr.msc;
  2. Удалил папку пользователя в каталоге Users (это больше для красоты, что бы место не занимало);
  3. Создал пользователя заново.

Генерировать новые идентификаторы пользователя сервер перестал.

Причем если просто удалить папку с профилем пользователя не удаляя самого пользователя Windows Server, то ничего не меняется и идентификаторы продолжают генерироваться при каждом новом входе по RDP (хотя, может это только при наших настройках).

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

понедельник, 18 июля 2016 г.

вторник, 3 мая 2016 г.

Имя учетной записи в OIM



Есть на вкладке "Accounts" (Учетые записи) профиля пользователя такой столбец как "Account Name" (Имя учетной записи). Вот при создании очередного коннектора, за каким-то хреном, в этом столбце после реконсиляции нативных учетных записей из целевой системы, появилось ФИО пользователя вместо его логина.
Перерыл все. Понапресоздавал формы в Design Console. Пересоздал формы в консоли администратора. Полез в метаданные. Все как всегда по барабану.
Дело оказалось в настройке "Map Descriptive Field". Этакая незаметная кнопка в форме процесса. При нажатии на нее открывается одноименная форма. Так вот, оказывается, необходимо выделить соответствующее поле в этой  форме в папке "Pocess data for..." и нажать кнопку с дискетой, тем самым сохранив настройки. После этого в поле "Account Name" появляется логин пользователя.