|
В регистр сведений через вложенный цикл, не записывает данные | ☑ | ||
---|---|---|---|---|
0
Анастасия Изотова
04.05.16
✎
17:12
|
Вечер добрый! У меня вопрос по Регистрам Сведений.
Есть документ с двумя табличными частями. Левая зависима от правой. Построчно нужно данные из левой части, и подчиненной ей правой, занести в регистр. т.е. Для Каждого СтрТЧ из Исследования Цикл НаборЗаписейРА = РегистрыСведений.РегистрРА.СоздатьНаборЗаписей(); НаборЗаписейРА.Отбор.Дата.Установить(ЭтаФорма.ЭлементыФормы.Дата.Значение); НаборЗаписейРА.Отбор.Объект.Установить(СтрТЧ.Пациент); НаборЗаписейРА.Отбор.ГВИ.Установить(ГВИ.Значение); НовЗаписьРА = НаборЗаписейРА.Добавить(); НовЗаписьРА.Дата = Дата.Значение; НовЗаписьРА.Объект = СтрТЧ.Пациент; НовЗаписьРА.ГВИ = ГВИ.Значение; НовЗаписьРА.РезультатВнес = Внес.Значение; НаборЗаписейРА.Записать(Истина); Для Каждого СтрТЧРез из Результаты Цикл Если СтрТЧ.Пациент.Ссылка = СтрТЧРез.Пациент.Ссылка Тогда НаборЗаписейРА = РегистрыСведений.РегистрРА.СоздатьНаборЗаписей(); НаборЗаписейРА.Отбор.Дата.Установить(Дата.Значение); НаборЗаписейРА.Отбор.Объект.Установить(СтрТЧРез.Пациент); НаборЗаписейРА.Отбор.ГВИ.Установить(ГВИ.Значение); НовЗаписьРА = НаборЗаписейРА.Добавить(); НовЗаписьРА.Объект = СтрТЧРез.Пациент; НовЗаписьРА.Дата = Дата.Значение; НовЗаписьРА.ГВИ = ГВИ.Значение; НовЗаписьРА.НомерТеста = СтрТЧРез.НомерТеста; НаборЗаписейРА.Записать(Истина); КонецЕсли; КонецЦикла; Первый цикл забирает данные из левой табличной части, а вот вложенный второй цикл, построчно вторую табличную часть, брать не хочет. Уже и Записать(Ложь) использовала, но начинается ошибка из за повтора значений измерений ... Мне нужно получить в итоге нечто вроде: Иванов 15.04.2016 Кровь Резус Норма Иванов 15.04.2016 Кровь Лепра Норма Сидоров 15.04.2016 Кровь Резусь НеНорма Сидоров 15.04.2016 Кровь Лепра Норма |
|||
1
Nuobu
04.05.16
✎
17:16
|
Верхний цикл убери.
|
|||
2
Nuobu
04.05.16
✎
17:16
|
То есть верхнюю запись в регистр сведений.
|
|||
3
Анастасия Изотова
05.05.16
✎
06:57
|
Верхнюю запись ? Это третью строку сверху, убрать, или четвертую ? )))
Кусок что сверху, забирает данные из первой табличной части, создавая первую половину записи в регистр (ФИО, ДатаРожд, ТипИсслед) , а во втором цикле, вложенном, дописать нужно в строку данные из второй табличной части, подчиненной первой ... Что убрать то ? |
|||
4
Мимохожий Однако
05.05.16
✎
07:23
|
А что не получается? Метод Прочитать() попробуй
|
|||
5
1Сергей
05.05.16
✎
07:27
|
НаборЗаписейРА = РегистрыСведений.РегистрРА.СоздатьНаборЗаписей();
НаборЗаписейРА.Отбор.Дата.Установить(ЭтаФорма.ЭлементыФормы.Дата.Значение); НаборЗаписейРА.Отбор.Объект.Установить(СтрТЧ.Пациент); НаборЗаписейРА.Отбор.ГВИ.Установить(ГВИ.Значение); НовЗаписьРА = НаборЗаписейРА.Добавить(); НовЗаписьРА.Дата = Дата.Значение; НовЗаписьРА.Объект = СтрТЧ.Пациент; НовЗаписьРА.ГВИ = ГВИ.Значение; НовЗаписьРА.РезультатВнес = Внес.Значение; //НаборЗаписейРА.Записать(Истина); Для Каждого СтрТЧРез из Результаты Цикл Если СтрТЧ.Пациент.Ссылка = СтрТЧРез.Пациент.Ссылка Тогда //НаборЗаписейРА = РегистрыСведений.РегистрРА.СоздатьНаборЗаписей(); //НаборЗаписейРА.Отбор.Дата.Установить(Дата.Значение); //НаборЗаписейРА.Отбор.Объект.Установить(СтрТЧРез.Пациент); //НаборЗаписейРА.Отбор.ГВИ.Установить(ГВИ.Значение); //НовЗаписьРА = НаборЗаписейРА.Добавить(); // //НовЗаписьРА.Объект = СтрТЧРез.Пациент; //НовЗаписьРА.Дата = Дата.Значение; //НовЗаписьРА.ГВИ = ГВИ.Значение; НовЗаписьРА.НомерТеста = СтрТЧРез.НомерТеста; //НаборЗаписейРА.Записать(Истина); прервать; КонецЕсли; КонецЦикла; НаборЗаписейРА.Записать(Истина); |
|||
6
Анастасия Изотова
05.05.16
✎
08:14
|
А с первым циклом как быть ? ... первые строки , в том числе "СтрТЧ.Пациент;" берутся из перебора построчно первой табличной части.
как с ней быть, и где ее закрыть, ДО Записать(Истина); , или после ? |
|||
7
Анастасия Изотова
05.05.16
✎
10:28
|
Общий алгоритм такой:
Для Каждого СтрТЧ из Исследования Цикл // опрос построчно первой таблицы, где имена и общая информация Регистр <- СтрТЧ.Пациент; Регистр <- СтрТЧ.ДатаР; Для Каждого СтрТЧРез из Результаты Цикл // опрос построчно второй таблицы, где доп.строки принадлежные к пациенту из первой Регистр <- СтрТЧРез.Дополнительно; Регистр <- СтрТЧРез.Примечания; КонецЦикла; КонецЦикла; И как то нужно создать серию строк в регистре, с началом (полями) из первой таблицы, одинаковыми (для первого пациента), и последующими полями с разноперой информацией из второстепенной таблицы. Потом серия строк для второго пациента ... я не знаю как выстроить алгоритм записи в регистр с обходом обеих таблиц, и что бы не было конфликта повторяющихся измерений (когда во всей серии строк ПРО Иванов, например, его Имя, ДатаР, и др, будут повторяться в каждой строке ( |
|||
8
catena
05.05.16
✎
10:51
|
(7)Структура регистра какая? Периодичность?
|
|||
9
Анастасия Изотова
05.05.16
✎
10:57
|
Независимый, непериодический ...
Мне без разницы, каким его сделать, и кому подчинить его, лишь бы данные из Документа, писались в туда .. |
|||
10
catena
05.05.16
✎
10:59
|
(9)Структура какая? Что есть измерения, что реквизиты? Дубль по измерениям не сделаешь при любом цикле.
|
|||
11
Анастасия Изотова
05.05.16
✎
11:10
|
Измерения: Обьект (берется из первой таблицы), дата (реквизит дока), ВидИсследования (реквизит дока)
Ресурсы: Организация (реквизит дока), Анализ (Из первой таблицы), Результат (из второй таблицы), Норматив (из второй таблицы) Должно записаться: Иванов 12.01.2016 Кровь Лаба ак 250 Иванов 12.01.2016 Кровь Лаба бк 250 Иванов 12.01.2016 Кровь Лаба рк 250 Сидоров 12.01.2016 Кровь Лаба ак 250 При чем Имя, дата, Вид Исследования, должны быть в каждой строке. может добавить в измерения Номер, который будет с каждой строкой : х=х+1 ? |
|||
12
catena
05.05.16
✎
11:22
|
(11)
"Имя, дата, Вид Исследования, должны быть в каждой строке" "Измерения: Обьект (берется из первой таблицы), дата (реквизит дока), ВидИсследования (реквизит дока)" Если я правильно поняла, с таким регистром такой таблицы не получить. Сядь и продумай еще раз структуру регистра. Что в итоге от этого регистра требуется? Последнее значение на дату? Просто таблица результатов? |
|||
13
Анастасия Изотова
06.05.16
✎
02:34
|
Да, просто таблица нужна. Данные туда просто хочу складировать, что бы потом запросами забирать. Будут выборки по полю Дата. Срезы последних, не нужны.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |