Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Завантаження скачаних фото в Номенклатуру
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
kostya77
Добрий день. Мені потрібно скачати файл фото з сайиу і приєднати до номенклатури номенклатури. Роблю так

Попытка
    Ответ     = Соединение.Получить(Запрос);
Исключение
    Сообщить("Пропущена картинка в строке " + сч + "( " + Стр.Код_товара + " ) по причине " + ОписаниеОшибки() + " (" + АдресИзображения + ")");
    Продолжить;
КонецПопытки;

Если НЕ Ответ.КодСостояния = 200 Тогда
    СчКартПроп = СчКартПроп + 1;
    Сообщить("Пропущена картинка в строке " + сч + "( " + Стр.Код_товара + " ) по причине " + Ответ.КодСостояния + " (" + АдресИзображения + ")");
    Продолжить;
КонецЕсли;

ДвоичныеДанныеКартинки             = Ответ.ПолучитьТелоКакДвоичныеДанные();
АдресФайлаВоВременномХранилище     = ПоместитьВоВременноеХранилище(ДвоичныеДанныеКартинки, ЭтаФорма.УникальныйИдентификатор);

СтруктураИмени = ВернутьСтруктуруИмениФайла(АдресИзображения);

ПараметрыФайла = Новый Структура("ВладелецФайлов, Автор, ИмяБезРасширения, РасширениеБезТочки, ВремяИзмененияУниверсальное",
НоменклатураСсылка,
ПараметрыСеанса.ТекущийПользователь,
СтруктураИмени.Имя,
СтрЗаменить(СтруктураИмени.Расширение, ".", ""),
ТекущаяУниверсальнаяДата());

//ИзображениеСсылка = ПрисоединенныеФайлы.ДобавитьПрисоединенныйФайл(ПараметрыФайла, АдресФайлаВоВременномХранилище,,"");

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


Номенклатура не відкривається - помилка свариться на ОсновноеИзображение . Що роблю не так?
xlmel
мне кажется, что вы в Хранилище значения записываете адрес, а не реальные двоичные данные. Через время в том адресе ничего не будет
в свое время пришлось вычищать людям базу, когда таких картинок стало под 10Гб в ней. Лучше сделайте хранение на жестком диске, иначе у вас база будет распухать высокими темпами
kostya77
xlmel @ Сегодня, 11:46 необходимо зарегистрироваться для просмотра ссылки ,
В ХранилищеЗначения потрібно другим параметром передавати ДвоичніеДанные?
andytg
Цитата(kostya77 @ 28.05.25, 10:41) необходимо зарегистрироваться для просмотра ссылки
Що роблю не так?


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

делал так:

// справочник "ПодписиМенеджеров"
// на форме элемента создаем реквизит типа Строка (неограниченной длины) с именем "СсылкаНаКартинку" для отображения и работы с картинкой
// реквизит справочника "Подпись" имеет тип ХранилищеЗначения

// потом (это фрма элемента справочника ПодписиМенеджеров)

&НаКлиенте
Процедура СсылкаНаКартинкуНажатие(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытия.ПолноеИмяФайла = "";
    Фильтр = "Файл PNG (*.png)|*.png";
    ДиалогОткрытия.Фильтр = Фильтр;
    ДиалогОткрытия.МножественныйВыбор = Ложь;
    ДиалогОткрытия.Заголовок = "Выберете файл для загрузки";
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗагрузкиФайла",ЭтаФорма);
    ДиалогОткрытия.Показать(ОписаниеОповещения);    
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗагрузкиФайла(ВыбранныйФайл,ДопПараметр) Экспорт
    Если ВыбранныйФайл = Неопределено Тогда
        Возврат;
    КонецЕсли;
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтаФорма);
    НачатьПомещениеФайла(ОписаниеОповещения,, ВыбранныйФайл[0], Ложь, УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла,ДопПараметры) Экспорт
    Если Не Результат Тогда
        Возврат;
    КонецЕсли;
    СсылкаНаКартинку = Адрес;
    Модифицированность = Истина;
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ЭтоАдресВременногоХранилища(СсылкаНаКартинку) Тогда
        ФайлКартинки = ПолучитьИзВременногоХранилища(СсылкаНаКартинку);
        ТекущийОбъект.Подпись = Новый ХранилищеЗначения(ФайлКартинки);
        УдалитьИзВременногоХранилища(СсылкаНаКартинку);
        СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Подпись");
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Подпись");
КонецПроцедуры


// а это документ "ЗаказПокупателя"
// и потом в заказе покупателя процедура печати

// тут просто ищем в справочнике нужного пользователя по нужной фирме и если нашли его факсимиле -- выдаем его
_факсимиле = Документы.ЗаказПокупателя._ПолучитьСсылкуНаПодписьМенеджера(Объект.Ответственный, Объект.Организация);
// и показываем картинку на макете
        Если _факсимиле = Неопределено Тогда
            Сообщить("Не определено факсимиле для текущего пользователя", СтатусСообщения.Информация);
        Иначе
            // получаем и отображаем факсимиле
            ОбластьЗаголовок.Рисунки.ФаксимильнаяПечать.Картинка = Новый Картинка(_факсимиле.Подпись.Получить());
        КонецЕсли;


в таком виде работает уже шестой год
kostya77
andytg @ Сегодня, 14:52 необходимо зарегистрироваться для просмотра ссылки ,
це все добре, але у мене звичайні форми. На керованих у мене теж все працює
andytg
Цитата(kostya77 @ 28.05.25, 10:41) необходимо зарегистрироваться для просмотра ссылки
Номенклатура не відкривається - помилка свариться на ОсновноеИзображение

как именно ругается, что пишет в режиме отладки?
kostya77
andytg @ Сегодня, 15:05 необходимо зарегистрироваться для просмотра ссылки ,
Несоответсвие типов

{Справочник.ХранилищеДополнительнойИнформации.Форма.ФормаСпискаФайловИИзображений.Форма(99)}: Ошибка при установке значения атрибута контекста (Картинка)
ЭлементыФормы.ПолеИзображения.Картинка = ?(ТекущаяКартинка <> Неопределено, ТекущаяКартинка, Новый Картинка());
по причине:
Несоответствие типов
xlmel
kostya77 @ Сегодня, 13:14 необходимо зарегистрироваться для просмотра ссылки ,
Вроде первым параметром должен иметь тип Картинка. То есть, полученный файл надо сохранить на диск, потом получить Изображение = Новый Картинка(полученный файл) и потом это изображение поместить в ХранилищеЗначения
kostya77
xlmel @ Сегодня, 15:40 необходимо зарегистрироваться для просмотра ссылки ,
Как сохранить на диск?
andytg
Цитата(kostya77 @ 28.05.25, 15:47) необходимо зарегистрироваться для просмотра ссылки
Как сохранить на диск?

судя по ПолучитьТелоКакДвоичныеДанные() вы его откуда-то скачиваете http-запросами?

тогда ДвоичныеДанныеКартинки.Записать(ИмяВременногоФайла)
куда-то во временный каталог
потом временный каталог почистить, после того как
xlmel
kostya77 @ Сегодня, 14:47 необходимо зарегистрироваться для просмотра ссылки ,
ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные();

Вы получили ДвоичныеДанные. Сохраните их в файл при помощи метода Записать
ДвоичныеДанныеКартинки.Записать(ПутьКФайлу);

Дальше поместите в ХранилищеЗначения и файл с диска удалите, чтобы не засорять диск. Ну или переделайте систему, чтобы файлы хранились на диске. а не в базе
AnryMc
Наглядный пример для обычных форм

"Зарплата и управление для Украины" - справочник: "Физические лица"
kostya77
Всім дякую. Допоміг варіант зі збереженням файлу в католог тимчасових файлів
andytg
Цитата(xlmel @ 28.05.25, 15:56) необходимо зарегистрироваться для просмотра ссылки
Ну или переделайте систему, чтобы файлы хранились на диске. а не в базе

честно говоря, такое себе решение -- хранить что-то вне базы, это такой "клюшечный" вариант smile.gif, т.к. 7.7 не умела в blob-поля (binary loading object), но и там был вариант, например, конвертировать двоичные файлы в текст mime/base64 и хранить в memo-полях, которые поддерживались в dbf

но так оно хоть не потеряется при возможном переносе базы, особенно, если делать его будет кто-то, кто не знаком с тонкостями устройства местной БД
xlmel
andytg @ Вчера, 22:51 необходимо зарегистрироваться для просмотра ссылки ,
Странно, что разработчики БСП не поддерживают Ваше мнение и дают хранить присоединенные файлы на диске. а не загружать в базу. У меня есть клиент, у которого и картинки были в базе, и вложения писем. В какой-то момент эти бинарные файлы занимали больше 80% размера базы. Ну а сложности переноса я не видел. Так же, как бэкап базы делался бэкап папки с файлами, даже если сразу забудешь развернуть, то быстро исправишь. Надеюсь, что бэкапы не являются "таким себе решением"?
Vofka
Цитата(xlmel @ 29.05.25, 8:16) необходимо зарегистрироваться для просмотра ссылки
В какой-то момент эти бинарные файлы занимали больше 80% размера базы.

Какие проблемы это создает?
xlmel
Vofka @ Сегодня, 7:48 необходимо зарегистрироваться для просмотра ссылки ,
Мне всегда казалось, что чем меньше база, тем легче с ней работать и ее обслуживать, особенно это касается MS SQL. С одной стороны, вроде как, идет борьба, чтобы не дублировать сущности в базе данных, а с другой кладем кирпич в несколько Гб.
AnryMc
Цитата(andytg @ 28.05.25, 22:51) необходимо зарегистрироваться для просмотра ссылки
честно говоря, такое себе решение -- хранить что-то вне базы, это такой "клюшечный" вариант smile.gif, т.к. 7.7 не умела в blob-поля (binary loading object), но и там был вариант, например, конвертировать двоичные файлы в текст mime/base64 и хранить в memo-полях, которые поддерживались в dbf


Константа "ХранитьФайлыВТомахНаДиске"???
Vofka
Цитата(xlmel @ 29.05.25, 10:10) необходимо зарегистрироваться для просмотра ссылки
Мне всегда казалось, что чем меньше база, тем легче с ней работать и ее обслуживать, особенно это касается MS SQL.

Что вы вкладываете в понятие "легче с ней работать и ее обслуживать"? И не надо ли вам как-то обслуживать каталог с картинками: настроить доступ с разных устройств (если вы работаете через тонкий клиент в браузере с разных регионов, как папку нормально пошарить между всеми?), настроить какие-никакие права (чтобы кто-то не зашел и не поудалял там все), бекапить и т.п.?

Цитата(xlmel @ 29.05.25, 10:10) необходимо зарегистрироваться для просмотра ссылки
С одной стороны, вроде как, идет борьба, чтобы не дублировать сущности в базе данных, а с другой кладем кирпич в несколько Гб.

Какая связь между "дублированием сущностей" и "несколько ГБ" места в БД? Картинки в БД это дубли чего?

Вы выше писали:
Цитата(xlmel @ 28.05.25, 11:46) необходимо зарегистрироваться для просмотра ссылки
в свое время пришлось вычищать людям базу, когда таких картинок стало под 10Гб в ней

А какие проблемы с этим были?

Я не докапываюсь, мне дейсвительно интересно послушать мнения на этот счет.
andytg
Цитата(Vofka @ 29.05.25, 14:08) необходимо зарегистрироваться для просмотра ссылки
И не надо ли вам как-то обслуживать каталог с картинками: настроить доступ с разных устройств (если вы работаете через тонкий клиент в браузере с разных регионов, как папку нормально пошарить между всеми?), настроить какие-никакие права (чтобы кто-то не зашел и не поудалял там все), бекапить и т.п.?

вот это самая главная засада при хранении чего-то (картинок/доков/писем) вне базы
xlmel
Vofka @ Сегодня, 13:08 необходимо зарегистрироваться для просмотра ссылки ,
Хорошо, надеюсь, что Вы в курсе, что кода в программном коде Вы обращаетесь к реквизиту справочника Номенклатура через точку, то считывается весь объект, вместе с основным изображением. Хотите увеличить траффик - имеете право, ввиду того, что у топик-стартера что-то из УТ2.3 или УТП или УПП, то код будет выполняться в толстом клиенте и фактически нужно будет донести эти мегабайты до компьютера пользователя.

Что вы вкладываете в понятие "легче с ней работать и ее обслуживать"? И не надо ли вам как-то обслуживать каталог с картинками: настроить доступ с разных устройств (если вы работаете через тонкий клиент в браузере с разных регионов, как папку нормально пошарить между всеми?), настроить какие-никакие права (чтобы кто-то не зашел и не поудалял там все), бекапить и т.п.? - На сервере 1с папка которую все могут читать, но не все могут записывать. Путь к папке зашит в константе, при переезде только поменяли константу. У топик-стартера обычные формы, судя по коду, поэтому тонкого клиента нет, а кроме того, все конфигурации на БСП как-то справляются с хранением на диске

Какая связь между "дублированием сущностей" и "несколько ГБ" места в БД? Картинки в БД это дубли чего? - ну в MS SQL важным файлом является файл транзакций, если в него напихать картинок, то он увеличится размерах, при этом для всех версий будет храниться это изображение.

А какие проблемы с этим были? - база тупо стала тормозить. После того как просто убрал картинки и файлы, ситуация существенно улучшилась
TohaMonster
Vofka @ Сегодня, 8:48 необходимо зарегистрироваться для просмотра ссылки ,

Выскажу свое мнение.
Если прикрепленных файлов уже 5-10 Гб и они хранятся в Базе, то на эти же 5-10 Гб увеличиваются все архивы Базы и копии Базы. Если места дофига и База одна и копия Базы для разработки тоже одна, то проблем нет, но в какой-то момент место начинает заканчиваться. А для разработки, как правило, файлы не нужны
Хотя, есть и обратная сторона медали: возможные разборки из серии "кто удалил мой любимый файл?". Но я с таким не сталкивался

В общем-то, если файлов немного, то хранить их в Базе, конечно, удобнее. Но, начиная с некоторого объема (я бы сказал, 5Гб), они начинают раздражать

А, да, еще был случай. Вендоры что-то изменили в системе хранения файлов в каком-то жестком обновлении. И tmp файл при реорганизации начал резко отжирать память, поскольку все прикрепленные файлы пошли в него. Пришлось плясать с бубном. Если я не ошибаюсь, это было при переходе ЕРП 2.1 -> 2.5
andytg
Цитата(TohaMonster @ 29.05.25, 15:19) необходимо зарегистрироваться для просмотра ссылки
Хотя, есть и обратная сторона медали: возможные разборки из серии "кто удалил мой любимый файл?". Но я с таким не сталкивался

я сталкивался smile.gif
именно в такой вот интерпретации
и последующие претензии в стиле, "а как это могло удалиться, это же база?" (объяснения, что это НЕ база, не помогают -- "а вот мы там (в файле) сохранили важную информацию, где она?")
сюда же проблемы с отслеживанием, кто чего изменил и поиском того, кто это удалил

Цитата(xlmel @ 29.05.25, 15:10) необходимо зарегистрироваться для просмотра ссылки
надеюсь, что Вы в курсе, что кода в программном коде Вы обращаетесь к реквизиту справочника Номенклатура через точку, то считывается весь объект, вместе с основным изображением

как вариант -- хранить всякий такой мусор в подчиненном справочнике

хотя, конечно, толстый клиент -- вчерашний день sad.gif
(по правде говоря, лично я, так уж вышло, 8.0 - 8.2 благополучно пропустил, у меня было так: 1999 - 2017 (7.7 и все такое в стиле rainbow/1с++, даже еще в 99м немного застал 7.5), 2017 -- поныне (8.3, уф))

то, что спiлка снова выкатила в продажу 1С УТП под видом БАС УТП, говорит о многом sad.gif
Vofka
Цитата(xlmel @ 29.05.25, 15:10) необходимо зарегистрироваться для просмотра ссылки
Хорошо, надеюсь, что Вы в курсе, что кода в программном коде Вы обращаетесь к реквизиту справочника Номенклатура через точку, то считывается весь объект, вместе с основным изображением.

В курсе не только лишь я, а и разработчики типовых конфигураций, которые еще 100 лет назад вынесли картинки из основных справочников в отдельные справочники.

Цитата(xlmel @ 29.05.25, 15:10) необходимо зарегистрироваться для просмотра ссылки
На сервере 1с папка которую все могут читать, но не все могут записывать. Путь к папке зашит в константе, при переезде только поменяли константу. У топик-стартера обычные формы, судя по коду, поэтому тонкого клиента нет

И разве ж это "легче работать и обслуживать"?

Цитата(xlmel @ 29.05.25, 15:10) необходимо зарегистрироваться для просмотра ссылки
а кроме того, все конфигурации на БСП как-то справляются с хранением на диске

А как БСП справляется, например, с доступом к внешнему каталогу файлов, в зависимости от RLS или каких-то настроек, типа "Васе можно редактировать картинки из группы Крупы, а Пете из группы Овощи"? необходимо зарегистрироваться для просмотра ссылки
Никак. БСП может контролировать что-то для доступка к справочнику с номенклатурой, но никак не к внешней папке на диске


Цитата(xlmel @ 29.05.25, 15:10) необходимо зарегистрироваться для просмотра ссылки
ну в MS SQL важным файлом является файл транзакций, если в него напихать картинок, то он увеличится размерах, при этом для всех версий будет храниться это изображение.

Если что, то файл транзакций не всегда как бы есть. Точнее говоря, он может быть есть всегда, но при правильной модели восстановления его размер не растет. В мире 1С (та и не в мире 1С) это очень редкие случаи, когда действительно надо иметь файл транзакций. Это штука, про которую кто-то где-то слышал, но мало кто понимает что это, зачем и как этим пользоваться. Но на всякий случай "хай буде". Если у вас БД на 10-20 Гб, я очень сильно сомневаюсь, что вам это надо. И последнее. Бинарные данные в лог не пишутся как есть, там они пишутся в специальном каком-то формате, что означает, что картинка на 1 Мб это не +1 Мб в лог транзакций.

Со своего опыта вы можете сказать зачем вам БД с пишушимся файлом транзакций? Чтобы что? Только не из теоретической плоскости, а из практической, желательно с примером того, какую проблему вы решили этим.

Цитата(xlmel @ 29.05.25, 15:10) необходимо зарегистрироваться для просмотра ссылки
база тупо стала тормозить. После того как просто убрал картинки и файлы, ситуация существенно улучшилась

Т.е. проведение документов тупило, отчеты тупили, а потом после удаления картинок, перестали тупить? Вам самому это не странно звучит?

Цитата(TohaMonster @ 29.05.25, 15:19) необходимо зарегистрироваться для просмотра ссылки
Если прикрепленных файлов уже 5-10 Гб и они хранятся в Базе, то на эти же 5-10 Гб увеличиваются все архивы Базы и копии Базы.

Это один из немногих сценариев, когда вынесение файлов отдельно можно рассматривать как то, что надо. Но только при условии, что файлы не страшно потерять. Если файлы - это важная часть данных (например, договора), то я бы лучше мирился с бОльшими архивами и бОльшим временем на обработку бекапов, чем отдельно думать о бекапах и разных прочих штуках с папкой.
xlmel
Vofka @ Сегодня, 14:16 необходимо зарегистрироваться для просмотра ссылки ,
Вам хочется поспорить?

В курсе не только лишь я, а и разработчики типовых конфигураций, которые еще 100 лет назад вынесли картинки из основных справочников в отдельные справочники. - Топикстартер привел код для УТ/УТП/УПП. Там основное изображение - реквизит справочника и имеет тип Хранилище значений. Я давал свои рекомендации касательно этого вида конфигураций, и обсуждать имеются ли в каких-то конфигурациях отдельные справочники для хранения чего-то считаю бессмысленным

И разве ж это "легче работать и обслуживать"? - да, база стала существенно меньше в размерах, стала легче открываться, как только все бинарные файлы были выгружены из нее. Есть золотое правило механики, но оно прекрасно работает и в других областях. Я выиграл в быстродействии, в том. что MS SQL перестал выбирать всю память на сервере, люди смогли для нужд интернет-магазина хранить по несколько картинок при 20к позиций в справочнике Номенклатуры.

А как БСП справляется, например, с доступом к внешнему каталогу файлов, в зависимости от RLS или каких-то настроек, типа "Васе можно редактировать картинки из группы Крупы, а Пете из группы Овощи"? - практически точно так же как и обычные формы. прямого доступа к диску нет ни у кого из пользователей, то есть можно добавлять/изменять/удалять только через карточку Номенклатуры, а здесь РЛС можно настроить

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

Т.е. проведение документов тупило, отчеты тупили, а потом после удаления картинок, перестали тупить? Вам самому это не странно звучит? - Я про проведение документов ничего не писал и про формирование отчетов вроде ни слова не было, просто само открытие базы стало происходить существенно быстрее. В этот момент, насколько я помню, происходит считывание кэша, в котором могут находиться наиболее часто используемые данные. Если менеджеры по продажам/закупкам в основном работают со справочником номенклатуры, то вполне возможно, что там хранятся и какие-то данные. Еще один момент, зачастую франчайзи включают версионирование объектов. Это тоже кандидат на увеличение размеров базы, и там по умолчанию в типе объекта стоит любой справочник и документ.

Можно заставлять клиента докупать память на сервер или менять железо, и я сталкивался с такими случаями, а можно попробовать сделать так, чтобы база продолжала работать с нормальным быстродействием. Клиенты сейчас не супербогатые, так что если деньги уйдут на покупку железа, то мне заказов не будет, так что я стараюсь больше для себя. Но никого не заставляю. Каждый сам себе выбирает путь.
Vofka
Цитата(xlmel @ 30.05.25, 17:36) необходимо зарегистрироваться для просмотра ссылки
Вам хочется поспорить?

С вами? Боже упаси. Вопросов больше нет. Извините.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.