Имя: Пароль:
1C
1С v8
Как грамотно обработать ошибку "Запись с такими ключевыми полями существует!"
, ,
0 эцп
 
24.08.12
14:26
Пользователь в табличную часть документа может ввести такие данные, что при проведении документа (осуществляется запись данных в регистр сведений) выскакивает ошибка "Запись с такими ключевыми полями существует!". Можно ли каким-то образом вывести пользователю сообщение, что он не прав и у него ошибка в такой-то строке до того, как данные будут записаны в регистр сведений?
1 Господин ПЖ
 
24.08.12
14:27
я не против
2 ДенисЧ
 
24.08.12
14:27
Можно, я не против. Выводи.
3 pessok
 
24.08.12
14:28
разрешаю
4 эцп
 
24.08.12
14:28
(0) Я вижу такой порядок действий:
1. Установить управляемую блокировку по ключевым полям регистра сведений (на регистр).
2. Прочитать данные из регистра.
3. Сравнить с тем, что в ТЧ
4а. Если есть совпадения вывести сообщение.
4б. Если проблем нет, записать данные в регистр.

или есть лучшие варианты?
5 Dzenn
 
гуру
24.08.12
14:29
можно. Я тоже не против.
6 эцп
 
24.08.12
14:30
(1)(2)(3)(5) Спасибо. Пойду делать
7 эцп
 
24.08.12
15:03
8 Irbis
 
24.08.12
15:08
Перезапиши поверх и все
9 Aprobator
 
24.08.12
15:09
(4) блокировка то зачем?
10 эцп
 
24.08.12
15:09
(8) И получим ошибку в строке такой-то при операции Записать()
11 эцп
 
24.08.12
15:10
(9) А не дай бог кто-нибудь параллельно будет проводить документ по этому регистру по этому отбору
12 эцп
 
24.08.12
15:16
(7) Вот здесь нашел http://downloads.v8.1c.ru/content/Platform/8_2_15_289/ErrPlatform_8_2_15_289.htm#2

10096244  Управляемая блокировка по полю Период периодического регистра сведений
Проблема:
В режиме совместимости "Не использовать" при вызове метода Заблокировать происходит ошибка
У пространства блокировок РегистрСведений.Имя не существует поля с именем Период
если блокировка включает поле Период и накладывается на пространство периодического регистра сведений.
Дата публикации:
2012-01-19

А потом вот здесь http://downloads.v8.1c.ru/content/Platform/8_2_16_352/ErrPlatform_8_2_16_352.htm#3

Я в печали :(
13 olegves
 
24.08.12
16:01
(0) создавай наборзаписей и устанавливай для него Отборы по своим ключевым полям, после чего Прочитать() и Количество()
Если количество=0, то записи нет
14 эцп
 
24.08.12
16:05
(13) Да, практически так и сделал, только запросом (см. п. 2) в (4)
15 olegves
 
24.08.12
17:52
(14) запросом ты получаешь ссылку на запись, а набором записи сам объект НЗ - почувствуй разницу
В НЗ можно че-то поменять и записать - это будет та же запись, а не новая
16 эцп
 
25.08.12
10:57
(16) А мне ничего менять и не нужно, не нужно получать ссылку на запись, мне нужно проверить, нет ли в регистре записей с такими же ключевыми полями, что и в документе
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший