«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    14471    109    46    

108

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

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

15000 руб.

10.11.2023    11936    45    33    

67

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

18000 руб.

06.12.2023    10724    47    8    

78

SALE! %

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

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

4800 3840 руб.

14.01.2013    191317    1153    0    

920

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

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

14400 руб.

29.04.2020    33855    108    152    

75

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

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

3600 руб.

06.02.2017    32665    145    18    

51

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73759    629    45    

88

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

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

3000 руб.

21.07.2022    10174    10    4    

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

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

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

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


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

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

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