Monday, December 22, 2008

MasterPage в ASP 2008

Что бы долго не долбать себе мозги и листать интернет, не знаю по чему, но у меня пока разобрался ушло пол дня, делаем следующее, в студио создаем проект, далее добавляем новую страницу masterpage с именем что то типа RootMasterPage.Master с минимальным содержания, а дальше уже на вкус добавляем все что нужно:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="RootMasterPage.master.cs" Inherits="SIP3.RootMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>SIP</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<style type="text/css">
.style2
{
color: #000066;
background-color: #66CCFF;
}
.style3
{
color: #000066;
}
.style4
{
background-color: #66CCFF;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table border="0" cellpadding="0" cellspacing="0"
style="width: 100%; height: 100%; color: #99FF33; background-color: #66CCFF;">
<tr>
<td style="height: 7px">
<h2 style="text-align: center"><span class="style2">%u0426%u0435%u043D%u0442%u0440 %u043E%u0431%u0440%u0430%u0431%u043E%u0442%u043A%u0438 %u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u0438</span></h2>
<h2 style="text-align: center" class="style3"><span class="style4">SIP</span></h2>
</td>
</tr>
<tr>
<td>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1"
runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

Далее добавляем еще одну страницу мастер пейдж Node1MasterPage

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Node1MasterPage.master.cs" Inherits="SIP3.Node1MasterPage" MasterPageFile="~/RootMasterPage.Master" %>

<asp:Content ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table border="0" cellpadding="0" cellspacing="0"
style="width: 100%; height: 100%; margin-bottom: 0px; color: #000066; ">
<tr>
<td style=" width:15%;height: 1000px; background-image: none; background-color:inherit; text-align:left; top:auto; "
>
<div>
<h2>
<a href="Default.aspx"><span class="style2">%u041E%u0441%u043D%u043E%u0432%u043D%u0430%u044F</span></a></h2>
<h3>
<a href="TypeCards.aspx"><span class="style2">%u0422%u0438%u043F%u044B %u043A%u0430%u0440%u0442%u043E%u0447%u0435%u043A</span></a></h3>
<h3>
<a href="TypeCards.aspx"><span class="style5">%u0422%u0438%u043F%u044B %u043F%u043E%u043A%u0443%u043F%u0430%u0442%u0435%u043B%u0435%u0439</span></a></h3>
<h3>
<a href="TypeCards.aspx"><span class="style5">%u0422%u0438%u043F%u044B %u0441%u043A%u0438%u0434%u043E%u043A</span></a></h3>
<h3>
<a href="TypeCards.aspx"><span class="style5">%u0422%u0438%u043F%u044B %u043B%u0438%u043C%u0438%u0442%u043E%u0432</span></a></h3>



<a href="Markets.aspx"><span class="style2">%u041C%u0430%u0440%u043A%u0435%u0442%u044B</span></a><br class="style2" />
<a href="Markets.aspx"><span class="style2">%u041F%u043E%u043A%u0443%u043F%u0430%u0442%u0435%u043B%u0438</span></a>

</div>
</td>
<td style="background-color: #FFFFFF" align="center">
<asp:ContentPlaceHolder ID="CPH2" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
</asp:Content>

<asp:Content ID="Content2" runat="server" contentplaceholderid="head">

<style type="text/css">
.%u043D%u043E%u0432%u044B%u0439%u0421%u0442%u0438%u043B%u044C1
{
line-height: normal;
}
.style2
{
color: #FFFF66;
}
.style5
{
background-color: #66CCFF;
color: #000066;
}
</style>

</asp:Content>


В самом итоге меняем Default.aspx и ее внутренний текст:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SIP3._Default" MasterPageFile="~/Node1MasterPage.Master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="CPH2"
Runat="Server">
<h3>%u0414%u043E%u0431%u0440%u043E %u043F%u043E%u0436%u0430%u043B%u043E%u0432%u0430%u0442%u044C!</h3>
</asp:Content>



В итоге у нас получается, что создавая любую новую страницу, что бы она работала как и весь сайт с мастер пейджом, просто вставляем данные с default и дорабатываем до необходимости.
Основная работа с мастерпейдж состоит в ContentPlaceHolderID

Sunday, December 21, 2008

Для нормальной работы с блогом

Спасибо Записки дебианщика для вставки кода пользуемся сайтом http://www.elliotswan.com/postable/

ISS7.0 Visual Studio 2008 Vista Web project

Имеем проблему на vista с iss 7.0 и с Visual Studio 2008 когда не запускается отладка.
необходимо добавить строку в web.config после <system.web>
<trust level="Full" originUrl="" />
, а также для нормальной отлатки
 <compilation batch="false" debug="true"> 

Thursday, December 18, 2008

Microsoft Office SharePoint Server 2007

http://msdn.microsoft.com/en-us/library/bb931736.aspx

Запуск внешний обработки 1Сv7/1Cv8 из C#

Для того чтоб запустить внешнюю обработку на семерке надо:

object v77 = null;
object retVal = null;

try
{
string BaseCatalog,
User = "",
Pass = "";
object[] arg = new object[3];
Type lateBoundType = Type.GetTypeFromProgID("v77.Application", true);
v77 = Activator.CreateInstance(lateBoundType);

arg[0] = lateBoundType.InvokeMember("RMTrade", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v77, null);
arg[1] = @"/D" + "D:\\Work\\База 1С" + " /N" + User + " /P" + Pass;
arg[2] = "NO_SPLASH_SHOW";

lateBoundType.InvokeMember("Initialize", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v77, arg);

object[] arg1 = new object[] { "ОткрытьФорму(\"Обработка\", ,\"C:\\Parts\\СоздатьЗаказ.ert\")" };
// запускаем обработку если Р=1 то выполнено успешно,если 0 то невыполнено
retVal = lateBoundType.InvokeMember("EvalExpr", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v77, arg1);

}
catch (Exception er)
{ }
finally
{
// убиваем 1С
System.Runtime.InteropServices.Marshal.ReleaseComObject(v77);
GC.GetTotalMemory(true);
}

Для восьмерки надо:

1.Создать метод в обработке с атрибутом эксопрт

функция МояПроцедура() экспорт
возврат 5;
конецфункции

2.В программе:

var v81comType = Type.GetTypeFromProgID("V8.Application");
var v81 = Activator.CreateInstance(v81comType);

Object[] arguments = { @"File=""D:\Work\База 1С"";Usr=""Администратор"";" };
object trade = v81comType.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81, arguments);

object v8_componenta = v81comType.InvokeMember("NewObject", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81, new object[] { "ВнешниеОбработкиМенеджер" });

object[] arg = { "c:\\111.epf" };
object myCompanent = v81comType.InvokeMember("Создать", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v8_componenta, arg);

object myForm = v81comType.InvokeMember("МояПроцедура", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, myCompanent, null);

System.Runtime.InteropServices.Marshal.ReleaseComObject(v81);
GC.GetTotalMemory(true);

Коллекторы "вне закона" на страже сверхприбылей банкиров

Коллекторы "вне закона" на страже сверхприбылей банкиров
В ближайшее время ко многим украинским гражданам в дверь постучится коллектор с требованием погасить долги. Что нужно знать "погоревшему" заемщику.

Раздавая направо и налево кредиты, большая часть банков обросла «проблемной задолженностью». Все тайное рано или поздно становится явным – так и сейчас во время кризиса все начали обсуждать возможность массового невозврата кредитов. Одна из причин – многие из них либо давались под покупку недвижимости либо для предпринимательской деятельности или покупок под залог недвижимости.

Банки ориентировались на высокую стоимость недвижимости и не утруждали себе детальной проверкой платежеспособности клиента. В том числе – в будущем и при возможных изменениях экономической ситуации в государстве (как-то рост курса доллара). Теперь, когда всем стало понятно очевидное – стоимость недвижимости в Украине завышена в 2-3 раза, банки обеспокоились тем, что многие кредиты могут стать «проблемной задолженностью».

Причем залоговая недвижимость банки не спасет – ее реальная цена, особенно при массовой продаже, будет значительно ниже. Не желая терпеть огромные убытки вследствие своей недавней сверхприбыльной деятельности, банки хотят ужесточить ответственность заемщиков за невозврат кредитов. Параллельно с вышеописанными процессами, на рынке потребительского кредитования в Украине развивался «коллекторский бизнес».

Не желая самостоятельно решать проблему неплатежей, банки стали активно привлекать сторонние компании к ее разрешению - так называемые «коллекторские». Пока что большинство из них ограничиваются только надоедливыми звонками и sms-ками по телефону. Но иногда применяются незаконные методы «психологического воздействия».

В частности информирование родственников должника или его начальства на работе о наличии проблемного кредита. Одна из причин такой политики банков - невыгодность взыскания задолженности в судебном порядке. Кроме затрат времени и денег на судебные процессы, после решения суда банк обязан оплатить налоги (понятие налога в украине).

Но когда он получит «живые деньги» по решению суда? Желание обойти действующее законодательство Украины с целью не понести огромные убытки вследствие получения на протяжении многих лет сверхприбылей вынуждает банкиров искать «внесудебные» методы работы с должниками. А спрос как известно порождает предложение. В данном случае – пресловутые коллекторские компании.
Незаконность действий по передаче другому субъекту хозяйствования информации о банковском кредите гражданина очевидна. Согласно ст. 60 Закона Украины «О банках и банковском деле»:

«Інформація щодо діяльності та фінансового стану клієнта, яка стала відомою банку у процесі обслуговування клієнта та взаємовідносин з ним чи третім особам при наданні послуг банку і розголошення якої може завдати матеріальної чи моральної шкоди клієнту, є банківською таємницею. Банківською таємницею, зокрема, є: …2) операції, які були проведені на користь чи за дорученням клієнта, здійснені ним угоди;…» - то есть кредитные соглашения также подпадают под «банковскую тайну».

Ст. 62 этого закона устанавливает порядок и основания раскрытия «банковской тайны». Никаких коллекторских компаний либо просроченных кредитов там не указано. Согласно ст. 231, 232 Уголовного кодекса Украины, преследуется как разглашение банковской тайны, так и за умышленный сбор и использование таких сведений.

Кроме того, действия некоторых особенно «настырных» коллекторских компаний подпадают под состав преступления, предусмотренный ст. 182 УК Украины – нарушение неприкосновенности частной жизни, выразившееся в незаконном сборе, хранении, использовании и распространении информации о лице без его согласия (напомним – ни один закон коллекторских компаний не предусматривает; как в прочем – и таких действий по погашению просроченных банковских кредитов).

Почему бездействуют правоохранительные органы? Потому что работа коллекторских компаний спасает банки, принадлежащие известным олигархам и политикам, а также влиятельным иностранным компаниям от убытков. Однако это не значит, что нужно терпеть беспредел, потакая жадным на наживу банкирам. Они должны усвоить простую народную мудрость: «Любишь медок (сверхдоходы во время кредитного бума) – люби и холодок (массовые невозвраты кредитов и убытки, когда этот кредитный бум заканчивается)».

Общественные организации обращались в некоторые органы государственной власти с просьбой разъяснить законность работы коллекторов. В ответе Министерства Юстиции Украины (№2571-0-33-08 от 21.04.2008 за подписью заместителя Министра Л. В. Ефименко) фактически процитированы те же нормы законов Украины, которые указаны в начале статьи. Также разъяснен порядок раскрытия банковской тайны, при этом никакой возможности предоставления информации о клиентах-должниках коллекторским компаниям не указано.

Однако Минюст не стал делать однозначный вывод о незаконности работы таких компаний, сославшись на то, что «Враховуючи наведене, пропонуємо Вам звернутися до Національного Банку України, оскільки порушене питання належить до їх компетенції. Разом з тим повідомляємо, що листи міністерств, інших центральних органів виконавчої влади, не є нормативно-правовими актами, вони лише мають роз’яснювальний та інформаційний характер і не встановлюють правових норм».

В то же время, автор статьи опыту знает, что судьи при рассмотрении «скандальных» дел рады любой «бумажке», разъясняющей спорные правоотношения. Из которой можно выписать толкование неоднозначных норм закона в мотивировочную часть решения суда и сослаться на эту «бумагу» в случае дисциплинарного разбирательства по жалобе проигравшей стороны.

Национальный Банк Украины в своем письме (№18-313/1466-5604 от 24.04.2008 за подписью и.о. Главы А. В. Шаповалова) также указывает на нормы ст. ст. 60, 62 Закона Украины «О банках и банковском деятельности» и ст. 1076 Гражданского кодекса Украины как и Минюст. Однако дополнительно отмечает: «Відповідно до ст. 55 Закону України «Про банки та банківську діяльність (далі – Закон) відносини банку з клієнтом регулюється законодавством України, нормативно-правовими актами Національного Банку України та угодами (договорами) між клієнтом та банком.

Пунктами 1.4 глави 1 та 3.6 глави 3 Правил зберігання, захисту, використання та розкриття банківської таємниці, затверджених постановою Правління НБУ № 267 від 14.07.2006 (далі – Правила), передбачено, що відомості щодо заборгованості клієнта перед банком становлять банківську таємницю, а також те, що банки зобов’язані за погодженням з клієнтом відображати в договорах, що укладаються між банком і клієнтом, застереження щодо збереження банківської таємниці та відповідальності за її незаконне розголошення або використання».
То есть напрашивается вывод, что возможность привлечения «коллекторских» компаний к работе с проблемной задолженность должна быть прописана в кредитных договорах. Однако НБУ развивает свою мысль, ссылаясь на возможность привлечения баком к своей деятельности посторонних лиц, при условии сохранения банковской тайны и неиспользования этой тайной информации в свою пользу или в пользу третьих лиц.

Исходя из этого, в последнем абзаце письма НБУ указано: «Враховуючи наведене, вважаємо, що банк може передати третім особам інформацію щодо прострочених кредитів відповідно до вимог ст. 62 Закону України «Про банки і банківську діяльність» та пункту 3.1 глави 3 Правил».

Такой вывод НБУ противоречит сам себе – ведь эта информация (о клиентах – должниках) используется коллекторскими компаниями для осуществления своей хозяйственной деятельности (оказания услуг банкам) и обеспечению интересов банков. А ведь на запрет такого использования информации содержащей банковскую тайну он сам указывает в своем письме. То есть в очередной раз подтверждается истина, что нельзя совмещать регулирование и надзор за определенной отраслью в одних руках. В данном случае – у НБУ в сфере банков, банковской деятельности и банковской системы.

Так как НБУ больше беспокоится за то, чтобы банки не «лопнули», раздавая направо и налево кредиты (а для этого нужны жесткие средства борьбы с «проблемной» задолженностью). Чем в отстаивании конституционного права гражданина на сохранения тайны его частной жизни, в том числе – банковской тайны.
В условиях кризиса даже незаконная работа коллекторов не позволяет уберечь банки от убытков. Поэтому массово идут призывы от банкиров и «сочувствующих» им политиков:

* ввести уголовную ответственность за невозврат кредитов;
* упростить работу по взыскания задолженности по кредитам, исключив такие звенья как суд (ввести внесудебный порядок) и государственную исполнительную службу (разрешить работу частных исполнительных служб);

Относительно первого предложения, необходимо отделить «мухи от котлет». Для его обоснования часто приводятся данные о распространенной фальсификации документов необходимых для получения кредитов. Однако изобретать велосипед не нужно – действующий Уголовный кодекс Украины предусматривает довольно серьезную ответственность за такие действия (ст. ст. 190, 222). Что же касается просто невозврата кредитов, то существует очень хорошая юридическая гарантия для простых граждан, предусмотренная Европейской конвенцией по правам человека.

Согласно ст. 1 Протокола № 4: «Стаття 1. Заборона ув'язнення за борг. Нікого не може бути позбавлено свободи лише на підставі неспроможності виконати своє договірне зобов'язання.». Видимо не только в Украине крупный бизнес хотел бы превратить людей в рабов: «или плати или будешь лишен свободы». Так что бороться против инициатив наших политиков в этой части можно и вполне юридическими методами.

Что касается второго предложения, советуем нашим избирателям не поддерживать его по ряду причин. Во-первых, уровень добросовестности и законопослушания бизнес-структур в Украине невысокий. Многие сталкивались с судами о взыскании задолженности за жилищно-коммунальные услуги, когда единственным доказательством по делу становится справка о задолженности из бухгалтерии кредитора.

То есть судебный процесс строится на началах «сам себе подтвердил». Со схожей проблемой можно столкнуться и в банковской сфере если убрать судебное звено - тогда будут начисляться баснословные штрафы по непонятно какой методике. А если не согласны – вы теперь сами должны будете идти в суд и доказывать «что не верблюд».

Во-вторых, логичней, чтобы банки «несли на своих плечах» проблему судебных процессов, а не простой гражданин, не имеющий средств на оплату адвоката и времени. Пускай государство в лице своих органов (суда и исполнительной службы) ненадежный и необъективный арбитр, но лучше уж пусть будет такой, чем попасть во всевластие крупного бизнеса в отсутствие какого-либо арбитра.

P.S.Не вступайте в контакт со сборщиком долгов без надежной поддержки юриста!

«Кто такие коллекторы, что делать, если они явились домой или звонят с какими-то не то угрозами, не то предостережениями? Какие права у этих людей, что они могут, чего нет? Георгий Сергеевич».

Отвечает руководитель адвокатского объединения «Бирк и Партнер» Александр Шипка:

«Действующее гражданское законодательство позволяет кредитору совершать уступку права требования долга третьим лицам. Заинтересованная сторона обязана письменно поставить об этом в известность должника. Уведомление должно содержать суть требования, полное наименование организации, которой должен быть сделан платеж (статья 1082 ГК Украины). У должника есть право требования предоставить в разумные сроки доказательства перехода права требования долга именно к этому лицу.

Рост неплатежей в банковской, коммунальной, телекоммуникационной и иных сферах породил появление так называемых коллекторских (от английского collect - собирать) компаний, специализирующихся на сборе долгов. В отличие от других стран, в Украине пока отсутствуют какие-либо акты, регулирующие их деятельность. Это порождает различные криминогенные ситуации по вине как кредиторов, так и должников.

Что же делать, столкнувшись с данной проблемой на практике? Однозначно обратиться за юридической помощью, и чем быстрее, тем лучше. Это позволит выработать конкретный алгоритм действий с учетом юридических, экономических, психологических аспектов именно. Представитель кредитора при вступлении с вами в контакт обязан предъявить документ, удостоверяющий личность, доверенность на представление интересов по данному делу.
Общение по телефону, как и личный контакт должны проходить исключительно в урочное время. Запрещено прибегать к физическому и психологическому давлению, угрожать распространением компрометирующих сведений среди окружения должника, публично обвинять в мошенничестве, сообщать ему о якобы принятых мерах воздействия, которые объективно не могут быть совершены, лишать права или ограничивать право на распоряжение имуществом, собирать сведения о личной жизни и так далее. Без консультаций с юристом или хотя бы внимательного ознакомления с текстом не следует подписывать какие-либо документы».

* Источник: Cегодня

Wednesday, December 17, 2008

Работа с выводом картинки на печать в 1с 8(пример место для печати)

//1й вариант
//ПечатьОрганизации , добавляем в макет картинку с именем Картинка1 в самую нижнюю
//область с именем ОбластьПечатьОрганизации
ОбластьПечатьОрганизации = Макет.ПолучитьОбласть("ПечатьОрганизации");
Картинка= Новый Картинка("C:\files\img\печатьОрганизации.gif") ;
ОбластьПечатьОрганизации.Рисунки.Картинка1.Картинка = картинка;
ТабДок.Вывести(ОбластьПечатьОрганизации);

//2ой вариант динамически
ОбластьПечатьОрганизации = Макет.ПолучитьОбласть("ПечатьОрганизации");
КартинкаПечатьОрганизации = ОбластьПечатьОрганизации.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
КартинкаПечатьОрганизации.Картинка = БиблиотекаКартинок.ОбщаяКартинка1;
КартинкаПечатьОрганизации.Верх = 0;
КартинкаПечатьОрганизации.Высота = 80;
КартинкаПечатьОрганизации.Ширина = 80;
КартинкаПечатьОрганизации.Лево = 50;
КартинкаПечатьОрганизации.ГраницаСверху = Ложь;
КартинкаПечатьОрганизации.ГраницаСлева = Ложь;
КартинкаПечатьОрганизации.ГраницаСправа = Ложь;
КартинкаПечатьОрганизации.ГраницаСнизу = Ложь;
КартинкаПечатьОрганизации.РазмерКартинки = РазмерКартинки.АвтоРазмер;
ТабДок.Вывести(ОбластьПечатьОрганизации);

Monday, December 15, 2008

Search in Outlook

private void SearchInBox()
{
Outlook.MAPIFolder inbox = this.ActiveExplorer().Session.
GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.Items items = inbox.Items;
Outlook.MailItem mailItem = null;
object folderItem;
string subjectName = string.Empty;
string filter = "[Subject] > 's' And [Subject] <'u'";
folderItem = items.Find(filter);
while (folderItem != null)
{
mailItem = folderItem as Outlook.MailItem;
if (mailItem != null)
{
subjectName += "\n" + mailItem.Subject;
}
folderItem = items.FindNext();
}
subjectName = " The following e-mail messages were found: " +
subjectName;
MessageBox.Show(subjectName);
}