|
Запрет на изменение некоторых строк | ☑ | ||
---|---|---|---|---|
0
Мисти
23.10.13
✎
09:47
|
В заказе поставщику нужно запретить редактировать строки, где выбрано назначение.
А где не выбрано - там пожалуйста! Как это написать? |
|||
1
Нуф-Нуф
23.10.13
✎
09:47
|
проверяй при начале редактирования, будь мужиком, блеать!
|
|||
2
Asmody
23.10.13
✎
09:48
|
в УФ в условном оформлении есть параметр Доступность.
|
|||
3
zak555
23.10.13
✎
09:50
|
(1) ей мол сменить ?
|
|||
4
zak555
23.10.13
✎
09:50
|
*ей пол сменить предлагаешь ?
|
|||
5
Мисти
23.10.13
✎
09:51
|
Ну, проверила при начале редактирования. Как его запретить-то?
|
|||
6
Мисти
23.10.13
✎
09:52
|
&НаКлиенте
Процедура Кос_ПроверитьНаличиеЗаказа(Имя) Если Имя = "ТоварыОтмененоПричиныОтменыНеИспользуются" Тогда Отказ = Кос_ПроверитьНаличиеЗаказаНаСервере(ЭтаФорма.Элементы.Товары.ТекущиеДанные.Назначение); КонецЕсли; КонецПроцедуры &НаСервере Функция Кос_ПроверитьНаличиеЗаказаНаСервере(Назначение) Если Назначение = Справочники.Назначения.ПустаяСсылка() Тогда Возврат(Истина); Иначе Возврат(Ложь); КонецЕсли; КонецФункции |
|||
7
Мисти
23.10.13
✎
09:52
|
Ну, это я для одной колонки проверила. На самом деле - почти ничего менять нельзя.
Как теперь отказать-то? |
|||
8
zak555
23.10.13
✎
09:53
|
1. > ЭтаФорма.Элементы
зачем "ЭтаФорма." ? |
|||
9
Мисти
23.10.13
✎
09:53
|
СтатусВозврата,СтандартнаяОбработка,Отказ - ничего такого в процедуре нет.
Менять доступность при начале редактирования?? |
|||
10
kosts
23.10.13
✎
09:53
|
Еще удаление и копирование нужно запретить.
|
|||
11
Defender aka LINN
23.10.13
✎
09:54
|
(5) Угу. "Ну вот начал засовывать, а там кровь. Как запретить?"
|
|||
12
Мисти
23.10.13
✎
09:54
|
(8) Потому что я гадаю. Если можно без "этаФорма" - уберу!
Но вопрос в другом! |
|||
13
Fedor-1971
23.10.13
✎
10:07
|
ПередНачаломИзменения(Элемент, Отказ) - строка уже есть, её пытаются редактировать, проверить условие и отказать в редактировании.
|
|||
14
Мисти
23.10.13
✎
11:31
|
Ура! Оно. А я пыталась привязаться к тем функциям, которые уже обозначены были.
|
|||
15
Мисти
23.10.13
✎
12:46
|
Как поймать копирование строки?
&НаКлиенте Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если НоваяСтрока Тогда Элементы.Товары.ТекущиеДанные.КодСтроки = 0; КонецЕсли; КонецПроцедуры сюда почему-то не попадаю. |
|||
16
Мисти
23.10.13
✎
12:47
|
&НаКлиенте
Процедура Кос_ТоварыПередУдалением(Элемент, Отказ) Отказ = Кос_ПроверитьНаличиеЗаказаНаСервере(ЭтаФорма.Элементы.Товары.ТекущиеДанные.Назначение); КонецПроцедуры удаление - получилось |
|||
17
Мисти
23.10.13
✎
13:02
|
ау?
|
|||
18
kosts
23.10.13
✎
13:08
|
(15) ПриНачалеРедактирования - для отмены не смысла отлавливать. Т.к. отказ уже не сделать. См. ПередНачаломДобавления()
|
|||
19
Мисти
23.10.13
✎
13:46
|
Мне при копировании надо один показатель обнулить, а копировать-то можно!
|
|||
20
Мисти
23.10.13
✎
14:05
|
&НаКлиенте
Процедура ТоварыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа) Если Копирование Тогда Элементы.Товары.ТекущиеДанные.Назначение = ""; // Косинус КонецЕсли; КонецПроцедуры Этот фокус обнуляет и в старой строке и в новой. |
|||
21
Euguln
23.10.13
✎
14:10
|
(20) в (15) решение, есть же параметр события Копирование
|
|||
22
Мисти
23.10.13
✎
14:39
|
Параметр есть, но при копировании я туда не попадаю.
|
|||
23
Мисти
23.10.13
✎
14:40
|
Надо что-то с (20) наверное исхитриться, чтобы только в новой строке обнулялось.
|
|||
24
Fedor-1971
23.10.13
✎
15:39
|
(20) Копирование = Истина только для новой строки, так что изменения пойдут в только новую строку
|
|||
25
Мисти
23.10.13
✎
17:05
|
(24) А вот и нет! Очищается значение в 2 строках.
|
|||
26
Fedor-1971
23.10.13
✎
18:49
|
(25) по ходу я не прав, новой строки ещё нет, а текущей является копируемая, потому надо искать другой способ
|
|||
27
Мисти
23.10.13
✎
19:41
|
Давайте искать, я согласна!
|
|||
28
Мисти
23.10.13
✎
20:12
|
Ну это же просто!
Только я не знаю, как. |
|||
29
Мимохожий Однако
23.10.13
✎
20:17
|
Добавь скрытую колонку, в которой положи значение колонки "назначение" при окончании редактирования. Если там уже лежит значение, то записывать только его вместо выбранного.
|
|||
30
kosts
23.10.13
✎
20:39
|
Очищается только в новой копируемой строке
|
|||
31
Мисти
23.10.13
✎
20:55
|
При копировании я сюда не попадаю!
Процедура в нужном месте выбрана. Куды бечь?? |
|||
32
kosts
23.10.13
✎
20:56
|
(31) Установи обработчик заново. Может быть по дороге потерялся...
|
|||
33
EvgeniuXP
23.10.13
✎
20:58
|
при выводе строки запрещай, а не при начале редактирования.
|
|||
34
EvgeniuXP
23.10.13
✎
20:59
|
(33) если 8.1, если 8.2т > - оформление.
|
|||
35
kosts
23.10.13
✎
21:00
|
(33) ТС еще хочет очистить значение.
|
|||
36
Мисти
23.10.13
✎
21:01
|
(32) Ничего не потерялось. Там такая история смешная. С заполненной колонкой "обеспечение" я вообще редактировать запрещаю, поэтому до редактирования дела не доходит.
|
|||
37
Мисти
23.10.13
✎
21:01
|
(33) с запретом на изменение всё получилось!
Теперь нужно, чтобы при копировании строчки это поле очищалось. |
|||
38
Мимохожий Однако
23.10.13
✎
21:06
|
ИМХО. Техзадание понято неверно.
|
|||
39
kosts
23.10.13
✎
21:08
|
(36)(37) Попробовал (30) + условное оформление с установлением ТолькоПросмотра для ячейки, всё работает как надо.
|
|||
40
Мисти
23.10.13
✎
21:09
|
Техзадание я сама сочиняю по ходу дела.
Что тут непонятного? сочиняем автоматизацию алгоритма обеспечения. По идее - в документе "заказ поставщику" обеспечение надо проставлять вручную, а мы делаем автоматически при записи документа "заказ клиента". Поэтому их нельзя трогать в заказе поставщику. |
|||
41
kosts
23.10.13
✎
21:10
|
(39)+ Только на числовой колонке пробовал. Т.е. условное оформлении на форме сделал. Для ссылочных программно УО нужно делать.
|
|||
42
Мисти
23.10.13
✎
21:10
|
(39) Очищается в какой момент?
Мне надо, чтобы сразу при копировании - номенклатура была, а обеспечения - не было. |
|||
43
Мисти
23.10.13
✎
21:11
|
Мне не надо только просмотр! Мне надо, чтоб в скопированнлй строке там пусто было!
|
|||
44
kosts
23.10.13
✎
21:12
|
(43) Понятно. Я понял, что тебе нужно заблокировать определенные ячейки и копировать с очищением. Про это я написал.
|
|||
45
EvgeniuXP
23.10.13
✎
21:15
|
(42) в модуле объекта - при копировании очищай
|
|||
46
EvgeniuXP
23.10.13
✎
21:16
|
(45) спутал, строку копируешь... не реквизит объекта чистить...
|
|||
47
kosts
23.10.13
✎
21:17
|
(46) см.(36) Она как-то заблокировала ячейку, по этому не копируется, так я понял...
|
|||
48
Мисти
23.10.13
✎
21:20
|
Заблокировать удалось! А скопировать с очищением - нет.
Еще никак не могу найти имя реквизита - в смысле, как его окликнуть? Функция "ТоварыПриИзменении", а как узнать, из какой колонки я туда попала? |
|||
49
kosts
23.10.13
✎
21:22
|
(48) Делай как в (39)
>из какой колонки я туда попала элементы.Товары.ТекущийЭлемент наверное |
|||
50
kosts
23.10.13
✎
21:25
|
http://infostart.ru/public/181336/ 2. Программная работа с условным оформлением (УО).
|
|||
51
Мисти
23.10.13
✎
21:29
|
элементы.Товары.ТекущийЭлемент.Имя - ура!
|
|||
52
Мисти
23.10.13
✎
21:30
|
Не, ну а если я не буду редактировать?
Скопировала и сохранила! Мне надо, чтоб прямо при копировании очищалось! В 7 как-то получалось же. |
|||
53
Мисти
23.10.13
✎
21:31
|
(50) Я почитаю, спасибо! Но это не совсем то.
|
|||
54
kosts
23.10.13
✎
21:32
|
Каким способом заблокировала?
|
|||
55
Мисти
23.10.13
✎
21:38
|
&НаСервере
Функция Кос_ПроверитьНаличиеЗаказаНаСервере(Назначение) Если Назначение = Справочники.Назначения.ПустаяСсылка() Тогда Возврат(Ложь); Иначе ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нельзя редактировать строку, в которой проставлено Назначение"); Возврат(Истина); КонецЕсли; КонецФункции &НаКлиенте Процедура Кос_ТоварыПередНачаломИзменения(Элемент, Отказ) Отказ = Кос_ПроверитьНаличиеЗаказаНаСервере(ЭтаФорма.Элементы.Товары.ТекущиеДанные.Назначение); КонецПроцедуры |
|||
56
kosts
23.10.13
✎
21:50
|
(55) У меня при копировании ПередНачаломИзменения() вообще не вызывается.
По этому не понятно почему у тебя ПриНачалеРедактирования() не вызывается... |
|||
57
Мисти
23.10.13
✎
21:51
|
(56) А если скопировать и ничего в строке не трогать - всё равно вызывается?
|
|||
58
kosts
23.10.13
✎
21:58
|
(57) Трогать/ не трогать всё одно как в (56)
|
|||
59
Мисти
23.10.13
✎
21:58
|
ПередНачаломИзменения - вызывается именно перед началом изменения.
К копированию никакого отношения не имеет. 2 задачи! Ничего не менять в строке, где обеспечение стоит и и при копировании обеспечение очищать. |
|||
60
kosts
23.10.13
✎
22:05
|
(59) Вот так у меня тоже работает как тебе надо
PS Пошел спать. Уже не по первому кругу пошли обсуждать... |
|||
61
Мисти
23.10.13
✎
22:13
|
(60) А в ТоварыПриНачалеРедактирования попадаешь просто при копировании? Ничего в этой строчке не меняем?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |