|
Опять: Запись регистра сведений ЭтоНовый? | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
30.04.14
✎
17:19
|
В теме v8: Как определить, Запись регистра сведений ЭтоНовый? было предложение:
"Прочитать ее в базе. Нет, значит новый" но обычно пользователь создает новую запись путем копирования, ПриОткрытии() читается копируемая запись. У РС нет .Ссылка, а следовательно и GUID. Эта задача решаема? |
|||
1
Mikhail Volkov
01.05.14
✎
03:58
|
Видимо нет...
|
|||
2
Тындр
01.05.14
✎
05:43
|
При открытии читается это понятно. При открытии создай новый набор записей с ключевыми параметрами как у того что открывается и его прочитай.
|
|||
3
hhhh
01.05.14
✎
08:09
|
(1) уже ведь неоднократно обсуждали. Если новый, то процедуры ПередЗаписью() и ПриЗаписи() вызываются по одному разу, если старый, то они вызываются по 2 раза.
|
|||
4
Mikhail Volkov
01.05.14
✎
08:33
|
(3) Как это определить? Есть еще ПриПовторномОткрытии(), в ней писать, что переменная НоваяЗапись = Ложь?
|
|||
5
Mikhail Volkov
01.05.14
✎
08:49
|
(3) ПередЗаписью() и ПриЗаписи() уже поздно определыть. Задача такая: если пользователь открыл старую запись, то ничего не предпринимать, пусть редактирует как хочет. Если создает новую, то по выбраным (установленным пользователем) измерениям происходило автозаполнение ресурсов записи...
|
|||
6
Mikhail Volkov
01.05.14
✎
08:50
|
* определять
|
|||
7
nufnufcheg
01.05.14
✎
09:36
|
(3) эммм... не совсем.
ПередЗаписью и ПриЗаписи вызывается два раза в случае, если запись происходит из формы. Если же запись происходит программно - то вызывается один раз. Думаю дело в том, что при записи интерактивно - измерения могут измениться, соответственно сначала надо записать пустой набор записей со старыми измерениями, а потом набор с новыми. Если запись происходит программно, то измерения по которым идет запись изменены быть не могут, поэтому достаточно просто записи нового набора |
|||
8
nufnufcheg
01.05.14
✎
09:41
|
исправлюсь:
1. При добавлении новой записи интерактивно - вызов процедур один раз 2. При изменении существующей записи интерактивно - вызов два раза 3. При добавлении/изменении записи программно - один раз |
|||
9
DosBot
01.05.14
✎
09:49
|
(0) Предлагаю рассудить логически... РС это набор без ГУИДа измерений + ресурсы + реквизиты. Стало быть, для проверки читаем из БД по измерениям - если есть запись, значит она уже НЕ новая.
Т.е. ГУИДом в данном случае будет выступать сочинение измерений... |
|||
10
DosBot
01.05.14
✎
09:56
|
> но обычно пользователь создает новую запись путем копирования, ПриОткрытии() читается копируемая запись
а может обрабатывать это как то? ну типа ПередНачаломДобавления(): Если Копирование Тогда... |
|||
11
nufnufcheg
01.05.14
✎
09:59
|
и кстати - создание записи интерактивно путем копирования - тоже один раз вызов
|
|||
12
Mikhail Volkov
01.05.14
✎
10:00
|
(10) Параметр Копирование из Списка процедуры ПередНачаломДобавления() как-то можно перетажить в форму записи?
|
|||
13
Mikhail Volkov
01.05.14
✎
10:00
|
* перетащить
|
|||
14
Мимохожий Однако
01.05.14
✎
10:03
|
Где ты это хочешь использовать? Не понял причины сабжа.
|
|||
15
Mikhail Volkov
01.05.14
✎
10:11
|
(14) в (5). Если запись создаю не копированием, то все просто - чтением записи. Но если копированием, то прочитаю копируемую, и ошибочно принимаю за старую.
|
|||
16
DosBot
01.05.14
✎
10:19
|
(12) типа добавляешь копированием из самой формы записи (а не из списка)? Нууу, тогда сделай свою кнопку добавления копированием вместо стандартной, с нужной тебе обработкой... :)
|
|||
17
Mikhail Volkov
01.05.14
✎
10:22
|
(16) "из Списка процедуры ПередНачаломДобавления() как-то можно перетажить в форму записи?"
|
|||
18
Адский плющ
01.05.14
✎
10:47
|
"Это новый" для записи регистра... Хватит курить всякую дрянь.
|
|||
19
Адский плющ
01.05.14
✎
10:51
|
Постановка задачи кривая, отсюда и извращения.
|
|||
20
DosBot
01.05.14
✎
10:56
|
как то мутно всё это.
> Задача такая: если пользователь открыл старую запись, то ничего не предпринимать, пусть редактирует как хочет. Если создает новую, то по выбраным (установленным пользователем) измерениям происходило автозаполнение ресурсов записи что значит "то по выбраным (установленным пользователем) измерениям происходило автозаполнение ресурсов записи" каких ресурсов и чего заполнять? почему ему можно редактировать старую запись а "новую" скаким то ограничениями? |
|||
21
Mikhail Volkov
01.05.14
✎
11:16
|
ПередНачаломДобавления() и ПриКопировании() для РС отсутствуют, похоже задача не решаема...
(20) Вобщем то, да - такое наследство досталось... |
|||
22
DosBot
01.05.14
✎
11:24
|
ты объясни для чего это? применять такой изврат? я уверен, что всё решаемо, если понять зачем оно вообще надо.. :)
|
|||
23
Mikhail Volkov
01.05.14
✎
12:06
|
(22) Тот, кто это ставил задачу, сам не помнит, вроде так просил заказчик. Хотел малость поправит автозаполнением для новых записей: для "чистых" записей работает, а для скопированных - видимо не судьба.
|
|||
24
DosBot
01.05.14
✎
12:14
|
(23) Заказчики много чего хотят. Чаще всего - полную глупость.
При такой постановки задачи получается полная хрень... В прочем, дело хозяйское... |
|||
25
Лефмихалыч
01.05.14
✎
14:11
|
(0) ПередНачаломДобавления чем не устраивает?
|
|||
26
Лефмихалыч
01.05.14
✎
14:12
|
+(25) и откуда инфа, что для РС это событие отсутствует?
Все на месте: http://i.imgur.com/8M3BP6l.png |
|||
27
DosBot
01.05.14
✎
14:18
|
(25)(26) да он добавляет копированием прямо из ФормыЗаписи а не из ФормыСписка...
в прочем, там делать свою кнопку с нужным кодом тоже не проблема... |
|||
28
Лефмихалыч
01.05.14
✎
14:23
|
(27) ну, извращение всегда порождает только извращение. В данном случае в форме записи надо просто стандартную команду своей подменить.
По правильному надо, конечно, что-то с консервами в консерватории делать, ибо сабж - это струета какая-то безблагодатная... |
|||
29
PR
01.05.14
✎
16:02
|
(0) Что такое новая запись регистра сведений?
|
|||
30
Mikhail Volkov
01.05.14
✎
17:09
|
(27) 3-й раз попторяю (12) из формы списка, но не знаю...
(25) как параметр Копирование из формы списка получить в форме записи? Свою задачу решил так: Перем НоваяЗапись; Процедура ПриОткрытии() НоваяЗапись = НоваяЗаписьРС(Измерение1, Измерение2); Если Не НоваяЗапись Тогда Попытка Записать(Ложь); Исключение НоваяЗапись = Истина; КонецПопытки; КонецЕсли; КонецПроцедуры |
|||
31
Mikhail Volkov
01.05.14
✎
17:11
|
(30) *повторяю
|
|||
32
Web00001
02.05.14
✎
04:23
|
(14)Если не знаешь как решить задачу, святая обязанность, убедить автора, что ему это не надо.
Так обычно линуксоиды разговаривают: - Как реализован протокол X? - Протокол X не нужен. |
|||
33
Лефмихалыч
02.05.14
✎
10:35
|
(30) не нужно в форму записи ни чего передавать. В форме списка ПередНачаломДобавления заполняй в новой записи все, что надо и все
|
|||
34
Mikhail Volkov
02.05.14
✎
11:22
|
(33) У меня не сработало. Видел пример для справочника КассыККМ. В форме списка ПередНачаломДобавления() вызывается процедура модуля, где устанавливается Перем СозданКопированием Экспорт, и уже в форме записи используется эта переменная.
|
|||
35
Лефмихалыч
02.05.14
✎
11:31
|
(34) Перем СозданКопированием Экспорт - не делай так. У любого объекта есть атрибут ДополнительныеСвойства. Это структура, в которую как раз для этих целей можно насовать любых значений.
>У меня не сработало что у тебя не сработало? |
|||
36
Mikhail Volkov
02.05.14
✎
11:48
|
(35) Параметр Копирование получить.
(26) У меня 8.2 Алфа-Авто, ПередНачаломДобавления() и ПриКопировании() для РС отсутствуют в справке, поэтому я бросил эту затею. Нашел другой выход (30) - работает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |