Тёмный

Доработка 1С. Запрет редактирования проведенных документов 

IRONSKILLS - Курсы по 1С
Подписаться 56 тыс.
Просмотров 23 тыс.
50% 1

КАК ДОБАВИТЬ ФУНКЦИОНАЛ ЗАПРЕТА РЕДАКТИРОВАНИЯ ПРОВЕДЕННЫХ ДОКУМЕНТОВ В 1С?
Привет, друзья! Иногда нужно установить запрет на редактирование уже проведенных документов в открытом периоде. Сегодня мы покажем как, реализовать такой функционал в типовой конфигурации 1С, не снимая конфигурацию с поддержки, используя механизм расширений в 1С.
Расширение для 1С:Бухгалтерия (базовая) 3.0:
clck.ru/x9nty
🔵Записаться на курс "Профессия программист 1С: с нуля до профи": ironskills.by/programmist-1c
Поддержать канал можно по ссылке: donate.stream/ya410011655962993
#1с с #ironskills
---
С уважением, команда IRONSKILLS

Опубликовано:

 

1 сен 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 116   
@nurtikplayzygggyy8904
@nurtikplayzygggyy8904 Месяц назад
Самый лучший канал по Разработке в 1С. В будущем если будут вебинары с удовольствием буду присутствовать!
@ironskills-1c
@ironskills-1c 21 день назад
Спасибо за просмотр и комментарий)
@msg62msg59
@msg62msg59 Год назад
Иван, огромное спасибо! Поясняешь каждое действие, и всё понятно.
@user-li5gg5tx3d
@user-li5gg5tx3d Год назад
Комментаторы, вы тут все такие "на опыте". А реально, по-любому пишите говно-код, который потом не разобрать. Изучайте принципы ООП и SOLID. Это единственный 1с программист, который доходчиво объясняет в ютубе) Жду новый контент
@user-qv5oh5cx4c
@user-qv5oh5cx4c Год назад
Может ты тогда почитаешь про нормальные формы баз данных? Ничего что он их тут нарушает? " Принципы солид ООП", а базу по нормальным формам ? Какое склеивание строк, какая константа с неограниченной длиной. Регистр сведений - самый лучший вариант. При этом я не говорю, что это плохо, рынок хочет быстро и дешево, так пусть получает такие решения
@mendicator4319
@mendicator4319 Год назад
@@user-qv5oh5cx4c его решение изящнее, какой нах регистр сведений
@user-qv5oh5cx4c
@user-qv5oh5cx4c Год назад
@@mendicator4319 и правда, а зачем мы тогда вообще заморачиваемся и храним данные в различных таблицах? Может тогда также через запятую в строку, и в константу, у нее же неограниченная длина, ой как удобно 😍
@mendicator4319
@mendicator4319 Год назад
@@user-qv5oh5cx4c константа тоже таблица, причем конкретно эта мизерного размера. Чтение скуля практически мгновенное. Разницы что ты будешь читать из регистра или из такой константы нет. И да, в 1С нет нормальных форм базы данных, везде избыточность
@user-qv5oh5cx4c
@user-qv5oh5cx4c Год назад
@@mendicator4319 да, одна таблица на одну константу? А вот в старых платформах, которые до сир пор ходят, это одна таблица, где хранятся все константы. ОЧЕНЬ вкусно туда записывать большие строки. Я о том, что да, по скорости это будет одно и тоже. Но формы придумали не просто так, это масштабируемость. Если завтра вам придёться добавить новую колонку к этой табличке, или поменять логику работы? Как же удобно работать со стройкой и раскладывать ее постоянно, ну просто прекрасно. Да и правда, избыточность просто необходима на сегодняшний день, некоторые правила просто морально устарели, но блин, первым правилом пользуются все на уровне интуиции. Зачем пихать разнородную информацию в одну сущность, это неправильно.
@user-tq2bt4mk1s
@user-tq2bt4mk1s Год назад
Огромное спасибо за видео! Формат нравиться, хорошо что задачу Вы показали от начала и до конца, на типовой - это супер!
@user-rs8ub7gd1d
@user-rs8ub7gd1d Год назад
Просто супер. Очень грамотные и толковые пояснения. Автору респект и уважуха.
@ronnnnie85
@ronnnnie85 Год назад
Спасибо. Отличный формат. Особенно интересны задачи с типовыми конфигурациями.
@YuryBatiaev
@YuryBatiaev Год назад
Большое спасибо! Форма подачи материала сжатая и, на мой взгляд, лучшая из всех! Только недавно делал подобное, только ещё было условие, чтобы пользователь с определённой ролью не мог снимать пометку проведения.
@Ren6684
@Ren6684 Год назад
Видео просто находка!!! Лайк однозначно! Давай больше таких видео!!!!
@AlisherKarimov96
@AlisherKarimov96 7 месяцев назад
Отлично! Вот это я удачно попал. Как раз на работе поставили задачу разработать дополнительный запрет для определенных док-в, в том числе в разрезе пользователей. Но можно ведь реализовать такой же, более полноценный и гибкий инструмент. Спасибо Иван. Разбор задач класс👍
@user-cu2bb6bm7n
@user-cu2bb6bm7n Год назад
Спасибо большое, отличное видео, особенно для тех, кто только начинает.
@romanjuravleff5728
@romanjuravleff5728 Год назад
спасибо за очередную полезную лекцию. хотелось бы еще увидеть запрет видимости чего либо (справочники/документы/др)
@190slava190
@190slava190 Год назад
Спасибо. Очень хорошая подача материала.
@vitalikos2010
@vitalikos2010 Год назад
Огромное спасибо! Особенно за принцип выбора элементов "галочками", а то я уже отчаялся в попытка сделать такой механизм выбора...
@timurdanilenko3582
@timurdanilenko3582 Год назад
Более правильным, в данном случае, было бы врезаться в метод ИзменениеЗапрещено. Сначала проверим наш запрет, затем (если по нашему запрету можно редактировать), вызовем метод из конфигурации (ПродолжитьВызов). Такая реализация позволит не только интерактивно запрещать редактировать, но и когда документ записывается программно.
@user-hj8gp8nu6d
@user-hj8gp8nu6d 6 месяцев назад
Всё понятно. Вопросов нет. Препод супер!
@litmagics
@litmagics Год назад
Уровень объяснения материала у Ивана в режиме - БОГ!
@kalambur729
@kalambur729 Год назад
Отличный формат! Без воды. Просьба указывать версию платформы.
@PTolkachev
@PTolkachev Год назад
Процедуру "ОбновитьВидимостьВидовДокументов" можно сделать НаКлиентеНаСервереБезКонтекста и параметром передавать форму. Тогда не будет лишнего (и не нужного) серверного вызова при изменении значения реквизита на форме.
@user-cy1zb5hc6j
@user-cy1zb5hc6j Год назад
Было очень интересно, Спасибо!
@user-eq2cz8ce7o
@user-eq2cz8ce7o Год назад
Просто, но изящно. Спасибо!
@cam_180
@cam_180 Год назад
Спасибо, отличный материал.
@MrDoctorRoot
@MrDoctorRoot Год назад
Спасибо за видео, всё по делу. Единственное не хватает проверки на выбор хоть одного документа из списка)
@user-mk3cq9ko7s
@user-mk3cq9ko7s Год назад
Отличная подача, молодец! В 1С давно, но было интересно!! Единственное, тут наверно платформа была с лицензией проф, так как на базовой лицензии расширения вроде не работают.
@user-wv1wh7sd9p
@user-wv1wh7sd9p 4 месяца назад
Спасибо! Прекрасный урок!!!!
@mynumbers5746
@mynumbers5746 Год назад
Формат разбора задачь ОГОНЬ ! ПРям чувствуешь как НЕО в матрице, впитыешь 1сКунфу. И по скорости видео тоже отлично. Что-то по архитектуре можно было добавить, если бы вы комментировали, что такой-то подход ведёт к нагрузке сервера, другой подход более трудоёмкий. И обошлись без запросов в этот раз. Лайк501
@Imstalcon
@Imstalcon Год назад
Отличное видео, узнал много нового!
@Feofan4ik
@Feofan4ik Год назад
Как всегда высшая оценка по шкале крутости.
@user-fp7jn9ev4v
@user-fp7jn9ev4v Год назад
Суперпонятное объяснение!
@vladtrue4854
@vladtrue4854 Год назад
Отличное видео 👍
@user-gk6zr6ql7g
@user-gk6zr6ql7g Месяц назад
Респект Вам🎉
@user-xd1ye6bq7k
@user-xd1ye6bq7k 6 месяцев назад
Видео очень познавательное.
@vika5247
@vika5247 Год назад
Спасибо огромное!!! ♥
@user-rn2ml9lp7b
@user-rn2ml9lp7b Год назад
Класс, спасибо!
@shuvol7516
@shuvol7516 Год назад
Иван, спасибо за новое видео, как всегда, все очень ясно и понятно (кто ясно мыслит, тот ясно излагает), небольшое уточнение, вы показывали на БП базовой, в базовую версию не получится подключить расширение(кроме патчей 1с), если она не подключена к полной версии платформы, стоит это уточнить для желающих повторить
@ironskills-1c
@ironskills-1c Год назад
Согласен, упустил этот момент. Спасибо большое, в будущем буду стараться упоминать такие вещи)
@user-pm3lr8nd9p
@user-pm3lr8nd9p Год назад
Видео познавательное, буду использовать новые знания в работе. Хотелось бы видео по созданию внешней обработки для регламентного задания(запуск команд объектов, формирование файлов и отправка на почту клиентам)
@user-pc9wg4jt8l
@user-pc9wg4jt8l Год назад
Класс!
@WhoAmI-sx6fb
@WhoAmI-sx6fb Год назад
А есть список плана по видео? Когда примерно ждать обновление не типовых и настройка sql и 1с сервера кластера
@OspanovSerik
@OspanovSerik 8 месяцев назад
Супер!
@user-vw1ow5fl4e
@user-vw1ow5fl4e Год назад
Как всегда, ясно-понятно! Иван, хотелось бы разобраться, как через расширение редактировать, вывести пользовательскую колонну в табличную часть Приходная накладная с (цена товара в usd) Спасибо. Круто!
@tym1980
@tym1980 Год назад
откройте форму в конфигурации, в разделе "реквизиты", и основной реквизит (как правило это Объект) поместите в расширение. Только после этого можно изменять форму в расширении
@PTolkachev
@PTolkachev Год назад
Я бы не стал помещать пустую строку в константу "IS_ИменаЗапрещенныхДляРедактированияДокументов" если выбрали вариант запрета отличный от "Использовать для выбранных". Это позволило бы сохранять список документов в случае, если, например, потребовалось временно отключить запрет. А в реализованном варианте в таком случае придётся вспоминать, какие именно документы были запрещены и заново проставлять все нужные флаги.
@VasEkStart
@VasEkStart 10 месяцев назад
очень полезно было посмотреть, качественно поданный материал. только наверное надо было бы еще и по правам уточнить, т.к. в данном случае эта схема будет работать только у пользователя с правами Администратора, всем остальным же доступ к документам будет просто закрыт, независимо от установленных значений в расширении.
@ironskills-1c
@ironskills-1c 9 месяцев назад
Спасибо за дополнение)
@provseiobovseh
@provseiobovseh Год назад
Круто
@user-zq8fw9ms1s
@user-zq8fw9ms1s Год назад
Спасибо за видео! Формат нравится. Был пропущен момент с переносом галок справа налево.
@klmitry
@klmitry Год назад
18:33
@vladislavvassiliev7482
@vladislavvassiliev7482 Год назад
При проверке вхождения документа в список запрещённых, не быстрее было бы искать в строке-константе название документа? Конечно, добавив ";" в начало и с конец обеих строк.
@user-xo3xy5fb8t
@user-xo3xy5fb8t 9 месяцев назад
Спасибо за видео! Формат очень нравится. Подскажите, пожалуйста, чем можно заменить использование констант, т.к. типовая конфигурация в режиме совместимости 8.3.14, а константы в данном режиме не поддерживаются.
@ironskills-1c
@ironskills-1c 9 месяцев назад
Здравствуйте!) Можно создать план видов характеристик (ПВХ), в нём реквизит "Значение", и хранить предопределенные значения в этом ПВХ)
@user-xo3xy5fb8t
@user-xo3xy5fb8t 9 месяцев назад
Спасибо!@@ironskills-1c
@letoosenpapirosim
@letoosenpapirosim 4 месяца назад
При проверке документа на возможность редактирования, лучше сначала проверять включена ли такая настройка, нужно нам вообще что-то проверять, а потом что за объект, какие там документы запрещены и тп.
@ironskills-1c
@ironskills-1c 2 месяца назад
Спасибо за комментарий)
@Ren6684
@Ren6684 Год назад
Можешь сделать видео? Есть обработка и на стороне сервера происходит длительная операция например нужно много документов перебрать каким то оброзом изменить. И что бы пользователь не видел крутящиеся колесеко, вывести прогресс бар, которое покажет сколько еще ждать
@ironskills-1c
@ironskills-1c Год назад
Спасибо за идею, Антон, постараемся сделать что-то подобное)
@user-mr3qg2sv8r
@user-mr3qg2sv8r Год назад
Большое спасибо за Ваш труд. Можно уточнить по одному моменту: для чего раскладывать строку в массив, для поиска, а не искать сразу в строке? Это оптимальнее для скорости поиска или какая-то другая причина? Или просто приведен один из вариантов возможной реализации? Интересуюсь без "задней мысли", просто при использовании строк с разделителями как варианта некого списка, я произвожу поиск сразу в этой строке с разделителями (естественно если такая строка относительно небольшого размера), поэтом если мой вариант медленнее или затратнее по памяти, я буду использовать Ваш метод.
@ironskills-1c
@ironskills-1c Год назад
Здравствуйте, Дмитрий!) В видео показан лишь пример реализации, искать в строке тоже можно)
@denisbabiuc8389
@denisbabiuc8389 11 месяцев назад
@@ironskills-1c Вот тоже самое думал при просмотре видео (насчет массивов и строк). Зачем в цикле создавать массив, а потом из него строку с разделителями. Неужели нельзя было сразу в цикле создавать строку константы добавляя виды документов? Огромное спасибо за Ваш труд! Всегда рад Вашим новым видео. Удачи!
@denisbabiuc8389
@denisbabiuc8389 11 месяцев назад
@@ironskills-1c Ниже увидел все за и против.
@andreyblokhin6195
@andreyblokhin6195 Год назад
Здравствуйте! Спасибо за видео! Скажите, почему сразу после ... ИмяДокумента = МетаданныеОбъекта.Имя; ИменаЗапрещенныхДокументов = Константы.IS_ИменаЗапрещенныхДляРедактированияДокументов.Получить(); ... Мы сразу не используем ... Если СтрНайти(ИменаЗапрещенныхДокументов, ИмяДокумента) Неопределено Тогда ... а получаем из строки массив строк МассивЗапрещенных?
@dasant4ever929
@dasant4ever929 Год назад
ИмяДокумента может быть частью имени другого документа.
@user-kz8rb1fk4s
@user-kz8rb1fk4s Год назад
Фоновая музыка огонь) на экзамене конечно за запись конкатинации текста в константу оценку снизили бы. Регистр сведений однозначно. Строки неограниченной длины это зло.
@ironskills-1c
@ironskills-1c Год назад
Согласен, но не хотелось усложнять) А вообще строки неограниченной длины в типовых сплошь и рядом)
@PTolkachev
@PTolkachev Год назад
После внедрения данного решения "как есть" сразу пользователи прибегут с жалобами, что они не могут документы открыть, потому что у них ошибка прав доступа. Т.к. текущая реализация работает только под полными правами. Всем остальным ролям чтение новых констант не доступно и при попытке прочитать их значение в функции проверки приведёт к данной ошибке. Есть два варианта: 1. Перед проверкой устанавливать привелигированный режим вызовом функции "УстановитьПривилегированныйРежим(Истина)". 2. В расширение добавить одну из базовых ролей, например, БазовыеПраваБСП, и добавить в расширении для этой роли права на чтение новым константам.
@ironskills-1c
@ironskills-1c Год назад
Спасибо за дополнение, Павел. Добавлю только, что для расширений есть флаг "Использовать основные роли для всех пользователей". При установленном флаге пользователи не прибегут ;)
@justserg4891
@justserg4891 Год назад
Условие видимости 1 строкой делается) примерно: Видимость = Вариант = Перечисление; В расширяемой функции тоже проще можно сделать: Возврат Результат ИЛИ РезультатИзменениеЗапрещено; Зачем городить ненужные кучи строк кода, но для новичков пойдет.
@ironskills-1c
@ironskills-1c Год назад
спасибо за комментарий) да, можно короче, но хочется, чтобы начинающим тоже было понятно)
@user-nk1bs5ks6u
@user-nk1bs5ks6u 2 месяца назад
А с помощью внешней обработки можно будет изменять такие документы. Я бы на такой вариант тоже сделал бы проверку ))
@ironskills-1c
@ironskills-1c 2 месяца назад
Да, программист изменить документ программно (из кода) сможет)
@Elitte2012
@Elitte2012 Год назад
Скажите а если пользователь будет перепроводить документы в рамках закрытия месяца программа не будет ругаться?
@ironskills-1c
@ironskills-1c Год назад
Нет, поскольку при закрытии месяца документы проводятся программно, а запрет сделали только при проведении из формы.
@user-ts3ye1sr7z
@user-ts3ye1sr7z Год назад
Почему то расширение не работает на ручные операции, может из-за того что у него нет статуса не проведен, либо проведен, либо помечен на удаление
@ironskills-1c
@ironskills-1c Год назад
Нужно проверить, может быть для документа "Операция" не используется дата запрета редактирования (т.е. дата запрета на эти документы не влияет)
@Rio3000ful
@Rio3000ful Год назад
Формат разбора задач супер. Лайк! p.s. иконку с автором бы поменьше сделать. в ~1,5 раза и фоновую музыку не включать))
@user-uc4cp1tb9i
@user-uc4cp1tb9i Год назад
А у Вас свой канал есть? Или Вы только на чужих каналах советы раздаете?
@user-yx4tz3tl8d
@user-yx4tz3tl8d Год назад
Хотелось бы видео а запрете на просмотр опред. Бух. Счетов, напр. Сч.70.
@ironskills-1c
@ironskills-1c Год назад
Спасибо за идею для ролика
@neurabrain
@neurabrain Месяц назад
не совсем понятно - зчем такая функция нужна, ведь у пользователя все равно есть возможно распровести изменить и снова провести. Логичнее функция запрета любого изменения проведенного документа в том числе и распроведения, при этом целесообразно было бы создать кнопку на документе или некую форму в которой формировался бы запрос на разрешение распроведения документа, и если запрос утверждается, то возможность распровити и изменить документ появляется. А эта функция странная - не понятно какой смысл эти ограничения несут? если это просто для обучения и смысла реального действительно нет, то вопросов нет, видео познавательное
@ironskills-1c
@ironskills-1c 21 день назад
Да, это скорее учебный пример, чем окончательное решение)
@provseiobovseh
@provseiobovseh Год назад
А как сделать чтобы пользователь видел только свои документы, и редактирование разрешено. А чужие нет. Это РЛС. Но все осложняется, то что это фреш.
@ironskills-1c
@ironskills-1c Год назад
Да, Михаил, это надо настраивать на уровне профиля групп доступа ограничение по ответственному...
@WackyMan
@WackyMan 5 месяцев назад
Для ут такой настройки нет
@NoBodyAnyBody32
@NoBodyAnyBody32 Год назад
+100500
@lexxkrt
@lexxkrt 8 месяцев назад
а если добавится вариант запрета (разрешения) то сразу все сломается, нужно не иначе делать, а иначеесли с проверкой варианта запрета, даже если нет других вариантов, они могут появиться в будущем, типичный 1эсовский подход, моё работает, а дальше пофиг
@ironskills-1c
@ironskills-1c 7 месяцев назад
Спасибо за комментарий) Решение не претендует на готовое решение, это лишь учебный пример, показывающий алгоритм решения задачи.
@user-fl6ip7jq8m
@user-fl6ip7jq8m Год назад
Спасибо за данный урок. Очень информативно. Единственное пожелание - убрать музыкальный фон.
@vama9606
@vama9606 Год назад
Я даже музыку не заметил) Слушал на скорости 1.5.
@halokon47
@halokon47 Год назад
чет задача странная) редактировать нельзя, но снять с проведения проведенный документ можно)!
@arkadiyezhov4481
@arkadiyezhov4481 Год назад
тот же вопрос. Для нужд упр. и регл учета это мегадырень. Тоесть Мареванне из бухгалтерии нельзя лезть в сданный закрытый период, но если она распровведет док то можно. Браво! Но все же думаю тема показа не о правильности логики изменений..
@ironskills-1c
@ironskills-1c Год назад
это можно сказать защита от случайного проведения, например, когда пользователи повально закрывают формы документов кнопкой "Провести и закрыть")
@dasant4ever929
@dasant4ever929 Год назад
Зачем массив собирать, а потом в строку склеивать? Можно же было сразу в цикле итоговую строку сформировать
@LiffeApp
@LiffeApp Год назад
Реально. Что то он намудрил.
@timurdanilenko3582
@timurdanilenko3582 Год назад
@@LiffeApp такой способ формирования быстрей, чем через конкатенацию.
@user-pc9wg4jt8l
@user-pc9wg4jt8l Год назад
@@timurdanilenko3582 Ничего подобного. Тем более, что в итоге все равно будет конкатенация.
@mendicator4319
@mendicator4319 Год назад
Через строку конкатенация это колхоз
@timurdanilenko3582
@timurdanilenko3582 Год назад
@@user-pc9wg4jt8l нет, не тоже самое. Когда мы складываем строки, проге приходиться увеличивать количество памяти, занимаемой строковой переменной (как динамические массивы в дельфи и пр.), т.к. мы изначально выделили мало памяти (собственно сколько памяти нужно, в 1С указать нельзя). А метод СтрСоеденить вычисляет длину конечной строки, сразу создает переменную с нужной длиной и при конкатенации не нужно наращивать память. Примерно так это работает.
@PTolkachev
@PTolkachev Год назад
В при чтении на сервере проверить, что текущий объект - документ можно гораздо проще: Если Метаданные.Документы.Содержит(ТекущийОбъект.Метаданные()) Тогда ... ну и можно обойтись без использования массива запрещенных, а ограничиться поиском по подстроке: Если СтрНайти(ИменаЗапрещенныхДокументов, ИмяДокумента) > 0 Тогда ... Мой вариант функции IS_ИзмененияЗапрещены ======================================================= Функция IS_ИзмененияЗапрещены(ТекущийОбъект) УстановитьПривилегированныйРежим(Истина); МетаданныеОбъекта = ТекущийОбъект.Метаданные(); Если Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда ВариантЗапрета = Константы.IS_ВариантЗапретаРедактирования.Получить(); Если ВариантЗапрета = Перечисления.IS_ВариантыЗапретаРедактирования.ИспользоватьДляВсех Тогда Возврат Истина; ИначеЕсли ВариантЗапрета = Перечисления.IS_ВариантыЗапретаРедактирования.ИспользоватьДляВыбранных Тогда ИменаЗапрещенныхДокументов = Константы.IS_ИменаЗапрещенныхДляРедактированияДокументов.Получить(); Возврат СтрНайти(ИменаЗапрещенныхДокументов, МетаданныеОбъекта.Имя) > 0; КонецЕсли; КонецЕсли; Возврат Ложь; КонецФункции =======================================================
@aasamola
@aasamola Год назад
Поиск по подстроке, можно словить ошибку, если одно имя документа будет в составе другого имени документа («АвансовыйОтчет», «АвансовыйОтчетНовый»). И лучше использовать не массив, а структуру, и проверять через Свойство, это позволит исключить моменты связанные с регистрами букв, вдруг в имени документа поменяют в одном символе регистр (редкий случай, но возможность такого исключать нельзя). Ну и соответственно тогда и разделитель использовать вместо «;» - «,». ИменаЗапрещенныхДокументов = Новый Структура (Константы.IS_ИменаЗапрещенныхДляРедактированияДокументов.Получить()); ЗначениеПометки = ИменаЗапрещенныхДокументов.Свойство(ИмяДокумента);
@ironskills-1c
@ironskills-1c Год назад
Спасибо большое, Павел, за то что поделились альтернативным способом решения👍
@ironskills-1c
@ironskills-1c Год назад
Спасибо, Алексей!)
Далее
VENOM: THE LAST DANCE - Official Trailer (HD)
03:15
Просмотров 12 млн
Китайка и Пчелка 5 серия😂😆
00:20
Асинхронные функции в 1С
16:42
Просмотров 23 тыс.
Как прочитать XML в 1С
14:39
Просмотров 14 тыс.
VENOM: THE LAST DANCE - Official Trailer (HD)
03:15
Просмотров 12 млн