«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С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2964    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3499    11    1    

33

SALE! 30%

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177724    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

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

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

14400 руб.

29.04.2020    27369    79    146    

59

Система хранения присоединенных файлов в томах на диске

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

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

4200 руб.

10.11.2015    61309    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

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

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11742    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31105    31    18    

47

Хранилище файлов на SQL

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

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10974    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Franco 82 05.09.14 13:35 Сейчас в теме
Используйте, по возможности, 1-ый способ, а ещё лучше 0-ой способ. На своей небольшой конфигурации проще исправить. С пользователями сражаться было сложнее.
А вот с типовыми и на поддержке... сложнее... Как говорится, 'требуйте в магазинах вашего города...'.
2. antonov_i 314 05.09.14 07:53 Сейчас в теме
(1) Franco, Увы, мне пришлось выбрать самый последний. Конфигурацию со временем доработаем, но на это нужно время, а его как всегда нет.
3. BabySG 06.09.14 15:45 Сейчас в теме
4. antonov_i 314 08.09.14 00:51 Сейчас в теме
(3) BabySG, а вы не могли бы скинуть комментарий в личку или здесь опубликовать (если позволяют правила)? У меня права не позволяют просматривать раздел по ссылке.
5. kholkin 201 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 314 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 314 09.09.14 21:04 Сейчас в теме
(9) tindir,

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

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

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


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

обязательно 8.3 ставить (2 сервера 1С предприятия поднимать придется)
и какой релиз?
14. antonov_i 314 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 255 16.09.14 08:26 Сейчас в теме
У меня туева хуча народу через веб сидела и опа, болт! Я всех на тонкий клиент пересадил, работает быстрее и стабильнее.
17. antonov_i 314 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 314 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 1139 18.11.14 17:37 Сейчас в теме
Спасибо за полезную информацию!
24. boln 1040 01.07.16 13:33 Сейчас в теме
Оригинально! Респект.
25. Nicholas 887 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 314 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 314 01.10.18 08:42 Сейчас в теме
(27)

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