|
Создать запись в регистре сведений. В чем ошибка? | ☑ | ||
---|---|---|---|---|
0
AlexBor
naïve
20.01.15
✎
12:26
|
8.1 Самописная база. Ситуация такая: Есть документ реестрвходящей корреспонденции. Реквизит - Исполнитель. Создал регистр Исполнители(Ресурсы -Исполнитель) подчинил регистратору - РеестрВходящей корреспонденции. Хочу из Реквизита документа Исполнитель создать запись в регистресведений. Вылетает ошибка:
Выборка = Документы.РеестрВходящейКорреспонденции.Выбрать(); Пока Выборка.Следующий() Цикл Регистратор = Выборка.ПолучитьОбъект(); Сообщить(Регистратор); НаборЗаписей = РегистрыСведений.Исполнители.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Исполнитель = Регистратор.Кому; //Кому это реквизит документа НаборЗаписей.Записать(); КонецЦикла КонецЦикла; Почему? |
|||
1
Ненавижу 1С
гуру
20.01.15
✎
12:28
|
ошибка, что не заполнен регистратор? я угадал?
|
|||
2
Godofsin
20.01.15
✎
12:28
|
(1) барабанная дробь!
|
|||
3
AlexBor
naïve
20.01.15
✎
12:28
|
(1) Форма.ФормаОтчета(70)}: Поле объекта не обнаружено (Регистратор)
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка); |
|||
4
AlexBor
naïve
20.01.15
✎
12:29
|
И что сие значит?
|
|||
5
YHVVH
20.01.15
✎
12:32
|
НаборЗаписей.Записать() из цикла вынеси для начала
|
|||
6
Cube
20.01.15
✎
12:33
|
(0) Это пять!
"Для Каждого Запись Из НаборЗаписей Цикл НоваяЗапись = НаборЗаписей.Добавить();" http://s020.radikal.ru/i720/1311/dd/2bc6fcb9773b.jpg |
|||
7
AlexBor
naïve
20.01.15
✎
12:33
|
(5) Сделал .... но ошибка не в этом
|
|||
8
Cube
20.01.15
✎
12:34
|
(6) Картинка криво вставилась, вот: http://time56.ru/userfiles/news/large/3640_taschla_orug_13102013-2.jpg
|
|||
9
unregistered
20.01.15
✎
12:35
|
(0) регистр независимый (не подчинен регистратору).
|
|||
10
AlexBor
naïve
20.01.15
✎
12:35
|
(8) Спасибо за критику я это очень ценю
|
|||
11
krunm
20.01.15
✎
12:37
|
(3) "Регистратор.Кому" - попробуй заменить на Регистратор.Ссылка.Кому или выборка.Ссылка
|
|||
12
krunm
20.01.15
✎
12:38
|
ну и запись из цикла убрать, или записывать через менеджер
|
|||
13
Шапокляк
20.01.15
✎
12:38
|
Ты прочитал НаборЗаписей и перебираешь записи из набора. Тебе нужно в каждую из них заполнить исполнителя. За каким таким ты добавляешь записи в набор?
|
|||
14
AlexBor
naïve
20.01.15
✎
12:48
|
Учитывая все предыдущие мнения мнения сделал так:
Подчинил регистратору и изменил код: Выборка = Документы.РеестрВходящейКорреспонденции.Выбрать(); Пока Выборка.Следующий() Цикл Регистратор = Выборка.ПолучитьОбъект(); Сообщить(Регистратор); НаборЗаписей = РегистрыСведений.Исполнители.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл Запись.Исполнитель=Регистратор.Ссылка.Кому; КонецЦикла; НаборЗаписей.Записать(); КонецЦикла; Ошибка не выскакивает но и запись в регистр не попадает. Что не так теперь? |
|||
15
DrZombi
гуру
20.01.15
✎
12:48
|
(0) НаборЗаписей.Прочитать();
и Для Каждого Запись Из НаборЗаписей Цикл Содержат записи, если в РС есть запись по отбору :) |
|||
16
DrZombi
гуру
20.01.15
✎
12:49
|
(14) Чудак. У тебя в Регистре нет записей по отбору, а ты все Читаешь и Читаешь...
Попробуй отладчик запустить |
|||
17
DrZombi
гуру
20.01.15
✎
12:50
|
НовайЗапись = НаборЗаписей.Добавить();
///Пишешь фигню с заполнением измерений, ресурсов и т.д... НаборЗаписей.Записать(); |
|||
18
AlexBor
naïve
20.01.15
✎
12:51
|
(16) Да записей нет я согласен их нужно добавить. Как?
|
|||
19
Шапокляк
20.01.15
✎
13:01
|
Если НаборЗаписей.Количество()=0 Тогда
Запись=НаборЗаписей.Добавить(); Запись.Исполнитель=.... НаборЗаписей.Записать() |
|||
20
DrZombi
гуру
20.01.15
✎
13:09
|
(18) В (17) Смотри.
Проверить, на отсутствие записей через "НаборЗаписей.Количество()" |
|||
21
AlexBor
naïve
20.01.15
✎
13:14
|
Запись с такими ключевыми полями существует! : 02.07.2013
Не совсем понятно что это значит я открываю регитр он пустой.? |
|||
22
AlexBor
naïve
20.01.15
✎
13:18
|
Сделал вот так
Выборка = Документы.РеестрВходящейКорреспонденции.Выбрать(); Пока Выборка.Следующий() Цикл Регистратор = Выборка.ПолучитьОбъект(); Сообщить(Регистратор); НаборЗаписей = РегистрыСведений.Исполнители.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка); Если НаборЗаписей.Количество()=0 Тогда НаборЗаписей.Добавить(); Для Каждого Запись Из НаборЗаписей Цикл Запись.Исполнитель=Регистратор.Ссылка.Кому; Запись.Период = Регистратор.Дата; НаборЗаписей.Записать(); КонецЦикла; КонецЕсли; КонецЦикла; КонецПроцедуры Вылетает ошибка Запись с такими ключевыми полями существует! : 02.07.2013 0:00:00 (Регистр свед |
|||
23
Cube
20.01.15
✎
13:23
|
(22) Просто жесть...
Ну чуть-чуть подумать, не? Выборка = Документы.РеестрВходящейКорреспонденции.Выбрать(); Пока Выборка.Следующий() Цикл Регистратор = Выборка.ПолучитьОбъект(); Сообщить(Регистратор); НаборЗаписей = РегистрыСведений.Исполнители.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка); Если НаборЗаписей.Количество()=0 Тогда Запись = НаборЗаписей.Добавить(); Запись.Исполнитель=Регистратор.Ссылка.Кому; Иначе Для Каждого Запись Из НаборЗаписей Цикл Запись.Исполнитель=Регистратор.Ссылка.Кому; КонецЦикла; КонецЕсли; НаборЗаписей.Записать(); КонецЦикла; |
|||
24
igoza
20.01.15
✎
13:24
|
попытайся понять что именно за текст находится в ошибке XD
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |