Все добрый день

Возможно ли вывести записи регистра сведений(периодический: день, независимый) в поле табличного документа(http://sch.4com.su/image.gif?id=16651&key=206206).

На фото по ссылке выводятся ссылки документов в виде прямоугольников, вопрос возможно ли вывести вместо этих ссылок записи регистра сведений?

Ниже представлен код который формирует в поле табличного документа ссылки документов:

```1c
    Функция Сформировать(Помещение, НачалоПериода) ЭКСПОРТ

    Макет = ПолучитьМакет("Макет");
    ТабДок = новый ТабличныйДокумент;

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаписьНаОбучение.Ссылка,
    | ЗаписьНаОбучение.Дата,
    | ЗаписьНаОбучение.Клиент,
    | ЗаписьНаОбучение.Организация,
    | ЗаписьНаОбучение.Помещение,
    | ЗаписьНаОбучение.Автор,
    | ЗаписьНаОбучение.Уровень,
    | ЗаписьНаОбучение.Преподаватель,
    | ЗаписьНаОбучение.ВремяОбучения,
    | ЗаписьНаОбучение.ДатаОбучения,
    | ЗаписьНаОбучение.НомерПоСписку КАК Номер
    |ИЗ
    | Документ.ЗаписьНаОбучение КАК ЗаписьНаОбучение
    |ГДЕ
    | НЕ ЗаписьНаОбучение.ПометкаУдаления
    | И ЗаписьНаОбучение.Помещение = &Помещение
    | И ЗаписьНаОбучение.ДатаОбучения МЕЖДУ &НачалоПериода И &КонецПериода";

    Запрос.УстановитьПараметр("Помещение", Помещение);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);

    КонецПериода = КонецНедели(НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить();

    ОбластьВремя = Макет.ПолучитьОбласть("Время");
    ТабДок.Присоединить(ОбластьВремя);

    НачалоНедели = НачалоПериода;

    Пока НачалоНедели <= КонецПериода цикл
    ОбластьПредставлениеДаты = Макет.ПолучитьОбласть("ПредставлениеДаты");

    ДеньНеделиЧисло = ДеньНедели(НачалоНедели);

    ДеньНеделиПредставление = ОбщегоНазначения.ОпределитьДеньНедели(ДеньНеделиЧисло);
    ДатаПредставление = Формат(НачалоНедели, "ДФ=dd.MM.yyyy");

    ОбластьПредставлениеДаты.Параметры.ДеньНедели = ДеньНеделиПредставление;
    ОбластьПредставлениеДаты.Параметры.Дата = ДатаПредставление;

    ТабДок.Присоединить(ОбластьПредставлениеДаты);

    НайденныеСтроки = Выборка.НайтиСтроки(Новый Структура("ДатаОбучения", НачалоНедели));
    Итератор = 0;
    Если НайденныеСтроки.Количество() > 0 тогда
    Для каждого Строка из НайденныеСтроки цикл

    НомерСобытия = Число(Строка.номер);
    НачалоСобытия = Строка.ВремяОбучения;

    ВремяПредставление = "ДеньНедели" + строка(НомерСобытия) + строка(НачалоСобытия);
    НайденнаяОбласть = ТабДок.Области.Найти(ВремяПредставление);
    Если НайденнаяОбласть = НЕОПРЕДЕЛЕНО тогда
    Возврат ТабДок;
    КонецЕсли;

    НайденнаяОбластьВел1 = НайденнаяОбласть.Верх ;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Объединить();
    Если ЗначениеЗаполнено(строка.уровень) Тогда
    ЦветФона = строка.уровень.ЦветоваяГруппа.получить();
    иначе
    ЦветФона = WebЦвета.Томатный;
    КонецЕсли;

    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ЦветФона = ЦветФона;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ЦветТекста = WebЦвета.Белый;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ВертикальноеПоложение = ВертикальноеПоложение.Центр;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;

    //Расшифровка
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Расшифровка = Строка.Ссылка;
    //Описание
    ОписаниеПредставление = Строка.клиент.Наименование;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Текст = ОписаниеПредставление;
    Итератор = Итератор+1;

    КонецЦикла;
    КонецЕсли;
    НачалоНедели = НачалоНедели + 24*60*60;
    КонецЦикла;

    Возврат ТабДок;

    КонецФункции
```
---
в расшифровку пихай структуру, где значениями структуры будут измерения регистра сведений, в обработке расшифровке лови эту структуру, создавай менеджер записи регистра сведений, устанавливай ему отбор по этой структуре, получай форму и открывай её.
---
можно, сделайте соединение с РС в тексте запроса, получите данные с него, выведите их потом при обходе результатов запроса.
---
```1c
    "ВЫБРАТЬ
    | РегистрУроков.Клиент,
    | РегистрУроков.Помещение,
    | РегистрУроков.Преподаватель,
    | РегистрУроков.ВремяОбучения,
    | РегистрУроков.НомерПоСписку КАК Номер,
    | РегистрУроков.Организации,
    | РегистрУроков.Уровни,
    | РегистрУроков.НомерПоСписку,
    | РегистрУроков.Преподаватель КАК Преподаватель1
    |ИЗ
    | РегистрСведений.РегистрУроков КАК РегистрУроков
    |ГДЕ
    | РегистрУроков.Помещение = &Помещение
    | И РегистрУроков.Период МЕЖДУ &НачалоПериода И &КонецПериода";
```

Нет, соединение с РС ненадо делать просто данные я буду получать из независимого регистра сведений, вопрос в том как передать и что вообще передать в расшифровку поля табличного документа, тут у меня проблема?

```1c
    //Расшифровка
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Расшифровка = Строка.Ссылка;
```
---
Ничего не понятно, что вам нужно в итоге.
На счет расшифровки - что вы хотите иметь при клике на ячейку ? То туда и ложите.
---
при клыке на ячейку чтобы открывался форма записи регистра сведений, что я должен передать в расшифровку, чтобы открывался форма записи.
---
rsvp201, А просто "...= Строка" не проходит (без ".Ссылка")? Да не катит ... строка таблицы значений передается. А нужно не ТЗ передавать а рс. Тогда должна выводиться сама строка рс.
---
rsvp201, Как вариант, можно открыть форму регистра сведений, и при открытии ставить отбор по номеру строки:
ФормаСписка = РегистрыСведений.РегистрУроков.ПолучитьФормуСписка();
ФормаСписка.ТекущийЭлемент = Строка.НомерПоСписку;
ФормаСписка.Открыть();
Сорри если есть синтаксические ошибки. В 1с не проверял. Это пример открытия списка документов ... должен прокатить и для рс (единственное с чем предстоит поиграться, это с передаваемым параметром отбора, Строка.НомерПоСписку ... возможно придется шаманить.
---
в расшифровку пихай структуру, где значениями структуры будут измерения регистра сведений, в обработке расшифровке лови эту структуру, создавай менеджер записи регистра сведений, устанавливай ему отбор по этой структуре, получай форму и открывай её.
---
Регистр сведений, как мы знаем ссылки не имеет. Значит при обработке расшифровки нам нужно найти нужную запись. Для этого в параметр расшифровки мы должны передать значение, по которому мы можем однозначно идентифицировать запись; По типу на вскидку не скажу, но если, возможно то лучше конечно передавать структуру, содержащую данные значения; Если нет тогда в параметр расшифровки передавайте значение, в типе "Строка", с перечисленном через запятую идентификаторы(коды, или ссылки), а в процедуре обработки расшифровки, разбирать, переданную строку, выполнять поиск значений, и собственно выводить нужную запись;
---
При передаче в расшифровку менеджер записи регистра сведений 1С сразу закрывается, как будто не понимает что туда передали....
Ниже представлен код который получилось

```1c
    Функция Сформировать(Помещение, НачалоПериода) ЭКСПОРТ

    Макет = ПолучитьМакет("Макет");
    ТабДок = новый ТабличныйДокумент;

    //Получаем данные из регистр сведений по отбору
    РегистрУроков = РегистрыСведений.РегистрУроков;
    ОтборПоПомещению = Новый Структура("помещение");
    ОтборПоПомещению.помещение = Помещение;
    КонецПериода = КонецНедели(НачалоПериода);
    ВыборкаЗаписейРС = РегистрУроков.Выбрать(НачалоПериода, КонецПериода, ОтборПоПомещению);

    // Записываем данные регистра сведений в таблицу значений
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Запись",,"Запись");
    ТаблицаЗначений.Колонки.Добавить("Период",,"Период");
    ТаблицаЗначений.Колонки.Добавить("уровень",,"уровень");
    ТаблицаЗначений.Колонки.Добавить("времяОбучения",,"времяОбучения");
    ТаблицаЗначений.Колонки.Добавить("клиент",,"клиент");
    ТаблицаЗначений.Колонки.Добавить("НомерПоСписку",,"Номер");

    Пока ВыборкаЗаписейРС.Следующий() Цикл
    новаяСтрока = ТаблицаЗначений.Добавить();
    новаяСтрока.Запись = ВыборкаЗаписейРС.ПолучитьМенеджерЗаписи();
    новаяСтрока.период = ВыборкаЗаписейРС.Период;
    новаяСтрока.уровень = ВыборкаЗаписейРС.Уровни;
    новаяСтрока.времяОбучения = ВыборкаЗаписейРС.ВремяОбучения;
    новаяСтрока.Клиент = ВыборкаЗаписейРС.Клиент;
    новаяСтрока.НомерПоСписку = ВыборкаЗаписейРС.НомерПоСписку;
    КонецЦикла;

    ОбластьВремя = Макет.ПолучитьОбласть("Время");
    ТабДок.Присоединить(ОбластьВремя);

    НачалоНедели = НачалоПериода;

    Пока НачалоНедели <= КонецПериода цикл
    ОбластьПредставлениеДаты = Макет.ПолучитьОбласть("ПредставлениеДаты");

    ДеньНеделиЧисло = ДеньНедели(НачалоНедели);

    ДеньНеделиПредставление = ОбщегоНазначения.ОпределитьДеньНедели(ДеньНеделиЧисло);
    ДатаПредставление = Формат(НачалоНедели, "ДФ=dd.MM.yyyy");

    ОбластьПредставлениеДаты.Параметры.ДеньНедели = ДеньНеделиПредставление;
    ОбластьПредставлениеДаты.Параметры.Дата = ДатаПредставление;

    ТабДок.Присоединить(ОбластьПредставлениеДаты);

    //осуществляем пойск по таблице значений согласно отбору
    НайденныеСтроки = ТаблицаЗначений.НайтиСтроки(Новый Структура("Период", НачалоНедели));
    Итератор = 0;
    Если НайденныеСтроки.Количество() > 0 тогда
    Для каждого Строка из НайденныеСтроки цикл

    НомерСобытия = Число(Строка.НомерПоСписку);
    НачалоСобытия = Строка.ВремяОбучения;

    ВремяПредставление = "ДеньНедели" + строка(НомерСобытия) + строка(НачалоСобытия);
    НайденнаяОбласть = ТабДок.Области.Найти(ВремяПредставление);
    Если НайденнаяОбласть = НЕОПРЕДЕЛЕНО тогда
    Возврат ТабДок;
    КонецЕсли;

    НайденнаяОбластьВел1 = НайденнаяОбласть.Верх ;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Объединить();
    Если ЗначениеЗаполнено(строка.уровень) Тогда
    ЦветФона = строка.уровень.ЦветоваяГруппа.получить();
    иначе
    ЦветФона = WebЦвета.Томатный;
    КонецЕсли;

    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ЦветФона = ЦветФона;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ЦветТекста = WebЦвета.Белый;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ВертикальноеПоложение = ВертикальноеПоложение.Центр;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;

    //Записываем в расшифровку поля табличного документа менеджер записи регистра сведений, если его закомментировать то ошибка в 1С пропадает
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Расшифровка = Строка.запись;
    //Описание
    ОписаниеПредставление = Строка.клиент.Наименование;
    ТабДок.Область(НайденнаяОбластьВел1, ДеньНеделиЧисло + 2, НайденнаяОбласть.Верх, ДеньНеделиЧисло + 2).Текст = ОписаниеПредставление;
    Итератор = Итератор+1;

    КонецЦикла;
    КонецЕсли;
    НачалоНедели = НачалоНедели + 24*60*60;
    КонецЦикла;

    Возврат ТабДок;

    КонецФункции
```
---
получается нельзя передавать запись регистра сведений, с другой стороны если смотреть в синтаксис то тип передаваемого значения ПРОИЗВОЛЬНЫЙ