![]() |
![]() |
![]() |
|
Хитрая система событий табличного поля - копирование строки. | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
30.01.07
✎
19:13
|
В общем задача такая - при добавлении новой строки нужно проставить в ней флажок Добавлена, означающий что строка была добавлена вручную.
Добавлена строка может быть или кнопкой INS(добавление) или кнопкой F9 (дублирование). При добавлении последовательность событий такая: * ПередНачаломДобавления - строка еще не доступна * ПриАктивизацииЯчейки - строка уже доступна, анализируя было ли перед этим событие ПередНачаломДобавления определяем, что строка новая, нужно проставить флаг. При дублировании последовательность событий такая: * ПередНачаломДобавления - строка еще не доступна * ПриАктивизацииЯчейки - строка уже доступна, но строка пустая. * Повторная ПриАктивизацииЯчейки - строка уже заполнена. Ну и как мне однозначно в обработчике ПриАктивизацииЯчейки определить, строка новая или не новая, блин. |
|||
1
ТелепатБот
гуру
30.01.07
✎
19:13
|
||||
2
zbv
30.01.07
✎
19:30
|
(0) а зачем обзательно при ПриАктивизацииЯчейки определять?
Точно не помню, а 8-ки нет под рукой, но вроде есть процедуры, связанные с редактированием, а там есть параметры НоваяСтрока, Копирование... |
|||
3
Великий Нехочуха
30.01.07
✎
19:32
|
ПриНачалеРедактирования (OnStartEdit)
Синтаксис: ПриНачалеРедактирования(<Новая строка>, <Копирование>) Параметры: <Новая строка> Тип: Булево. Признак редактирования новой строки. Имеет значение Истина, если строка была добавлена или скопирована. <Копирование> Тип: Булево. Если данный параметр имеет значение Истина, то выполняется копирование строки. |
|||
4
Великий Нехочуха
30.01.07
✎
19:33
|
продам СП почти что бесплатно :)
продам бес сожаления:) |
|||
5
zbv
30.01.07
✎
19:35
|
(4) нехочу... ;-) 8-ки на работе хватает...
|
|||
6
Великий Нехочуха
30.01.07
✎
19:36
|
(5) не тебе а (0)
|
|||
7
Гений 1С
гуру
30.01.07
✎
19:44
|
(3) Зы, попробую...
|
|||
8
Гений 1С
гуру
31.01.07
✎
18:07
|
(3) нехочуха в пролете - если в строке нет доступных для редактирования полей, то приначалередактирования не вызывается!!!
Короче я вышел из положения - в событии передначаломДобавления ставлю отказ и добавляю строку собственными силами. Маразматическая схема событий, просто идиотская... Нуралиева - на мыло! |
|||
9
Великий Нехочуха
31.01.07
✎
18:12
|
(8) а зачем закрывать от редактирования ВСЕ поля строки??:)
|
|||
10
Великий Нехочуха
31.01.07
✎
18:14
|
(8) в (0) не было сказано ни слова о доступности полей
|
|||
11
wPa
31.01.07
✎
18:29
|
А добавить невидимое булево поле в таб часть и при записи его занулять, а при вводу строки устанавливать? тогда при активизации всегда знаешь новая или нет...как?
|
|||
12
France
31.01.07
✎
18:34
|
я бы врозь хранил добавленные и "недобавленные"..
|
|||
13
wPa
31.01.07
✎
18:38
|
(12) в разных таб частях? и переделать все запросы к таб частям доков? жесть...
|
|||
14
dimoff
31.01.07
✎
18:39
|
o
|
|||
15
Гений 1С
гуру
31.01.07
✎
18:40
|
(11) тогда уж проще сэмулировать добавление. К тому же для невидимых полей не будет вызываться событие "ПриНачалеРедактирвования", оно вызывается не при добавлении строки, а при БУКВАЛЬНо начале редактирования поля.
Убого, с тоской вспоминаю триггеры Navision |
|||
16
France
31.01.07
✎
18:40
|
(13) какие запросы на?..
|
|||
17
Гений 1С
гуру
31.01.07
✎
18:40
|
(9) Если ты не можешь себе представить такой задачи, это не значит, что ее нет. ;-)
|
|||
18
Гений 1С
гуру
31.01.07
✎
18:41
|
Ну на самом деле, там есть доступные поля.
Просто при добавлении новой строки активизируется ячейка, которую пользователь не имеет права редактировать, и я ставлю на эту колонку ТолькоПросмотр=истина, в результате чего ПриНачалеРедактирования не вызывается. Т.е. иными словами, в 1С нельзя гарантированно получить событие добавление новой строки. Криво |
|||
19
Гений 1С
гуру
31.01.07
✎
18:42
|
(13) рабочий день закончился, бухаете?
|
|||
20
wPa
31.01.07
✎
18:44
|
(16) как бы ты "врозь хранил добавленные и "недобавленные".."?
|
|||
21
wPa
31.01.07
✎
18:46
|
(19) еще не совсем..
|
|||
22
Гений 1С
гуру
31.01.07
✎
18:46
|
(20) Гы, товарищ, ты не понял. Есть строки, добавленные обработкой - например по нажатию кнопочки заполнить, а есть строки, добавленныя ручками, пользователем по нажатии кнопочки Инсерт.
|
|||
23
France
31.01.07
✎
18:47
|
(20) хранитьврозь легко.. но твая тема понятна.. так что, не будем продолжать.
|
|||
24
Neco
31.01.07
✎
18:47
|
Кстати, всяческие события можно эмулировать с помощью подключения обработчика ожидания (ПодключитьОбработчикОжидания) и в этой процедуры с некой периодичностью проверять нужные данные.
ЗЫ: Согласен, не совсем правильный подход обработки событий но иногда помогает ;-) |
|||
25
wPa
31.01.07
✎
18:55
|
(22) При заполнении обработкой ставишь скрытое поле связанных данных в истина для строки - т.е. заполнено обработкой. Если при активизации поле ложь - значит строка добавлена не твоей обработкой. Иль опять я не догнал )
(20) ок. |
|||
26
wPa
31.01.07
✎
19:04
|
Единственное что - в обработке события ПередНачаломДобавления проверять передаваемый параметр Копирование - если истина обнулять это поле...
|
|||
27
Гений 1С
гуру
31.01.07
✎
19:04
|
(25) по некоторым соображением ваш вариант мне не подходит, хотя его я уже рассматривал.
|
|||
28
Гений 1С
гуру
31.01.07
✎
19:05
|
(26) в событии ПередНачаломДобавления нет новой строки, так что те же самые грабли!
|
|||
29
Великий Нехочуха
31.01.07
✎
19:25
|
28 а что нужно сделать с этой самой строкой?
|
|||
30
Jolly Roger
31.01.07
✎
21:10
|
Гений, а чем не нравится решение в (8)? По-моему, нормально: перехватить добавление и добавить строку вручную.
|
|||
31
AeDen
31.01.07
✎
21:12
|
Гений, жжошь...
|
|||
32
Молния
31.01.07
✎
21:21
|
Гений тебя на форуме маззи разбанили?
|
|||
33
Гений 1С
гуру
01.02.07
✎
18:43
|
(32) Да мое любопытцтво к Динамиксам удовлетворено. Ацтой, одним словом. ;-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |