Удаляет значок уведомления с кнопки программы на панели задач. Работает под Windows 7 и старше, а также Ubuntu Unity (удаляет установленное число на кнопке приложения в Unity Launcher). При работе в других ОС не производит никаких действий.
Синтаксис
УдалитьНаклейку()Примеры платформы
ПанельЗадачОС.УдалитьЗначок();Полное описание, параметры и ограничения
МенеджерПанелиЗадачОС.УдалитьНаклейку (OSTaskbarManager.RemoveBadge)
МенеджерПанелиЗадачОС (OSTaskbarManager)
УдалитьНаклейку (RemoveBadge)
Доступен, начиная с версии 8.3.8.
Синтаксис:
УдалитьНаклейку()
Описание:
Удаляет значок уведомления с кнопки программы на панели задач.
Работает под Windows 7 и старше, а также Ubuntu Unity (удаляет установленное число на кнопке приложения в Unity Launcher).
При работе в других ОС не производит никаких действий.
Доступность:
Тонкий клиент, толстый клиент.
Пример:
ПанельЗадачОС.УдалитьЗначок();
Использование в версии:
Доступен, начиная с версии 8.3.8.
Методическая информация
Практические примеры
Панель задач Windows: свой результат1000, картинка, число2 и отдельное принятие
В своем отдельном новом клиенте рассчитайте две собственные строки и уведомите о готовности. Отдельными реальными командами смените картинку на actual count и после принятия запросите удаление только своей наклейки.
Где и как запускать
Свой новый изолированный Windows10/11 VM/client и пустая CF. Только ТонкийКлиент, nativeWindows enum и фактическая версия минимум8.3.14. Сервер helper возвращает только Булево своей CF; не web/mobile/чужая программа.
Подготовка
Будущий ручной опыт — только своя новая изолированная Windows10/11 VM, своя новая пустая CF и ровно один свой тонкий клиент/основное окно. Не рабочая ИБ, не чужая программа, не второй1С клиент и не сгруппированная общая кнопка. Сейчас GUI/ОС/1С/VM и сеть не запускались.
Создайте свою пустую конфигурацию УчебнаяПанельЗадач85. Версия = a5026531-e1e1-479f-8d7c-16a09551b68e, режим совместимости Не использовать, управляемое приложение. Используйте собственную новую локальную учебную ИБ; никаких внешних серверов/процессов или прикладных данных. Метка — идентификация пакета, не криптографическое доказательство принадлежности окна.
Общие → Общие формы: создайте ровно одну управляемую форму ПультПанелиЗадач85. Вставьте весь MAIN в ее модуль. Добавьте эту форму в рабочую область начальной страницы своей конфигурации. Свяжите событие ПриОткрытии с ПриОткрытии(Отказ), не вызывайте его вручную.
Создайте реквизиты СогласенНаОпыт85, СвояКнопкаБылаПустой85, ВижуСвоюНаклейку85 (Булево, исходно Ложь), ВерсияRuntime85/ВерсияОС85/Состояние85 (Строка неограниченной длины), Сумма85 (Число15,2), Количество85 (Число5,0). Выведите три ручных флажка и поля наблюдения; поля наблюдения ТолькоПросмотр=Да.
Создайте ровно три команды формы: ПодготовитьУведомление85, ПоказатьКоличество85, ПринятьРезультат85. Назначьте одноименные обработчики с параметром Команда и выведите три кнопки этих команд. Это реальные команды формы, не кнопки предпросмотра панели задач и не вручную вызываемые handlers.
Проверьте свою конфигурацию для тонкого клиента/сервера, целостность и неподдерживаемые функции. Запускайте только свой собственный новый Windows тонкий клиент. Scalar server helper проверяет имя/версию/единственную форму, возвращает Булево; manager, картинка и строки расчета остаются на клиенте.
ВерсияRuntime85 и ВерсияОС85 показывают действительные строки среды. Менеджер доступен с8.3.8, но проверки Width/Height картинки — с8.3.14; код требует минимум8.3.14 и native Windows_x86/Windows_x86_64. Формат строки версии ОС не угадывается. Windows7+ документированы для наклейки, выбранная собственная VM10/11 — ручная предпосылка, не доказанная GUI-проверка.
До опыта убедитесь вручную, что идентифицирована именно своя отдельная кнопка программы, у нее нет наклейки и отсутствуют другие1С экземпляры/общая группа. При чужой или неясной кнопке STOP. СвояКнопкаБылаПустой85 — только ваше явное подтверждение baseline, не native getter и не гарантия отсутствия гонки.
Справка требует для отображения Windows-наклеек выключенных маленьких значков панели задач и включенных крупных значков меню Пуск. Проверяйте только свой стенд вручную; не меняйте ОС программно. Если настройки недоступны или наклейка не видна, не ставьте флажок наблюдения и остановитесь: отсутствие исключения не доказывает отображение.
Прочитайте всю последовательность: максимум2 установки своей наклейки,1 запрос одного мигания и1 удаление только своей наклейки после принятия результата. Согласие исходноFalse и потребляется один раз. Открытие формы не вызывает manager/OS операции.
Своими двумя подтверждениями пустой кнопки/согласия разрешите опыт и нажмите ПодготовитьУведомление85 один раз. Код сам создает ROW-A750 и ROW-B250, проверяет обе строки, реально вычисляет1000 и количество2. Ни внешний объект, ни файл, ни чужой job/процесс не передаются.
Картинка производится из собственного fixed Base64: PNG16x16 RGB(21,98,232),80 байт. Реальный native BinaryData и Картинка должны дать размер80 и числовые Width16/Height16; Неопределено — STOP. Native допускает любой формат; ICO16/20/24 рекомендован, не обязателен. Никакого неизвестного БиблиотекаКартинок.Иконка1 или скачанного файла.
Первый шаг посылает actual picture badge с СкрытьПриВыборе=Ложь и Сигнализировать(1). Эти процедуры не возвращают успех. Увидев только свою синюю наклейку, поставьте ВижуСвоюНаклейку85 и нажмите ПоказатьКоличество85: свежая полная проверка своего результата предшествует замене картинки actual числом2.
Флажок наблюдения опять сбрасывается. Увидев только свое число2, снова поставьте его и нажмите ПринятьРезультат85. Повторная полная проверка двух строк предшествует actual УдалитьНаклейку(). Вручную убедитесь, что именно своя кнопка снова без наклейки; код пишет лишь ЗапросУдаления, не выдуманный GUI-success.
После ошибки/неизвестного исхода — sticky STOP, без automatic retry/clear/rollback. Наклейка может остаться; не очищайте неизвестное состояние и не переоткрывайте форму ради обхода STOP. Согласие/этапы относятся к экземпляру формы и не обещаны сохраняющимися после закрытия/перезапуска. Не трогайте чужие кнопки и настройки ОС.
&НаКлиенте
Перем СогласиеИспользовано85, Остановка85, Этап85, ВерсияЗапуска85, Строки85, Менеджер85;
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если СогласиеИспользовано85 <> Неопределено Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
СогласиеИспользовано85 = Ложь;
Остановка85 = Истина;
СогласенНаОпыт85 = Ложь;
СвояКнопкаБылаПустой85 = Ложь;
ВижуСвоюНаклейку85 = Ложь;
Сумма85 = 0;
Количество85 = 0;
Попытка
ВерсияЗапуска85 = ПроверитьСреду85();
ВерсияRuntime85 = ВерсияЗапуска85;
Этап85 = "Готов";
Остановка85 = Ложь;
Состояние85 = "Проверьте именно свою пустую кнопку и отдельно согласитесь";
Исключение
Остановить85(ОписаниеОшибки());
Отказ = Истина;
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура Остановить85(Причина)
Остановка85 = Истина;
Этап85 = "STOP";
СогласенНаОпыт85 = Ложь;
Состояние85 = "STOP. Исход неизвестен, повтор и автоматическая уборка запрещены. " + Причина;
КонецПроцедуры
&НаКлиенте
Процедура ПодтвердитьШаг85(Команда, ИмяКоманды, НужныйЭтап)
Если ТипЗнч(Команда) <> Тип("КомандаФормы") Или Команда <> Команды.Найти(ИмяКоманды)
Или Остановка85 <> Ложь Или Этап85 <> НужныйЭтап
Или ВерсияЗапуска85 <> ПроверитьСреду85() Тогда
ВызватьИсключение "Не совпадает собственная команда, этап или среда опыта";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПроверитьСреду85()
#Если ТонкийКлиент Тогда
Информация = Новый СистемнаяИнформация;
Платформа = Информация.ТипПлатформы;
Если Платформа <> ТипПлатформы.Windows_x86 И Платформа <> ТипПлатформы.Windows_x86_64 Тогда
ВызватьИсключение "Нужен собственный Windows thin-client стенд, не веб/мобильный/другая ОС";
КонецЕсли;
Версия = Информация.ВерсияПриложения;
ВерсияОС85 = Информация.ВерсияОС;
Если ТипЗнч(ВерсияОС85) <> Тип("Строка") Или ВерсияОС85 = "" Тогда
ВызватьИсключение "Нет фактической строки версии ОС";
КонецЕсли;
Если ПодтвердитьСвойПакет85() <> Истина Тогда
ВызватьИсключение "Своя новая учебная конфигурация не подтверждена";
КонецЕсли;
Возврат Версия;
#Иначе
ВызватьИсключение "Только собственный тонкий клиент Windows";
#КонецЕсли
КонецФункции
&НаКлиенте
Функция ПроверитьСвойРезультат85()
Если ТипЗнч(Строки85) <> Тип("Массив") Или Строки85.Количество() <> 2 Тогда
ВызватьИсключение "Нет двух собственных строк расчета";
КонецЕсли;
Итог = 0;
Для Индекс = 0 По 1 Цикл
СтрокаДанных = Строки85[Индекс];
Если ТипЗнч(СтрокаДанных) <> Тип("Структура") Или СтрокаДанных.Количество() <> 2
Или ТипЗнч(СтрокаДанных.Код) <> Тип("Строка")
Или ТипЗнч(СтрокаДанных.Сумма) <> Тип("Число") Тогда
ВызватьИсключение "Не совпадает тип или состав собственной строки";
КонецЕсли;
Если (Индекс = 0 И (СтрокаДанных.Код <> "ROW-A" Или СтрокаДанных.Сумма <> 750))
Или (Индекс = 1 И (СтрокаДанных.Код <> "ROW-B" Или СтрокаДанных.Сумма <> 250)) Тогда
ВызватьИсключение "Изменились собственные коды или суммы";
КонецЕсли;
Итог = Итог + СтрокаДанных.Сумма;
КонецЦикла;
Количество = Строки85.Количество();
Если Итог <> 1000 Или ТипЗнч(Количество) <> Тип("Число")
Или Количество <> Цел(Количество) Или Количество < 0 Или Количество > 99 Тогда
ВызватьИсключение "Не совпадает результат или допустимое число наклейки";
КонецЕсли;
Возврат Новый Структура("Сумма,Количество", Итог, Количество);
КонецФункции
&НаКлиенте
Функция СоздатьСвоюКартинку85()
Данные = Base64Значение("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAF0lEQVR4nGMQTXpBEmIY1TCq4cWw1QAAx3hfEKs8pbkAAAAASUVORK5CYII=");
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение "Не получены собственные двоичные данные картинки";
КонецЕсли;
Размер = Данные.Размер();
Если ТипЗнч(Размер) <> Тип("Число") Или Размер <> 80 Тогда
ВызватьИсключение "Изменились байты собственной картинки";
КонецЕсли;
Картинка = Новый Картинка(Данные, Ложь);
Ширина = Картинка.Ширина();
Высота = Картинка.Высота();
Если ТипЗнч(Ширина) <> Тип("Число") Или ТипЗнч(Высота) <> Тип("Число")
Или Ширина <> 16 Или Высота <> 16 Тогда
ВызватьИсключение "Нет фактической собственной картинки16x16";
КонецЕсли;
Возврат Картинка;
КонецФункции
&НаКлиенте
Процедура ПодготовитьУведомление85(Команда)
Попытка
ПодтвердитьШаг85(Команда, "ПодготовитьУведомление85", "Готов");
Если СогласиеИспользовано85 <> Ложь Или СогласенНаОпыт85 <> Истина
Или СвояКнопкаБылаПустой85 <> Истина Тогда
ВызватьИсключение "Нужно неиспользованное согласие и подтвержденная пустая только своя кнопка";
КонецЕсли;
СогласиеИспользовано85 = Истина;
СогласенНаОпыт85 = Ложь;
СвояКнопкаБылаПустой85 = Ложь;
Строки85 = Новый Массив;
Строки85.Добавить(Новый Структура("Код,Сумма", "ROW-A", 750));
Строки85.Добавить(Новый Структура("Код,Сумма", "ROW-B", 250));
Результат = ПроверитьСвойРезультат85();
СвояКартинка = СоздатьСвоюКартинку85();
Менеджер85 = ПанельЗадачОС;
Если ТипЗнч(Менеджер85) <> Тип("МенеджерПанелиЗадачОС") Тогда
ВызватьИсключение "Не получен настоящий readonly native manager";
КонецЕсли;
Этап85 = "УстановкаКартинки";
Менеджер85.УстановитьНаклейку(СвояКартинка, Ложь);
Менеджер85.Сигнализировать(1);
Сумма85 = Результат.Сумма;
Количество85 = Результат.Количество;
ВижуСвоюНаклейку85 = Ложь;
Этап85 = "Картинка";
Состояние85 = "Запрос картинки отправлен. Увидев свою синюю наклейку, подтвердите ее вручную";
Исключение
Остановить85(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьКоличество85(Команда)
Попытка
ПодтвердитьШаг85(Команда, "ПоказатьКоличество85", "Картинка");
Если СогласиеИспользовано85 <> Истина Или ВижуСвоюНаклейку85 <> Истина Тогда
ВызватьИсключение "Нет собственного опыта или ручного подтверждения именно своей картинки";
КонецЕсли;
Результат = ПроверитьСвойРезультат85();
Этап85 = "УстановкаЧисла";
Менеджер85.УстановитьНаклейку(Результат.Количество, Ложь);
Сумма85 = Результат.Сумма;
Количество85 = Результат.Количество;
ВижуСвоюНаклейку85 = Ложь;
Этап85 = "Число";
Состояние85 = "Запрос собственного числа2 отправлен. Увидев именно его, подтвердите вручную";
Исключение
Остановить85(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура ПринятьРезультат85(Команда)
Попытка
ПодтвердитьШаг85(Команда, "ПринятьРезультат85", "Число");
Если СогласиеИспользовано85 <> Истина Или ВижуСвоюНаклейку85 <> Истина Тогда
ВызватьИсключение "Нет своего опыта или подтверждения только собственной числовой наклейки";
КонецЕсли;
Результат = ПроверитьСвойРезультат85();
Этап85 = "УдалениеСвоейНаклейки";
Менеджер85.УдалитьНаклейку();
Сумма85 = Результат.Сумма;
Количество85 = Результат.Количество;
ВижуСвоюНаклейку85 = Ложь;
Этап85 = "ЗапросУдаления";
Состояние85 = "Свой результат1000 принят; запрос удаления отправлен. Вручную проверьте пустую свою кнопку";
Исключение
Остановить85(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодтвердитьСвойПакет85()
#Если Сервер Тогда
Если Метаданные.ОбщиеФормы.Количество() <> 1 Или Метаданные.ОбщиеФормы.Найти("ПультПанелиЗадач85") = Неопределено Тогда
ВызватьИсключение "Не совпадает собственный новый учебный пакет";
КонецЕсли;
Возврат Истина;
#Иначе
ВызватьИсключение "Нужен сервер собственного учебного приложения";
#КонецЕсли
КонецФункции
Разбор по шагам
Подготовьте именно свой изолированный стенд и одну свою форму с тремя командами. Проверьте отдельную пустую кнопку, прочитайте все эффекты и отдельно согласитесь.
ПодготовитьУведомление85 создает и полностью проверяет ROW-A750/ROW-B250. Реальные сумма1000 и количество2 не берутся из чужого объекта или пользовательского поля.
Actual native picture создается из своих80 байт и проверяется16x16. Readonly ПанельЗадачОС дает настоящий manager; picture badge и одно мигание сообщают о готовом своем результате.
Самостоятельно увидев свою картинку, подтвердите наблюдение. ПоказатьКоличество85 заново проверяет весь свой result, затем actual badge получает его целое количество2 в диапазоне0..99.
Самостоятельно увидев свое число, снова подтвердите наблюдение. ПринятьРезультат85 заново проверяет1000/2 и только тогда вызывает native УдалитьНаклейку() без аргументов.
Вернитесь к своей кнопке и вручную подтвердите отсутствие наклейки. Native процедуры не дают результата успеха; при неясном исходе STOP без автоматической уборки.
Как проверить результат
У каждого UI шага проверяется именно своя настоящая команда/фаза/среда; старт требует отдельного consumed-согласия и вручную установленного пустого baseline.
Manager взят из readonly global, не создан выдуманным конструктором. Свой icon80-byte BinaryData реально декодируется и дает native16x16 Picture.
Перед каждым последующим OS изменением заново проверяются обе собственные строки и actual1000/2; числовая наклейка получает вычисленное целое0..99, не77 или fake percentage.
Промежуточные состояния разделены настоящими командами и ручными наблюдениями; отсутствуют timers, fake callbacks и автоматический переход через незаметную картинку.
Удаляется только наклейка своей отдельной программы с изначально пустым baseline, не toolbar, progress или чужое окно. Нет claim native readback/GUI-success.
Ожидаемый результат
Ожидаемый ручной результат: Сумма85=1000, Количество85=2; своими наблюдениями подтверждены картинка→число2→пустая своя кнопка. В коде последний этап ЗапросУдаления. GUI и runtime здесь не проверены.
На что обратить внимание
ПанельЗадачОС управляет кнопкой программы, не произвольным process/window handle. Только свой отдельный новый VM/client; package marker не заменяет проверку своей кнопки и не гарантирует отсутствие внешних изменений.
У менеджера нет native progress API и getter наклейки. Здесь число2 — количество результатов, не процент и не OS progressbar.
Native методы могут молча не делать ничего на неподдерживаемой ОС; отсутствие исключения не является доказанным визуальным успехом.
УстановитьКнопки намеренно не вызывается: нет обещания восстановления неизвестного toolbar/empty-array clearing. Повторное замещение кнопок — отдельный документированный контракт, не этот опыт.
Старые native snippets содержат неверные aliases СигнализироватьИконкой и УдалитьЗначок. Урок вызывает actual Сигнализировать и УдалитьНаклейку по сигнатурам.
ДиапазонWindows0..99 проверяется до вызова; native clamping не используется как исправление неверных данных. СкрытьПриВыборе=Ложь задан явно.
После неизвестного исхода нет автоматической очистки, повторов или обещания сохранения consent/state после перезапуска. Здесь нет реальныхGUI/OS/1С/сети/файловых операций.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.