«Undefined is not function» или почему перестал работать веб-клиент «1С» в Google Chrome 37

05.09.14

База данных - Инструменты администратора БД

Последний релиз популярного браузера Google Chrome помимо очередных новшеств и багфиксов принес головную боль 1С-разработчикам. Ошибка проявляется при использовании веб–клиента "1C" в браузере Google Chrome 37 и всех остальных бродилках, основанных на Chromium (например, Opera). При попытке вызвать модальное окно, Google Chrome 37 выплевывает ошибку: «Underfined is not function». При нажатии единственной кнопки «ok» веб-клиент сгенерирует стандартное сообщение «Открытие нового окна было заблокировано, видимо сработал блокировщик всплывающих окон» и предложит перезапустить приложение. Перезапуск приложения вернет на окно авторизации и дальше все по кругу.

 

 




Способ решения #0

Переписать участки кода с вызовом модальных окон в соответствии с рекомендациями фирмы "1С". Мой проект на текущей стадии не был готов к использованию новых функций, поэтому на этапах вызова окна загрузки файлов и вызова любого модального окна я ловил «Underfined is not function».

 





Способ решение #1

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


Способ решения #2


Дальше я решил попробовать перевести проблемных клиентов на старые версии браузера Google Chrome. Мне удалось раздобыть в сети дистрибутив «Google Chrome 32» и он успешно был внедрен нескольким клиентам с отключенной функцией автоматического обновления. Способ опять же рабочий, но не элегантный – нельзя же всех лишить возможности обновления браузера.


Способ решения #3


Предыдущие способы имеют явные минусы, поэтому я решил отправиться и почитать информацию из ChangeLog’а к последней версии Google Chrome. Поиск по слову «modal» вывел меня на пункт, где четко говорилось, что поддержка функции showModalDialog() в новой версии Google Chrome удалена. Отлично, уже хоть что-то.

Перейдя в детальное описание этой фичи, я увидел, что при необходимости данную функцию можно активировать (!!!). Разработчики Google Chrome поступили мудро и оставили пути отступления, которыми можно пользоваться аж до мая 2015 года. Этого времени хватит, чтобы разработчики успели обновить свои решения.


Теперь собственно говоря само решение. Открываем редактор реестра Windows (regedit) и переходим в раздел «HKEY_LOCAL_MACHINE\SOFTWARE\Policies». Здесь вам нужно создать новые разделы:«Google\Chrome\EnableDeprecatedWebPlatformFeatures»






После переходите в раздел «EnableDeprecatedWebPlatformFeatures» и создайте в нем строковый ключ с именем «1С» и присвойте ему значение «ShowModalDialog_EffectiveUntil20150430». Должно получиться что-то вроде этого:

 




На этом шаге редактор реестра можно закрывать и открывать Google Chrome. В адресной строке бродилки вводим: «chrome://policy/» (без кавычек) и переходим по этому адресу. Должна открываться страница с политиками Chrome. 


Изначально она будет пустой. Нажимаем кнопку «Повторно загрузить политики». Если вы все сделали правильно в реестре, то после нажатия кнопку вы увидите табличку c одной записью о функции «showModalDialog».

 

 

Теперь никаких ошибок в веб-клиенте не будет. Ваши клиенты смогу продолжать работать, а вы получите время для адаптации конфигурации к нововведениям. Чтобы немного облегчить процесс, я сделал экспорт описанных выше ключей в файлик. Можете его загрузить и импортировать в свой реестр. Экспорт делал в Windows 7. 

Исправление ошибки веб-клиента в Google Chrome 37: chrome37_fix_by_spider_net.zip

Если не помогло

Я проверил рассмотренный в заметке способ на двадцати пользователях – все прекрасно заработало. Не повезло 21-му. Все ключи в реестр импортировались нормально, но на странице chrome://policy так ничего и не появилось. Оказалось, что подобные проблемы с политиками Chrome не только у меня. У пользователей на «StackOverflow» возникали аналогичные ситуации, и оказалось, что способ с добавлением ключей в реестр работает только у тех, чьи компьютеры входят в домен. Мой компьютер и машины тех 20 пользователей входят в домены, поэтому у нас все заработало сразу. Я опять принялся искать решение проблемы и в итоге нашел. Способ чуть сложней, но в итоге проблема решилась окончательно.

Итак, если ваш компьютер не входит в домен, и вы столкнулись с ошибкой веб-клиента 1С «underfined is not function» выполните несколько шагов:

  • Загружаем по ссылке административный шаблон настроек политик Chrome. По ссылке доступен adm шаблон. Если требуется в формате admx или json для Linux, то качаем полный архив с шаблонами отсюда (https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip. Распаковываем в какую-нибудь директорию.
  • Открываем консоль локальных групповых политик gpedit.msc (например, через «пуск» -> «Выполнить»).

 

 

  • Раскрываем узел «Конфигурация компьютера» и кликаем правой кнопкой мыши по «Административные шаблоны». В контекстном меню выбираем «Добавление или удаление шаблонов».

 

 

  • В появившемся окне нажимаем кнопку «Добавить» и выбираем файл «chrome.adm», который мы извлекли из загруженного в пункте 1 архива. Наш шаблон должен появиться в списке текущих шаблонов политики. Нажимаем кнопку «Закрыть».

 

 

  • Переходим в узел «Административные шаблоны» -> «Классические административные шаблоны» -> «Google» . В этом узле ищем пункт «Включить устаревшие функции веб-платформы».

 

 

  • Дважды кликаем по нему и в появившемся окне устанавливаем переключатель на позицию «Включить». В разделе «Параметры» активируется кнопка «Показать». Нажимаем ее.

 

 

  • В появившемся окне кликаем по первой строке и вводим: «ShowModalDialog_EffectiveUntil20150430» (без кавычек). После этого нажимаем «Ok» и аналогичную кнопку в окне «Включить устаревшие функции веб-платформы». Затем закрываем редактор локальных групповых политик.

 

 

  • Открываем в Google Chrome уже знакомую страницу «chrome://policy» и кликаем по кнопке «Повторно загрузить политики».

 

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

 

Вступайте в нашу телеграмм-группу Инфостарт

chrome 37 underfined is not function веб-клиент

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    36268    209    104    

197

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    16650    72    39    

89

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    15696    61    10    

95

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    38157    114    152    

82

Администрирование Инструменты администратора БД Удаленное управление Системный администратор 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Расширение разработано для автоматизации интеграции «1С:Зарплата и управление персоналом (редакция 3.1)» с сервисом Яндекс 360 через платформу «n8n». Расширение позволяет автоматически создавать учетные записи Яндекс для новых сотрудников, обновлять данные существующих сотрудников и блокировать учетные записи уволенных сотрудников. Обмен данными осуществляется через API Яндекс 360 с использованием промежуточного сервера платформы n8n, что обеспечивает гибкость, масштабируемость и упрощение интеграционных процессов.

3600 руб.

03.04.2025    1185    3    0    

4

Инструменты администратора БД Системный администратор 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    64304    99    59    

82

Инструменты администратора БД Пользователь 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    11392    14    4    

22
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Franco 84 05.09.14 13:35 Сейчас в теме
Используйте, по возможности, 1-ый способ, а ещё лучше 0-ой способ. На своей небольшой конфигурации проще исправить. С пользователями сражаться было сложнее.
А вот с типовыми и на поддержке... сложнее... Как говорится, 'требуйте в магазинах вашего города...'.
2. antonov_i 320 05.09.14 07:53 Сейчас в теме
(1) Franco, Увы, мне пришлось выбрать самый последний. Конфигурацию со временем доработаем, но на это нужно время, а его как всегда нет.
3. BabySG 06.09.14 15:45 Сейчас в теме
4. antonov_i 320 08.09.14 00:51 Сейчас в теме
(3) BabySG, а вы не могли бы скинуть комментарий в личку или здесь опубликовать (если позволяют правила)? У меня права не позволяют просматривать раздел по ссылке.
5. kholkin 211 08.09.14 11:56 Сейчас в теме
(4) вот что по ссылке
Добрый день!
Дело в том что в версии Chrome 37 поддержка модальных окон отключена:
blog.chromium.org/2014/0... »»

Пока еще можно принудительно включить их поддержку через политики Windows:
www.chromium.org/adminis... »»
1 мая 2015 г. эта возможность будет убрана.

Предварительная работа в Платформе по отказу от модальности была направлена именно на решение этой проблемы.

В браузере FireFox отказ от поддержки модальных окон также находится в планах:
bugzilla.mozilla.org/sho... »»
antonov_i; +1 Ответить
8. antonov_i 320 08.09.14 17:16 Сейчас в теме
(5) kholkin, Большое спасибо! Жаль, что у меня нет доступа к этому разделу. Смог бы сэкономить кучу времени.

(7) BillJR, Ну во-первых, я собираюсь перейти на 8.3. Моя конфигурация вполне позволяет это сделать безболезненно. Что касается "Вопрос" и "Предупреждение", то если мне не изменяет память, то в 8.3 появились альтернативные реализации подобным методам. Например, "ПоказатьПредупреждение". Вот их и буду использовать.
6. DIMM10 08.09.14 14:50 Сейчас в теме
Спасибо за статью, теперь хоть понятно стало в чем проблема была.
7. BillJR 08.09.14 22:20 Сейчас в теме
Интересно, как вы планируете переделать конфигурацию, чтобы в веб клиенте не появлялись служебные окна с ошибками или окна, открывающиеся при вызове метода Вопрос или Предупреждение и т.п. Чтобы это исправить необходимо изменять mainform_preload.js файл веб клиента и функцию Web.Core.showModalDialog в которой вызывается стандартный метод, который заблокирован в Chrome. В версии 8.3 данная проблема сведена к минимуму. Если мне не изменяет память, там появляется только одно модальное окно, в случае потери связи с сервером и невозможности выполнить запрос.
9. tindir 09.09.14 10:20 Сейчас в теме
Отлично! Спасибо. Спасительная статья. Я как сводовод (свод отчетов) был "бехумно рад" очередному обновлению хрома. Теперь реально стало ясно что и где. Работаю пока по пункту "переход на мазилу" собрал портабл для всех клиентов.
10. antonov_i 320 09.09.14 21:04 Сейчас в теме
(9) tindir,

Рад помочь. Я на FireFox перевел часть клиентов, но почему-то он работает хуже с веб-клиентом, чем браузеры на web-kit. При скролинге больших справочников веб-клиент роняет Firefox. Причем эта ошибка проявляется в 8.3 чаще, чем в 8.2. Я плюнул на все и начал адаптировать конфигурацию. Тем более, что FireFox тоже скоро откажется от модальных окошек.
11. Serg O. 314 10.09.14 10:35 Сейчас в теме
от модальных окошек в коде... можно избавиться, адаптировать

А ЧТО ДЕЛАТЬ с кнопками среды?

Сохранить, Сохранить в файл...
даже "волшебный" [?] "О программе" - не работает


это кнопки "платформы 1С" под web-клиента...

обязательно 8.3 ставить (2 сервера 1С предприятия поднимать придется)
и какой релиз?
14. antonov_i 320 10.09.14 23:01 Сейчас в теме
(11) Serg O.,

Насколько я понял, в 8.3 никаких проблем с выше перечисленными кнопками вроде нет. А в 8.2 уже вряд ли будут эту ошибку исправлять. Придется мигрировать на 8.3.

15. BabySG 11.09.14 11:17 Сейчас в теме
(11) Serg O., как уже сказали - только переход на 8.3
12. wolfsoft 2421 10.09.14 10:47 Сейчас в теме
Не надо обновлять то, что работает. Геморою меньше будет ;)
13. kenza 10.09.14 11:27 Сейчас в теме
Спасибо, за статью! Хоть есть время все исправить до того как вообще прекратят поддержку модальных окон.
16. majmyl 259 16.09.14 08:26 Сейчас в теме
У меня туева хуча народу через веб сидела и опа, болт! Я всех на тонкий клиент пересадил, работает быстрее и стабильнее.
17. antonov_i 320 16.09.14 20:00 Сейчас в теме
(16) majmyl,

Везет, нам перейти на тонкий клиент не удается ((( Ну уже почти допили корректную работу веб-клиента :-)
18. MasterIt 17.09.14 13:48 Сейчас в теме
Мы еще пол года назад перешли на 8.3, и судя по всему не зря.
19. androgin 20.09.14 15:17 Сейчас в теме
А что мешает переписать модальные окна?
1С ведь обошла это уже давно...
20. antonov_i 320 09.10.14 09:22 Сейчас в теме
(19) androgin,

Перейти ничего не мешает, мы уже перешли по факту. Если свои конфигурации актуализировать проблем нет, то типовые не так уж просто.
21. stanru1 91 30.10.14 11:43 Сейчас в теме
(19) androgin, например, то, что в веб клиенте не работает меню файл - открыть, или не работает типовой выбор периода.

(0)
Автор статьи, у тебя ошибка, похоже. Если править реестр руками, надо называть ключ не "1С", а "1".
За информацию огромное спасибо!
23. androgin 25.12.14 04:15 Сейчас в теме
(21) stanru1,
Это почему же не работает Открыть?
Прикрепленные файлы:
22. adhocprog 1129 18.11.14 17:37 Сейчас в теме
Спасибо за полезную информацию!
24. boln 1042 01.07.16 13:33 Сейчас в теме
Оригинально! Респект.
25. Nicholas 918 09.03.17 05:05 Сейчас в теме
У меня почти одновременно на двух компьютерах (на рабочем и на домашнем) появилась вот такая ошибка:
b.setProxy is not a function

Причем не важно под каким браузером, например, в IE ошибка выгладит вот так:
Object doesn't support property or method 'setProxy' 

Посоветуйте, пожалуйста, в каком направлении искать корень проблемы?
29. alext88 7 08.11.18 13:42 Сейчас в теме
(25) Удалось решить проблему? Столкнулся с такой же проблемой
30. antonov_i 320 09.11.18 02:16 Сейчас в теме
(29) Обновите версию платформы. На какой-то из версий была схожая проблема. Кстати, в одной из 8.3.10 была проблема с окном ввода логина и пароля (веб-клиент). Тоже ошибки в клиентском коде валились. Помогло обновление.

Ах, да. Еще ошибка (setProxy) может быть из-за отсутствия поддержки какой-то фичи в браузере. Напишите точную версию платформы и версию браузера в которой смотрите.
26. user826905 13.09.17 13:40 Сейчас в теме
Спасибо огромное дружище! Все работает!
27. user996325 19.09.18 11:32 Сейчас в теме
Извините, но зачем так себя мучить если в 1С есть тонкий клиент, где можно указать web-сервер и работать без проблем с браузером.



28. antonov_i 320 01.10.18 08:42 Сейчас в теме
(27)

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