Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Загрузка в 1с электронных выписок из клиент банка "Альфа-Банк"

Загрузка в 1С Управление Торговлей 11.1.5.16 электронных выписок из клиент-банка "Альфа-Банк" и обратно из 1С в клиент-банк.

Столкнулся с проблемой. Решал почти день. Лазил по форумам, звонили в банк и 1С программистам.

В итоге аж 4-й специалист в банке сказал как загрузить в 1С УТ 11.1.5.16 выписку из клиент банка Альфа-Банк:

1. В личном кабинете клиент банка сохраняем выписку в txt формате для 1С.
2. В 1С заходим счет вашей конторы-далее вкладка настройка обмена с банком- выбираем Система Клиент-Банк "BClient"- кодировка Windows-указываем путь для файлов загрузки/выгрузки- далее записать и закрыть.
3. Заходим во вкладку Финансы- далее обмен с банком- указываете свои данные…далее разберетесь.

Работает, правда Альфа предоставляет кривую выгрузку. Платежи в сам Альфа-банк за обслуживание выгружаются без ИНН банка. Бред, но что есть. В банке сказали- пишите претензию в техподдержку.

Надеюсь кому-то это поможет.
Ответ:
спасибо за полезный совет!!!!!!!
Вопрос: Как отредактировать файл XML при загрузке

Всем привет! можно ли как нибудь удалить строки из XML файла?
Из этого нужно переделать (см. ниже)

<?xml version="1.0" encoding="UTF-8"?>
<Документ>
    <v8msg:Message xmlns:v8msg=";
        <v8msg:Header>
            <v8msg:ExchangePlan>ПОбмена</v8msg:ExchangePlan>
            <v8msg:To>001</v8msg:To>
            <v8msg:From>002</v8msg:From>
            <v8msg:MessageNo>62</v8msg:MessageNo>
            <v8msg:ReceivedNo>9</v8msg:ReceivedNo>
        </v8msg:Header>
        <v8msg:Body>
            <InformationRegisterRecordSet.РегистрСведений1 xmlns="; xmlns:xs="; xmlns:xsi="; xsi:type="InformationRegisterRecordSet.РегистрСведений1">
                <Filter>
                    <FilterItem xmlns=";
                        <Name xsi:type="xs:string">Измерение1</Name>
                        <Value xsi:type="xs:string">фывфывфыв</Value>
                    </FilterItem>
                    <FilterItem xmlns=";
                        <Name xsi:type="xs:string">Измерение2</Name>
                        <Value xsi:type="xs:string">фыв</Value>
                    </FilterItem>
                </Filter>
                <Record>
                    <Измерение1>фывфывфыв</Измерение1>
                    <Измерение2>фыв</Измерение2>
                    <Ресурс1>фыв</Ресурс1>
                    <Ресурс2>ыыыыы</Ресурс2>
                </Record>
            </InformationRegisterRecordSet.РегистрСведений1>
        </v8msg:Body>


Нужно переделать в


<?xml version="1.0" encoding="UTF-8"?>
<Документ>
    <v8msg:Message xmlns:v8msg=";
        <v8msg:Header>
            <v8msg:ExchangePlan>ПОбмена</v8msg:ExchangePlan>
            <v8msg:To>001</v8msg:To>
            <v8msg:From>002</v8msg:From>
            <v8msg:MessageNo>57</v8msg:MessageNo>
            <v8msg:ReceivedNo>9</v8msg:ReceivedNo>
        </v8msg:Header>
        <v8msg:Body>
            <InformationRegisterRecordSet.РегистрСведений1 xmlns="; xmlns:xs="; xmlns:xsi="; xsi:type="InformationRegisterRecordSet.РегистрСведений1">
                <Filter/>
                <Record>
                    <Измерение1>23r23r23r</Измерение1>
                    <Измерение2>23r23r2</Измерение2>
                    <Ресурс1>23r23r</Ресурс1>
                    <Ресурс2>23r23r</Ресурс2>
                </Record>
            </InformationRegisterRecordSet.РегистрСведений1>
        </v8msg:Body>
    </v8msg:Message>
</Документ>





Задача в том чтобы удалить эти строки

<Filter>
                    <FilterItem xmlns=";
                        <Name xsi:type="xs:string">Измерение1</Name>
                        <Value xsi:type="xs:string">фывфывфыв</Value>
                    </FilterItem>
                    <FilterItem xmlns=";
                        <Name xsi:type="xs:string">Измерение2</Name>
                        <Value xsi:type="xs:string">фыв</Value>
                    </FilterItem>
                </Filter>
    </v8msg:Message>
</Документ>
Ответ: () СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)
Вопрос: Загрузка из DBF-файла в табличную часть одного документа

Здравствуйте!

Возник вопрос: как можно в данном случае вывести данные из DBF-файла в одну табличную часть одного документа?

Получается так, что данные выводятся не в один документ, а в разный документ по одной строке (если в БД 5 строк, то выводится 5 документов и т.д.). И те поля, у которых значение "Дата", не выводятся никак.

Код:
Код:
Процедура ДействияФормыЗагрузить(Кнопка)
   //Определим путь файла загрузки

   Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
   ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытия.Каталог = "";
   ДиалогОткрытия.МножественныйВыбор = Ложь;
   ДиалогОткрытия.Заголовок = "Выберите каталог";

   Если ДиалогОткрытия.Выбрать() Тогда
   
       Путь = ДиалогОткрытия.Каталог;
   
   КонецЕсли;

   //Создаем переменную XBase
   ДБФ = Новый XBase;

   //Открываем файл
    ДБФ.ОткрытьФайл("D:\281117.DBF");

  //Проверка на наличие записей
  Если ДБФ.КоличествоЗаписей() = 0 Тогда
      Сообщить("Файл данных пуст");
      ДБФ.ЗакрытьФайл();
      Возврат
  КонецЕсли;

   //Переходим на первую строку файла
   ДБФ.Первая();

   Документ = Неопределено;
 
   Док = Неопределено;
   
   Пока Истина Цикл
   
   ЛицевойСчет = ДБФ.LS;
   ФИО = ДБФ.FIO;
   ПочтовыйИндекс = ДБФ.INDEX;
   УчастокОбслуживания = ДБФ.RAION;
   НаселенныйПункт = ДБФ.NASPUNKT;
   Улица = ДБФ.UL;
   НомерДома = ДБФ.DOM;
   НомерКвартиры = ДБФ.KV;
   НомерКомнаты = ДБФ.KOMNATA;
   ДатаЗаключенияДоговораНаПоставкуГаза = ДБФ.DDOG;
   НомерДоговораНаПоставкуГаза = ДБФ.NDOG;
   ДатаВыдачиДоговораНаРуки = ДБФ.DVID;
   НомерМобильногоТелефона = ДБФ.T_SOT;
   НомерДомашнегоТелефона = ДБФ.T_DOM;
   КодАдресаПоФИАС = ДБФ.KOD;

          Если НЕ ДБФ.NDOG = Документ Тогда

           //Записываем предыдущий документ
           Если НЕ (Док = Неопределено) Тогда
               Док.Записать();
          КонецЕсли;
         
         
           //Создаем новый документ
Док = Документы.ДоговорНаПоставкуГаза.СоздатьДокумент(); 
   
           //Заполняем реквизиты шапки
   Док.Дата = ТекущаяДата();
       КонецЕсли;
       
       // устанавливаете значения реквизитов ТЧ
   
   НоваяСтрока = Док.Реестр.Добавить();
   НоваяСтрока.ЛицевойСчет =  ЛицевойСчет;
   НоваяСтрока.ФИО = ФИО;
   НоваяСтрока.ПочтовыйИндекс = ПочтовыйИндекс;
   НоваяСтрока.УчастокОбслуживания = УчастокОбслуживания;
   НоваяСтрока.НаселенныйПункт = НаселенныйПункт;
   НоваяСтрока.Улица = Улица;
   НоваяСтрока.НомерДома = НомерДома;
   НоваяСтрока.НомерКвартиры = НомерКвартиры;
   НоваяСтрока.НомерКомнаты = НомерКомнаты;
   НоваяСтрока.ДатаЗаключенияДоговораНаПоставкуГаза = ДатаЗаключенияДоговораНаПоставкуГаза;
   НоваяСтрока.НомерДоговораНаПоставкуГаза = НомерДоговораНаПоставкуГаза;
   НоваяСтрока.ДатаВыдачиДоговораНаРуки = ДатаВыдачиДоговораНаРуки;
   НоваяСтрока.НомерМобильногоТелефона = НомерМобильногоТелефона;
   НоваяСтрока.НомерДомашнегоТелефона = НомерДомашнегоТелефона;
   НоваяСтрока.КодАдресаПоФИАС = КодАдресаПоФИАС;
       
       // Переходим на следующую запись
       Если не ДБФ.Следующая() Тогда
           //Если записей больше нет выходим из цикла
           Прервать;
       КонецЕсли;
   КонецЦикла;
 
   // записываем последний добавленный
   Если НЕ (Док = Неопределено) Тогда
       Док.Записать();
   КонецЕсли;
   
КонецПроцедуры
Ответ:
Всё, получилось! Я решил проблему путём удаления старой формы документа и создания новой.
Вопрос: Дерево из файла json превратить в дерево 1С

Доброго времени суток!
Очень нужна помощь.

Есть файл с расширением .json,нужно его открыть в 1с 8.3.6(не ниже версия).
Нужно написать обработку 1С, которая бы читала файл и формировала дерево вида:

id Название ДатаНачала ДатаКонца WWW-ссылка
ID1 Проект
ID11 Этап 1
ID12 Этап 2
Для формирования структуры необходимо использовать ДеревоЗначений и поле вывода кода должно быть этого же типа.

Прилагаю фото формы,пока как есть,и код обработки (некий такой каркас):

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
&НаСервере
Процедура ОткрытьФайлНаСервере(ф)
    //перем Файлик; 
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(ф);
    ДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных()); 
    Объект.СодержимоеФайла= ДанныеФайла.Получить();
    //Объект.СодержимоеФайла = Файлик;
КонецПроцедуры
 
&НаКлиенте
Процедура ОткрытьФайл(Элемент,ДанныеВыбора,СтандартнаяОбработка)
перем АдресВременногоХранилища;
перем ф;
 
СтандартнаяОбработка =Ложь;
// Вызываем диалог выбора файла на диске
Режим = РежимДиалогаВыбораФайла.Открытие;
Диалог = Новый ДиалогВыбораФайла(Режим);
Диалог.МножественныйВыбор = Ложь;
Диалог.Фильтр = НСтр("ru='Файл данных (*.json)|*.json|Файл данных(*.mind)|*.mind|'");
Диалог.Заголовок = НСтр("ru = 'Выберите путь к файлу и файл загрузки данных'");
 
//Выбираем файл
Если Диалог.Выбрать() Тогда
//Объект.СодержимоеФайла = Диалог.ПолноеИмяФайла;
// Читаем файл
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.ОткрытьФайл(Диалог.ПолноеИмяФайла); 
Объект.СодержимоеФайла = ПрочитатьJSON(ЧтениеJSON,,Диалог.ПолноеИмяФайла,);
 
    // Начало цикла
    Пока ЧтениеJSON.Прочитать() Цикл
            TипJSON = ЧтениеJSON.ТипТекущегоЗначения;
            Если TипJSON = ТипЗначенияJSON.Число ИЛИ TипJSON = ТипЗначенияJSON.Строка ИЛИ 
                TипJSON = ТипЗначенияJSON.Булево ИЛИ TипJSON = ТипЗначенияJSON.Null  Тогда
                // Обработать значение
                Значение = ЧтениеJSON.ТекущееЗначение;
            КонецЕсли;
            Если TипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
                // Обработать имя свойства
                ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
            КонецЕсли;
            Если TипJSON = ТипЗначенияJSON.НачалоМассива 
                ИЛИ TипJSON = ТипЗначенияJSON.КонецМассива 
                ИЛИ TипJSON = ТипЗначенияJSON.НачалоОбъекта 
                ИЛИ TипJSON = ТипЗначенияJSON.КонецОбъекта 
                ИЛИ TипJSON = ТипЗначенияJSON.Ничего Тогда
                // Обработать начало/конец массива/объекта или отсутствие данных // ТекущееЗначение читать не нужно.
            КонецЕсли;
            // Конец цикла
        КонецЦикла;;
ЧтениеJSON.Закрыть();
КонецЕсли;
ф = ПоместитьВоВременноеХранилище(Диалог.ПолноеИмяФайла,АдресВременногоХранилища);
 
ОткрытьФайлНаСервере(ф);
 
КонецПроцедуры
Ответ: Анна1111111, сколько платишь?
Вопрос: Как программно сформировать квитанцию о нормальной загрузке?

Собственно вопрос в теме. Конвертация данных. Есть сервис, который регламентом планируется запускать. В сервисе вызывается обработка УниверсальныйОбменДаннымиXML1С, заполняются нужные параметры (узел, конвертация, файл обмена и т.д.) и потом запускается выгрузка. Далее сформированный файл загружается в базу-приемник. Как после загрузки программно сформировать квитанцию о благополучной загрузке и потом ее передать базе-приемнику и загрузить ее там?
Если правильно понимаю, нужно сделать что-то типа такого на стороне загрузки после всей загрузки файла:
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("");
Запись.ЗаписатьОбъявлениеXML();
ОбменСообщение = ПланыОбмена.СоздатьЗаписьСообщения();
ОбменСообщение.НачатьЗапись(Запись, Узел);

А далее то, что получится загрузить в базе-источнике? Или что-то я упустил?
Ответ:
Для удаления регистрации с узла. Если пакет прогрузился, надо удалить объекты, загруженные этим пакетом.
Вопрос: "Выгрузка и загрузка данных XML", объекты уже есть в приемнике

Коллеги подскажите, чтобы будет если в загружаемом файле, полученном при помощи стандартной обработки выгрузка и загрузка данных xml и в базе приемнике ( при загрузке) уже есть эти объекты(документы, справочники и тд)? Они задублируются или просто обновятся из загрузочного файла? Базы одинаковые, просто в базе источнике, объекты актуальнее. Нужно перенести, обновленные данные объектов без дублей.
Ответ:
Здравствуйте!
1. Стандартный обработчик согласует элементы программы по UUID, по-этому даже если изменились наименования программа корректно их прогрузит.
2. Перед каждой операции загрузки копируйте файл *.1CD если база файловая, при наличии ошибок сразу откатите, если есть не уверенность то конечно проделайте вначале на тестовой копии.
3. Если Вы собираетесь периодически обновлять номенклатуру, то напишите простое правила на Конвертации данных и зацепите всё на автообмен
Вопрос: Загрузка данных из Excel в 1с

Всем привет! Ребята подскажите пож-та есть обработка по загрузке из эксель в 1с., при загрузке он обходит каждую строку в эксель и записывает , в итоге получается он перезаписывает один и тот же объект, в справочнике должно быть около 1000 моделей авто в итоге только одна запись, самая последняя строка которая в экселе

Попытка
        ExcelApplication = Новый COMObject("Excel.Application");
        ExcelApplication.WorkBooks.Open(Объект.ВыборФайла);
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    //Открываем необходимый лист

    ExcelApplication.Sheets(1).Select();
    //Получим количество строк и колонок.

    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel

    Версия = Лев(ExcelApplication.Version,Найти(ExcelApplication.Version,".")-1);
    Если Версия = "8" тогда
        ВсегоСтрок = ExcelApplication.Cells.CurrentRegion.Rows.Count;
        ВсегоСтолбцов = Макс(ExcelApplication.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
        ВсегоСтрок = ExcelApplication.Cells(1,1).SpecialCells(11).Row;
        ВсегоСтолбцов = ExcelApplication.Cells(1,1).SpecialCells(11).Column;
    Конецесли;

    //считываем первую строку и генерируем колонки в таблице Значений

    ТЗКонтрагентов = Новый ТаблицаЗначений;
        Сч = 1;
    Пока ЗначениеЗаполнено(ExcelApplication.Cells(1, Сч).Text) Цикл
        ИмяКолонки = ExcelApplication.Cells(1, Сч).Text;
        ИмяКолонки = СтрЗаменить(ИмяКолонки," ","");// убираем из имени колонок пробелы

        ИмяКолонки = СтрЗаменить(ИмяКолонки,"/","");// убираем слеш

        ИмяКолонки = СтрЗаменить(ИмяКолонки,".","");// убираем точки

        ИмяКолонки = СтрЗаменить(ИмяКолонки,"-","");// убираем точки

        ТЗКонтрагентов.Колонки.Добавить(ИмяКолонки);
        Сч = Сч + 1;
    КонецЦикла;
    // Добавляем значения строк начиная со второй

  Для СтрСЧ = 2 по ВсегоСтрок Цикл 
      НоваяСтрока = ТЗКонтрагентов.Добавить();
      Для НомерКолонки = 1 по ТЗКонтрагентов.Колонки.Количество() Цикл
          Если ЗначениеЗаполнено(ExcelApplication.Cells(СтрСЧ,1).Text) = Истина Тогда//До первой пустой строки

          //заполняем строку значениями

          ТекущееЗначение = ExcelApplication.Cells(СтрСЧ, НомерКолонки).Text;
          ИмяКолонки = ТЗКонтрагентов.Колонки[НомерКолонки-1].Имя;
          НоваяСтрока[ИмяКолонки] = ТекущееЗначение;
          КонецЕсли;
      КонецЦикла;
  КонецЦикла;
ExcelApplication.Quit();
КонтрГр = Справочники.Контрагенты.ПустаяСсылка();
Для Каждого Стр ИЗ ТЗКонтрагентов Цикл
            Запрос = Новый Запрос;
            Запрос.Текст="ВЫБРАТЬ
                         |    асМодели.Наименование,
                         |    асМодели.НаименованиеПолное,
                         |    асВариантыКомплектации.Наименование КАК НаименованиеКомпл,
                         |    асВариантыКомплектации.НаименованиеПолное КАК НаименованиеПолноеКомпл,
                         |    асВариантыКомплектации.Ссылка КАК комплек,
                         |    асМодели.Ссылка КАК модель,
                         |    асВариантыКомплектации.Владелец
                         |ИЗ
                         |    Справочник.асВариантыКомплектации КАК асВариантыКомплектации
                         |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.асМодели КАК асМодели
                         |        ПО асВариантыКомплектации.Владелец = асМодели.Ссылка";
            
            
            Выборка = Запрос.Выполнить().Выбрать();
            Пока Выборка.Следующий() Цикл
                 МодельАвто = Выборка.модель.ПолучитьОбъект();
                 МодельАвто.НаименованиеПолное = Стр.Марка + " " + Стр.Модель + " " + Стр.Поколение + " " + "(" + Стр.Годот + "-" + Стр.ГодДо+ ")";
                 МодельАвто.Наименование = Стр.Марка + " " + Стр.Модель + " " + Стр.Поколение;
                 МодельАвто.Записать();
                 
                 КомплекАвто = Выборка.комплек.ПолучитьОбъект();
                 КомплекАвто.Наименование =  Стр.Модификация + " " + "кузов" + " " + Стр.Серия;
                 КомплекАвто.НаименованиеПолное =  Стр.Модификация + " " + "(" + Стр.Годот + "-" + Стр.ГодДо+ ")"+" " + "кузов" + " " + Стр.Серия;
                 КомплекАвто.Владелец = МодельАвто.Ссылка; 
                 КомплекАвто.Записать();
                 
            КонецЦикла;     
           
КонецЦикла;
Ответ: сегодня только писал обработку по загрузке данных из файла
Вопрос: Загрузка больших объемов данных

Всем счастья. Задача такая. Есть у меня файл аксес. В нем хранится перечень номенклатур. Их много. Порядка 600000. Необходимо написать загрузку этих номенклатур в базу. Причем не одноразовую, в чтобы выполнять ее раз в месяц. Если есть новые добавить, если нет, то обновить старые при необходимости. Загрузку написал. Но она во-первых, достаточно медленная. Во-вторых, комп осиляет только первые 80000 штук. Как быть, что делать? Какие советы? Прошу помощи? И дай бог всем здоровья.
Ответ:
Ну там на самом деле в теории не так грустно. Т.е. база хранится в одном файле и в одной файловой группе. Создается еще группа и туда переносятся те таблицы SQL что нас интересуют... т.е. храниться будет в разных файлах, которые можно физически разнести.
Вопрос: Загрузка файлов конфигурации. Ошибка "Объект метаданных не найден".

Добрый день ув. форумчане. Пытаюсь в конфигу добавить документ из другой конфигурации посредством выгрузки и загрузки файлов. Можно конечно и объединение конфигураций сделать, но решил и этот механизм попробовал поскольку ни разу не делал. Подскажите в чем косяк. Заранее спасибо.
Ответ:
Андрей_Чернышов
Добрый день ув. форумчане. Пытаюсь в конфигу добавить документ из другой конфигурации посредством выгрузки и загрузки файлов. Можно конечно и объединение конфигураций сделать, но решил и этот механизм попробовал поскольку ни разу не делал. Подскажите в чем косяк. Заранее спасибо.

не находит подчиненный справочник
Вопрос: Стандартная обработка "Выгрузка и загрузка данных XML турбо" вылетает с ошибкой "Не хватает памяти"

1С:Предприятие 8.1 (8.1.15.14)
Бухгалтерия предприятия, редакция 1.6 (1.6.30.7)
БД файловая - 2.65ГБ
Компьютер: AMD Athlon 64x2 Dual Core 4200+ (2.2ГГц), 4ГБ ОЗУ (3.43ГБ по данным ФорточекХР).
ОС: WindowsXPSP3Proffesional

За 2009-2010 год бухгалтерия по нескольким организациям велась в 1Сv8.1
Задача: необходимо выгрузить данные по одной организации.
Как действовал: есть стандартная обработка "Выгрузка и загрузка данных XML турбо". Запустил, выбрал организацию, указал файл XML для выгрузки, отметил данные для выгрузки - поехали.
Проблема: в начале бегунок прокрутил несколько выгрузок довольно резво, а потом на документе ПоступлениеТоваровУслуг комп задумался и так думал около 10 часов. В итоге выскочила ошибка "Не хватает свободного места с:/Documents and Settings/User/Application Data/1C/1Cv81/c_98.tmp". С удивлением смотрю на свободное место на диске С: - 150ГБ. Страно однако.
Запускаю обработку ещё раз, на этот раз смотрю через диспетчер задач ресурсы, и получается, что в процессе начала обработки выгрузки документов (когда 1С на долго задумывается) начинает расти размер Файла подкачки с 400МБ до примерно 2ГБ и где-то на этом размере файла подкачки выскакивает вышеозвученная ошибка. (Точное значение размера файла подкачки не знаю, т.к. при выскакивании ошибки все ресурсы сразу освобождаются).
Вопрос: как выгрузить данные по одной организации с помощью этой обработки?

З.Ы. На форуме находил советы, типа из копии БД удалить всё, что не принадлежит требуемой организации. К сожалению моя квалификация в 1С не позволяет это провести. Могу использовать только обработки.
З.Ы.З.Ы. Пробовал это же самое провести на компе с Windows7ПрофесиональнаяSP1 (32бит) Pentium Dual-Core E5400 (2.7ГГц) 2ГБ ОЗУ. Только там в диспетчере задач вместо графика Файла подкачки, стоит график использования ОЗУ, но ситуация такая же.
Ответ:
Поиск рулит

Вложения:

  • Размер файла:
    30,3 КБ
    Просмотров:
    0
  • Размер файла:
    73,2 КБ
    Просмотров:
    1
  • Размер файла:
    74,5 КБ
    Просмотров:
    1
  • Размер файла:
    50,7 КБ
    Просмотров:
    1