Имя: Пароль:
1C
Юмор
выгрузка номенклатуры в DBF формате
,
0 Papa1
 
18.01.12
15:55
Доброго времени суток.Задача: Сформировать выгрзку номенклатуры в дбф файл,подскажите как реализовать это?!


//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Обрабатывать НеПомеченныеНаУдаление;
   |Номенклатура = Справочник.Номенклатура.ТекущийЭлемент;
   | Док= Справочник.Номенклатура.ТекущийЭлемент;
   |Группировка Номенклатура упорядочить по Номенклатура.Наименование;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;                        
           НовТабл=СоздатьОбъект("ТаблицаЗначений");
   НовТабл.НоваяКолонка("Наименование","Справочник.Номенклатура",,,"Наименование");
             Пока Запрос.Группировка(1) = 1 Цикл
       Док=Запрос.Док;
       //               Док.ВыбратьСтроки();  
       Если (СокрЛП(Строка(Док.Товар.ТипНоменклатуры)) <> "Товар") Тогда
           НовТабл.НоваяСтрока();  
           НовТабл.Наименование=Док.Товар;
           
           глВывестиТЗ(НовТабл ,"1");
       конецесли;
   КонецЦикла ;    
       
   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       // Заполнение полей Номенклатура
       Таб.ВывестиСекцию("Номенклатура");
   КонецЦикла;
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
19 IvanovIV
 
18.01.12
16:13
Таб.Наименование

не имеет смысла
20 Papa1
 
18.01.12
16:14
(16)таб мне  для  пред.просмотра
21 romix
 
18.01.12
16:14
22 vah1
 
18.01.12
16:15
ахренеть :)) за 4 часа восемь строк
Кто сказал что спидеров уже нет?
23 FN
 
18.01.12
16:15
(0) Сохрани Таблицу в формат Ексель, Открой в Екселе, пересохрани в дбф.
Для твоего уровня владения языком 1С это самый быстрый путь.
24 IvanovIV
 
18.01.12
16:15
Запрос.Номенклатура.Наименование
или
Номенклатура.Наименование
25 Papa1
 
18.01.12
16:18
(22) у  меня  разные  варианты  были переставлял  смотрел по аналогии,не  получилось.
26 IvanovIV
 
18.01.12
16:22
(16) выгружи в тз на форме
27 KRV
 
18.01.12
16:23
(0)Иди в полицию работать
28 Papa1
 
18.01.12
16:25
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
Пока СпрНом.ПолучитьЭлемент()=1 Цикл
   Если Лев(СпрНом.Наименование,2)<>"ЦГ"  Тогда  
       Продолжить;
   Иначе
    ДБФ = СоздатьОбъект("XBASE");
     ДБФ.КодоваяСтраница(0); // Windows
ДБФ.СоздатьФайл("c:\export.dbf");
   КонецЕсли;
КонецЦикла;
29 IvanovIV
 
18.01.12
16:26
(14) вот профукал эту объяву .. когда прочтешь - спрашивай, что не понял
30 Papa1
 
18.01.12
16:26
ДБФ.СоздатьФайл("c:\export.dbf"); {D:\БАЗЫ 7\НОВАЯ ПАПКА\1ВНЕШНИЕ ОТЧЕТЫ\511.ERT(51)}: Неопределена структура базы!

как её определить?
31 Дядя Вова
 
18.01.12
16:27
(30) Читай (21) уже.
32 IvanovIV
 
18.01.12
16:27
(28) ? скока у тя создасться пустых дбф?
33 Papa1
 
18.01.12
16:30
(32) 1 создался но пустой
34 Дядя Вова
 
18.01.12
16:30
(33)
    ДБФ = СоздатьОбъект("XBASE");
ДобавитьПоле("NAME","S",50,0);
     ДБФ.КодоваяСтраница(0); // Windows
 ДБФ.СоздатьФайл("c:\export.dbf");
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
Пока СпрНом.ПолучитьЭлемент()=1 Цикл
   Если Лев(СпрНом.Наименование,2)<>"ЦГ"  Тогда  
       Продолжить;
   Иначе
ДБФ.Добавить();
ДБФ.NAME = СпрНом.Наименование;
   КонецЕсли;
КонецЦикла;
ДБФ.Закрыть();
35 IvanovIV
 
18.01.12
16:30
Дядя Вова

31 - 18.01.12 - 16:27    (30) Читай (21) уже.


 Papa1

14 - 18.01.12 - 16:11        (10)спасибо после  прочитаю

IvanovIV

10 - 18.01.12 - 16:08        http://1czone.ru/code/12-primer-dbf.html

ну пусть прочитает попозже и мою ссылку и на Мисту
36 IvanovIV
 
18.01.12
16:32
(33)
Те их скока надо? На каждый элемент справочника? Или один на всех?
37 palpetrovich
 
18.01.12
16:33
(34) не взлетит
38 Дядя Вова
 
18.01.12
16:33
(37)Почему?
39 IvanovIV
 
18.01.12
16:35
(38) м.б. установитьзначение поля?
40 palpetrovich
 
18.01.12
16:35
(38) записать забыл
41 Papa1
 
18.01.12
16:37
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
ДБФ = СоздатьОбъект("XBASE");
ДБФ.СоздатьФайл("c:\export.dbf");
ДБФ.КодоваяСтраница(0); // Windows
Пока СпрНом.ПолучитьЭлемент()=1 Цикл
   Если Лев(СпрНом.Наименование,2)<>"ЦГ"  Тогда  
       Продолжить;
   Иначе
     дбф.Добавить();
     дбф.NAME =СпрНом.Наименование;
          дбф.Записать();
   КонецЕсли;
КонецЦикла;
 
КонецПроцедуры




ДБФ.СоздатьФайл("c:\export.dbf");
{F:\2.ERT(46)}: Неопределена структура базы!
дбф.Добавить();
{F:\2.ERT(52)}: Перед выполнением операции нужно открыть базу!
дбф.NAME =СпрНом.Наименование;
{F:\2.ERT(53)}: Поле агрегатного объекта не обнаружено (NAME) ошибки выдает
42 Дядя Вова
 
18.01.12
16:37
(39) Можно и так.
(40) Да я и ДБФ. перед ДобавитьПоле не нарисовал. Заметил когда уже отправил. но надеюсь автор поста догадался.  А то там ему выдало видимо функция ДобавитьПоле не обнаружена...
43 Дядя Вова
 
18.01.12
16:38
(41) Так нужно закрыть export.dbf открытый - чем там смотрите его
44 IvanovIV
 
18.01.12
16:40
(41) хоть одну из ссылок открой уже(
45 Papa1
 
18.01.12
16:40
Книга знаний: DBF-файлы (XBase) по этой  втавлял по аналогии
46 Papa1
 
18.01.12
16:41
)43( закрыл перез конецпроцедуры ошибки тежи
47 Дядя Вова
 
18.01.12
16:41
Развод какой то. (45) - всё уже разжевали тебе!
48 Papa1
 
18.01.12
16:42
СпрНом=СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
ДБФ = СоздатьОбъект("XBASE");
ДБФ.СоздатьФайл("c:\export.dbf");
ДБФ.КодоваяСтраница(0); // Windows
Пока СпрНом.ПолучитьЭлемент()=1 Цикл
   Если Лев(СпрНом.Наименование,2)<>"ЦГ"  Тогда  
       Продолжить;
   Иначе
     дбф.Добавить();
     дбф.NAME =СпрНом.Наименование;
          дбф.Записать();
   КонецЕсли;
КонецЦикла;
   дбф.ЗакрытьФайл()
КонецПроцедуры

чего не хватает не  пойму
49 palpetrovich
 
18.01.12
16:43
(47) он просто не читатель, он пейсатель :)
автор, а (41) поле не добавил, базу не открыл и не закрыл
50 Papa1
 
18.01.12
16:43
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
//    Перем Запрос, ТекстЗапроса, Таб;
//    //Создание объекта типа Запрос
//    Запрос = СоздатьОбъект("Запрос");
//    ТекстЗапроса =
//    "//{{ЗАПРОС(Сформировать)
//    |ОбрабатыватьДокументы все;
//    |Обрабатывать НеПомеченныеНаУдаление;
//    |Наименование = Справочник.Номенклатура.Наименование;
//    |Группировка Наименование;
//    |"//}}ЗАПРОС
//    ;
//    // Если ошибка в запросе, то выход из процедуры
//    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
//        Возврат;
//    КонецЕсли;
//
//    // Подготовка к заполнению выходных форм данными запроса
//    Таб = СоздатьОбъект("Таблица");
//    Таб.ИсходнаяТаблица("Сформировать");
//    // Заполнение полей "Заголовок"
//    Таб.ВывестиСекцию("Заголовок");
//    Состояние("Заполнение выходной таблицы...");
//    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
//    Пока Запрос.Группировка(1) = 1 Цикл
//        // Заполнение полей Наименование
//             Если  лев(Таб.Наименование,2)<>"ЦГ"  Тогда  
//            продолжить;
//            
//          конецесли
//    КонецЦикла;
//    // Вывод заполненной формы
//        Таб.ВывестиСекцию("Наименование");
//    Таб.ТолькоПросмотр(1);
//    Таб.Показать("Сформировать", "");  


СпрНом=СоздатьОбъект("Справочник.Номенклатура");
СпрНом.ВыбратьЭлементы();
ДБФ = СоздатьОбъект("XBASE");
ДБФ.СоздатьФайл("c:\export.dbf");
ДБФ.КодоваяСтраница(0); // Windows
Пока СпрНом.ПолучитьЭлемент()=1 Цикл
   Если Лев(СпрНом.Наименование,2)<>"ЦГ"  Тогда  
       Продолжить;
   Иначе
     дбф.Добавить();
     дбф.NAME =СпрНом.Наименование;
          дбф.Записать();
   КонецЕсли;
КонецЦикла;
   дбф.ЗакрытьФайл()
КонецПроцедуры
51 IvanovIV
 
18.01.12
16:43
(48) не хватает прочитать фсе!

ДобавитьПоле  - где?
52 IvanovIV
 
18.01.12
16:44
(45) "по этой  втавлял по аналогии"

вот уж враки

сравни коды
53 Papa1
 
18.01.12
16:45
52 тебе  ржаки а  мне  печалько
54 Дядя Вова
 
18.01.12
16:47
(53) найди одно отличие в (34) и (48)
(пробелы и пустые строки не учитываются)
55 IvanovIV
 
18.01.12
16:47
(53) печально д.б. не тебе

если после всего вышенаписанного у тя не получается
я пас
вызовите специалиста (це)
56 Papa1
 
18.01.12
16:47
Файл = создатьОбъект("XBASE"); //создаем ссылку на файл DBF

//определяем структуру файла
//Синтаксис: ДобавитьПоле(<Название>,<Тип>,<Длина>,<Точность>)

Файл.ДобавитьПоле("NAME","S",50,0);
Файл.ДобавитьПоле("PRICE","N",10,2);

Файл.СоздатьФайл("catalog.dbf"); //создаем файл физически

СпрТовары.ВыбратьЭлементы();
Пока СпрТовары.ПолучитьЭлемент()=1 Цикл
      Файл.Добавить();
      Файл.NAME = СпрТовары.Наименование;
      Файл.УстановитьЗначениеПоля("PRICE",СпрТовары.Цена) //так тоже можно;
      Файл.Записать();
КонецЦикла;

Файл.ЗакрытьФайл(); //не забывайте пожалуйста ну  вот  от сюда  списывал
57 Papa1
 
18.01.12
16:50
хех=) с праздником всех ,спасибо всем!!!!!!!!!!

19 января
Крещение, или Богоявление, празднуется Православной Церковью 19 января по новому стилю. Накануне праздника, 18 января установлен строгий пост.

Праздник Крещения Господня — один из самых древних праздников христианской Церкви. Его установление относится еще ко временам апостолов. Древнее название праздника — «Епифания» — явление, или «Теофания» — Богоявление, также его называли «праздник Светов», «Святые Светы» или просто «Светы». Ибо Бог приходит в мир в этот день, чтобы явить миру Свет Неприступный.
58 IvanovIV
 
18.01.12
16:53
? дня защиты пингвинов или дятлов нет ?  

ЗЫ

а с"цылки нада чЕтать .. их не просто так дают
59 Papa1
 
19.01.12
09:16
а как проверить создан ли файл и удалить файл,после сохранить новую версию?
60 Papa1
 
19.01.12
09:18
Если фс.("c:\export.dbf")=1  Тогда
        фс.УдалитьФайл("c:\export.dbf")
   КонецЕсли;
61 Дядя Вова
 
19.01.12
09:25
Очень просто.
62 Nikitos
 
19.01.12
09:27
(60) ну уже хотя бы встроенный хелп почитай, а!
Я тут почитал ветку и волосы на моей лысой голове встали дыбом...
63 Papa1
 
19.01.12
09:34
(62)почитал,от этого только  больше  вопросов.
все когда то начинали и задавали глупые вопросы, в этом ничего зазорного нет!
64 Papa1
 
19.01.12
09:34
(61) как правило самое сложное, это все самое простое.
65 1Сергей
 
19.01.12
09:40
(62)+1
Читал и плакал :)
66 povar
 
19.01.12
09:41
плакал, но читал
67 povar
 
19.01.12
09:42
(63) для начала учат азбуку, а потом уж берутся за чтение
68 Vakhrin
 
19.01.12
09:44
(0) А до 1С был какой-нибудь опыт в программировании?
69 Nikitos
 
19.01.12
10:08
(63) цитирую хелп. Дорого! :)


СуществуетФайл(<?>)
Синтаксис:
СуществуетФайл(<ИмяФайла>)
Назначение:
Проверяет существование файла..
Возвращает: 1 - файл существует; 0 - не существует.
Параметры:
<ИмяФайла> - Строковое выражение с именем файла.
Подробнее см. в документации, глава 'Работа с Файлами'
70 Nikitos
 
19.01.12
10:10
(60) Вот почему удаляешь файл правильно, а проверить не можешь???
71 Papa1
 
19.01.12
11:21
(68) был,но не внушительный,квалифицированных уроков 1с по конфиг нету...вот и приходится воевать одному.
72 Papa1
 
19.01.12
11:24
Пока (ФС.СуществуетФайл("c:\export.dbf")=1) Или (ФС.СуществуетФайл("c:\export.dbf")=1) Цикл
       ФС.УдалитьФайл("c:\export.dbf");
       //    ФС.УдалитьФайл("c:\export"+".dbf");
       Сообщить("Удалено!!!");
   конеццикла;


воот как то так?как  сделать выбор сетевого сохранения?
73 1Сергей
 
19.01.12
11:28
(72) потерпи до завтра. Завтра Пятница
74 palpetrovich
 
19.01.12
11:29
(72) баден-баден?
75 Nikitos
 
19.01.12
11:31
(72) что есть "сетевое сохранение"??? o_o
76 Дядя Вова
 
19.01.12
11:33
ВыбратьКаталог(<?>,,)
Синтаксис:
ВыбратьКаталог(<ИмяКаталога>,<ЗаголовокОкна>,<Таймаут>)
Назначение:
Открывает окно диалога выбора каталога.
Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена'; 1 - если в окне диалога нажата кнопка 'ОК', при этом в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; -1 (минус единица) - закончилось время <Таймаут> ожидания отклика пользователя.
Параметры:
<ИмяКаталога> - переменная, содержащая на входе строку с  начальным каталогом, на выходе имя выбранного каталога;
<ЗаголовокОкна> - строка с заголовком окна;
<Таймаут> - время ожидания отклик пользователя в секундах (необязателен).
Подробнее см. в документации, глава 'Работа с Файлами'
77 palpetrovich
 
19.01.12
11:37
(75) это когда путь начинается с двух слешей :))
78 Nikitos
 
19.01.12
11:39
(76) как бы телепатирую следующий вопрос: "А как теперь задать имя файла"?
79 Дядя Вова
 
19.01.12
11:43
Поскольку файл мы создаем программно(речь вроде о выгрузке в ДБФ шла), то например так:
ИмяНашегоФайла = "ourfile.dbf"
В итоге путь = ИмяКаталога/ИмяНашегоФайла
80 Nikitos
 
19.01.12
11:45
а как получить путь?
Что такое конкатенация строк?
Зачем вообще это нужно? :)
81 Дядя Вова
 
19.01.12
11:48
(80) ДБФ.СоздатьФайл(ИмяКаталога+"\"+ИмяНашегоФайла);
Доволен? :)
А зачем это вообще нужно, вопрос к (0) :)
82 Nikitos
 
19.01.12
11:49
(81) да я-то давно доволен. Смешно просто, а вот (0) конспектирует потихоньку, а на вопрос зачем это всё так и не ответит. :)
83 Дядя Вова
 
19.01.12
11:50
(82) Так потому и не ответил что он конспектирует потихоньку. И так достаточно инфы ему дал. Дальшее сам пущай.
84 Papa1
 
19.01.12
12:55
спасибо.......а вот кинул я кнопку  в которой отображается путь,а куда вставить её переменную,начало процедуры ??
85 1Сергей
 
19.01.12
12:56
(84) по свойствам кнопки полазий, найдёшь
86 Papa1
 
19.01.12
12:59
(85) это я  знаю делал  уже,проблем нет ,подписать кнопку вставить.Вопрос в том куда вставить её?!
87 1Сергей
 
19.01.12
13:02
(86) блин, пиши по русски. Нифига не понятно что тебе надо.

В свойствах > Дополнительно > Формула напиши название процедуры. Типа ПоКнопке()

потом в модуле:

Процедура ПоКнопке()
   ...
КонецПроцедуры
88 povar
 
19.01.12
13:03
"Вопрос в том куда вставить её?!"
кого ?
89 Papa1
 
19.01.12
13:05
перем  ИмяФайла;
       Если ПустоеЗначение(ИмяФайлаБД)=0 Тогда
       ИмяКаталога=ИмяФайлаБД;
   Иначе
       ИмяКаталога=КаталогИБ();
   КонецЕсли;
   Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяКаталога,"Выберите путь сохранения данных","Файлы баз данных *.dbf|*.dbf",,20)=1 Тогда
       ИмяФайлаБД=ИмяКаталога+ИмяФайла;  
         
         конецесли;
90 1Сергей
 
19.01.12
13:06
(89) Круто. И что?
91 Papa1
 
19.01.12
13:07
выглядит как то так у меня,сохраняет!!!это прогресс господа=)значит в моём случае не все потерено!!!!но как то не правильно сохраняет.
92 Papa1
 
19.01.12
13:08
(90)то что когда нажимаешь на кнопку,открывается путь и на ней написано открыть,открывать нечего  нажимаешь отмена он сохраняет.
93 Nikitos
 
19.01.12
13:10
факмоймоск

а я предупреждал еще в (78)
94 1Сергей
 
19.01.12
13:11
(92) дарю:

//* Открывает Диалог выбора файла. Если Выбор произведен, то помещает в переменную новое имя файла
Функция ДиалогВыбораФайла(ИмяФайла,ТипДиалога=0,Заголовок="Выберите файл",Фильтр="Все файлы (*.*)|*.*")
   ы=СокрЛП(ИмяФайла);
   ИК="";
   Пока Найти(ы,"\")>0 Цикл
       ИК = ИК + Лев(ы,Найти(ы,"\"));
       ы = Сред(ы,Найти(ы,"\")+1);
   КонецЦикла;
   ИФ = ы;
   Если ФС.ВыбратьФайл(ТипДиалога,ИФ,ИК,Заголовок,Фильтр)=1 Тогда
       ИмяФайла = ИК+ИФ;
       Возврат 1;
   КонецЕсли;
   Возврат 0;
КонецФункции // ДиалогВыбораФайла
95 Nikitos
 
19.01.12
13:12
(94) зря ты это сделал. Сейчас посыплются вопросы...
96 Papa1
 
19.01.12
13:13
(93) имя файла по умолчанию идет, фак твой моймоск.проблема в том что  в открывшемся пути  он не сохраняет на кнопку сохранить,даже кнопки сохранить нет есть только открыть.
97 1Сергей
 
19.01.12
13:15
(96) ты СП ещё не купил чтоли?
98 Papa1
 
19.01.12
13:15
(94)спасибо!!!!!!!!!1но это слижком легко я  сам  должен до этого  дойти иначе толка не  будет...значит  через функцию делать.
а если  вывести в начало,сделать её первой процедурой так ведь тоже  можно?
99 1Сергей
 
19.01.12
13:16
(98) можно. но, сначала (97)
100 Nikitos
 
19.01.12
13:16
(96)

ФС.ВыбратьФайл

Параметры:
<ТипДиалога> -: 0 - диалог типа <открыть>, 1 - диалог типа <сохранить>;


ничего не наталкивает на мысль?????
101 Papa1
 
19.01.12
13:17
(97)Сергей извините,но я не  понял что такое "СП ещё не купил чтоли?".

спасибо всем тем, кто помогает!
102 povar
 
19.01.12
13:17
(98) неужели получилось (94) ?
103 Papa1
 
19.01.12
13:20
(100)сменил значение "0" на "1" сменилось на  сохранить=)спасибо за наводку.
104 Nikitos
 
19.01.12
13:21
(103) теперь должен мне на водку :)
105 1Сергей
 
19.01.12
13:23
(101) нажми Ctrl+F1 в конфигураторе и попадёшь в СП, где найдёшь ответы на многие вопросы
106 Nikitos
 
19.01.12
13:25
(105) человек же сказал что это слишком просто и легко. До всего нужно дойти самому!
107 Papa1
 
19.01.12
13:25
(104) не употребляю алкоголь вообще.
108 filh
 
19.01.12
13:27
(107) купи у ДенисЧ СП, сегодня у него ДР, думаю в полцены отдаст!
109 Papa1
 
19.01.12
13:34
(108)  "купи у ДенисЧ СП, сегодня у него ДР, думаю в полцены отдаст! " не понял,что за "СП" если он  идет стандартным приложением к 1с?-> Данная функия пахнет разводом, истина=1 или ложь=0 тогда ,купить у ДенисЧ СП;->Данная функия пахнет разводом, истина=0 или ложь=1 тогда ,не покупать у ДенисЧ СП конецпроцедуры.так вроде???
110 orange777
 
19.01.12
13:36
(109)чем дело то закончилось? денег дали за труды?)))
111 1Сергей
 
19.01.12
13:37
(109) если ты не употребляешь алкоголь, то, вероятно, крепко сидишь на наркоте
112 Papa1
 
19.01.12
13:40
(110)забыл вставить сообщение "у студентов денег нет,за труды студента необходимо вознаграждение,нажмите ок "если  вознаграждение=1 тогда отправить 1000р на 910355013*!!!
113 Papa1
 
19.01.12
13:42
(111) нет,презираю таких людей.
114 Papa1
 
19.01.12
14:00
а как  сделать так чтоб имя файла было текущей датой?
115 1Сергей
 
19.01.12
14:01
ИмяФайла = ""+ТекущаяДата();
116 Papa1
 
19.01.12
14:02
(115)спасибо
117 Nikitos
 
19.01.12
15:06
(115) быстро сдал, скучно...
(107) зато я употребляю :)
118 Papa1
 
19.01.12
15:18
(117) главное чтоб в рамках разумного!!!а то пол страны напьются и  давай свои законы выстраивать...