Хитрая система событий табличного поля - копирование строки. #251537


#0 by Гений 1С
В общем задача такая - при добавлении новой строки нужно проставить в ней флажок Добавлена, означающий что строка была добавлена вручную. Добавлена строка может быть или кнопкой INS(добавление) или кнопкой F9 (дублирование). При добавлении последовательность событий такая: * ПередНачаломДобавления - строка еще не доступна * ПриАктивизацииЯчейки - строка уже доступна, анализируя было ли перед этим событие ПередНачаломДобавления определяем, что строка новая, нужно проставить флаг. При дублировании последовательность событий такая: * ПередНачаломДобавления - строка еще не доступна * ПриАктивизацииЯчейки - строка уже доступна, но строка пустая. * Повторная ПриАктивизацииЯчейки - строка уже заполнена. Ну и как мне однозначно в обработчике ПриАктивизацииЯчейки определить, строка новая или не новая, блин.
#1 by ТелепатБот
#2 by zbv
а зачем обзательно при ПриАктивизацииЯчейки определять? Точно не помню, а 8-ки нет под рукой, но вроде есть процедуры, связанные с редактированием, а там есть параметры НоваяСтрока, Копирование...
#3 by Великий Нехочуха
Синтаксис: ПриНачалеРедактирования(<Новая строка>, <Копирование>) Параметры: <Новая строка> Тип: Булево. Признак редактирования новой строки. Имеет значение Истина, если строка была добавлена или скопирована. <Копирование> Тип: Булево. Если данный параметр имеет значение Истина, то выполняется копирование строки.
#4 by Великий Нехочуха
продам СП почти что бесплатно :) продам бес сожаления:)
#5 by zbv
нехочу... ;-) 8-ки на работе хватает...
#6 by Великий Нехочуха
не тебе а
#7 by Гений 1С
Зы, попробую...
#8 by Гений 1С
нехочуха в пролете - если в строке нет доступных для редактирования полей, то приначалередактирования не вызывается!!! Короче я вышел из положения - в событии передначаломДобавления ставлю отказ и добавляю строку собственными силами. Маразматическая схема событий, просто идиотская... Нуралиева - на мыло!
#9 by Великий Нехочуха
а зачем закрывать от редактирования ВСЕ поля строки??:)
#10 by Великий Нехочуха
в не было сказано ни слова о доступности полей
#11 by wPa
А добавить невидимое булево поле в таб часть и при записи его занулять, а при вводу строки устанавливать? тогда при активизации всегда знаешь новая или нет...как?
#12 by France
я бы врозь хранил добавленные и "недобавленные"..
#13 by wPa
в разных таб частях? и переделать все запросы к таб частям доков? жесть...
#14 by dimoff
o
#15 by Гений 1С
тогда уж проще сэмулировать добавление. К тому же для невидимых полей не будет вызываться событие "ПриНачалеРедактирвования", оно вызывается не при добавлении строки, а при БУКВАЛЬНо начале редактирования поля. Убого, с тоской вспоминаю триггеры Navision
#16 by France
какие запросы на?..
#17 by Гений 1С
Если ты не можешь себе представить такой задачи, это не значит, что ее нет. ;-)
#18 by Гений 1С
Ну на самом деле, там есть доступные поля. Просто при добавлении новой строки активизируется ячейка, которую пользователь не имеет права редактировать, и я ставлю на эту колонку ТолькоПросмотр=истина, в результате чего ПриНачалеРедактирования не вызывается. Т.е. иными словами, в 1С нельзя гарантированно получить событие добавление новой строки. Криво
#19 by Гений 1С
рабочий день закончился, бухаете?
#20 by wPa
как бы ты "врозь хранил добавленные и "недобавленные".."?
#21 by wPa
еще не совсем..
#22 by Гений 1С
Гы, товарищ, ты не понял. Есть строки, добавленные обработкой - например по нажатию кнопочки заполнить, а есть строки, добавленныя ручками, пользователем по нажатии кнопочки Инсерт.
#23 by France
хранитьврозь легко.. но твая тема понятна.. так что, не будем продолжать.
#24 by Neco
Кстати, всяческие события можно эмулировать с помощью подключения обработчика ожидания (ПодключитьОбработчикОжидания) и в этой процедуры с некой периодичностью проверять нужные данные. ЗЫ: Согласен, не совсем правильный подход обработки событий но иногда помогает ;-)
#25 by wPa
При заполнении обработкой ставишь скрытое поле связанных данных в истина для строки - т.е. заполнено обработкой. Если при активизации поле ложь - значит строка добавлена не твоей обработкой. Иль опять я не догнал ) ок.
#26 by wPa
Единственное что - в обработке события ПередНачаломДобавления проверять передаваемый параметр Копирование - если истина обнулять это поле...
#27 by Гений 1С
по некоторым соображением ваш вариант мне не подходит, хотя его я уже рассматривал.
#28 by Гений 1С
в событии ПередНачаломДобавления нет новой строки, так что те же самые грабли!
#29 by Великий Нехочуха
28 а что нужно сделать с этой самой строкой?
#30 by Jolly Roger
Гений, а чем не нравится решение в ? По-моему, нормально: перехватить добавление и добавить строку вручную.
#31 by AeDen
Гений, жжошь...
#32 by Молния
Гений тебя на форуме маззи разбанили?
#33 by Гений 1С
Да мое любопытцтво к Динамиксам удовлетворено. Ацтой, одним словом. ;-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С