|
ПередОкончаниемРедактирования не всегда срабатывает | ☑ | ||
---|---|---|---|---|
0
vicof
24.10.19
✎
07:21
|
Есть таблица на форме.
В ней должны быть уникальные значения по двум колонкам. Если редактировать эти две колонки, они ссылочные, все ок, не дает завершать редактирование, если указаны неуникальные строки. Если редактировать третью числовую колонку, то возможны два варианта: 1. Если я не меняю значение в ней, все ок, ругается, не дает завершить редактирование. 2. Если меняю значение в ней, просто выходит из режима редактирования. &НаКлиенте Процедура ДолиПоСтатьямЗаработнойПлатыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ) Если Не НоваяСтрока Или НоваяСтрока И Не ОтменаРедактирования Тогда ТекущиеДанные = Элементы["ДолиПоСтатьямЗаработнойПлаты"].ТекущиеДанные; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("СтатьяКалькуляции", ТекущиеДанные.СтатьяКалькуляции); ПараметрыОтбора.Вставить("Судно", ТекущиеДанные.Судно); НайденныеСтроки = ДолиПоСтатьямЗаработнойПлаты.НайтиСтроки(ПараметрыОтбора); Если НайденныеСтроки.Количество() > 1 Тогда ТекстОшибки = "Строка со статьей калькуляции '%1' и судном '%2' уже указана в таблице"; ТекстОшибки = СтрШаблон(ТекстОшибки, ТекущиеДанные.СтатьяКалькуляции, ТекущиеДанные.Судно); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки,,,,Отказ); КонецЕсли; КонецЕсли; КонецПроцедуры Что может быть не так с этой последней колонкой? |
|||
1
RomaH
naïve
24.10.19
✎
08:10
|
другие обработчики перед этим в которых вызывается сервер?
|
|||
2
Мимохожий Однако
24.10.19
✎
08:11
|
(0) Некий аналог регистра сведений с двумя измерениями?
|
|||
3
vicof
24.10.19
✎
08:31
|
(2) Что-то типа того. Но просто на форме. Смотрю похожую таблицу в типовом документе "ПлановаяКалькуляция", там все отрабатывает.
|
|||
4
vicof
24.10.19
✎
08:31
|
(1) Нет, других обработчиков с вызовом сервера нет
|
|||
5
RomaH
naïve
24.10.19
✎
08:38
|
(4) а без вызова?
|
|||
6
vicof
24.10.19
✎
08:40
|
&НаКлиенте
Процедура ДолиПоСтатьямЗаработнойПлатыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) Если Копирование Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ДолиПоСтатьямЗаработнойПлатыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) ОбщегоНазначенияУТКлиент.КешироватьТекущуюСтроку(ЭтотОбъект, "ДолиПоСтатьямЗаработнойПлаты"); КонецПроцедуры |
|||
7
Сияющий в темноте
24.10.19
✎
08:42
|
насколько я помню,приоритет или и и одинаковый,раставь скобочки
|
|||
8
vicof
24.10.19
✎
08:43
|
(7) Это не важно. Обработчик не вызывается, скобочки это уже дело десятое.
|
|||
9
Сияющий в темноте
24.10.19
✎
08:44
|
ну и отказ=Истина не помешает,если нельзя.
|
|||
10
vicof
24.10.19
✎
08:45
|
(9) Отказ в Истину там ставится, если внимательно посмотреть)
|
|||
11
Сияющий в темноте
24.10.19
✎
08:46
|
у полей таблицы точно обработчиков нет
потому как логичнее проверять там,а не по окончании редактирования. |
|||
12
RomaH
naïve
24.10.19
✎
08:46
|
1. Если я не меняю значение в ней, все ок, ругается, не дает завершить редактирование.
2. Если меняю значение в ней, просто выходит из режима редактирования. вот это дает основание полагать, что у поля назначен обработчик "приИзменении" |
|||
13
vicof
24.10.19
✎
08:56
|
Я все закомментил, оставил только три вышеописанных.
|
|||
14
vicof
24.10.19
✎
09:06
|
(11) У полей точно нет обработчиков. Я таблицу создаю программно.
И обработчики назначаю программно. Элементы[ИмяТаблицы].УстановитьДействие("ПередНачаломДобавления", "ДолиПоСтатьямЗаработнойПлатыПередНачаломДобавления"); Элементы[ИмяТаблицы].УстановитьДействие("ПриНачалеРедактирования", "ДолиПоСтатьямЗаработнойПлатыПриНачалеРедактирования"); Элементы[ИмяТаблицы].УстановитьДействие("ПередОкончаниемРедактирования", "ДолиПоСтатьямЗаработнойПлатыПередОкончаниемРедактирования"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |