Модальный диалог в 1С

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

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

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

Как устранить ошибку в 1С: «Использование модальных окон в данном режиме запрещено»

Такая ошибка начала появляться после перехода 1С на новый интерфейс платформы 1С 8.3 – «Такси». Это связано с тем, что в ней разработчиками была включена работа с окнами, но без режима модальности.

Использование модальных окон в данном режиме запрещено

Рис.1

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

Использовать/Использовать с предупреждением/Не использовать

Рис.2

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

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

Использование модальных окон в данном режиме запрещено

Рис.3

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

Отказ от модальности

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

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

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

  • Как в 1с удалить помеченные на удаление документы ? 1С 7.7 и 1С 8.2
  • Как в 1С 8.2 заполнить авансовый отчет?
  • Как в одноклассниках убрать класс? Как посмотреть свою ленту в одноклассниках? 1С в Одноклассниках.
  • Как в 1с 8.2 создать новую базу ? Как сохранить конфигурацию 1С 8.2 ? Копирование базы данных 1С 8.2
  • Как в 1С посмотреть остатки на складе? (для 1С 7.7 и 1С 8.2)
  • Как в 1С 8.2 начислить зарплату?
  • Как в 1с внести уставный капитал ? 1С 8.2 | Формирование уставного фонда, оприходование оборудования и ввод в эксплуатацию в 1С 8.2
  • Как в 1С создать и заполнить контрагента? 1С 8.2
  • Как в 1С редактировать печатную форму? Как изменить печатную форму?
  • Как начислить отпускные в 1С 8.2?

Ответы на вопросы:

  • Как в 1С закрыть окно служебных сообщений.
  • Работа с диалогом Excel. Завершение приложения Excel. Начальная обработка файла Excel.
  • Загрузка файлов Excel. Весь лист Excel в память
  • Преобразование табличного документа в таблицу значений (перебор)
  • Пример функции, раскладывающей строку в массив.
  • Проверка значения на вхождение в некоторый интервал
  • Разбиение строки на левую и правую часть
  • Замер производительности в 1С
  • Где находится список баз 1С? Как сохранить перечень баз 1С 7.7, 8.1, 8.2, 8.3?
  • Порты для работы с 1С. Как подключиться к серверу 1С из интернет.
  • 1C и сканер. Заметки по работе со сканером из 1С.
  • Как в 1с ЗУП изменить оклады? 1С 8.3 Как в 1с 8.3 ЗУП изменить оклад сотруднику?
  • Как в 1С:Бухгалтерии 8.3 ввести хозяйственную операцию? Как правильно создать документ по проводке?
  • Как в 1С настроить учет по складам? Настройка учета по складам в «1С:Бухгалтерии» (ред. 3.0).
  • Установка 1С на Linux. Установка ROSA Fresh Linux.
  • Настройка автоматической блокировки сеансов по расписанию на сервере 1С 8.3 . Как выгнать пользователей из 1С. Настройка задачи для планировщика Windows
  • ГНИВЦ ФНС России опубликовал новый КЛАДР
  • Как редактировать данные сотрудника в 1С. Кадровый учет в 1С. Изменение фамилии сотрудника в «1С:Бухгалтерия 8» (ред. 3.0)?
  • Как в 1С 8.3 изменить оклад? Как поменять оклады у сотрудников в 1С 8.3? Как в 1С 8.3 внести изменения окладов?
  • Поиск тендеров
  • Работа с технологическим журналом 1С 8.3 и 1С 8.2.
  • Использование 1С в практике транспортной компании
  • Что представляет из себя франшиза «1С»?
  • Как создавать документы в «1С:Бухгалтерия 8.3 через проводку? Ручная операция, если известна корреспонденция счетов
  • Как сформировать акт сверки с контрагентом c данными о счетах-фактурах в «1С:Бухгалтерия 8» (ред. 3.0) 1C 8.3?
  • Как в 1с 8.3 изменить статус отчета на отправлено? Как в бухгалтерии 8.3 установить статус отправки в ПФР?
  • Как в 1C 8.3, 1С 8.2 работать с регистром сведений. Регистры сведений 1C 8.3, 1С 8.2.
  • Как в 1с 8.3 закрыть период ? Как в 1с 8.3 закрыть месяц ? Закрытие месяца в 1С 8.3
  • Как сделать отчет в 1С? Отчет по зарплате сотрудников 1С. Как сделать отчет с помощью СКД? Как сделать внешний отчет на 1С? Как узнать зарплату сотрудников?
  • Как обновить сервер 1С 8.3 и платформу 1С 8.3. Как блокировать пользователей 1С. Как сделать выгрузку базы данных 1С. 1С Предприятие клиент-сервер. Операционная система Windows Server 2012 R2
  • Выгрузка данных из 1С ЗУП 8.3 в 1С Бухгалтерия 8.3 . Загрузка зарплаты и выплат из 1С Зарплата и управление персоналом 8,3
  • 10 лайфхаков по 1С 8.3
  • Ошибка: Невозможно получить свойство Open класса Workbooks . Разработка в 1С 8.3. Управляемые формы.
  • Как в 1С 8.3 сформировать 2 НДФЛ для налоговой и для сотрудников. Справка 2 НДФЛ в 1C 8.3 Бухгалтерия Предприятия и Зарплата и Управление персоналом 3.0
  • Как форматировать дату, число 1С 8.3, 1С 8.2 Применение функции Формат(), ЧислоПрописью(), НСтр() и т.д. Примеры для разработчика 1С
  • Выгоды использования удаленной бухгалтерии 1С
  • Как работать с таблицей значений 1С 8.3, 1С 8.2 Таблица значений 1С 8.3, 8.2 Примеры для разработчика 1С
  • Обновления 1С от 15 февраля 2016
  • С Новым 2016 Годом!
  • Как в 1С рассчитать и выплатить пособие?
  • Как включить возможность учета в разных валютах? Как в 1С загрузить курсы валют? Автоматическая загрузка курсов валют.
  • Расходы будущих периодов в 1С 8.3
  • Как установить ставку взноса на страхование от несчастных случаев в 1С:Бухгалтерия 8.3
  • Вопросы и ответы по 1С. Часть I
  • Как установить 1С ? Как установить 1с 8.2 ? Как установить последний релиз 1С самому?
  • Оспаривание кадастровой стоимости с целью уменьшения налогообложения Особенности налогообложения
  • Как в 1с учитывать спецодежду ? Как в 1с 8.3 оприходовать спецодежду ? Учет спецодежды и спецоснастки в 1С: Бухгалтерии 8.2 8.3 Часть II

Работа со строками в 1С на примерах

ВРег(<Строка>) — все символы строки приводятся к верхнему регистру;

Пример:

МояСтрока = «helloy world»; МояСтрока = ВРег(МояСтрока);

После выполнения кода в переменной МояСтрока будет значение: HELLOY WORLD

СтрДлина(<Строка>) — возвращает количество символов в строке;

Пример:

МояСтрока = «helloy world»; КоличествоСимволов = СтрДлина(МояСтрока);

После выполнения кода в переменной КоличествоСимволов будет значение: 12

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по .
Будем рады помочь Вам!

ТРег(<Строка>) — преобразует строку к титульному регистру (у каждого слова первый символ преобразуется к верхнему регистру, остальные к нижнему);

Пример:

МояСтрока = «helloy world»; МояСтрока = ТРег(МояСтрока);

После выполнения кода в переменной МояСтрока будет значение: Helloy World

КодСимвола(<Строка>, <НомерСимвола>) — получает ASCII-код символа, расположенного в переданной строке на позиции с указанным номером;

Символ(<КодСимвола>) – получает символ по указанному ASCII-коду;

Пример(получение массива символов строки):

МояСтрока = «helloy world»; МассивСимволов = Новый Массив; Для Сч = 0 по СтрДлина(МояСтрока) Цикл МассивСимволов.Добавить(Символ(КодСимвола(МояСтрока,Сч))); КонецЦикла;

После выполнения кода в массиве МассивСимволов хранятся все символы строки МояСтрока(на каждый элемент массива — один символ)

Лев(<Строка>, <ЧислоСимволов>) — выбирает первые слева символы указанной строки(число символов указывается в параметре);

Пример:

МояСтрока = «helloy world»; МояСтрока = Лев(МояСтрока,6);

После выполнения кода в переменной МояСтрока будет значение: helloy

Найти(<Строка>, <ПодстрокаПоиска>) — находит вхождение указанной подстроки в исходной строке;

Пример:

МояСтрока = «helloy world»; Позиция = Найти(МояСтрока,»world»);

После выполнения кода в переменной Позиция будет значение: 8(Номер позиции первого символа подстроки “world”)

НРег(<Строка>) — все символы строки приводятся к нижнему регистру;

Пример:

МояСтрока = «HELLOY WORLD»; МояСтрока = НРег(МояСтрока);

После выполнения кода в переменной МояСтрока будет значение: helloy world

Прав(<Строка>, <ЧислоСимволов>) — выбирает первые справа символы указанной строки(число символов указывается в параметре);

Пример:

МояСтрока = «helloy world»; МояСтрока = Прав(МояСтрока,5);

После выполнения кода в переменной МояСтрока будет значение: world

ПустаяСтрока(<Строка>) — проверяет строку на наличие значащих символов;

Пример:

МояСтрока = «helloy world»; СтрокаПуста = ПустаяСтрока(МояСтрока);

После выполнения кода в переменной СтрокаПуста будет значение: Ложь

СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — находит в исходной строке все вхождения указанной подстроки поиска и заменяет ее на подстроку замены;

Пример:

МояСтрока = «helloy world»; ПодстрокаПоиска = «helloy»; ПодстрокаЗамены = «привет»; МояСтрока = СтрЗаменить(МояСтрока,ПодстрокаПоиска,ПодстрокаЗамены);

После выполнения кода в переменной МояСтрока будет значение: привет world

СтрПолучитьСтроку(<Строка>, <НомерСтроки>) — получает строку многострочной строки по ее номеру;

Пример:

МоиСтроки = «helloy world»+Символы.ПС+ «привет мир»; МояСтрока = СтрПолучитьСтроку(МоиСтроки,2);

После выполнения кода в переменной МояСтрока будет значение: привет мир

СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>) — возвращает число вхождений подстроки поиска в исходную строку;

Пример:

МояСтрока = «helloy world»; ЧислоВхождений = СтрЧислоВхождений(МояСтрока,»l»);

После выполнения кода в переменной *ЧислоВхождений * будет значение: 3(Так как в строке “helloy world” 3 раза встречается буква “l”)

СтрЧислоСтрок(<Строка>) — считает число строк в многострочной строке;

Пример:

МоиСтроки = «helloy world»+Символы.ПС+ «привет мир»; ЧислоСтрок = СтрЧислоСтрок(МоиСтроки);

После выполнения кода в переменной *ЧислоСтрок * будет значение: 2

СокрЛ(<Строка>) – отсекает незначащие символы, стоящие слева от первого значащего символа в строке;

Пример:

МояСтрока = » helloy world»; МояСтрока = СокрЛ(МояСтрока);

После выполнения кода в переменной МояСтрока будет значение: helloy world

СокрЛП(<Строка>) — отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке;

Пример:

МояСтрока = » helloy world «; МояСтрока = СокрЛП(МояСтрока);

После выполнения кода в переменной МояСтрока будет значение: helloy world

СокрП(<Строка>) — отсекает незначащие символы, стоящие справа от последнего значащего символа в строке;

Пример:

МояСтрока = «helloy world «; МояСтрока = СокрП(МояСтрока);

После выполнения кода в переменной МояСтрока будет значение: helloy world

Пример:

МояСтрока = «helloy world»; МояСтрока = Сред(МояСтрока,0,6);

После выполнения кода в переменной МояСтрока будет значение: helloy

Строковые функции в 1С

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

Переменная = «произвольная строка»;
//ИЛИ
Переменная = 123;
Перебор символов строки
Текст = «»;
Для НомерСимвола = 1 По СтрДлина(Текст) Цикл
Символ = Сред(Текст, НомерСимвола, 1);
КонецЦикла;
Соединение строк
Переменная = «Строка1» + «Строка2»;
Определить длину строки
ДлинаСтроки = СтрДлина(«Строка»);
//ДлинаСтроки = 6;
Удаление незначащих символов
Отсекает символы «Пробел», «Неразрывный пробел (НПП)», «Горизонтальная табулция (Таб)», «Вертикальная табуляция (ВТаб)», «Возврат коретки (ВК)», «Перевод строки (ПС)».
//Удаление незначащих символов слева
Результат = СокрЛ(» Строка»);
//Результат = «Строка»;
//Удаление незначащих символов справа
Результат = СокрП(«Строка «);
//Результат = «Строка»;
//Удаление незначащих символов и слева и справа
Результат = СокрЛП(» Строка «);
//Результат = «Строка»;
Выбрать слева 2 символа
ПодСтрока = Лев(«Строка», 2);
//ПодСтрока = «Ст»;
Выбрать справа 2 символа
ПодСтрока = Прав(«Строка», 2);
//ПодСтрока = «ка»;
Выбрать 2 символа начиная с третьего
ПодСтрока = Сред(«Строка», 3, 2);
//ПодСтрока = «ок»;
Найти подстроку
ПозицияПервогоСимволаПодстроки = СтрНайти(«Строка», «ок»);
//ПозицияПервогоСимволаПодстроки = 4;
Все символы строки в верхний регистр
Строка = ВРег(«Строка»);
//Строка = «СТРОКА»;
Все символы строки в нижний регистр
Строка = НРег(«Строка»);
//Строка = «строка»;
Первый символ каждого слова в верхний регистр
Строка = ТРег(«строка новая строка»);
//Строка = «Строка Новая Строка»;
Получить код (Unicode) символа
Код = КодСимвола(«Q»);
//Код = 81;
Получить символ по коду (Unicode)
Символ = Символ(81);
//Символ = «Q»;
Проверка строки на пустоту
Пустая = ПустаяСтрока(«»);
//Пустая = Истина;
Замена подстроки в строке
Строка = СтрЗаменить(«Строка111», «111», «222»);
//Строка = «Строка222»;
Подсчет количества строк в многострочной строке
ЧислоСтрок = СтрЧислоСтрок(«Строка1» + Символы.СП + «Строка2»);
//ЧислоСтрок = 2;
Получить подстроку многострочной строки по номеру
Подстрока = СтрПолучитьСтроку(«Строка1» + Символы.СП + «Строка2», 2);
//Подстрока = «Строка2»;
Число вхождений подстроки в строку
ЧислоВхождений = СтрЧислоВхождений(«Новая строка», «а»);
//ЧислоВхождений = 2;
Сравнение строк
//Первая строка меньше второй
Сравнение = СтрСравнить(«Строка», «Новая строка»);
//Сравнение = -1;
//Первая строка больше второй
Сравнение = СтрСравнить(«Новая строка», «Строка»);
//Сравнение = 1;
//Строки равны
Сравнение = СтрСравнить(«Строка», «Строка»);
//Сравнение = 0;
Проверка что строка начинается с указанной подстроки
НачинаетсяС = СтрНачинаетсяС(«Новая строка», «Новая»);
//НачинаетсяС = Истина;
Проверка что строка заканчивается указанной подстрокой
ЗаканчиваетсяНа = СтрЗаканчиваетсяНа(«Новая строка», «строка»);
//ЗаканчиваетсяНа = Истина;
Разделение строки на подстроки по разделителю
МассивПодстрок = СтрРазделить(«Новая строка», » «);
//МассивПодстрок = «Новая»;
//МассивПодстрок = «строка»;
Соединить массив строк в одну
МассивПодстрок = Новый Массив;
МассивПодстрок = «Новая»;
МассивПодстрок = «строка»;
Строка = СтрСоединить(МассивПодстрок, » «);
//Строка = «Новая строка»;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *