Имя: Пароль:
1C
 
Ошибка при записи в регистр сведений
0 RK
 
15.03.06
11:35
Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует!
1 roman
 
naïve
15.03.06
11:36
и в чем вопрос ?
2 Salvador Limones
 
15.03.06
11:36
Очень нравится. Многоплановая композиция. Просто здорово. Хорошо проработан код.
3 RK
 
15.03.06
11:37
Процедура ОбработкаПроведения(Отказ, Режим)
   Для Каждого ТекСтрокаОсновная Из Основная Цикл
       Движение = Движения.ТоварыПоПоставщикам.Добавить();
       Движение.Период = Дата;
       Движение.Фирма = Фирма;
       Движение.Аптека = Аптека;
       Движение.Контрагент = Контрагент;
       Движение.Товар = ТекСтрокаОсновная.Товар;
       Движение.Цена = ТекСтрокаОсновная.Цена;
       Движение.Отклонение = ТекСтрокаОсновная.ДопустимоеОтклонение;
   КонецЦикла;
       Движения.ТоварыПоПоставщикам.Записать();
КонецПроцедуры
Для одной строки - нормально. Если больше - ругается
4 vvv29
 
15.03.06
11:37
(0)Ответ: Запись с такими ключевыми полями существует.
5 RK
 
15.03.06
11:40
(4) на какие поля ругается?

Регистр:
Ресурсы:
Фирма,Аптека,Контрагент
Измерение - Товар
Реквизиты:
Цена,Отклонение
6 RK
 
15.03.06
11:45
up!
7 RK
 
15.03.06
11:48
up
8 vasinok
 
15.03.06
11:49
(5) на измерения
9 roman
 
naïve
15.03.06
11:49
тебе же ответели - ругается потомучто запись с такими ключевыми полями существует
Ключевые поля - это измерения регистра
10 RK
 
15.03.06
11:50
Товары - разные!
11 RK
 
15.03.06
11:51
Извините, может я чайник, но нельзя-ли подробнее.
12 igork1966
 
15.03.06
11:55
(10) Как ты это гарантируешь?
13 it086
 
15.03.06
11:56
может у вас периодичность регистра "нехорошая"?
14 RK
 
15.03.06
11:57
(12)Но не настолько - же чайник!
15 RK
 
15.03.06
11:57
Периодичность - регистратор
16 it086
 
15.03.06
11:58
в документе стоит "Удалять движения автоматически"?
17 RK
 
15.03.06
11:59
(16) - Да!
18 RK
 
15.03.06
12:00
Режим записи - Подчинение регистратору
19 it086
 
15.03.06
12:03
при совпадении измерений "Регистратор" и "Период" остается только "Товар". смотрите в отладчике
20 RK
 
15.03.06
12:06
Товары и при отладке - разные!
В док-те - 2 строки.
Обе - разные
Совпадают - Ресурсы
21 it086
 
15.03.06
12:09
странно все это... может у вас типы у "товар" в документе и в регистре не совпадают?
22 RK
 
15.03.06
12:11
Странно - мягко сказано.
Типы все совпадают.
Оставляю одну строку (любую!) - всё нормально.
Больше - ошибка!
23 RK
 
15.03.06
12:19
Неужели никто не сталкивался?
24 roman
 
naïve
15.03.06
12:21
все сталкивались, но ... - отладчик в зубы и вперед
25 RK
 
15.03.06
12:23
(24) если-бы можно было -бы решить отладчиком -
писал - бы код, а не на мисту.
26 it086
 
15.03.06
12:25
(25) проверьте чего творится в проц."ПередЗаписью" "ПриЗаписи" в модуле набора записей регистра.
27 RK
 
15.03.06
12:29
Регистр создавал сам.
Там предопределенных - нет.
В док-те, касаемо записи ничего нет.
Тут или принципиальная ошибка или очередной глюк v8.
Зависимый от регистратора регистр сведений создаю впервые
В форумах тема поднималась, ответа нет.
28 roman
 
naïve
15.03.06
12:38
давай в асю стукнись
помогу пока делать нечего
с тебя надо снимок буфера - регистр и док
29 RK
 
15.03.06
12:39
icq 211315502
30 roman
 
naïve
15.03.06
12:50
Типа мне стучатся?
ладно уговорил :)
31 roman
 
naïve
15.03.06
12:53
странно - но пользователя с таким номером не найдено
стучись ты - асю смотри в карточке
32 RK
 
15.03.06
13:25
Господа, подскажите, если сталкивались.
33 RK
 
15.03.06
14:06
up
34 vde69
 
15.03.06
14:14
посмотри значение (для каждой интерации)

Движение.Товар.Код (до и после присвоения)

должно быть так

Неопределено
кодСтроки1
кодСтроки1
кодСтроки2
35 AntonioS
 
15.03.06
14:18
я сталкивался с такой ситуацией
основательно разобраться так и не получилось
причем из всей номенклатуры в табличной части ругался только на один артикул
решил просто - провел этот артикул другим документом
понимаю, что не выход
самое интересное, что ругался таким образом даже при записи нового документа,
до проведения
по-моему что-то системное, такое ощущение, что каким то образом в базе остаются движения, хотя на самом деле их нет, такое ощущение что криво отработанная отмена транзакции. Например когда с первого раза не удалось провести документ из-за блокировок
36 vde69
 
15.03.06
14:24
(0) А в каком модуле располжена твоя процедура??????
если не в модуле обьекта, то все понятно
37 AntonioS
 
15.03.06
14:32
(36) расскажи, что понятно?
мне тоже интересно
38 vde69
 
15.03.06
14:38
(37)переодичность = регистратор,
а откуда регистратор взять???? если модуль отличный от модуля обьекта
39 RK
 
15.03.06
14:41
(35) Первый документ.
Искал по форумам.
Проблема есть - решения нет
(36) смотри (3).(для одной строки - нормально)
40 vde69
 
15.03.06
14:44
(39) так чего по (34)
41 RK
 
15.03.06
14:51
(40)
До
Движение.Товар.Код=0
После
Движение.Товар.Код=4
До
Движение.Товар.Код=0
После
Движение.Товар.Код=3

Для 2-х строк
42 vde69
 
15.03.06
15:01
(41) ХЗ надо руками смотреть, думаю так тебе не помогут,

попробуй провести док с 1 строкой
и в консоли выполни

ВЫБРАТЬ * ИЗ РегистрСведений.ТоварыПоПоставщикам

результат кинь сюда
43 RK
 
15.03.06
15:03
Одна строка. Всё правильно
44 vde69
 
15.03.06
15:06
ИХМО дело в регистре а не в коде
45 RK
 
15.03.06
15:08
Где в регистре?
46 vasinok
 
15.03.06
15:12
(45) попробуйте очищать движения перед проведением документа

Движения.ТоварыПоПоставщикам.Очистить();
Движения.ТоварыПоПоставщикам.Записать();
47 vde69
 
15.03.06
15:12
глянь по внимательней настройки регистра,

переодичность=регистратор
регистраторы=  ТвойДокумент
измерение=товар
режимЗаписи = подчинен регистратору !!!!!!!!!!!!!!!!!!!
48 vde69
 
15.03.06
15:13
(47)режимЗаписи = подчинен регистратору !!!!!!!!!!!!!!!!!!!
49 AntonioS
 
15.03.06
15:16
(35) что значит Первый документ?
(38) ну например Регистратор можно передать в качестве параметра в другой модуль.
В поле Период значение типа Дата, не совсем понятно как оно связано напрямую с регистратором
50 RK
 
15.03.06
15:18
(47)- (5),(15),(18)
51 vde69
 
15.03.06
15:20
(49)можно, но в данном случае это не сделано, а при режиме подчинения регистратору он записываеться автоматически
52 RK
 
15.03.06
15:20
(46) - пробовал
53 RK
 
15.03.06
15:21
Движения удаляются автоматически (проверял)
54 RK
 
15.03.06
15:28
up
55 RK
 
15.03.06
15:42
up!
56 it086
 
15.03.06
15:43
(55) все еще хотите разобраться?
57 RK
 
15.03.06
15:45
Да.
В документации нигде нет.(или не нашел, уже сомнения).
Ответ ни у кого не могу получить.
58 it086
 
15.03.06
15:46
(57) можете открыть модуль набора записей регистра ТоварыПоПоставщикам?
59 RK
 
15.03.06
15:47
(58) нет модуля
60 it086
 
15.03.06
15:47
(59) что значит нет? хотите сказать пустой?
61 RK
 
15.03.06
15:48
Да.
62 it086
 
15.03.06
15:50
(61) создайте в нем процедуру ПередЗаписью(Отказ,Замещение) (пустую)
собственно интересно получить состав набора записей в случае для двух товаров
63 RK
 
15.03.06
15:59
(62) "состав набора записей" что интересно?
переменная?
64 AntonioS
 
15.03.06
15:59
могу посоветовать перегрузить сервер приложения
все таки мне кажется, что системная ошибка, а не в коде
65 RK
 
15.03.06
16:00
(64) локально, файловая система
66 it086
 
15.03.06
16:02
(63) в процедуре можно поставить точку останова. в данном модуле ЭтотОбъект - это и есть набор записей. в отладчике можно поглядеть его состав - отдельные записи
67 RK
 
15.03.06
16:07
ЭтотОбъект.Отбор.Регистратор
Регистратор = "Договор с поставщиком Д001-00001 от 14.03.2006 15:02:39"
68 it086
 
15.03.06
16:11
(67) в окне отладчика "Вычислить выражение", когда рассчитаете ЭтотОбъект в поле "Результат" выбирите ЭтотОбъект и нажмите F2. для уже проведенного документа процедура вызывается 2 раза - первый при удалении движений (записей нет), второй при записи новых движений (записи есть)
69 RK
 
15.03.06
16:14
Первый раз -ничего
Второй - две строки
Все поля заполнены . Регистратор не указан
70 RK
 
15.03.06
16:15
Товар - разный!
71 it086
 
15.03.06
16:15
в обработке проведения документа попробуйте явно задать движение.регистратор=ссылка
72 vde69
 
15.03.06
16:16
(71) будет ошибка
73 it086
 
15.03.06
16:17
(72) да ну? не правда
74 vde69
 
15.03.06
16:17
(71)+ тогда надо изменить режимЗаписи
75 RK
 
15.03.06
16:18
(71){Документ.Договор(18)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Фирма : №1 : Протек : 14.03.2006 15:02:39 : Договор с поставщиком Д001-00001 от 14.03.2006 15:02:39 (Регистр сведений: Товары по поставщикам; Номер строки: 2)
       Движения.ТоварыПоПоставщикам.Записать();
76 RK
 
15.03.06
16:19
(74) на какой?
77 vde69
 
15.03.06
16:20
(76) независимый
78 vde69
 
15.03.06
16:20
(77) и писать менеджером
79 RK
 
15.03.06
16:20
надо зависимый
80 it086
 
15.03.06
16:21
(77) для независимых вообще нет регистратора
(75) а фирма - это что? измерение?
81 RK
 
15.03.06
16:21
независимый пишется нормально
82 RK
 
15.03.06
16:23
Регистр:


Ресурсы:
Фирма,Аптека,Контрагент
Измерение - Товар
Реквизиты:
Цена,Отклонение
83 it086
 
15.03.06
16:27
(82) судя по приведенному в (75) сообщению об ошибке это не так
84 RK
 
15.03.06
16:29
Давай картинку с монитора брошу....
85 it086
 
15.03.06
16:39
it086@mail.ru
86 it086
 
15.03.06
16:45
закройте тему. не морочьте голову
87 RK
 
15.03.06
16:48
Извиняюсь за фигню(82)
Регистр:
Измерение:
Фирма,Аптека,Контрагент
Ресурс - Товар
Реквизиты:
Цена,Отклонение

Это меняет дело?
Если да - то как?
88 it086
 
15.03.06
16:51
комбинация значений измерений составляет как бы уникальный ключ и не может совпадать для нескольких записей в одном периоде
89 RK
 
15.03.06
16:55
Спасибо. Тема закрыта.
2 + 2 = 3.9999999999999999999999999999999...