воскресенье, 29 марта 2009 г.

GWT, интернационализация

Начал разбираться с GWT. И сразу же наткнулся на то, что "Привет, мир" можно только как "Hello? world". Однако чтение документации позволило вывести родное "Привет, мир".
Здесь напишу некоторые основные моменты
Итак интернационализация в GWT может быть как статической так и динамической. Здесь расскажу о статической.

Статическая.
Для реализации создаем интерфейс, наследуемый от i18.Constants

public interface Constants extends com.google.gwt.i18n.client.Constants
{
public String const1();
public String const2();
}

каждый метод этого интерфейса будет является константой. Сами константы хранятся в фалах с раcшрением .properties и именем интерфейса, для нашего случая это будут Constants.properties и родной :) Constants_ru.properties. Файл Constants_ru.properties должен быть в кодировке UTF-8. Если у Вас Eclipse тогда File-Properties
Примерно такого содержания.
const1=root
const2=Clic me

и
const1=Администратор
const2=Нажми меня

Теперь прописываем в <..>.gwt.xml наши локали.

<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="ru"/>

<extend-property name="locale" values="en"/>



На этом все подготовительные действия закончены.
Для использования дополнительно импортируем:
com.google.gwt.core.client.GWT, и созданный интерфейс.

constants = (Constants) GWT.create(Constants.class);//Создаем экземпляр интерфейса
Button button = new Button(constants.const2()); //создаем кнопочку с надписью "Нажми меня"

Все....
По умолчанию будет использоваться американская локализация, русскую можно получить передав в HTTP запрос значение переменной locale
http://www.example.org/myapp.html?locale=ru

или отредактировав начальный HTML

<html>
<head>
<meta name="gwt:property" content="locale=ru">
</head>
<body>
<script src="demo.app.nocache.js " />
</body>
</html>

воскресенье, 15 марта 2009 г.

Молодежь?

Наткнулся тут на "сильный" ролик.



Может во все времена такое отношение к молодежи. Но я думаю лет через 10 будет страшно ходить в больницы, потому что там будут мои ровесники - "потребители".

суббота, 7 марта 2009 г.

Если гора не идет к Магомеду....

Есть такой замечательный сайт Инфостарт. собираются на нем хорошие люди и пишут всякие вещи, программки и все такое в тематике 1С. Однако с RSS лентами там совсем беда. Они были вначале только на программы и статьи, обновлялись наверно раз в месяц. Доржи (автор проекта) не раз обещал что RSS будут, сайт с того времени притерпел многие изменения как в дизайне так и в функциональности. а RSS все нет :(
Прошло достаточно много времени и в один случайный день наткнулся я на замечательный сервис производства Yahoo, Pipes (не думал что у Yahoo могут быть столь перспективные вещи!!, все как то по Гуглу).
В двух словах можно почитать здесь.
Вообщем можно:
-объединять RSS;
-преобразовывать HTML в RSS;
-использовать RegExp;
И все это в графическом!!! интерфейсе. (Чем то напоминает групповую обработку в Ei).
Вообщем вещь чумовая. Особо разобраться не успел. Однако сразу вспомнился Инфострат с его RSS :)

В общем задался преобразовать новости инфостарт в RSS. И.... за 1 час лента готова. Правда не в чистом Pipes, но все равно ноги растут от туда :).

Есть несколько сайтов, которые преобразуют HTML в RSS (на основе pipes):
- http://feed43.com/ (Чемпион)
- http://www.feedity.com/
- http://www.feedyes.com/

Лента конечно имеет ряд недостатков:
1. Обновляется раз в 6 часов (мне хватает)
2. Мало информации, не хватает категорий (1cv8, 1c77 и т.д)

Думаю все таки окончательно разобраться с Pipes, и провести генерацию без посредников.


P.S. Пример ленты можно увидеть и в этом блоге, в правом фрейме, в самом низу.

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

ЕдиницаХранениеОстаков перенос в КД


Очередная заметка по КД. Относится к разряду частых проблем. При переносе данных из УПП например в УПП очень редко удается обойтись без перегрузки номенклатуры. Так вот если справочник номенклатура выгружать только по ссылкам (из переносимых документов) тогда поля:
  • ЕдиницаХраненияОстатков;
  • ЕдиницаДляОтчетов;
остаются незаполненными. У данных полей владельцем является сам элемент в котором они присутствуют. Причем эти объекты будут присутствовать в файле обмена однако загрузить их не удастся.
Есть два решения этой проблемы:
  1. В ПКО "Номенклатура" поставить свойство "Не запоминать выгруженные объекты". Это самый простой способ однако в этом случае при большом количестве документов (в котором есть повторяющаяся номенклатура) обмен значительно замедлится, и число данных для загрузки может многократно увеличится.
  2. Скопировать ПКО "ЕдиницаИзмерения" назовем его ПКО "ЕдиницаИзмерения_Владелец" и в данным ПКО для ПКС "Владелец" укажем получать из входящих данных. После чего в ПКО номенклатура для данных реквизитов явно укажем правило конвертации "ЕдиницаИзмерения_Владелец" и в обработчике ПКС ПередВыгрузкой объекта передадим явно владельца
ИсходящиеДанные = Новый Структура(); ИсходящиеДанные.Вставить("Владелец",Источник);

Какой вариант использовать, решать Вам.
Удачи.