=============== LIBRARY RULES =============== From library maintainers: - Все файлы .bsl и .xml индексируются для документации. - Исключать папки с тестами и CI-настройками. ### Implementing Digital Signatures in BSL Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt This snippet demonstrates registering cryptographic certificates and providers for digital signatures and encryption in 1C:Enterprise, including document signing setup. It depends on certificate management catalogs and cryptographic libraries; inputs are certificate binary data and metadata, outputs are stored certificates and signature structures. Limitations include requiring cryptographic provider installation and client-side execution for actual signing, as well as certificate validity periods. ```bsl // Register cryptographic certificate Сертификат = Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.СоздатьЭлемент(); Сертификат.Наименование = "Сертификат Иванова И.И."; Сертификат.Пользователь = СсылкаНаПользователя; Сертификат.ДанныеСертификата = Новый ХранилищеЗначения(ДвоичныеДанныеСертификата); Сертификат.Отпечаток = "A1B2C3D4E5F6..."; // Certificate thumbprint Сертификат.КомуВыдан = "Иванов Иван Иванович"; Сертификат.КемВыдан = "УЦ Компании"; Сертификат.ДействителенС = Дата(2025, 1, 1); Сертификат.ДействителенПо = Дата(2026, 1, 1); Сертификат.Назначение = Перечисления.НазначенияСертификатов.ДляПодписи; Сертификат.Записать(); // Configure cryptographic provider Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.СоздатьЭлемент(); Программа.Наименование = "КриптоПро CSP"; Программа.ТипПрограммы = Перечисления.ТипыПрограммЭП.КриптоПроCSP; Программа.ИмяПрограммы = "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider"; Программа.ТипПодписи = Перечисления.ТипыПодписи.ГОСТ_2012_256; Программа.Записать(); // Sign document programmatically (requires client-side execution context) // Документ already recorded with binary data // This is server-side setup, actual signing happens on client СтруктураПодписи = Новый Структура; СтруктураПодписи.Вставить("ДанныеПодписи", ""); // Filled by client СтруктураПодписи.Вставить("Сертификат", Сертификат.Ссылка); СтруктураПодписи.Вставить("Комментарий", "Утверждено"); СтруктураПодписи.Вставить("ДатаПодписи", ТекущаяДата()); ``` -------------------------------- ### Define Window Show Constants in JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/УстановкаОбновлений/Templates/ДопФайлОбновленияКонфигурации/Ext/Template.txt This snippet defines integer constants for window show modes, corresponding to standard Windows ShowWindow API flags. No external dependencies are required, and these are used as predefined values for window manipulation in scripts. Inputs include none, outputs are constant integers. ```javascript var SW_HIDE = 0 var SW_SHOWNORMAL = 1 var SW_SHOWMINIMIZED = 2 var SW_SHOWMAXIMIZED = 3 var SW_MAXIMIZE = 3 var SW_SHOWNOACTIVATE = 4 var SW_SHOW = 5 var SW_MINIMIZE = 6 var SW_SHOWMINNOACTIVE = 7 var SW_SHOWNA = 8 var SW_RESTORE = 9 var SW_SHOWDEFAULT = 10 ``` -------------------------------- ### Convert Show Window Flag to String in JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/УстановкаОбновлений/Templates/ДопФайлОбновленияКонфигурации/Ext/Template.txt Function that takes a numeric window show flag and returns its string name or a default message. Depends on the SW_ constants being defined. Inputs: integer flag, outputs: string representation. ```javascript function SWtoString (flag) { switch (flag) { case SW_HIDE: return 'SW_HIDE' case SW_SHOWNORMAL: return 'SW_SHOWNORMAL' case SW_SHOWMINIMIZED: return 'SW_SHOWMINIMIZED' case SW_SHOWMAXIMIZED: return 'SW_SHOWMAXIMIZED' case SW_MAXIMIZE: return 'SW_MAXIMIZE' case SW_SHOWNOACTIVATE: return 'SW_SHOWNOACTIVATE' case SW_SHOW: return 'SW_SHOW' case SW_MINIMIZE: return 'SW_MINIMIZE' case SW_SHOWMINNOACTIVE: return 'SW_SHOWMINNOACTIVE' case SW_SHOWNA: return 'SW_SHOWNA' case SW_RESTORE: return 'SW_RESTORE' case SW_SHOWDEFAULT: return 'SW_SHOWDEFAULT' default: return format('N/A: {0}', flag) } } ``` -------------------------------- ### Registering External Components in BSL Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt The code shows registering and managing external native components (AddIns) with versioning and platform-specific binaries in 1C:Enterprise. It relies on the external components catalog for storage; inputs include component binaries and platform details, outputs are persisted component records with usage tracking. Limitations include platform compatibility requirements and the need for secure binary data handling, potentially limited to supported AddIn types. ```bsl // Register external component ВнешняяКомпонента = Справочники.ВнешниеКомпоненты.СоздатьЭлемент(); ВнешняяКомпонента.Наименование = "Компонента сканирования"; ВнешняяКомпонента.Идентификатор = "ScannerComponent"; ВнешняяКомпонента.Версия = "1.2.5"; // Store component binary for different platforms НоваяСтрока = ВнешняяКомпонента.Размещение.Добавить(); НоваяСтрока.ТипПлатформы = Перечисления.ТипыПлатформКомпонент.Windows_x86_64; НоваяСтрока.ДвоичныеДанные = Новый ХранилищеЗначения( ДвоичныеДанныеWindows, Новый СжатиеДанных(9) ); НоваяСтрока = ВнешняяКомпонента.Размещение.Добавить(); НоваяСтрока.ТипПлатформы = Перечисления.ТипыПлатформКомпонент.Linux_x86_64; НоваяСтрока.ДвоичныеДанные = Новый ХранилищеЗначения( ДвоичныеДанныеLinux, Новый СжатиеДанных(9) ); ВнешняяКомпонента.Записать(); // Component usage tracking Сообщить("Компонента зарегистрирована: " + ВнешняяКомпонента.Идентификатор + " версия " + ВнешняяКомпонента.Версия); ``` -------------------------------- ### String Formatting Function in JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/УстановкаОбновлений/Templates/ДопФайлОбновленияКонфигурации/Ext/Template.txt A function to format strings by replacing placeholders like {0}, {1} with provided arguments. Takes a string and variable arguments, returns the formatted string. Limitations include only supporting zero-based indexed placeholders. ```javascript function format (str) { for (var i = 1; i < arguments.length; i++) { str = str.replace('{' + (i - 1) + '}', arguments[i]) } return str } ``` -------------------------------- ### Define Event Type Constants in JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/УстановкаОбновлений/Templates/ДопФайлОбновленияКонфигурации/Ext/Template.txt Provides integer constants for event types like success, critical, warning, and info. No dependencies, used for logging or event handling. Inputs are none, outputs are predefined event level flags. ```javascript var EVENT_SUCCESS = 0 var EVENT_CRITICAL = 1 var EVENT_WARNING = 2 var EVENT_INFO = 4 ``` -------------------------------- ### Configure Data Exchange System Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt Sets up comprehensive data exchange functionality for distributed systems including scenario configuration, node management, transport settings, and exchange sessions. Supports FTP transport with authentication and session tracking. Requires proper transport configuration and node identification for successful data synchronization. ```bsl // Configure data exchange scenario СценарийОбмена = Справочники.СценарииОбменовДанными.СоздатьЭлемент(); СценарийОбмена.Наименование = "Обмен с филиалом №1"; СценарийОбмена.ПланОбмена = Метаданные.ПланыОбмена.ОбменДанными.ПолноеИмя(); // Add exchange node configuration СценарийОбмена.УзелИнформационнойБазы = ПланыОбмена.ОбменДанными.НайтиПоКоду("Филиал1"); Если СценарийОбмена.УзелИнформационнойБазы.Пустая() Тогда Узел = ПланыОбмена.ОбменДанными.СоздатьУзел(); Узел.Код = "Филиал1"; Узел.Наименование = "Филиал №1 (Москва)"; Узел.Записать(); СценарийОбмена.УзелИнформационнойБазы = Узел.Ссылка; КонецЕсли; СценарийОбмена.Записать(); // Configure transport settings НастройкиТранспорта = Справочники.НастройкиТранспортаСообщенийОбмена.СоздатьЭлемент(); НастройкиТранспорта.Наименование = "FTP сервер филиала"; НастройкиТранспорта.ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.FTP; НастройкиТранспорта.Сервер = "ftp.branch1.company.ru"; НастройкиТранспорта.Порт = 21; НастройкиТранспорта.Каталог = "/exchange/"; НастройкиТранспорта.ИмяПользователя = "exchange_user"; НастройкиТранспорта.Пароль = "SecurePassword123"; // Should be encrypted НастройкиТранспорта.Записать(); // Create exchange session СеансОбмена = Справочники.СеансыОбменовДанными.СоздатьЭлемент(); СеансОбмена.Наименование = "Обмен " + ТекущаяДата(); СеансОбмена.СценарийОбмена = СценарийОбмена.Ссылка; СеансОбмена.ДатаНачала = ТекущаяДата(); СеансОбмена.Состояние = Перечисления.СостоянияСеансовОбмена.Выполняется; СеансОбмена.Записать(); ``` -------------------------------- ### Configure email account in 1C (BSL) Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt Creates and configures an email account with IMAP incoming and SMTP outgoing server settings. Includes authentication parameters and saves the account to the database. Note that passwords should be properly encrypted in production environments. ```bsl // Configure email account УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.СоздатьЭлемент(); УчетнаяЗапись.Наименование = "Корпоративная почта"; УчетнаяЗапись.АдресЭлектроннойПочты = "info@company.ru"; УчетнаяЗапись.Пользователь = ПараметрыСеанса.ТекущийПользователь; // IMAP settings for incoming УчетнаяЗапись.ИспользоватьДляПолучения = Истина; УчетнаяЗапись.ПротоколВходящейПочты = "IMAP"; УчетнаяЗапись.СерверВходящейПочты = "imap.company.ru"; УчетнаяЗапись.ПортВходящейПочты = 993; УчетнаяЗапись.ИспользоватьБезопасноеСоединениеДляВходящейПочты = Истина; // SMTP settings for outgoing УчетнаяЗапись.ИспользоватьДляОтправки = Истина; УчетнаяЗапись.СерверИсходящейПочты = "smtp.company.ru"; УчетнаяЗапись.ПортИсходящейПочты = 465; УчетнаяЗапись.ИспользоватьБезопасноеСоединениеДляИсходящейПочты = Истина; // Authentication УчетнаяЗапись.ИмяПользователя = "info@company.ru"; УчетнаяЗапись.Пароль = "SecurePassword"; // Should be encrypted УчетнаяЗапись.Записать(); ``` -------------------------------- ### Define File Access Constants in JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/УстановкаОбновлений/Templates/ДопФайлОбновленияКонфигурации/Ext/Template.txt Defines integer constants for file access modes such as reading, writing, and appending. These are inspired by VBScript file modes and have no dependencies. Used as flags for file operations, with no inputs required. ```javascript var ForReading = 1 // Open a file for reading only. You can't write to this file. var ForWriting = 2 // Open a file for writing. var ForAppending = 8 // Open a file and write to the end of the file. var TristateUseDefault = -2 var TristateTrue = -1 var TristateFalse = 0 ``` -------------------------------- ### Create Contact Information Types Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt Defines various contact information kinds including phone, address, and email with specific validation and formatting properties. Supports hierarchical organization and multiple value entries. Each contact type can be configured with different validation rules and display formats. ```bsl // Define contact information kind ВидКонтактнойИнформации = Справочники.ВидыКонтактнойИнформации.СоздатьЭлемент(); ВидКонтактнойИнформации.Наименование = "Телефон сотрудника"; ВидКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; ВидКонтактнойИнформации.Родитель = Справочники.ВидыКонтактнойИнформации.ФизическиеЛица; ВидКонтактнойИнформации.Обязательность = Ложь; ВидКонтактнойИнформации.РазрешитьВводНесколькихЗначений = Истина; ВидКонтактнойИнформации.ВключатьСтрануВФорматПредставления = Истина; ВидКонтактнойИнформации.Записать(); // Address kind with classifier support ВидАдреса = Справочники.ВидыКонтактнойИнформации.СоздатьЭлемент(); ВидАдреса.Наименование = "Адрес проживания"; ВидАдреса.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; ВидАдреса.РедактироватьТолькоВДиалоге = Истина; ВидАдреса.ПроверятьКорректность = Истина; ВидАдреса.ИспользоватьАдресныйКлассификатор = Истина; ВидАдреса.Записать(); // Email kind with validation ВидEmail = Справочники.ВидыКонтактнойИнформации.СоздатьЭлемент(); ВидEmail.Наименование = "Email для уведомлений"; ВидEmail.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; ВидEmail.ПроверятьКорректность = Истина; ВидEmail.Обязательность = Истина; ВидEmail.Записать(); ``` -------------------------------- ### Update Chat UI Preview - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `updatePreview` function updates various aspects of the chat UI's appearance (title text, background color, text color, video conference settings, orientation, padding, user pictures, and color scheme). It calls other helper functions like `setTitleText`, `setTitleBackColor`, etc., to perform these updates. ```javascript function updatePreview (param, value) { switch (param) { case 'titleText': setTitleText(value); break; case 'titleBackColor': setTitleBackColor(value); break; case 'titleTextColor': setTitleTextColor(value); break; case 'allowVideoconferences': setAllowVideoconferences(value); break; case 'orientation': setOrientation(value); break; case 'orientationPadding': setOrientationPadding(value); break; case 'displayUserPictures': setDisplayUserPictures(value); break; case 'colorTheme': setColorTheme(value); break; } } ``` -------------------------------- ### Open Chat Window - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `open` function animates the appearance of the chat window by fading it in after hiding it. It also sets the `opened` flag to `true`. ```javascript function open () { if (!opened) { const element = document.getElementById('ecs-main'); element.style.opacity = '0'; setTimeout(() => { enableClass('ecs-chat-hide', false); }, 250); setTimeout(() => { element.style.opacity = '1'; }, 260); opened = true; } } ``` -------------------------------- ### Creating Report Variants in BSL Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt The code snippet illustrates creating custom report variants with user-specific settings in 1C:Enterprise, setting up groupings and filters, and configuring email distributions. It requires access to report metadata, user sessions, and scheduling APIs; inputs are report definitions and settings objects, outputs include persisted variants and distribution records. Limitations include dependency on 1C platform permissions and potential need for client-side processing for full distribution execution. ```bsl // Create custom report variant ВариантОтчета = Справочники.ВариантыОтчетов.СоздатьЭлемент(); ВариантОтчета.Наименование = "Продажи по менеджерам детально"; ВариантОтчета.Отчет = Метаданные.Отчеты.АнализПродаж; ВариантОтчета.Автор = ПараметрыСеанса.ТекущийПользователь; ВариантОтчета.ДоступенВсем = Ложь; // Private variant // Store custom settings schema СхемаКомпоновкиДанных = Отчеты.АнализПродаж.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); НастройкиКомпоновки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // Configure groupings, filters, selections ВариантОтчета.Настройки = Новый ХранилищеЗначения(НастройкиКомпоновки); ВариантОтчета.Записать(); // Setup report distribution via email РассылкаОтчетов = Справочники.РассылкиОтчетов.СоздатьЭлемент(); РассылкаОтчетов.Наименование = "Еженедельная сводка продаж"; РассылкаОтчетов.Автор = ПараметрыСеанса.ТекущийПользователь; // Add report to distribution НоваяСтрока = РассылкаОтчетов.Отчеты.Добавить(); НоваяСтрока.Отчет = Метаданные.Отчеты.АнализПродаж.ПолноеИмя(); НоваяСтрока.ВариантОтчета = ВариантОтчета.Ссылка; НоваяСтрока.Формат = ПеречислениеФорматыСохраненияОтчета.XLSX; // Add recipients РассылкаОтчетов.Получатели.Добавить().Получатель = Справочники.Пользователи.НайтиПоНаименованию("Директор"); // Configure schedule РассылкаОтчетов.Расписание = Новый РасписаниеРегламентногоЗадания; РассылкаОтчетов.Расписание.ДниНедели = Новый Массив; РассылкаОтчетов.Расписание.ДниНедели.Добавить(1); // Monday РассылкаОтчетов.Расписание.ВремяНачала = Дата(1, 1, 1, 9, 0, 0); РассылкаОтчетов.Записать(); ``` -------------------------------- ### Enable/Disable CSS Class - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `enableClass` function adds or removes a specified CSS class from the 'ecs-main' element based on the `enable` parameter. ```javascript function enableClass (name, enable) { const element = document.getElementById('ecs-main'); if (enable) element.classList.add(name); else element.classList.remove(name); } ``` -------------------------------- ### Set Color Theme - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setColorTheme` function sets the color theme of the chat UI based on the `value` parameter ('auto', 'light', 'dark'). It detects the system's preferred color scheme if 'auto' is selected. ```javascript function setColorTheme (value) { let dark = false; switch (value) { case 'auto': dark = window.matchMedia('(prefers-color-scheme: dark)').matches; break; case 'light': dark = false; break; case 'dark': dark = true; break; } if (dark) document.documentElement.setAttribute('data-theme', 'dark'); else document.documentElement.removeAttribute('data-theme'); } ``` -------------------------------- ### Create email folder in 1C (BSL) Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt Creates an inbox folder structure for an email account in 1C. The folder is linked to a specific email account and marked as a predefined inbox type folder. ```bsl // Create email folder structure ПапкаВходящие = Справочники.ПапкиЭлектронныхПисем.СоздатьЭлемент(); ПапкаВходящие.Наименование = "Входящие"; ПапкаВходящие.Владелец = УчетнаяЗапись.Ссылка; ПапкаВходящие.ПредопределеннаяПапка = Перечисления.ТипыПапокЭлектроннойПочты.Входящие; ПапкаВходящие.Записать(); ``` -------------------------------- ### Hide Chat Window - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `hide` function animates the disappearance of the chat window by fading it out and then hiding it. It also sets the `opened` flag to `false`. ```javascript function hide() { if (opened) { const element = document.getElementById('ecs-main'); element.style.opacity = '0'; setTimeout(() => { enableClass('ecs-chat-hide', true); }, 250); setTimeout(() => { element.style.opacity = '1'; }, 260); opened = false; } } ``` -------------------------------- ### Handle Topline Click Event - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `onToplineClick` function handles click events on the 'ecs-topline' element. It determines the target of the click and calls either the `hide` or `open` function accordingly. ```javascript function onToplineClick (e) { let target = e.target; while (!target.id) target = target.parentNode; target.id === 'ecs-hide-button' ? hide() : open(); } ``` -------------------------------- ### Update Chat UI Text - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `initString` function updates specific chat UI elements (text fields, placeholders, and titles) with provided values based on the `id` parameter. It uses `document.getElementById` and `innerText` for text updates and `placeholder` for input fields. This function is crucial for customizing the chat UI’s display messages. ```javascript let opened = true; function initString (id, value) { switch (id) { case 'today': document.getElementById('ecs-chat-today').innerText = value; break; case 'administrator': document.getElementById('ecs-chat-admin').innerText = value; break; case 'text1': document.getElementById('ecs-chat-text1').innerText = value; break; case 'text2': document.getElementById('ecs-chat-text2').innerText = value; break; case 'time': document.getElementById('ecs-chat-time1').innerText = value; document.getElementById('ecs-chat-time2').innerText = value; break; case 'textareaTooltip': document.getElementById('ecs-chat-textarea').placeholder = value; break; case 'attachFileTooltip': document.getElementById('ecs-attach-button').title = value; break; case 'videoCallTooltip': document.getElementById('ecs-video-button').title = value; break; case 'closeTooltip': document.getElementById('ecs-hide-button').title = value; break; } } ``` -------------------------------- ### Set Orientation Padding - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setOrientationPadding` function enables different CSS classes based on the `value` parameter to adjust the padding of the chat UI elements (0, 50, 100). ```javascript function setOrientationPadding (value) { enableClass('ecs-chat-placeStart', value === '0'); enableClass('ecs-chat-placeCenter', value === '50'); enableClass('ecs-chat-placeEnd', value === '100'); } ``` -------------------------------- ### Set Orientation - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setOrientation` function enables different CSS classes based on the `value` parameter to control the orientation of the chat UI elements (left, bottom, right). ```javascript function setOrientation (value) { enableClass('ecs-chat-start', value === 'left'); enableClass('ecs-chat-bottom', value === 'bottom'); enableClass('ecs-chat-end', value === 'right'); } ``` -------------------------------- ### Configure email processing rule in 1C (BSL) Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt Implements a rule-based email processing system that moves emails containing specific text in the subject to a designated folder. Demonstrates condition checking and action execution in 1C email processing. ```bsl // Configure email processing rule ПравилоОбработки = Справочники.ПравилаОбработкиЭлектроннойПочты.СоздатьЭлемент(); ПравилоОбработки.Наименование = "Заявки от клиентов"; ПравилооОбработки.УчетнаяЗапись = УчетнаяЗапись.Ссылка; // Define rule conditions НовоеУсловие = ПравилоОбработки.Условия.Добавить(); НовоеУсловие.ТипУсловия = Перечисления.ТипыУсловийПравилОбработкиПочты.ТемаСодержит; НовоеУсловие.Значение = "Заявка"; // Define rule action ПравилооОбработки.Действие = Перечисления.ДействияПравилОбработкиПочты.ПереместитьВПапку; ПравилоОбработки.ПапкаНазначения = ПапкаВходящие.Ссылка; ПравилоОбработки.Записать(); ``` -------------------------------- ### Enable/Disable Video Conferences - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setAllowVideoconferences` function toggles the presence of a CSS class ('ecs-chat-video-no') based on the `value` parameter, effectively enabling or disabling video conference functionality. ```javascript function setAllowVideoconferences (value) { enableClass('ecs-chat-video-no', value === 'disallowed' || value === 'allowedToWebChatOnly'); } ``` -------------------------------- ### Set Title Text Color - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setTitleTextColor` function sets the text color and fill color of the element with the id 'ecs-topline' to the provided value. ```javascript function setTitleTextColor (value) { const element = document.getElementById('ecs-topline'); element.style.color = value; element.style.fill = value; } ``` -------------------------------- ### Set Title Background Color - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setTitleBackColor` function sets the background color of the element with the id 'ecs-topline' to the provided value. ```javascript function setTitleBackColor (value) { const element = document.getElementById('ecs-topline'); element.style.backgroundColor = value; } ``` -------------------------------- ### Display/Hide User Pictures - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setDisplayUserPictures` function toggles the presence of a CSS class ('ecs-chat-avatar-hide') based on the `value` parameter, enabling or disabling the display of user pictures. ```javascript function setDisplayUserPictures (value) { enableClass('ecs-chat-avatar-hide', value === 'false'); } ``` -------------------------------- ### Display User Notifications in 1C:Enterprise (BSL) Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt The `СообщитьПользователю` (MessageToUser) function in 1C:Enterprise allows for standardized user notifications. It supports binding messages to specific form fields, associating them with database objects, and can be used in background job contexts where messages are queued. ```bsl // Display error message next to a specific form field bound to object attribute ОбщегоНазначения.СообщитьПользователю( НСтр("ru = 'Поле не может быть пустым'"), , "ПолеВРеквизитеФормыОбъект", "Объект" ); // Display message related to database object with reference Отказ = Ложь; ОбщегоНазначения.СообщитьПользователю( НСтр("ru = 'Невозможно провести документ с текущими данными'"), СсылкаНаДокумент, "Ответственный", , Отказ ); // Display message in form field ОбщегоНазначения.СообщитьПользователю( НСтр("ru = 'Проверьте корректность введенных данных'"), , "ИмяРеквизитаФормы" ); // In background job context, messages are automatically queued and sent to client // via notification system when available ``` -------------------------------- ### Retrieve Object Attributes Efficiently in 1C:Enterprise (BSL) Source: https://context7.com/shootnick-tm/ssl_3_1/llms.txt The `ЗначенияРеквизитовОбъекта` (ObjectAttributeValues) function in 1C:Enterprise retrieves specified object attributes directly from the database without loading the entire object. This optimizes performance, especially when only a few attributes are needed. It supports various input formats for attribute specification, including comma-separated strings, arrays, and structures with aliases, and can consider access rights. ```bsl // Read multiple attributes by comma-separated string Ссылка = Справочники.Пользователи.НайтиПоНаименованию("Иванов"); Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( Ссылка, "Код, Наименование, ФизическоеЛицо, Недействителен" ); // Returns: Structure with keys {Код, Наименование, ФизическоеЛицо, Недействителен} // Read attributes using array syntax МассивРеквизитов = Новый Массив; МассивРеквизитов.Добавить("Код"); МассивРеквизитов.Добавить("Наименование"); Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( Ссылка, МассивРеквизитов ); // Read attributes with aliases using structure СтруктураРеквизитов = Новый Структура; СтруктураРеквизитов.Вставить("КодПользователя", "Код"); СтруктураРеквизитов.Вставить("ИмяПользователя", "Наименование"); Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( Ссылка, СтруктураРеквизитов ); // Returns: Structure with keys {КодПользователя, ИмяПользователя} // Access predefined element by full name Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( "Справочник.ГруппыПользователей.ВсеПользователи", "Наименование, Комментарий" ); // Read with access rights consideration Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( Ссылка, "Код, Наименование", Истина // ВыбратьРазрешенные - returns Undefined if access denied ); // Error handling for invalid references returns Undefined values ПустаяСсылка = Справочники.Пользователи.ПустаяСсылка(); Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( ПустаяСсылка, "Код, Наименование" ); // Returns: Structure {Код: Undefined, Наименование: Undefined} ``` -------------------------------- ### Set Title Text - JavaScript Source: https://github.com/shootnick-tm/ssl_3_1/blob/master/src/cf/DataProcessors/ПодключениеОбсуждений/Templates/МакетОтображенияВебЧата/Ext/Template/ru.html The `setTitleText` function sets the text content of the element with the id 'ecs-topline-text' and sets a data-title attribute with the provided value. ```javascript function setTitleText (value) { const element = document.getElementById('ecs-topline-text'); element.setAttribute('data-title', value); } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.