Обновление нетиповой конфигурации

28.02.15

База данных - Обновление 1С

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

   Рассмотрим обновление на примере нетиповой конфигурации УПП 1.3 находящейся на поддержке с возможностью изменения с релиза 1.3.61.2 на релиз  1.3.62.1. Так как конфигурация сама по себе довольно тяжелая, то это накладывает некоторые особенности, в частности, не всегда получается открыть в одном конфигураторе несколько окон сравнения конфигурации.

   Для обновления я использую две одинаковые копии  базы данных старого релиза. В одной из них выполняю подготовку *.cf для обновления, назовем ее, например, for_updating. Другая база остается не тронутой и служит только как вспомогательная, для сравнения конфигураций, назовем ее base. В принципе, в качестве вспомогательной может использоваться  конфигурация рабочей базы.

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

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

 В процессе обновления может появиться окно «Неразрешимые ссылки», нажимаем «Продолжить». О причинах появления данного окна поговорим ниже. 

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

   Откроется окно «Настройка правил поддержки» - для новых объектов (верхний раздел) с обеих сторон ставим «Объект редактируется с сохранением поддержки», для существующих объектов поставщика (нижний раздел) во всех четырех местах ставим флаг «Сохранять текущий режим», нажимаем «ОК». 

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

   Выполняем «Конфигурация» – «Поддержка» – «Настройка поддержки». В открывшемся окне выбираем «Сохранить в файл» и сохраняем в *.cf конфигурацию поставщика нового релиза.

   Основная конфигурация в том виде, в котором она на данный момент имеется, нам не нужна.  Закрываем конфигурацию. «Конфигурация» - «Закрыть конфигурацию». Отказываемся от сохранения изменений.

   В конфигурации для сравнения base запускаем сравнение конфигурации поставщика (старый релиз) и конфигурации поставщика из файла (новый релиз). 

 

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

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

   При нажатии на кнопку «Фильтр» откроется окно «Настройка фильтров просмотра». В данном окне устанавливаем  флаг «Показывать только дважды измененные свойства». 

    При обновлении без нашего вмешательства происходит следующее:

  • - объект не изменен нами, изменен в новом релизе – обновляется из нового релиза;
  • - объект изменен нами, не изменен в новом релизе – остается наш объект;
  • - объект изменен нами, изменен в новом релизе – это и есть дважды измененный объект, если ничего не менять – он загрузится из нового релиза.

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

   В данном примере изменено несколько общих модулей, в том числе и общий модуль «УчетНДС».

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

   Если посмотреть различия конфигураций в общем модуле «УчетНДС», то мы увидим следующую картину:

   Если же сравнить эти модули в базе для сравнения base, то картина будет другая:

   Очевидно, что функции «СобратьДанныеДляПечатиИсправленияСчетаФактуры», «СобратьДанныеДляПечатиКорректировочногоСчетаФактуры»  и прочие  содержат наши доработки, но не меняются при обновлении, а значит, нет смысла тратить время на их просмотр и анализ.

   Поэтому, выполняя по процедурное обновление  с выделенных процедур и функций можно снять флаги:

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

   Например, так:

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

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

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

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

   После того как общие модули были проанализированы и у части процедур сняты флаги обновления, видим, что у модулей теперь установлен режим объединения – индивидуальная настройка:

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

 

   Для этого в базе base с помощью контекстного меню вызовем  «Отчет о сравнении объектов…». В открывшемся окне должны стоять все флаги в группе «Объекты».

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

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

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

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

   Причина тому, добавление справочника «ОсновныеСредства» в план видов характеристик «СвойстваОбъектов». Если обновить форму элемента справочника «ОсновныеСредства»  мы получим неразрешимые ссылки, о чем и будет свидетельствовать окно: 

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

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

   В этом случае в процессе объединения появилось бы окно «Неразрешимые салки».  Вариантов выбора в данном окне два: 1) «Пометить все для объединения»; 2) «Продолжить».

   На мой взгляд, правильнее выбирать «Пометить все для объединения». 

   В этом случае  план видов характеристик «СвойстваОбъектов» будет  добавлен как объект для объединения в дереве во вновь открывшемся окне «Обновление…»

 

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

   Рассмотрим, что произошло бы, если бы мы выбрали «Продолжить» в окне «Неразрешимые ссылки». В этом случае форма элемента справочника «ОсновныеСредства» стала бы новой, а план видов характеристик  «СвойстваОбъектов» остался бы старым. В этом случае у нас затрутся изменения в диалоге формы элемента справочника, а именно на странице «СвойстваИЗначения», смотри рисунок ниже. 

 

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

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

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

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

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

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

 

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

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

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

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

   2. Флаг обновления формы выставлен, обновление сделано в режиме «Взять из новой конфигурации поставщика»

   В данном случае диалог формы элемента  полностью приводится в соответствие с диалогом формы элемента поставщика.

    Вернемся к обновлению.  С модулями объекта и модулями менеджера документов поступаем также как с общими модулями, обновляем их по процедурно. С формами документов поступаем аналогично тому, как  поступали с формами справочников.

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

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


 

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

   После того как проработали все дважды измененные объекты в окне обновления нажимаем «Выполнить»

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

   В открывшемся окне «Настройка правил поддержки» проверяем, установленные флаги, хотя по умолчанию должны стоять правильно, нажимаем «ОК». 

 

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

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

   Чтобы удобнее было проконтролировать  выполнение  данного процесса, в базе base запустим сравнение конфигурации поставщика и основной конфигурации старого релиза. 

 

   В базе for_updating сделаем тоже самое.  Контролируем дважды измененные объекты, различий быть не должно.

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

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


обновление не типовая не типовой нетиповой нетиповая

См. также

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147088    649    360    

235

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

В статье рассматривается использование WinMerge для сравнения, объединения и обновления конфигураций 1С. Отдельно рассматривается методика трехстороннего сравнения при обновлении конфигурации

21.10.2024    2659    mixaeel    18    

17

Обновление 1С Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    501    3    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    859    gull22    2    

8

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

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

17.09.2024    4367    vatkir    15    

10

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Упрощенное обновление конфигураций 1С (предпочтительно самописных) с помощью батника и Яндекс Диска (по публичной ссылке)

1 стартмани

22.08.2024    556    0    user1694357    0    

4

Обновление 1С Системный администратор Россия Абонемент ($m)

На ИТС есть статья, в которой поверхностно описан процесс автоматического обновления тонких клиентов. В качестве примера, что логично, представлены методы конфигурации 1С. Но, в отличие от того же управления списками баз, для обновления не требуется хранить информацию, потому я решил переписать код на php, чтобы можно было отвязаться от 1С. Не работает для файловых баз, подключенных как File="ПутьКПапкеБазы"; (а жаль), для опубликованных файловых - работает.

1 стартмани

20.08.2024    681    MikeSh    10    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. KroVladS 35 28.02.15 12:19 Сейчас в теме
2. TMV 14 28.02.15 18:25 Сейчас в теме
Согласен с (1), ничего нового не сказано. Зацепило
уделено внимание обновлению форм
- и где?
Что касатеся получения конфигурации поставщика, зачем это? Вы на первом же шаге получили окно сравнения\объединения с *.cfu - ну, так и включайте фильтр по дважды измененным сразу. В последних *.cfu-ах из изменений только регл.отчетность, а вы предлагаете нам шарить всю рабочую измененную конфу?!
Neuroproton; jan-pechka; T_SON; ivangrant; 1Cynep4eJIoBek; IvanSok; VasMart; omut; zqzq; +9 Ответить
5. el-le 297 03.03.15 08:28 Сейчас в теме
(1) KroVladS, все уже написано до нас, найдено, открыто и пропето....
Поэтому, вопрос не в том, что писать, а в том, как излагать.
Заслуги автора приведенной вами статьи бесспорны.
user1433617; Dali; +2 Ответить
3. ZOMI 141 01.03.15 12:40 Сейчас в теме
Нетиповая, а не "не типовая". Поколение троечников.
sergo5; s0u1; RuslanKhanow; +3 Ответить
4. el-le 297 03.03.15 08:09 Сейчас в теме
(3) ZOMI, вы правы, грамматическая ошибка исправлена. "Пишутся слитно с не имена прилагательные, которые в сочетании с не приобретают противоположное значение; обычно такие слова можно заменить синонимами без не". Например: небольшой (ср. маленький), нетиповой (ср. оригинальный). Да, я не отношусь к поколению троечников ))
15. bamblbi 29.03.19 10:18 Сейчас в теме
(3)Вырвано из контекста, не может быть объективно правильным.
6. rasswet 82 04.03.15 10:56 Сейчас в теме
с дважды изменеными надо быть внимательным.
пару раз попадалось такое, что я внес изменения в типовой модуль и обновление предлагало это затереть, не считая, что модуль дважды изменен. косяк.
7. lavdeenko 42 20.03.15 12:33 Сейчас в теме
Ничего нового, но пусть будет. Новичкам полезно почитать несколько статей про одно и тоже, написанное немного по другому.

Я бы после обновления конфигурации всем настоятельно рекомендовал запускать "Проверку конфигурации" - даже в типовых релизах последнее время есть ошибки, не говоря про собственное творчество. Про "проверку" не написали ни в этой ни в другой статье.
Lacoste4life; +1 Ответить
8. avz_1C 10 19.07.15 12:57 Сейчас в теме
Спасибо, Автор.

Очень толково изложено.
Lacoste4life; Kinestetik; maxli28; SmArtist; maytuganov; gsm_999; +6 Ответить
9. nick_e 2 21.01.16 03:58 Сейчас в теме
Почему у меня нет кнопок Пометить для объединения и Продолжить? вижу только Отмена(((
10. el-le 297 22.01.16 08:30 Сейчас в теме
(9) nick_e, кнопки "Продолжить" и "Пометить все для объединения" отсутствуют в тех случаях когда объединение сделать нельзя. Проблема может быть вызвана тем, что некоторые объекты после обновления будут удалены из конфигурации, но в других объектах конфигурации останутся ссылки на них. Нужно анализировать связи объектов.
Прикрепленные файлы:
11. mairon 06.10.16 16:48 Сейчас в теме
По поводу обновления рабочей базы - а не останутся ли у нас объекты, удалённые в конфигурации поставщика? И нужно ли проставить все галочки на самом последнем шаге (при обновлении рабочей базы подготовленной cf-кой), либо оставляем расстановку галочек по умолчанию на выбор системы?
За статью однозначно "+", очень полезно ознакомиться!
12. el-le 297 07.10.16 12:13 Сейчас в теме
(11) mairon, при обновлении рабочей базы с помощью поддержки «Конфигурация» – «Поддержка» – «Обновить конфигурацию» флаги будут расставлены системой, при этом дважды измененные объекты будут загружены из нового релиза (наши изменения затрутся). Далее конфигурацию не сохраняем и выполняем объединение с подготовленной нами конфигурацией. В данный момент все флаги должны быть установлены (восстанавливаем сделанные нами доработки).После этого можно сохранить конфигурацию, обновить конфигурацию базы данных.
mairon; olegmedvedev; +2 Ответить
13. el-le 297 07.10.16 12:27 Сейчас в теме
(11) mairon, если вы имеете ввиду установку флага "Разрешить удалять объекты основной конфигурации" в настройках сравнения конфигурации, то данный флаг я не устанавливаю, так как в противном случае могут быть удалены реквизиты которые мы сами добавили.
mairon; olegmedvedev; +2 Ответить
14. VovkaPutin 31 15.08.18 09:41 Сейчас в теме
(13), Имхо, много лишнего. Обновляем конфу через хранилище конфигурации. Так всегда можно вернуться к конф. до обновления. Формы обновляем С Приоритетом Основной конфигурации. Попроцедурно для них режим Взять из новой и убираем галки ненужные, а в форме после выполнения просто удаляем повторяющиеся поля.
16. DenisMedvedev 03.04.19 08:53 Сейчас в теме
Пытаюсь обновиться по этой статье.
Не понятно следующее: если получать конфигурацию поставщика из рабочей базы, то размер файла, например 600Мб, если же я получаю конфигурацию поставщика из пустой базы, то размер файла 500Мб. Что тянется из рабочей базы в конфу поставщика?

Из пустой базы получаю конфу след.образом:
1. создаю пустую базу
2. загружаю в нее полную конфу из cf файла, взятого из полного дистрибутива (3.0.67.63)
3. накатываю все обновления до нужного релиза, естественно с запуском в режиме пользователя после каждого обновления
4. получаю конфу поставщика
Но размер значительно меньше.

Поэтому не понятно вот на этом этапе:

В конфигурации для сравнения base запускаем сравнение конфигурации поставщика (старый релиз) и конфигурации поставщика из файла (новый релиз). - Какой файл использовать для сравнения?
17. shura_a 25.06.19 13:46 Сейчас в теме
Кто-нибудь сможет ответить: почему выставляем галки именно так (для новых объектов поставщика)?
Прикрепленные файлы:
18. el-le 297 27.06.19 04:04 Сейчас в теме
(17) shura_a, снимать новые объекты с поддержки совсем не стоит, можно установить "Объект не редактируется", но тогда если вдруг нужно будет внести в него изменения придется изменять порядок настройки правил поддержки отдельно, а в указанном варианте объект будет обновляться и одновременно открыт для внесения изменений, что удобно, если конфигурация активно дорабатывается.
Corbis; shura_a; +2 Ответить
19. lev6975 14.01.20 13:32 Сейчас в теме
Вопросец: На скрине где обновляется форма справочника "ОсновныеСредства", где неразрешимые ссылки, возле "ФормаЭлемента" стоит "замочек", значит, она типовая?
Как же ее диалог может быть изменен???
Или это просто скрин от другого чего - то?
20. applesound 1 02.04.21 16:41 Сейчас в теме
Цитирую:
Очевидно, что функции «СобратьДанныеДляПечатиИсправленияСчетаФактуры», «СобратьДанныеДляПечатиКорректировочногоСчетаФактуры» и прочие содержат наши доработки, но не меняются при обновлении, а значит, нет смысла тратить время на их просмотр и анализ.

Не проще в базе base выполнить сравнение основной конфигурации и конфигурации поставщика. Таким образом мы увидим только функции изменённые нами. В Вашем случае приходится методом исключения искать функции с нашими изменениями.
21. user705698_bursev 30.06.21 10:34 Сейчас в теме
Скажите пожалуйста, а почему в настройках правил поддержки нужно ставить для новых объектов из конфигурации поставщика, что они редактируются с сохранением поддержки? не логичнее было бы ставить их с "замочком", то есть без возможности редактирования? Так бы мы сразу видели, что никаких "наших" изменений там нет, что объект полностью типовой.
user2043812; +1 Ответить
22. chess762 13.08.21 16:55 Сейчас в теме
Если в окне неразрешимых ссылок нажать кнопку Пометить все для объединения то конфигуратор может создать дубликаты объектов, в этом случае вновь созданные объекты (они помечены синим значком) я оставляю, а существующие дубликаты удаляю.
Неразрешимые ссылки могут остаться после предыдущих обновлений, если их не исправили. Поэтому перед обновлением надо провести их поиск Конфигурация-Проверка конфигурациии- поставить галку Поиск некорректных ссылок, у меня их оказалось-377.
Оставьте свое сообщение