Перечитать свою строку по отбору управляемого набора

Учебные задачи

Форма относится к конкретному собственному регистру, открывается с документированным параметром Отбор и работает только со своим новым UUID-ключом.

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

Клиентская команда формы УчебныйНабор своего регистра; форма открыта отдельной командой с конкретным Отбор.

Подготовка

  1. В отдельной учебной конфигурации создайте свой независимый непериодический регистр сведений УчебныеНаборыФормы: измерение Ключ (Строка 40, Основной отбор Истина), ресурс Количество (Число 12.2 со знаком).

  2. Мастером создайте у этого регистра именно управляемую форму набора записей УчебныйНабор, сохранив её настоящий основной реквизит и таблицу строк. Не заменяйте её формой записи или произвольной общей формой.

  3. В УчебныйНабор добавьте реквизиты РазрешитьЗапись и ОтменитьВТранзакции (Булево), СчетчикСобытий (Число 10.0), СтатусУрока (Строка 200), выведите их на форму. Отдельный инициализатор относится к этой форме.

  4. В своей внешней обработке с управляемой формой создайте команду ОткрытьСвойНабор. Дополнительный блок открытия и серверной подготовки поместите только в её модуль; он создаёт свою запись и передаёт форме настоящий параметр Отбор.

  5. Открывайте форму только этой командой. Новый UUID-ключ ограничивает набор одной собственной записью; не открывайте без отбора рабочий регистр и не подставляйте чужое имя.

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

  7. Для чтения измените свою строку с 3 на 4 без сохранения, затем нажмите собственную кнопку. Повторное чтение возвращает сохранённые данные, несохранённое изменение собственной формы теряется.

&НаКлиенте
Процедура ПрочитатьСвойНабор(Команда)
    Прочитать();
    СтатусУрока = "Прочитаны сохранённые строки собственного отбора";
    Сообщить(СтатусУрока);
КонецПроцедуры
Отдельная форма своей обработки: подготовить запись и открыть свой набор с отбором
&НаКлиенте
Процедура ОткрытьСвойНабор(Команда)
    СвойКлюч = ПодготовитьСвойНабор();
    ОтборНабора = Новый Структура("Ключ", СвойКлюч);
    ПараметрыОткрытия = Новый Структура("Отбор", ОтборНабора);
    ОткрытьФорму("РегистрСведений.УчебныеНаборыФормы.Форма.УчебныйНабор", ПараметрыОткрытия);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодготовитьСвойНабор()
    СвойКлюч = Строка(Новый УникальныйИдентификатор);
    Набор = РегистрыСведений.УчебныеНаборыФормы.СоздатьНаборЗаписей();
    Набор.Отбор.Ключ.Установить(СвойКлюч);
    Запись = Набор.Добавить();
    Запись.Ключ = СвойКлюч;
    Запись.Количество = 3;
    Набор.Записать();
    Возврат СвойКлюч;
КонецФункции
Форма УчебныйНабор: инициализация собственных учебных реквизитов
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    РазрешитьЗапись = Ложь;
    ОтменитьВТранзакции = Ложь;
    СчетчикСобытий = 0;
    СтатусУрока = "Свой набор открыт по уникальному ключу";
КонецПроцедуры

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

  1. Создаём собственный регистр и настоящую управляемую форму набора мастером.

  2. Отдельная обработка создаёт одну свою строку и открывает форму с нужным отбором.

  3. Выполняем указанную команду / действие и различаем чтение, отказ до транзакции, событие внутри и событие после транзакции.

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

  1. Без предварительного сохранения изменение 4 заменено сохранённым значением 3.

  2. Прочитать использует установленный при открытии отбор, а не получает все строки регистра.

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

Метод / событие показано на собственном реально открываемом наборе с точным контекстом и ограниченным отбором.

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

  1. Запись набора с пустым отбором опасна: урок открывает только свой набор по новому уникальному Ключ.

  2. Форма записи, форма набора записей и произвольная общая форма не имеют одинакового расширения.

  3. Код 1С при сборке HTML не исполнялся; учебные и рабочие записи агентом не менялись.

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

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

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

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

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