Расширение табличного поля списка задач.Исполнитель

Свойства · Performer

Тип: Ссылка на объект информационной базы. Параметр содержит ссылку на исполнителя.

Полное описание, параметры и ограничения

Расширение табличного поля списка задач.Исполнитель (Task list table box extension.Performer)

Расширение табличного поля списка задач (Task list table box extension)

Исполнитель (Performer)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: Ссылка на объект информационной базы.
Параметр содержит ссылку на исполнителя.
Доступность:

Толстый клиент.

Примечание:
Используется при установленном свойстве ОтображениеЗадач = ПоИсполнителю.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Задачи: сентябрь, собственный исполнитель A и сброс фильтров при смене режима

На четырёх настоящих своих записях разберём источник списка, месячный отбор и UI без выполнения задач или запуска процессов.

Где и как запускать

Полный модуль собственной обычной формы УчебныеСпискиПроцессов85 → Обработки → Уч85СписокЗадач → Формы → Список; общий модуль и Пульт ниже. Не выполнялся.

Подготовка

  1. НОВАЯ отдельная файловая база 8.5.1.1343, конфигурация УчебныеСпискиПроцессов85, совместимость НеИспользовать, обычное приложение, толстый клиент. Не рабочая база и не её копия. Нет расширений, разделителей, общих реквизитов, подписок, внешних/фоновых обработчиков; одна учебная сессия. runtimeVerifiedScenarios=0.

  2. Задача Уч85Задача: номер Строка(9), автонумерация, наименование 100. Дополнительные Уч85Ключ Строка(8) и Уч85Текст Строка(100), оба Индексировать, без проверки заполнения. Реквизит адресации Уч85Исполнитель типа СправочникСсылка.Уч85Сотрудники, основной реквизит адресации. Модули задачи пустые.

  3. Бизнес-процесс Уч85Процесс: номер Строка(9), автонумерация; собственные Уч85Ключ Строка(8) и Уч85Текст Строка(100), оба Индексировать. В свойстве Задача выберите Уч85Задача. Маршрут: Старт → одиночное действие Уч85Действие → Финиш. Никаких обработчиков/групповых/условных/вложенных точек. Процессы НЕ запускать, задачи НЕ выполнять.

  4. Справочник Уч85Сотрудники: неиерархический, код Строка(8), имя 100, без реквизитов/обработчиков. Вручную сохраните только A/Учебный сотрудник A и B/Учебный сотрудник B, без пометок удаления. Это собственные справочные записи, не пользователи информационной базы.

  5. Регистр сведений Уч85Адресация: независимый, непериодический, единственное измерение Уч85Исполнитель типа СправочникСсылка.Уч85Сотрудники, без ресурсов/реквизитов/обработчиков. В Задача → Адресация выберите этот регистр; у реквизита адресации Уч85Исполнитель свойство ИзмерениеАдресации свяжите с одноимённым измерением. Регистр оставьте пустым: все учебные задачи имеют непустое персональное назначение, ролевую адресацию здесь не испытываем.

  6. Параметр сеанса Уч85ТекущийИсполнитель типа СправочникСсылка.Уч85Сотрудники; в метаданных задачи ТекущийИсполнитель укажите этот параметр. Модуль сеанса пустой. В варианте задач общий модуль явно инициализирует только этот собственный параметр перед открытием; это будущая настройка своей сессии, не запись сотрудников/задач и не смена пользователя ИБ.

  7. Для каждого вида вручную сохраните ровно четыре записи без запуска/выполнения/пометок: A — 01.09.2026 00:00:00, Уч85Текст=01. Первая учебная запись; B — 15.09.2026 12:00:00, текст=02. Вторая учебная запись; C — 30.09.2026 23:59:59, текст=03. Граница сентября; D — 01.10.2026 00:00:00, текст=04. Первый октябрьский. Уч85Ключ A/B/C/D. У задач Наименование равно Уч85Текст; персональный Уч85Исполнитель A у A/C/D, B у B. Задачи самостоятельные, не созданы запуском маршрута. Показывайте секунды даты.

  8. Общий модуль УчебныеСписки85: неглобальный, Клиент (обычное приложение)=Да, Сервер=Нет, Привилегированный=Нет, другие клиентские флаги=Нет. Полный общий модуль ниже, основной блок — модуль списка. Вставляйте один вариант, не оба общих модуля одновременно.

  9. Обработка УчебныеСписки85 → обычная основная форма Пульт → кнопка Выполнить, действие ВыполнитьНажатие; полный модуль формы отдельно. F7 и обновление только своего стенда. Примеры не вызывают Записать/Старт/ВыполнитьЗадачу/удаление/сеть/почту/файлы/печать.

  10. Обработка Уч85СписокЗадач → обычная основная форма Список. Реквизит СписокРасчетов типа ЗадачаСписок.Уч85Задача; поле Виды связано с ним. Колонки Дата/Уч85Текст/Уч85Ключ связаны с одноимёнными полями. ТолькоПросмотр=Да, стандартных команд записи/создания/выполнения/старта/удаления нет.

  11. Кнопки ТолькоB, Восстановить, Фиксированный, Настраиваемый, АвтоОбновление, РазрешитьПериод, ЗапретитьПериод, Закрыть: назначьте действия *Нажатие и ПриОткрытии. Оставьте стандартный диалог настройки списка в контекстном меню поля. Основной полный блок вставьте в модуль списка.

  12. В списке задач добавьте колонки Наименование и Уч85Исполнитель, связанные с одноимёнными полями, и кнопку СотрудникA → СотрудникAНажатие. Не добавляйте СтандартныйПериод: в данном расширении задач это свойство отсутствует.

Перем Подготовлено;
Перем СвоиЗаписи;
Перем РазрешалисьИзмененияПериода;

Процедура ПодготовитьДоОткрытия() Экспорт
    Подготовлено = Ложь;
    РазрешалисьИзмененияПериода = Ложь;
    Если ЭтаФорма.Открыта() Или ТипЗнч(СписокРасчетов) <> Тип("ЗадачаСписок.Уч85Задача") Тогда
        ВызватьИсключение "Нужен настоящий реквизит списка своей закрытой обычной формы";
    КонецЕсли;
    СвоиЗаписи = УчебныеСписки85.ПрочитатьСвоюПодготовку();
    Колонки = СписокРасчетов.Колонки;
    Для Каждого Имя Из СтрРазделить("Дата,Уч85Текст,Уч85Ключ,Наименование,Уч85Исполнитель", ",") Цикл
        Если Колонки.Найти(Имя) = Неопределено Тогда
            Колонки.Добавить(Имя);
        КонецЕсли;
    КонецЦикла;
    Поле = ЭлементыФормы.Виды;
    НастроитьПоле(Ложь);
    Поле.Автонумерация = АвтонумерацияВФорме.НеИспользовать;
    Поле.ОтображениеЗадач = РежимСпискаЗадач.ВсеЗадачи;
    Если Поле.Автонумерация <> АвтонумерацияВФорме.НеИспользовать Тогда
        ВызватьИсключение "Автонумерация в своём поле должна быть отключена";
    КонецЕсли;
    УстановитьДоступностьПериода(Ложь);
    УстановитьСентябрь();
    Подготовлено = Истина;
КонецПроцедуры

Процедура ПриОткрытии()
    Если Подготовлено <> Истина Тогда
        ВызватьИсключение "Открывайте свой список через Пульт после подготовки";
    КонецЕсли;
    УстановитьСентябрь();
    СписокРасчетов.Обновить();
    Сообщить("Проверьте сентябрьские A,B,C. C в 30.09 23:59:59 включена, D в 01.10 00:00:00 исключена.");
КонецПроцедуры

Процедура ПроверитьСвойОткрытыйСписок()
    Если Подготовлено <> Истина Или Не ЭтаФорма.Открыта() Тогда
        ВызватьИсключение "Нужен свой подготовленный открытый список";
    КонецЕсли;
    Повторно = УчебныеСписки85.ПрочитатьСвоюПодготовку();
    Для Каждого Ключ Из СтрРазделить("A,B,C,D", ",") Цикл
        Если Повторно.Ссылки[Ключ] <> СвоиЗаписи.Ссылки[Ключ] Тогда
            ВызватьИсключение "Своя подготовленная запись заменена другим кодом";
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Процедура ПроверитьФиксированныйПериод()
    Если РазрешалисьИзмененияПериода = Истина Тогда
        ВызватьИсключение "После разрешения ручного интервала откройте новый собственный опыт для фиксированных ожиданий";
    КонецЕсли;
КонецПроцедуры

Процедура УстановитьСентябрь()
    ПроверитьФиксированныйПериод();
    СписокРасчетов.Отбор.Сбросить();
    ДатаОтбора = СписокРасчетов.Отбор.Найти("Дата");
    Если ДатаОтбора = Неопределено Тогда
        ВызватьИсключение "В своём списке нет стандартного отбора Дата";
    КонецЕсли;
    ДатаОтбора.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
    ДатаОтбора.ЗначениеС = Дата(2026, 9, 1, 0, 0, 0);
    ДатаОтбора.ЗначениеПо = Дата(2026, 9, 30, 23, 59, 59);
    ДатаОтбора.Использование = Истина;
    СписокРасчетов.Порядок.Установить("Наименование Возр");
    Если ДатаОтбора.ВидСравнения <> ВидСравнения.ИнтервалВключаяГраницы Или Не ДатаОтбора.Использование
        Или ДатаОтбора.ЗначениеС <> Дата(2026, 9, 1, 0, 0, 0) Или ДатаОтбора.ЗначениеПо <> Дата(2026, 9, 30, 23, 59, 59) Тогда
        ВызватьИсключение "Не подтверждены точные границы своего сентября";
    КонецЕсли;
КонецПроцедуры

Процедура ТолькоBНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    ЭлементыФормы.Виды.ОтображениеЗадач = РежимСпискаЗадач.ВсеЗадачи;
    УстановитьСентябрь();
    СписокРасчетов.Отбор.Уч85Ключ.Установить("B", Истина);
    СписокРасчетов.Обновить();
    Сообщить("Проверьте только свою B с датой 15.09 и учебным ключом B.");
КонецПроцедуры

Процедура ВосстановитьНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    ЭлементыФормы.Виды.ОтображениеЗадач = РежимСпискаЗадач.ВсеЗадачи;
    УстановитьСентябрь();
    СписокРасчетов.Обновить();
    Сообщить("Проверьте снова A,B,C за сентябрь; октябрьская D скрыта, но не удалена.");
КонецПроцедуры

Процедура РазрешитьПериодНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    УстановитьДоступностьПериода(Истина);
    Сообщить("Команда Установить интервал дат разрешена даже при недоступном ручном отборе Дата. После ручного опыта закройте окно и запустите новый Пульт для исходных границ.");
КонецПроцедуры

Процедура ЗапретитьПериодНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    УстановитьДоступностьПериода(Ложь);
КонецПроцедуры

Процедура УстановитьДоступностьПериода(Разрешено)
    Поле = ЭлементыФормы.Виды;
    УправлениеДатой = Поле.НастройкаОтбора.Найти("Дата");
    Если УправлениеДатой = Неопределено Тогда
        ВызватьИсключение "Нет собственного элемента управления отбором Дата";
    КонецЕсли;
    УправлениеДатой.Доступность = Ложь;
    Поле.РазрешитьНастройкуПериода = Разрешено;
    Если Разрешено Тогда
        РазрешалисьИзмененияПериода = Истина;
    КонецЕсли;
    Если УправлениеДатой.Доступность Или Поле.РазрешитьНастройкуПериода <> Разрешено Тогда
        ВызватьИсключение "Не совпали доступности даты и отдельной команды периода";
    КонецЕсли;
КонецПроцедуры

Процедура ЗакрытьНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    ЭлементыФормы.Виды.АвтоОбновление = Ложь;
    ЭтаФорма.Закрыть();
КонецПроцедуры

Процедура НастроитьПоле(Интерактивно)
    Поле = ЭлементыФормы.Виды;
    УправлениеОтбором = Поле.НастройкаОтбора.Найти("Уч85Ключ");
    УправлениеПорядком = Поле.НастройкаПорядка.Найти("Наименование");
    Если УправлениеОтбором = Неопределено Или УправлениеПорядком = Неопределено Тогда
        ВызватьИсключение "Нет собственных элементов управления отбором ключа и порядком наименования";
    КонецЕсли;
    Поле.АвтоОбновление = Ложь;
    Поле.ПериодАвтоОбновления = 10;
    Поле.ВосстанавливатьТекущуюСтроку = Ложь;
    Поле.ИзменятьАвтоОбновление = Интерактивно;
    Поле.ИзменятьСпособРедактирования = Интерактивно;
    Если Интерактивно Тогда
        Поле.СпособРедактирования = СпособРедактированияСписка.ВСписке;
        Поле.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.НеПроверять;
    Иначе
        Поле.СпособРедактирования = СпособРедактированияСписка.ВДиалоге;
        Поле.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.СообщатьОНесоответствииОтбору;
    КонецЕсли;
    УправлениеОтбором.Доступность = Интерактивно;
    УправлениеПорядком.Доступность = Интерактивно;
    Поле.ТолькоПросмотр = Истина;
    ПроверитьПрофиль(Интерактивно);
КонецПроцедуры

Процедура ПроверитьПрофиль(Интерактивно)
    Поле = ЭлементыФормы.Виды;
    Если Поле.АвтоОбновление Или Поле.ПериодАвтоОбновления <> 10 Или Поле.ВосстанавливатьТекущуюСтроку
        Или Поле.ИзменятьАвтоОбновление <> Интерактивно Или Поле.ИзменятьСпособРедактирования <> Интерактивно
        Или Не Поле.ТолькоПросмотр Тогда
        ВызватьИсключение "Флаги своего профиля не совпали";
    КонецЕсли;
    Если Поле.НастройкаОтбора.Найти("Уч85Ключ").Доступность <> Интерактивно
        Или Поле.НастройкаПорядка.Найти("Наименование").Доступность <> Интерактивно Тогда
        ВызватьИсключение "Интерактивная доступность отбора/порядка не совпала";
    КонецЕсли;
    Если Интерактивно Тогда
        Если Поле.СпособРедактирования <> СпособРедактированияСписка.ВСписке
            Или Поле.ПроверкаОтображенияНовойСтроки <> ВариантПроверкиОтображенияНовойСтроки.НеПроверять Тогда
            ВызватьИсключение "Не совпали режим и проверка настраиваемого профиля";
        КонецЕсли;
    Иначе
        Если Поле.СпособРедактирования <> СпособРедактированияСписка.ВДиалоге
            Или Поле.ПроверкаОтображенияНовойСтроки <> ВариантПроверкиОтображенияНовойСтроки.СообщатьОНесоответствииОтбору Тогда
            ВызватьИсключение "Не совпали режим и проверка фиксированного профиля";
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Процедура НастраиваемыйНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    НастроитьПоле(Истина);
    Сообщить("Откройте стандартный диалог настройки списка: отбор по ключу, порядок наименования и настройки автообновления доступны. Запись строк по-прежнему запрещена настройкой ТолькоПросмотр.");
КонецПроцедуры

Процедура ФиксированныйНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    НастроитьПоле(Ложь);
    ВосстановитьНажатие(Неопределено);
    Сообщить("Фиксированный профиль восстановлен. Программный отбор кнопкой ТолькоB работает независимо от запрета его интерактивного изменения.");
КонецПроцедуры

Процедура АвтоОбновлениеНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    Поле = ЭлементыФормы.Виды;
    Поле.ИзменятьАвтоОбновление = Ложь;
    Поле.ПериодАвтоОбновления = 10;
    Поле.АвтоОбновление = Не Поле.АвтоОбновление;
    Сообщить(СтрШаблон("АвтоОбновление=%1, период=%2 секунд, интерактивное изменение=%3",
        Поле.АвтоОбновление, Поле.ПериодАвтоОбновления, Поле.ИзменятьАвтоОбновление));
КонецПроцедуры

Процедура СотрудникAНажатие(Кнопка)
    ПроверитьСвойОткрытыйСписок();
    Поле = ЭлементыФормы.Виды;
    Поле.ОтображениеЗадач = РежимСпискаЗадач.ВсеЗадачи;
    Поле.Исполнитель = СвоиЗаписи.Сотрудники.A;
    Поле.ОтображениеЗадач = РежимСпискаЗадач.ПоИсполнителю;
    Если СписокРасчетов.Отбор.Уч85Ключ.Использование Тогда
        ВызватьИсключение "При реальной смене режима прежний отбор B должен сброситься";
    КонецЕсли;
    УстановитьСентябрь();
    Если Поле.Исполнитель <> СвоиЗаписи.Сотрудники.A Или Поле.ОтображениеЗадач <> РежимСпискаЗадач.ПоИсполнителю Тогда
        ВызватьИсключение "Не подтверждены свой исполнитель и режим";
    КонецЕсли;
    СписокРасчетов.Обновить();
    Сообщить("Проверьте A,C за сентябрь, назначенные сотруднику A. Прежний отбор B снят; октябрьская D этого же сотрудника вне периода.");
КонецПроцедуры
УчебныеСписки85.Пульт

УчебныеСпискиПроцессов85 → Обработки → УчебныеСписки85 → Формы → Пульт → Модуль

Полный модуль обычного Пульта; не выполнялся.

Процедура ВыполнитьНажатие(Кнопка)
    УчебныеСписки85.ВыполнитьПример();
КонецПроцедуры
УчебныеСписки85.ОбщийМодуль

УчебныеСпискиПроцессов85 → Общие модули → УчебныеСписки85

Полный обычный клиентский общий модуль чтения своей подготовки и запуска списка; не выполнялся.

Процедура ВыполнитьПример() Экспорт
    Свои = ПрочитатьСвоюПодготовку();
    ПараметрыСеанса.Уч85ТекущийИсполнитель = Свои.Сотрудники.A;
    Ключ = Новый УникальныйИдентификатор;
    Окно = Обработки.Уч85СписокЗадач.ПолучитьФорму("Список", , Ключ);
    Если Окно = Неопределено Тогда
        ВызватьИсключение "Не создана собственная обычная форма Список";
    КонецЕсли;
    Если ТипЗнч(Окно) <> Тип("Форма") Тогда
        ВызватьИсключение "Нужна обычная форма толстого клиента";
    КонецЕсли;
    Если Окно.Открыта() Или Окно.КлючУникальности <> Ключ Тогда
        ВызватьИсключение "Ожидалась новая закрытая форма, не чужое окно";
    КонецЕсли;
    Окно.КлючСохраненияПоложенияОкна = "Уч85.Уч85СписокЗадач." + Строка(Ключ);
    Окно.ПодготовитьДоОткрытия();
    Окно.Открыть();
КонецПроцедуры

Процедура ПроверитьСвойКонтекст()
    Если Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
        ВызватьИсключение "Нужен собственный стенд УчебныеСпискиПроцессов85 платформы 8.5.1.1343";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Учебный вывод не должен выполняться внутри чужой транзакции";
    КонецЕсли;
КонецПроцедуры

Функция ПрочитатьСвоюПодготовку() Экспорт
    ПроверитьСвойКонтекст();
    Сотрудники = ПрочитатьСвоихСотрудников();
    Ожидания = Новый Структура;
    Ожидания.Вставить("A", Новый Структура("Дата,Текст,Исполнитель", Дата(2026, 9, 1, 0, 0, 0), "01. Первая учебная запись", "A"));
    Ожидания.Вставить("B", Новый Структура("Дата,Текст,Исполнитель", Дата(2026, 9, 15, 12, 0, 0), "02. Вторая учебная запись", "B"));
    Ожидания.Вставить("C", Новый Структура("Дата,Текст,Исполнитель", Дата(2026, 9, 30, 23, 59, 59), "03. Граница сентября", "A"));
    Ожидания.Вставить("D", Новый Структура("Дата,Текст,Исполнитель", Дата(2026, 10, 1, 0, 0, 0), "04. Первый октябрьский", "A"));
    Ссылки = Новый Структура;
    Выборка = Задачи.Уч85Задача.Выбрать(, "Наименование Возр");
    Пока Выборка.Следующий() Цикл
        Ключ = Выборка.Уч85Ключ;
        Ожидание = Неопределено;
        Если Не Ожидания.Свойство(Ключ, Ожидание) Или Ссылки.Свойство(Ключ) Тогда
            ВызватьИсключение "В своём наборе неизвестный или повторный учебный ключ";
        КонецЕсли;
        Если Выборка.Дата <> Ожидание.Дата Или Выборка.Уч85Текст <> Ожидание.Текст
            Или Выборка.ПометкаУдаления Тогда
            ВызватьИсключение "Не совпали дата, текст или пометка своей записи";
        КонецЕсли;
        Если Выборка.Выполнена Или Выборка.Наименование <> Ожидание.Текст
            Или Выборка.Уч85Исполнитель <> Сотрудники[Ожидание.Исполнитель] Тогда
            ВызватьИсключение "Задача должна быть невыполненной с реальным персональным назначением";
        КонецЕсли;
        Ссылки.Вставить(Ключ, Выборка.Ссылка);
    КонецЦикла;
    Если Ссылки.Количество() <> 4 Тогда
        ВызватьИсключение "Вручную подготовьте ровно четыре собственные записи A/B/C/D";
    КонецЕсли;
    Возврат Новый Структура("Ссылки,Сотрудники", Ссылки, Сотрудники);
КонецФункции

Функция ПрочитатьСвоихСотрудников()
    A = Справочники.Уч85Сотрудники.НайтиПоКоду("A");
    B = Справочники.Уч85Сотрудники.НайтиПоКоду("B");
    Если A.Пустая() Или B.Пустая() Или A = B Или A.Наименование <> "Учебный сотрудник A"
        Или B.Наименование <> "Учебный сотрудник B" Или A.ПометкаУдаления Или B.ПометкаУдаления Тогда
        ВызватьИсключение "Вручную подготовьте настоящих собственных сотрудников A/B";
    КонецЕсли;
    Выборка = Справочники.Уч85Сотрудники.Выбрать();
    Количество = 0;
    Пока Выборка.Следующий() Цикл
        Если Выборка.Ссылка <> A И Выборка.Ссылка <> B Тогда
            ВызватьИсключение "В своём справочнике есть посторонний сотрудник";
        КонецЕсли;
        Количество = Количество + 1;
    КонецЦикла;
    Если Количество <> 2 Тогда
        ВызватьИсключение "Нужны ровно два своих сотрудника";
    КонецЕсли;
    Описание = Метаданные.Задачи.Уч85Задача;
    Основной = Описание.ОсновнойРеквизитАдресации;
    Реквизит = Описание.РеквизитыАдресации.Найти("Уч85Исполнитель");
    Если Основной = Неопределено Или Реквизит = Неопределено Или Описание.РеквизитыАдресации.Количество() <> 1 Тогда
        ВызватьИсключение "У своей задачи нужен единственный основной реквизит адресации";
    КонецЕсли;
    Если Основной <> Реквизит Или Описание.Адресация <> Метаданные.РегистрыСведений.Уч85Адресация
        Или Реквизит.ИзмерениеАдресации <> Метаданные.РегистрыСведений.Уч85Адресация.Измерения.Уч85Исполнитель Тогда
        ВызватьИсключение "Не совпали собственные настройки адресации";
    КонецЕсли;
    Адресация = РегистрыСведений.Уч85Адресация.Выбрать();
    Если Адресация.Следующий() Тогда
        ВызватьИсключение "В этом опыте регистр ролевой адресации должен быть пуст";
    КонецЕсли;
    Возврат Новый Структура("A,B", A, B);
КонецФункции

Разбор по шагам

  1. Свой набор A/B/C/D содержит две точные границы месяца: C на последней секунде сентября и D в первую секунду октября. Общий модуль читает даты/тексты/ключи и незапущенное/невыполненное состояние, не создавая новых записей.

  2. Источник СписокРасчетов имеет конкретный прикладной тип списка, Виды — визуальное поле. Колонки источника добавляются по именам собственных полей, визуальные колонки заранее связаны с ними в своей обычной форме.

  3. Пульт получает новую закрытую форму по уникальному ключу. Основной полный блок вставляется в модуль Список, отдельные блоки — в общий модуль и Пульт. ПриОткрытии отклоняет неподготовленный прямой запуск.

  4. УстановитьСентябрь использует настоящий ЭлементОтбора Дата: ИнтервалВключаяГраницы, ЗначениеС 01.09 00:00:00, ЗначениеПо 30.09 23:59:59 и Использование=Истина. Проверяет назначенные границы, затем Обновить перечитывает базу.

  5. У задачи собственный основной реквизит адресации Уч85Исполнитель связан с измерением пустого регистра. Все A/B/C/D имеют непустое персональное назначение: A/C/D сотруднику A, B сотруднику B; ролевые задачи не имитируются.

  6. ПараметрыСеанса доступны здесь в толстом клиенте. Свой параметр сначала явно инициализируется сотрудником A, без чтения неинициализированного значения. Metadata.ТекущийИсполнитель по справке всегда Неопределено и не является способом прочитать значение параметра.

  7. СотрудникA принудительно проходит ВсеЗадачи → ПоИсполнителю, задаёт настоящую ссылку A и проверяет сброс прежнего отбора B. Только затем УстановитьСентябрь заново задаёт период: ожидаем A/C, но не октябрьскую D и не B другого исполнителя.

  8. Порядок задачи задаётся Наименование Возр — документированное поле этого списка; имена с префиксами 01…04 совпадают с учебной последовательностью. У менеджеров задач/процессов разные позиции параметров Выбрать, они не копируются механически.

  9. Ожидаем A/B/C, не D. ТолькоB добавляет собственный индексированный ключ; Восстановить возвращает сентябрь. Сообщения — инструкции будущей ручной проверки, а не доказательство отображённых строк.

  10. НастройкаОтбора и НастройкаПорядка readonly как свойства поля. Найти может вернуть Неопределено. Их Доступность относится к ручной настройке, а Отбор источника — к фактической фильтрации.

  11. РазрешитьНастройкуПериода отдельно управляет командой Установить интервал дат, даже когда ручная настройка Дата недоступна. После разрешения ручного интервала действия с фиксированным сентябрём блокируются до нового собственного окна, даже если человек ещё не изменил даты; прежние ожидания не выдаются за доказательство.

  12. Фиксированный/Настраиваемый меняют доступность настройки автообновления и режима редактирования. ТолькоПросмотр остаётся включённым; настройка проверки новой строки не выдаётся за выполненный ввод или испытанное сообщение.

  13. АвтоОбновление переключается программно при периоде 10 секунд; native-минимум 5. ИзменятьАвтоОбновление не запрещает программное изменение. ВосстанавливатьТекущуюСтроку выключен для нового независимого окна.

  14. Закрыть выключает таймер своего поля и закрывает только свой список. Задачи не выполняются, маршрут не стартует, сотрудники/записи/адресация не записываются. Никакого запуска 1С здесь не было.

Как проверить результат

  1. Будущий тест: три полных блока вставить в разные указанные модули, назначить действия/ПриОткрытии и связать колонки, F7, открыть через свой Пульт.

  2. Сентябрь: реальные A,B,C; C 30.09 23:59:59 включена, D 01.10 00:00:00 отсутствует. Осмотреть поле, не только строку Сообщить.

  3. ТолькоB: одна B. Восстановить: три сентябрьские записи. Все четыре по-прежнему существуют в стандартном списке своего вида.

  4. РазрешитьПериод/ЗапретитьПериод: проверить доступность отдельной команды при недоступной ручной настройке Дата. После разрешения ручного интервала Восстановить отклоняется; закрыть окно и повторить с новым уникальным ключом.

  5. Настраиваемый/Фиксированный и АвтоОбновление: сверить фактические флаги, период 10 и диалог. Реальная работа таймера и восстановление позиции не объявляются проверенными.

  6. Закрыть своё окно; записи без пометок и в исходном состоянии. Никаких новых задач маршрута, выполнений или сохранений из кода нет.

  7. После ТолькоB нажать СотрудникA: A/C, отбор B не используется; D этого же сотрудника исключена сентябрём. Восстановить возвращает ВсеЗадачи и A/B/C.

Ожидаемый результат

Будущий список показывает A/B/C за сентябрь, не октябрьскую D; задачи дополнительно фильтруются по настоящему собственному сотруднику A. Данные не записываются, UI и 1С здесь не запускались.

На что обратить внимание

  1. Это обычные формы толстого клиента, не ДинамическийСписок управляемой формы. Источник и визуальное поле — разные объекты.

  2. Readonly свойства коллекций не заменяются; изменяются элементы/методы полученных объектов. Доступность UI и ТолькоПросмотр не являются правами базы.

  3. Сравнение ИнтервалВключаяГраницы корректно для дат, но не для ссылочных данных. Конец месяца задан до последней секунды, не 30.09 00:00:00.

  4. Разрешение ручной смены периода может изменить реальный состав списка. Уже после разрешения нужен новый собственный опыт для фиксированных ожиданий; прежние строки сообщения не доказывают новый результат.

  5. Настройка способа редактирования/автонумерации/проверки строки не означает выполненный ввод. Таймер/UI и 1С здесь не запускались: runtimeVerifiedScenarios=0.

  6. Собственные сотрудники не равны пользователям ИБ. Персональная и ролевая адресация отличаются; рабочие задачи, маршруты и регистры не использовать.

  7. Изменение ОтображениеЗадач сбрасывает фильтры. Период и другие необходимые отборы назначаются ПОСЛЕ смены режима. Исполнитель используется при ПоИсполнителю, не является сменой пользователя ИБ.

  8. Инициализация собственного параметра изменяет только свою учебную сессию; прежнее неинициализированное состояние не обещается восстановленным. Это не запись задач/каталога и не применение к рабочему сеансу.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.