|
И снова: Запись с такими ключевыми полями существует | ☑ | ||
---|---|---|---|---|
0
Хуан
31.10.12
✎
08:52
|
Имеется регистр сведений
Непереодический Независимый При интерактивном создании при попытке записать новый элемент ругается что "Запись с такими ключевыми полями существует" В форме списка регистра, вводимой записи нет. http://s2.ipicture.ru/uploads/20121031/qSCzqTvE.jpg http://s2.ipicture.ru/uploads/20121031/I8KOGwR3.jpg ТИИ делал. В чем может быть дело? Куда рыть? |
|||
1
Coldboy
31.10.12
✎
08:56
|
(0) уверены, что нет, другого быть не может, а сколько у вас измерений?
|
|||
2
Хуан
31.10.12
✎
08:59
|
(1) содержимое регистра приведено на второй картинке.
Может где-то и есть, но на экран она не выводится. В таблицу БД не лазил.... |
|||
3
butterbean
31.10.12
✎
09:00
|
посмотри в отборы
|
|||
4
rphosts
31.10.12
✎
09:08
|
1.создаём набор записей
2.указываем набору записей отбор. 3.выполняем наборузаписей метод прочитать(); 4.указываем свои данные 5.выполняем наборузаписей метод записать(); профит! |
|||
5
butterbean
31.10.12
✎
09:10
|
(4) а Прочитать() зачем??
|
|||
6
sanja26
31.10.12
✎
09:12
|
чтобы проверить, есть ли записи
|
|||
7
МишКа
31.10.12
✎
09:12
|
(0) А чего это у тебя на второй картинке в заголовке?
Структуру регистра выложи. |
|||
8
butterbean
31.10.12
✎
09:12
|
(6) зачем?? все равно своё писать туда собираешься
|
|||
9
Хуан
31.10.12
✎
09:13
|
(4) это в процедуру "При записи" ?
|
|||
10
CaMoJleT
31.10.12
✎
09:15
|
(8) Если запись существует и её не прочитать перед записью, то должно выдать ошибку из (0).
|
|||
11
butterbean
31.10.12
✎
09:15
|
(10) не должно
|
|||
12
CaMoJleT
31.10.12
✎
09:19
|
(11) Сейчас потестим)
|
|||
13
CaMoJleT
31.10.12
✎
09:40
|
(11) В ходе тестов (позорно конечно, что тесты идут по обычному синтаксису хD) выяснилось, что Прочитать() необходимо для установки отбора)
|
|||
14
Хуан
31.10.12
✎
09:42
|
В таблице запись действительно есть
Но почему-то не показывается в списке... |
|||
15
rphosts
31.10.12
✎
09:42
|
(13) ргохнул регистр? надеюсь не на рабочей базе?
|
|||
16
rphosts
31.10.12
✎
09:43
|
(9) там где формируешь запись в РС
|
|||
17
rphosts
31.10.12
✎
09:43
|
(14) никаких отборов не наложено на РС?
|
|||
18
rphosts
31.10.12
✎
09:43
|
* на форму списка РС
|
|||
19
butterbean
31.10.12
✎
09:44
|
(13) хреново тестил
(14) отборы в списке посмотри |
|||
20
Хуан
31.10.12
✎
09:52
|
(16) да я хотел интерактивно ввести. Кода нет, формы записи регистра тоже нет. Программно-то все делается. Правда конкретно с этой записью не пробовал.
(17) (19) Отборов нет |
|||
21
Хуан
31.10.12
✎
09:55
|
Однако понял:
Похоже на нем стоит пометка удаления, вот поэтому и не показывается. Подскажите в какой таблице хранятся пометки удаления :-) |
|||
22
butterbean
31.10.12
✎
09:56
|
(21) в РС не бывает пометок удаления
|
|||
23
Reset
31.10.12
✎
09:56
|
(13) "что Прочитать() необходимо для установки отбора)"
Прочитать() необходимо для того, чтобы прочитать, внезапно. |
|||
24
Reset
31.10.12
✎
09:56
|
(21) Нет такого понятия для РС
|
|||
25
Хуан
31.10.12
✎
09:58
|
(22) (24) Ага. Уже проверил. Удаленный элемент удалился из таблицы, а тот нивидимый так и висит...
|
|||
26
МишКа
31.10.12
✎
09:59
|
(21) На твоей картинке не видно измерений регистра. На ней какие-то наименования. Как они связаны с измерениями - не понятно. Структуру регистра покажи.
|
|||
27
Reset
31.10.12
✎
09:59
|
(0) Дружище, не заставляй всех гадать, что у тебя происходит (хотя тут так принято, загадками).
Дай структуру измерений регистра и код, которым пишешь. |
|||
28
МишКа
31.10.12
✎
10:00
|
+(26) И форму списка. Она, по-ходу, самописная.
|
|||
29
МишКа
31.10.12
✎
10:02
|
(25) С чего ты взял, что он невидимый? Я почти уверен, что он один из двух первых на твоей картинке.
|
|||
30
Aprobator
31.10.12
✎
10:06
|
(0) хм, что такое ключевые поля в курсе?
|
|||
31
Aprobator
31.10.12
✎
10:09
|
(11) зависит от режима записи и был ли установлен отбор перед записью. Если пишется без отбора с добавлением записи, то ошибка будет.
|
|||
32
CaMoJleT
31.10.12
✎
10:11
|
(19) Приведи тогда плз пример простейшего кода для записи в регистр по схеме из (4) без пункта 3:
1.создаём набор записей 2.указываем набору записей отбор. 3.выполняем наборузаписей метод прочитать(); 4.указываем свои данные 5.выполняем наборузаписей метод записать(); |
|||
33
Хуан
31.10.12
✎
10:11
|
(28) Черт! На форму-то я не подумал. Все работало до сих пор. Но косяк был именно в запросе.
Спасибо! |
|||
34
Хуан
31.10.12
✎
10:12
|
Всем принявшим участие спасибо. Проблему нашел, щас решу
|
|||
35
Пеппи
31.10.12
✎
10:12
|
(34) и в чем проблема то была))
|
|||
36
Reset
31.10.12
✎
10:13
|
(32) Самурай без меча подобен самураю с мечом, только без меча
|
|||
37
butterbean
31.10.12
✎
10:16
|
(32)
1.создаём набор записей 2.указываем набору записей отбор. 4.указываем свои данные 5.выполняем наборузаписей метод записать(); |
|||
38
CaMoJleT
31.10.12
✎
10:16
|
(36) В (23) была простая придирка к словам, не?
(37) Ну установи отбор без Прочитать(). |
|||
39
Хуан
31.10.12
✎
10:18
|
(35) Ладно, уж, опозорюсь :-)
Было: ВЫБРАТЬ РегистрСведенийРасстоянияМеждуСкладами.СкладОтправления, АдресОтправления.Представление КАК АдресОтправления, РегистрСведенийРасстоянияМеждуСкладами.СкладНазначения, АдресНазначения.Представление КАК АдресНазначения, РегистрСведенийРасстоянияМеждуСкладами.Расстояние, РегистрСведенийРасстоянияМеждуСкладами.СкладОтправления.ГруппаСектора, РегистрСведенийРасстоянияМеждуСкладами.СкладНазначения.ГруппаСектора ИЗ РегистрСведений.РасстоянияМеждуСкладами КАК РегистрСведенийРасстоянияМеждуСкладами ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК АдресОтправления ПО РегистрСведенийРасстоянияМеждуСкладами.СкладОтправления = АдресОтправления.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК АдресНазначения ПО РегистрСведенийРасстоянияМеждуСкладами.СкладНазначения = АдресНазначения.Ссылка ГДЕ АдресНазначения.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресСклада) И АдресОтправления.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресСклада) Стало: ВЫБРАТЬ РегистрСведенийРасстоянияМеждуСкладами.СкладОтправления, АдресОтправления.Представление КАК АдресОтправления, РегистрСведенийРасстоянияМеждуСкладами.СкладНазначения, АдресНазначения.Представление КАК АдресНазначения, РегистрСведенийРасстоянияМеждуСкладами.Расстояние, РегистрСведенийРасстоянияМеждуСкладами.СкладОтправления.ГруппаСектора, РегистрСведенийРасстоянияМеждуСкладами.СкладНазначения.ГруппаСектора ИЗ РегистрСведений.АРПИ_РасстоянияМеждуСкладами КАК РегистрСведенийРасстоянияМеждуСкладами ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК АдресОтправления ПО РегистрСведенийРасстоянияМеждуСкладами.СкладОтправления = АдресОтправления.Ссылка И АдресОтправления.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресСклада) ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК АдресНазначения ПО РегистрСведенийРасстоянияМеждуСкладами.СкладНазначения = АдресНазначения.Ссылка И АдресНазначения.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресСклада) |
|||
40
butterbean
31.10.12
✎
10:18
|
(38) ты бредишь что-ли??
НаборЗаписей.Отбор.КакоеТоИзмерение.Установить(Значение); |
|||
41
Хуан
31.10.12
✎
10:19
|
Вместо ГДЕ нужно было добавить И в условие соединения
|
|||
42
МишКа
31.10.12
✎
10:19
|
(35) В недостатке внимания при разглядывании картинки.
|
|||
43
Reset
31.10.12
✎
10:19
|
(38) Нет, констатация факта. Просто факт настолько очевиден, что его констатация выглядит странной.
Для чего нужна суповая ложка? Чтобы есть суп. |
|||
44
Reset
31.10.12
✎
10:20
|
Хотя с ложкой менее очевидно даже
|
|||
45
Reset
31.10.12
✎
10:20
|
Или тебе кажется логчиным, что свойство отбор нужно для чтения, а метод прочитать для установки отбора? Ок.
|
|||
46
CaMoJleT
31.10.12
✎
10:21
|
(40) Для нескольких полей так же по порядку их перечислить?
НаборЗаписей.Отбор.КакоеТоИзмерение1.Установить(Значение); НаборЗаписей.Отбор.КакоеТоИзмерение2.Установить(Значение); так? |
|||
47
Reset
31.10.12
✎
10:22
|
Забегая вперед, сообщу новость - метод Записать() нужен для того, что записать.
|
|||
48
butterbean
31.10.12
✎
10:22
|
(46) ты не поверишь
|
|||
49
CaMoJleT
31.10.12
✎
10:23
|
(43)
Прочитать (Read) Синтаксис: Прочитать() Описание: Считывает записи из базы данных по установленному отбору. ------ Вместо "для установки отбора" надо использовать "для чтения записи из базы данных по установленному отбору"? |
|||
50
CaMoJleT
31.10.12
✎
10:24
|
(45)(47) Божественный сарказм. Высший уровень. Браво.
|
|||
51
Reset
31.10.12
✎
10:24
|
(49) Мне кажется, я совсем тебя не понимаю.
|
|||
52
CaMoJleT
31.10.12
✎
10:25
|
(48) Небольшая копипаста из синтаксис-помощника:
НаборКурсов.Отбор.Валюта.Установить(Доллар); НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата())); НаборКурсов.Прочитать(); |
|||
53
CaMoJleT
31.10.12
✎
10:25
|
(51) Я почему-то не удивлён.
|
|||
54
butterbean
31.10.12
✎
10:26
|
(52) хорошая годная копипаста, только она ничего не объясняет про установку отбора и связь с Прочитать()
|
|||
55
dmpl
31.10.12
✎
10:27
|
(38) Установил, что дальше?
|
|||
56
CaMoJleT
31.10.12
✎
10:28
|
(54) Толк с установки отбора без дальнейшего его использования? Я не совсем уверен, что код с отбором всё же отберет нужные записи.
|
|||
57
CaMoJleT
31.10.12
✎
10:28
|
+(56) Код с отбором !без прочитать()!...
|
|||
58
Reset
31.10.12
✎
10:28
|
(54) Для записи,не ? (безнадежным голосом)
|
|||
59
Reset
31.10.12
✎
10:28
|
(58) для (56_
|
|||
60
butterbean
31.10.12
✎
10:29
|
(56) пля, в (4) отбор нужен только для записи
|
|||
61
dmpl
31.10.12
✎
10:37
|
(57) Да не нужно ничего читать. См., например, в типовой УПП/ЗУП общий модуль ПроцедурыОбновленияИнформационнойБазыПереопределяемый, процедуру ЗаполнитьУчетнуюПолитикуПоОценочнымОбязательствам()
|
|||
62
Aprobator
31.10.12
✎
10:39
|
(57) отбор используется не только для чтения, но и для записи.
|
|||
63
rphosts
31.10.12
✎
10:42
|
(61) там записи пишутся которых заведомо нет в РС или как в (0)?
|
|||
64
Aprobator
31.10.12
✎
10:44
|
(63) произойдет замещение записи с установленным отбором.
|
|||
65
dmpl
31.10.12
✎
10:47
|
(63) Это вообще никакой рояли не играет - по умолчанию метод Записать() просто стирает все записи, соответствующие установленному отбору, а затем пишет созданный набор записей.
|
|||
66
CaMoJleT
31.10.12
✎
10:48
|
Виноват, Прочитать() не обязательно.
Выяснил кодом: Расстояния = РегистрыСведений.Расстояния; НаборКурсов = Расстояния.СоздатьНаборЗаписей(); НаборКурсов.Отбор.Расстояние.Установить(Расстояние); НовыйКурс = НаборКурсов.Добавить(); НовыйКурс.Расстояние = Расстояние; НовыйКурс.тестРеквизит = "тест"; НаборКурсов.Записать(); Рад, что местные тролли вместо примитивных пары строк прува разогнались до 60+ постов сарказма. |
|||
67
Aprobator
31.10.12
✎
10:49
|
(66) что такое пара строк прува и кто тут тебя так обидел?
|
|||
68
Aprobator
31.10.12
✎
10:50
|
код убийственный кстати.
|
|||
69
CaMoJleT
31.10.12
✎
10:51
|
(67) Пара строк прува - пара строк доказательства своих слов)
(68) Знаю) |
|||
70
Aprobator
31.10.12
✎
10:53
|
(69) тебе описали полностью схему - ты ее протестить не смог. Уж не знаю, что там тебе помешало. Чем тебе можно было доказать справедливость доводов?
|
|||
71
CaMoJleT
31.10.12
✎
10:53
|
(67) Понял суть того, что мне говорили, только после (62), за что и спасибо.
|
|||
72
dmpl
31.10.12
✎
10:53
|
(69) Надо людям верить на слово ;)
|
|||
73
CaMoJleT
31.10.12
✎
10:55
|
(70) Ну как чем?) Пусть и корявый, но код-то я привел. Неужто знающие потратили на болтовню меньше времени, чем на аналогичный код?
(72) Лучше сначала проверить) |
|||
74
Aprobator
31.10.12
✎
10:56
|
(73) люди пытались тебя научить, чтобы ты понял, а не готовое в рот засунуть.
|
|||
75
Reset
31.10.12
✎
10:56
|
В (37) тебе на твой вопрос терпеливо ответили.
|
|||
76
Aprobator
31.10.12
✎
10:57
|
Прежде чем других обзывать - на себя посмотри.
|
|||
77
CaMoJleT
31.10.12
✎
11:06
|
(74) Людям наплевать на моё обучение. Странно, что кто-то думает иначе.
(75) "Напишите плз код по схеме п1,п2,п3, только убрав из схемы п2" - "п1,п3". Не кажется, что в (37) шло банальное издевательство? Перепечатать список, убрав один из пунктов, я и сам могу. Или из моей просьбы не было понятно, что я прошу показать на примере то, что он утверждает? |
|||
78
CaMoJleT
31.10.12
✎
11:07
|
Кстати, ТСу помогли хоть?)
|
|||
79
МишКа
31.10.12
✎
11:09
|
(78) Все у него хорошо (33),(39). Не отвлекайся.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |