Как сделать изменения в 1с

Обновлено: 03.07.2024

Дата публикации 04.10.2019

Использован релиз 3.0.73

Для группового изменения реквизитов документов или элементов справочников в программе необходимо выделить в списке эти документы / элементы справочника, открыть правой кнопкой мыши контекстное меню и выбрать команду "Изменить выделенные. ", в открывшейся форме отметить флажками реквизиты, которые нужно изменить, и указать их новое значение, выполнить изменение по кнопке "Изменить выделенные".

Рассмотрим механизм группового изменения реквизитов на примере изменения покупателя в документах "Счет на оплату" (реквизит "Контрагент"):

  1. Раздел: Продажи – Счета покупателям.
  2. Выделите в списке документы (рис. 1), у которых необходимо изменить значение реквизита, правой кнопкой мыши откройте контекстное меню и выберите команду "Изменить выделенные . ". Чтобы выделить несколько документов, нажмите и удерживайте на клавиатуре клавишу Shift (для выбора документов в одном диапазоне) или Ctrl (для выбора отдельных документов) и отмечайте мышью нужные документы.
  3. В открывшейся форме "Изменение выделенных элементов" на закладке "Реквизиты" (рис. 2) найдите реквизит, который подлежит изменению (в нашем примере "Контрагент"), и установите флажок в колонке .
  4. В колонке "Новое значение" (рис. 2) укажите новое значение реквизита. Если необходимо задать пустое значение, то нужно включить флажок в колонке , а колонку "Новое значение" оставить незаполненной. Одновременно можно менять несколько реквизитов.
  5. Обратите внимание, что все реквизиты следует менять с большой осторожностью, а некоторые вообще не стоит менять:
    • если изменить реквизиты табличной части документа / справочника (на закладках формы "Изменение выделенных элементов", отличных от закладки "Реквизиты"), то новое значение будет подставлено во все строки табличной части документа / справочника;
    • если изменить цифровой реквизит документа / справочника (в том числе из табличной части), то реквизиты, зависящие от измененного, не будут пересчитаны;
    • если изменить реквизит документа / справочника (в том числе из табличной части), который зависит от других реквизитов (например, договор зависит от контрагента и организации), то будет нарушена корректность данных и ссылочная целостность информационной базы.
  6. В списке реквизитов в форме "Изменение выделенных элементов" могут быть реквизиты, по умолчанию недоступные для изменения и отображающиеся серым цветом. Это "ключевые" реквизиты, которые могут повлиять на другие объекты (списки, документы, справочники и др.), поэтому они защищены от случайных изменений. При попытке ввода новых значений для этих реквизитов программа предлагает их разблокировать. Если это необходимо, подтвердите свой выбор по кнопке "Да".
  7. По кнопке "Изменить реквизиты" изменения будут сохранены, а проведенные документы будут перепроведены (в примере на рис. 1 в колонке "Контрагент" – первоначальное значение покупателя, на рис. 3 – значение после изменения).




Дополнительно в форме "Изменение выделенных элементов" можно (рис. 4):

  1. С помощью кнопки "Ранее измененные реквизиты" выбрать настройки группового изменения, которые применялись для данного списка ранее.
  2. С помощью кнопки "Дополнительные параметры" настроить определенные условия по изменению объектов:
    1. Флажок "Изменять в транзакции" включает обработку данных в транзакции. Это означает, что если в процессе сохранения не удалось сохранить один из объектов по каким-либо причинам (например, потому что объект редактируется в это же время другим пользователем), то будут отменены изменения во всех выбранных объектах. По умолчанию флажок "Изменять в транзакции" включен.
    2. Флажок "Прерывать по ошибке" включен по умолчанию. В этом случае если сохранение объекта по каким-либо причинам невозможно, программа выдаст предупреждение и предложит продолжить изменение оставшихся объектов либо прервать обработку для выяснения причин проблемы. Если флажок не включен (это возможно при снятом флажке "Изменять в транзакции") и при этом один из объектов не удалось сохранить, то такой проблемный объект будет пропущен, а обработка остальных данных будет продолжена.


    Смотрите также

    В этой статье я покажу идеальный пример, когда программист 1С пришел к клиенту, а там ему дали какое-то задание по доработке конфигурации. Ситуация такая, что сделать эти изменения на рабочей базе по какой-то причине не представляется возможным: там или работают пользователи, или нет рабочего места у клиента, или ещё что-то. Поэтому программист 1С принимает решение взять конфигурацию с собой на свое рабочее место (домой или в офис), и уже на своем рабочем месте внести все изменения, а потом вернуться к клиенту и загрузить сделанные изменения в его рабочую базу.

    Я разберу основные шаги внесения изменений в конфигурацию клиента, особенно она будет интересна начинающим программистам 1С.

    Как сохранить конфигурацию 1с

    Сохранить конфигурацию в файл

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

    Как загрузить конфигурацию 1с

    После того, как вы придете на свое рабочее место, необходимо создать пустую базу. Делается это достаточно просто.

    Создание пустой базы 1С

    Создание пустой базы 1С

    Создание пустой базы 1С

    Создание пустой базы 1С
    Создание пустой базы 1С

    Создание пустой базы 1С

    Загрузить конфигурацию из файла

    В результате выполнения команды, откроется окно выбора файла с расширением cf, в котором вы выбираете ранее сохраненный у клиента cf-файл.

    Конфигурация находится на поддержке

    Включить возможность изменения конфигурации

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

    Более подробно о поддержке конфигурации читайте в моей статье Поддержка конфигурации 1С.

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

    Объект поставщика не редактируется

    А также включим для справочника Номенклатура и документа ЧекККМ c основной формой документа правило «Объект поставщика редактируется с сохранением поддержки»

    Объект поставщика редактируется с сохранением поддержки

    Объект поставщика редактируется с сохранением поддержки

    Объект поставщика редактируется с сохранением поддержки

    Внести изменения в конфигурацию 1С

    Изменим справочник Номенклатура, добавив в него реквизит.

    Изменение объекта конфигурации 1С

    А также документ ЧекККМ: добавим реквизит и поместим его на форму в виде элемента Поле.

    Изменение объекта конфигурации 1С

    Изменение объекта конфигурации 1С

    Сделав нужные изменения, сохраним cf-файл нашей измененной конфигурации, как мы это делали ране, предварительно протестировав изменения.

    Объединение конфигурации 1с

    После того, как вы всё сделаете на своем рабочем месте и придете к клиенту, необходимо загрузить ваши изменения в клиентскую конфигурацию.

    И здесь две рекомендации:

    1. Обязательно сохраните базу клиента, перед тем, как вносить изменения;
    2. Не используйте команду «Загрузить конфигурацию из файла».

    Почему нельзя использовать команду «Загрузить конфигурацию из файла»? Потому что, если во время вашего отсутствия с клиентской конфигурацией что-то делали, то вы этой командой сотрете все ранее сделанные изменения.

    Сравнить объединить с конфигурацией из файла

    Сравнить объединить с конфигурацией из файла

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

    Сравнить объединить с конфигурацией из файла

    Сравнение конфигураций 1С

    Иногда возникают ситуации, когда вам просто нужно сравнить основную конфигурацию с какой-то конфигурацией из файла, без выполнения процесса объединения.

    Сравнение конфигураций 1С

    После выполнения команды нужно будет выбрать, что с чем мы сравниваем.

    Сравнение конфигураций 1С

    И если мы сравниваем с конфигурацией из файла, то необходимо указать нужный cf-файл.

    После выйдет окно, где будут показаны отличия одной конфигурации от другой.

    Сравнение конфигураций 1С

    Возврат на поддержку измененной конфигурации 1С

    Редко, но бывают случаи, когда снимают полностью с поддержки измененную конфигурацию 1С, если мы в этом случае поставим обратно на поддержку при помощи команды «Загрузить конфигурацию из файла», то все изменения сделанные ранее затрутся.

    Чтобы сохранить изменения нужно использовать уже знакомую команду «Сравнить объединить с конфигурацией из файла».

    Во время возврата на поддержку нужно выбрать cf-файл типовой конфигурации 1С.

    После выбора файла типовой конфигурации, выйдет предложение поставить конфигурацию на поддержку.

    Поставить конфигурацию 1С на поддержку

    Сравнение конфигурации 1С с файлом

    После нажатия кнопки «Выполнить», появится окно с настройками правил поддержки для объектов, в этом окне оставим всё по умолчанию.

    Настройка правил поддержки

    Конфигурация встанет на поддержку с возможностью изменений.

    Но наша конфигурация еще не полностью на поддержке.

    Конфигурация 1С на поддержке

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

    Настройка правил поддержки

    Настройка правил поддержки

    Настройка правил поддержки

    Статьи по теме обновлений 1С:

    Если по мимо задач по администрированию, перед вами стоят задачи по разработке в 1С, то рекомендую вам свою книгу «Программировать в 1С за 11 шагов», в которой подробно и основательно шаг за шагом даются основные знания по разработке в 1С.

    Программировать в 1С за 11 шагов

    1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
    2. Научитесь понимать архитектуру 1С;
    3. Станете писать код на языке 1С;
    4. Освоите основные приемы программирования;
    5. Закрепите полученные знания при помощи задачника.

    Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

    Основы разработки в 1С такси

    1. Очень доступный и понятный язык изложения
    2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
    3. Поймете идеологию управляемого приложения 1С
    4. Узнаете, как разрабатывать управляемое приложение;
    5. Научитесь разрабатывать управляемые формы 1С;
    6. Сможете работать с основными и нужными элементами управляемых форм
    7. Программирование под управляемым приложением станет понятным

    Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
    Только для читателей моего блога,
    промо-код на скидку в 300 рублей на весь комплект: blog


    Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
    .

    можно оплатить вручную:


    Имя и Полное имя — название индентифицирующее пользователя (Например ФИО или должность: Иванов Иван, Бухгалтер, Администратор и т.п.).

    Если вы заполнили поля «Пароль» и «Подтверждение пароля» и не хотите, чтобы Пользователь его менял, то можно установить галочку «Пользователю запрещено изменять пароль».

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

    Аутентификация операционной системы — галочка в этом поле отвечает за возможность авторизации с помощью имени пользователя операционной системы. Пользователь — имя пользователя информационной системы (например, \\dom\kirill, где dom — домен сети, а kirill имя пользователя ОС). 1С при запуске сначала проверяет авторизацию через ОС, а потом авторизацию 1С.

    Аутентификация OpenID — включение возможности авторизации с помощью технологии OpenID. OpenID — это открытая децентрализованная система, которая позволяет пользователю использовать единую учётную запись для аутентификации на множестве не связанных друг с другом сайтов, порталов, блогов и форумов.

    Защита от опасных действий — включая эту опцию система будет выдавать пользователю предупреждение о выполняемом действии и потенциальной опасности его выполнения.

    4.2. Вкладка «Прочие». На ней необходимо проставить галочки у ролей соответствующих создаваемому пользователю. Например для администратора ставим флаг «Полные права»


    Язык по умолчанию — если конфигурация разработана на нескольких языках, при необходимсоти можно поменять.

    Режим запуска — авто,управляемое или обычное приложение (ниже сравнительный пример).

    1) обычное приложение


    2) управляемое приложение — интерфейс «Такси».


    1. Нажимаем «Ок» и создастся пользователь, в том числе на форме «Список пользователей» (п.3) появится новый пользователь.

    Для удаления пользователя повторяем п.1-2. Далее выбираем нужного пользователя и нажимаем «Удалить»(красный крестик)


    Чтобы изменить данные пользователя например переименовать повторяем п.1-2. Далее выбираем нужного пользователя и нажимаем «Изменить» (зеленый карандашик). После откроется форма «Пользователь» с установленными параметрами (п.3-4), которые при необходимости меняем и нажимаем «Ок» для сохранения измененй.


    В режиме 1С Предприятие, на примере 1с Комплексная автоматизация

    1. Заходим в 1с, выбираем базу и нажимаем кнопку «1C:Предприятие»


    1. Заходим в меню «НСИ и администрирование» в разделе «Администрирование» выбираем «Настройка пользователей и прав»


    1. В открывшихся настройках разворачиваем раздел «Пользователи» и по нажимаем на ссылку «Пользователи»


    1. В открывшейся окне для создания нового пользователя нажимаем кнопку «Создать»


    1. Открывается форма создания Пользователя. Обязательно для заполнения поля подчеркнутые красным — Полное имя (имя пользователя для идентификации) и Имя для входа (имя, которое нужно будет в зависимости от настроек пользователя ввести или выбрать из списка для входа в базу 1с). При заполнении поля «Полное имя» автоматически заполняется «Имя (для входа)», но при необходимости его можно поменять.


    По ссылку «Установить ограничение» можно установить ограничения для входа в программу:


    «Аутентификация 1С;Предприятие» делает активными функции:

    Обратите внимание, что при создании нового пользователя система автоматически выставляет ряд галочек/настроек предпочтительных для работы пользователя, но при необходимости их можно изменять.

    Для полноты информации о пользователе можно заполнить другие необязательные поля например Физическое лица, вкладку адрес и телефон и т. п.

    После проведения всех настроек нажимаем «Записать» (сохраняет заполненную информацию) или «Записать и закрыть» (сохраняет заполненную информацию и закрывает форму)

    Для того чтобы скрыть не работающего в программе пользователя при выборе из всех списков необходимо повторить действия из п.1-3, найти в списке нужного пользователей и двойным кликом по нему открыть настройки. Далее необходимо установить галочку «Недействителен». После этого все функциональные опции на вкладке «Главное» станут недоступными для исправления.


    Для сохранения новой настройки нажимаем «Записать»или «Записать и закрыть».

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

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

    Порядок объектов 1C

    Первое, я не рекомендую изменять порядок объектов.

    К пример, был такой порядок:

    Порядок объектов 1С

    Порядок объектов 1С

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

    Порядок объектов 1С

    Этот фильтр, по сути, показывает изменения, которые мы внесли в конфигурацию, и сдвинутые таким образом объекты будут нам мешать работать с остальными объектами.

    Снятие с поддержки и удаление

    Желательно, не снимать с поддержки объекты поставщика, и тем более удалять их. Потому что, если мы снимем с поддержки какой-то объект, например этот справочник.

    Снятие объекта 1С с поддержки

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

    Снятие объекта 1С с поддержки

    Новые методы в общем модуле поставщика

    Следует воздержаться от изменения общих модулей поставщика. Если появилась необходимость в новой процедуре или функции, то лучше создать собственный общий модуль и написать в нём эту процедуру.

    Если мы создадим в общем модуле поставщика свою процедуру или функцию.

    Изменение общих модулей 1С

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

    Изменение общих модулей 1С

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

    Изменение общих модулей 1С

    Тогда во время обновления, не придётся выполнять работы по совмещению изменений поставщика и ваших изменений в общем модуле.

    Переименование объектов, процедур и функции 1С

    Не рекомендуется переименовывать объекты, процедуры и функции поставщика. Потому что, во время обновления придется контролировать, чтобы эти измененные методы не были затерты методами поставщика.

    Например, переименуем в общем модуле функцию, а также вызов этой функции в другом методе.

    Переименование объектов, процедур и функций 1С

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

    Переименование объектов, процедур и функций 1С

    Если мы посмотрим, что изменилось.

    Переименование объектов, процедур и функций 1С

    То увидим, что платформа пытается удалить метод, у которого мы поменяли название, а в место него записать типовой метод, и также изменить код в процедурах поставщика, где мы изменили название метода.

    Переименование объектов, процедур и функций 1С

    С одной стороны, ни чего страшного: все вернется, как было. Но, тут возможны нюансы: первое, если мы что-то доработали в нашем методе с измененным названием, то эти доработки пропадут; второе, если мы используем метод с измененным названием где-то, например, в нашем общем модуле то его вызов таким и останется, как мы написали, что приведет к ошибкам.

    Доработка методов модулей поставщика

    Если появилась необходимость выполнить доработки какого-то типового метода, то, по возможности, все доработки выносите в отдельную процедуру. Эту процедуру лучше написать в добавленном вами общем модуле.

    Например, в общем модуле ОбщегоНазначения нужно доработать процедуру «МестоположениеКомпонентыКорректно».

    Рекомендации по доработке общих модулей поставщика 1С

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

    Рекомендации по доработке общих модулей поставщика 1С

    И её уже вызовем в процедуре общего модуля поставщика.

    Рекомендации по доработке общих модулей поставщика 1С

    Копирование методов поставщика с последующей доработкой

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

    Например, в этом случае, вместо процедуры «МакетСуществует» модуля поставщика.

    Копирование методов поставщика с последующей доработкой

    Можно создать копию этой процедуры в своем общем модуле

    Копирование методов поставщика с последующей доработкой

    Эту копию изменить как надо, а потом поменять вызов типовой процедуры.

    Копирование методов поставщика с последующей доработкой

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

    Изменение подсистем 1С: создать подчиненную

    Если вы создали какой-то объект, то его желательно нужно добавить в подсистему. Рекомендую воздержаться от изменения типовой подсистемы, и создать собственную подсистему, в состав которой добавлять новые объекты.

    Иногда такое не всегда приемлемо, потому что новый объект нужно включить в видимость какой-то подсистемы поставщика. Если добавить объект в саму подсистему поставщика.

    Изменение подсистем 1С

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

    Изменение подсистем 1С

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

    Изменение подсистем 1С

    И в эту подсистему включить ваш новый объект.

    Изменение подсистем 1С

    Тогда вам не придется при обновлении каждый раз работать с составом типовой подсистемы.

    Рекомендации по изменению ролей в 1С

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

    Если вы создали новый объект, и стоит необходимость дать права доступа на этот объект, то изменив существующую роль, добавив в неё нужные права на этот объект.

    Рекомендации по изменению ролей

    Вам при обновлении придется каждый раз сравнивать состав ролей, если эта роль была изменена поставщиком в обновлении.

    Рекомендации по изменению ролей

    Поэтому, если это возможно, то лучше создать новую роль и добавить в неё новый объект, и тогда не придётся сравнивать составы ролей при обновлении.

    Рекомендации по изменению ролей

    Изменение типовых форм

    Рекомендуется, ограничить изменение внешнего вида формы, для этого лучше все новые элементы можно создать программно, особенно если их не много.

    Если изменения значительны, то стоит создать новую форму копию типовой с префиксом, и добавить её в основные формы объекта. Но этот вариант спорный, потому что если вы измените типовую форму то при обновлении вы увидите, что форма поменялась, а в случае своей формы, вы это не узнаете, и можете пропустить критичное изменение. Или в случае, когда создана своя форма, то при обновлении нужно будет каждый раз анализировать изменения типовой формы.

    Рекомендации по написанию своего кода

    Желательно весь код, который вы вносите в объекты поставщика (в модуль объекта, в модуль менеджера объекта, в модуль формы и т.д.) начинать и заканчивать префиксом, по которому будет легко найти этот код. К примеру, название организации, собственно ФИО и т.д., а также писать дату, причину изменения, описание изменения.

    Рекомендации по написанию кода

    На этом я закончу эту статью. Список рекомендаций открытый. Если у вас есть какие-то дополнения к полученной информации, то обязательно пишите о них в комментариях.

    Подробно и наглядно рекомендации по изменению типовых конфигураций 1С в этом видео:

    Статьи по теме обновлений 1С:

    Если по мимо задач по администрированию, перед вами стоят задачи по разработке в 1С, то рекомендую вам свою книгу «Программировать в 1С за 11 шагов», в которой подробно и основательно шаг за шагом даются основные знания по разработке в 1С.

    Программировать в 1С за 11 шагов

    1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
    2. Научитесь понимать архитектуру 1С;
    3. Станете писать код на языке 1С;
    4. Освоите основные приемы программирования;
    5. Закрепите полученные знания при помощи задачника.

    Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

    Основы разработки в 1С такси

    1. Очень доступный и понятный язык изложения
    2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
    3. Поймете идеологию управляемого приложения 1С
    4. Узнаете, как разрабатывать управляемое приложение;
    5. Научитесь разрабатывать управляемые формы 1С;
    6. Сможете работать с основными и нужными элементами управляемых форм
    7. Программирование под управляемым приложением станет понятным

    Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
    Только для читателей моего блога,
    промо-код на скидку в 300 рублей на весь комплект: blog


    Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
    .

    можно оплатить вручную:

    Читайте также: