Пятница, 11.10.2024, 09:24
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Подбор и обработка - нет возможн-ти отменить проверку записи
GetNightДата: Воскресенье, 15.05.2022, 16:47 | Сообщение # 1
Подполковник
Группа: Проверенные
Сообщений: 109
Репутация: 64
Статус: Оффлайн
Платформа: 8.3.16.1876
Режим БД: клиент-серверный
Конфигурация. Название: Управление производственным предприятием для Украины, редакция 1.3 (1.3.67.2)
Конфигурация. Основной режим запуска: Обычное приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим управления блокировкой данных: Управляемый
Конфигурация. Режим совместимости: Версия8_3_10
Конфигурация. Версия БСП: 102
Инструменты разработчика. Версия: Портативный 6.27.3p
Инструменты разработчика. Инструмент: Прочее
Инструменты разработчика. Перехват клавиатурного ввода: Нет
Инструменты разработчика. Объекты на сервере: Нет
Инструменты разработчика. Серверный модуль: Нет
Клиент. ОС: Майкрософт Windows 10 Корпоративная LTSC 64-разрядная Русский
Клиент. Приложение: Обычное приложение 64б
Клиент. Проверка модальных вызовов: Нет
Клиент. Язык интерфейса конфигурации: ru
Клиент. Язык интерфейса системы: ru
Клиент. От имени администратора Windows: Да

При попытке занулить комментарий + установить пометку удаления без контроля записи - выдаёт ошибку, как будто этот контроль не отключён. Проверил - параметр действительно отсутствует при вызове функции.


Прикрепления: 9947471.jpg (211.2 Kb) · 2526027.jpg (193.8 Kb) · 8690882.jpg (186.0 Kb) · 4929458.jpg (157.3 Kb)


Сообщение отредактировал GetNight - Воскресенье, 15.05.2022, 16:51
 
tormozitДата: Воскресенье, 15.05.2022, 17:09 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Это задуманное поведение, обусловленное ограничением реализации метода УстановитьПометкуУдаления() в платформе.
Если флажок работает не так, как ожидалось прежде всего надо читать подсказку к нему.
Если нужно просто записать значение "Истина" в реквизит "ПометкаУдаления", то используй обработку "Изменить / добавить строку".
 
GetNightДата: Воскресенье, 15.05.2022, 18:13 | Сообщение # 3
Подполковник
Группа: Проверенные
Сообщений: 109
Репутация: 64
Статус: Оффлайн
Цитата tormozit ()
Это задуманное поведение, обусловленное ограничением реализации метода УстановитьПометкуУдаления() в платформе
В чём же именно ограничение? Когда я установил ОбменДанными.Загрузка=Истина, у меня обработка отработала правильно, именно всё выполнила так, как на скрине (там, где синий кружок - идет именно установка флага).

Платформа производит запись объекта, при установке-снятии пометки. Т.е., по сути, можно было установить реквизит и выполнить установку пометки вместо записи. С отключенным контролем.

Я всегда так делаю... вместо изменения пометки удаления и записи измененного объекта - просто вызываю метод
.УстановитьПометкуУдаления(Пометка), которая и производит запись.


Если вы войдёте в документ, измените реквизит и нажмете "установить пометку на удаление" - то новое значение реквизита будет так же записано, даже если вы выйдете из документа не нажимая "запись".

Цитата tormozit ()
Если флажок работает не так, как ожидалось прежде всего надо читать подсказку к нему.
К сожалению, не понял, что это означает. Ни в контекстном меню, ни в панели не нашёл, как вызвать "подсказку к нему"
Прикрепления: 9629942.jpg (223.0 Kb)


Сообщение отредактировал GetNight - Воскресенье, 15.05.2022, 18:14
 
tormozitДата: Воскресенье, 15.05.2022, 18:27 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Цитата GetNight ()
не нашёл, как вызвать "подсказку к нему"

Смотри свой первый скриншот. На нем ты выделил флажок. У него есть подсказка.

Прикрепления: 3749580.png (8.0 Kb)
 
tormozitДата: Воскресенье, 15.05.2022, 19:32 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Цитата GetNight ()
В чём же именно ограничение?

При установке пометки удаления главного объекта - у зависимых объектов платформа также вызывает установку пометки удаления, но не передает туда свойство ОбменДанными.Загрузка. Поэтому пользователь может столкнуться с неожиданным и не сразу заметным поведением программы. Поэтому я упростил поведение программы - команды установки пометки удаления везде игнорируют этот флажок и для главного объекта. Таким образом пользователю не нужно помнить о сложной логике работы программы при наличии зависимых объектов. А возможность установить пометку удаления без изменения зависимых есть в виде прямой установки значения реквизиту "ПометкаУдаления".

Пояснения к флажкам и обработкам доработаю.
 
GetNightДата: Понедельник, 16.05.2022, 19:51 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 109
Репутация: 64
Статус: Оффлайн
Цитата tormozit ()
При установке пометки удаления главного объекта - у зависимых объектов платформа также вызывает установку пометки удаления

почему бы для этого пункта вместо метода .УстановитьПометкуУдаления(Истина) (который вызывает какие-то некорректные последствия) не использовать .ПометкаУдаления=Истина; .Записать()? ведь для конечного пользователя это ровным счётом ничего не изменит, но будет абсолютно прогнозируемый результат

ведь по факту имеем некорректное поведение уже не платформы... а обработки, которая при вызове пункта установить пометку удаления при включенном флаге выдаёт ошибки не то что для зависимых объектов, но даже для основного

по крайней мере это можно делать при установленном флаге ОбменДанными, раз именно такой случай вызывает неадекватную реакцию платформы (пусть это будет такой костыль, но рабочий и прогнозируемый), а при неустановленном - можно и .УстановитьПометкуУдаления(Истина)

что скажете? ни в коем случае не навязываю. просто советую рассмотреть.

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

я совсем недавно "дошёл" до такого понимание "неразрешимых" задач
если задача "неразрешима" для всех случаев, делим её на "разрешимую" для большинства и "неразрешимую" для меньшинства

разрешимую - делаем, неразрешимую - выдаем ошибку
как показала практика, на 10 случаев на 100 000 удачных решений, никто не огорчается... а когда все эти 100 000 случаев нужно решать сложно и долго - это намного хуже...
 
tormozitДата: Понедельник, 16.05.2022, 20:09 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6387
Репутация: 165
Статус: Оффлайн
Цитата GetNight ()
использовать .ПометкаУдаления=Истина; .Записать()? ведь для конечного пользователя это ровным счётом ничего не изменит
Не согласен. Ведь я выше подробно описал ключевой момент в проблеме - наличие зависимых данных. А твой способ их проигнорирует.

Не вижу здесь неразрешимой части задачи. Если нужно изменять пометку удаления в режиме ОбменДанными.Загрузка, пользователь будет использовать прямую установку значения реквизиту. А вызов метода УстановитьПометкуУдаления (использование обработки "Изменить пометку удаления") необходим только в случае, если требуется обработка зависимых данных.
 
  • Страница 1 из 1
  • 1
Поиск: