|   |   | 
| 
 | Запретить изменение строки в табличной части | ☑ | ||
|---|---|---|---|---|
| 0
    
        kolts23381 06.05.25✎ 13:48 | 
        Добрый день. Нужно в заказе клиента в УТ 11, для определенных строк(в зависимости от варианта обеспечения), запретить изменение. Не знаю как правильно сделать - через условное оформление или может добавить вторую таблицу и разделить отображение данных через отбор строк - не уверен что будет отрабатывать как надо. Там еще есть в командной панели кнопки. Кто-то делал подобное?     | |||
| 1
    
        Мультук гуру 06.05.25✎ 14:01 | 
        (0) 
 >>Там еще есть в командной панели кнопки И там их много. А есть еще доп.обработки таб.частей, которым внезапно может быть абсолютно пофиг на ваши запреты. Хотите запретить трогать строки с "Отгружено" ?. Благое дело (с) Вариант 1 Софткор С помощью УО и событий запрещаем удалять и менять строки с неким "Вариант обеспечения" Проблема: Против волшебных кнопочек типовых и не очень -- не поможет. Вариант 2 Хардкор Перед записью пишем запрос и сравниваем тч. "Товары" из "Объект.Товары", с "ссылка.Товары" Проблема: если в документе 500 строк, пользователь поменял 200, а "неправильных" из них всего 5 может вызвать негативную реакцию. Нюансы Кнопка "Закрыть заказ" должна всё же закрывать заказ Пользователь (например с полными правами) должен всё же редактировать заказ игнорируя запреты | |||
| 2
    
        kolts23381 06.05.25✎ 14:09 | 
        Насчет "отгружено" вы правы - то что нужно. Тоже думал перед записью проверять, но тоже есть нюансы. Наверное придется посчитать хэш строк по всем данным(чтоб не сломалось при изменении набора колонок в тч) у нужных строк у записанных данных. И у измененных данных тоже посчитать хеши у этих строк. В записываемых данных набор хешей должен быть не меньше чем у записанных. Как такой вариант?     | |||
| 3
    
        Мультук гуру 06.05.25✎ 14:53 | 
        (2) 
 Ну какие хэши строк ? {лень} | |||
| 4
    
        Волшебник 06.05.25✎ 15:35 | 
        (3) Такие хэши, которые можно сравнивать на больше/меньше. Волшебные     | |||
| 5
    
        kolts23381 06.05.25✎ 16:24 | 
        Создаёшь массив, туда вставляешь данные каждой колонки ТЧ в качестве элемента. Далее сериализуешь массив, через значениевстрокувнутр. Далее получаешь хеш этой строки     | |||
| 6
    
        kolts23381 06.05.25✎ 17:25 | 
        Набросал такую функцию
 Процедура ПолучитьХэши(КоллекцияСтрок,КоллекцияКолонок,массивХешей) Для Каждого ТекСтрока Из КоллекцияСтрок Цикл массивДанных = Новый массив; Для каждого ТекКолонка Из КоллекцияКолонок Цикл Если ТекКолонка.Имя = "Ссылка" Тогда Продолжить; КонецЕсли; массивДанных.Добавить(ТекСтрока[ТекКолонка.Имя]); КонецЦикла; хеширование = новый ХешированиеДанных(ХешФункция.SHA1); хеширование.Добавить(ЗначениеВСтрокуВнутр(массивДанных)); массивХешей.Добавить(хеширование.ХешСумма); КонецЦикла; КонецПроцедуры Перед записью объекта получаю массив хешей нужных строк для записанного объекта(если объект не новый) и текущего объекта. Затем проверяю что все элементы массива хешей для записанного объекта присутствуют в массиве для текущего объекта. | |||
| 7
    
        Волшебник 06.05.25✎ 17:26 | 
        (6) чушь собачья     | |||
| 8
    
        crasler 06.05.25✎ 18:35 | 
        (0) проще сделать подписку перед записью и восстанавливать нужные строки     | |||
| 9
    
        lucky_ 06.05.25✎ 18:45 | 
        (1) "Вариант 2 Хардкор"
 хардкодить надо так: Проц ТЧПриИзменении() СтандартнаяОбработко = ложь; Если ТекСтрока.ТекущиеДанные.Закрыт Тогда Сообщить("Уходите, я вас не знаю.") Возврат; КонецЕсли; КонецПроц; | |||
| 10
    
        olegves 06.05.25✎ 19:49 | 
        при записи проверять на неудаление нужных строк (я так понял, это по какому-то условию).
 Если условие не выполнено, ругаться на удаляемую строку и отказать записать | |||
| 11
    
        Волшебник модератор 06.05.25✎ 20:53 | 
        (9) Соблюдайте лесенку программного кода!     | |||
| 12
    
        Maniac 08.05.25✎ 05:00 | 
        (9) только это не при изменение а при начале редактирования     | |||
| 13
    
        Maniac 08.05.25✎ 05:00 | 
        или перед началом изменения     | |||
| 14
    
        Сти 08.05.25✎ 06:35 | 
        (12) а вот с "а есть еще доп.обработки таб.частей, которым внезапно может быть абсолютно пофиг на ваши запреты." из (1) как?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |