```1c
    Функция СформироватьДоговорПолнойМатОтв(МассивОбъектов,Ссылка)

    // Подготавливаем макет для формирования печатной формы OpenXML
    МакетДокумента = УправлениеПечатью.МакетПечатнойФормы("Документ.СЭ_ДоговорМОЛ_Коллективный.ПФ_DOC_ДоговорМатОтвКол_ru");
    Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДокумента, Неопределено);

    // Создаем структуру областей формируемой печатной формы OpenXМL
    ОписаниеОбластей = Новый Структура;
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Заголовок", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Шапка", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаСотрудников", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал", "Общая");

    // Подготавливаем печатную форму в формате офисного документа
    ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет);
    //получаем данные документа

    СсылкаНаОбъект = МассивОбъектов[0];

    Объект = СсылкаНаОбъект;
    ДанныеОбъекта = Новый Структура;

    МассивСотрудниковТЗ = Объект.Сотрудники.ВыгрузитьКолонку("Сотрудник");

    Если МассивСотрудниковТЗ.Количество() = 0 Тогда
    Возврат Ложь;
    КонецЕсли;

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

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    ДанныеДляПечати = Запрос.ВыполнитьПакет();

    Шапка = ДанныеДляПечати[0].Выгрузить();
    //Сотрудники = ДанныеДляПечати[1].Выгрузить();

    ДанныеШапка = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Шапка[0]);
    ДанныеШапка["Номер"] = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеШапка["Номер"]);
    ДанныеШапка["Дата"] = Формат(ДанныеШапка["Дата"], "ДФ=dd.MM.yyyy");
    //ДанныеШапка["Сотрудники"] = (ДанныеШапка["Сотрудники"]);
    ДанныеШапка["Подразделение"] = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(ДанныеШапка["Подразделение"],"ПД=Родительный");
    ДанныеШапка["Работа"] = НРег(ДанныеШапка["Работа"]);

    //Список Сотрудников
    КЛ = СотрудникиФормы.КлючиСтруктурыТекущихКадровыхДанныхСотрудника();
    КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудниковТЗ, КЛ, Объект.Дата,,Ложь);

    МассивСотрудников = Новый Массив;
    ДанныеОбъекта.Вставить("МассивСотрудников", МассивСотрудников);

    Если Тип(Объект.Сотрудники) = Тип("ДокументТабличнаяЧасть.СЭ_ДоговорМОЛ_Коллективный.Сотрудники") Тогда
    ТЗДат = Объект.Сотрудники.Выгрузить(,"Сотрудник");
    Иначе
    Возврат Ложь;
    КонецЕсли;

    Для каждого СтрокаСотр Из КадровыеДанные Цикл
    //собираем представление сотрудника
    СтрокаМассива = ";

    СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
    Если ПустаяСтрока(СЭ_ТабНомер) Тогда
    СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
    СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
    КонецЕсли;
    СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));

    ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
    ПредставлениеДолжности = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущаяДолжность, "ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(ПредставлениеИмени);

    Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
    ПредставлениеПодразделения = ";
    КонецЕслИ;

    СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
    СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);

    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
    Иначе
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + " " + ПредставлениеПодразделения + ":";
    КонецЕслИ;

    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);

    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива);

    КонецЦикла;

    ИзменитьОкончание(ДанныеОбъекта.МассивСотрудников);

    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Заголовок"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Вывод шапки документа
    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Шапка"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Вывод таблицы
    //Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицы"]);
    //УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары);

    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаСотрудников"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта);

    //Вывод подвала
    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Подвал"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Помещаем сформированную печатную форму в соответствие ОфисныеДокументы
    АдресХранилищаПечатнойФормы = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма);

    //удаление временных файлов
    УправлениеПечатью.ОчиститьСсылки(ПечатнаяФорма);
    УправлениеПечатью.ОчиститьСсылки(Макет);

    Возврат АдресХранилищаПечатнойФормы;

    КонецФункции
```

Выдаёт ошибку "Поле объекта не обнаружено (СтрокаСотрудников)"
---
```1c
    СтрокаМассива = ";

    Для каждого СтрокаСотр Из КадровыеДанные Цикл
    //собираем представление сотрудника

    СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
    Если ПустаяСтрока(СЭ_ТабНомер) Тогда
    СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
    СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
    КонецЕсли;
    СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));

    ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
    ПредставлениеДолжности = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущаяДолжность, "ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(ПредставлениеИмени);

    Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
    ПредставлениеПодразделения = ";
    КонецЕслИ;

    СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
    СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);

    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива =СтрокаМассива +" "+ ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
    Иначе
    СтрокаМассива = СтрокаМассива +" "+ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + " " + ПредставлениеПодразделения + ":";
    КонецЕслИ;

    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);
    НайденныеСтроки = ТЗДат.НайтиСтроки(Отбор);

    КонецЦикла;
    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива);
    ДанныеОбъекта.Вставить("СтрокаСотрудников", СтрокаМассива);
```
---
И где в вашем коде есть "СтрокаСотрудников"? Её тут нет. Есть только текстовое обращение к области макета.
---
есть в коде, достаточно зайти с компа, чтобы увидеть.
---
Есть, которое ведет в другую процедуру, которую нам не показывают.
А в качестве "поля объекта" она нигде в приведенном коде не используется (т.е. обращение "через точку" отсутствует).
---
СтрокаСотрудникова в макете есть такая область?
---
Да, сделано вот так
{v8 Область.СтрокаСотрудников}
{v8 СтрокаСотрудников}
{/v8 Область.СтрокаСотрудников}
---
```1c
    // Вывод таблицы
    //Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицы"]);
    //УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары);
```
Может быть там все таки "СтрокаТаблицы"?
---
Что говорит отладчик?
---
Если смотреть через отладчик, то все данные о сотрудниках выводятся и всё хорошо. Но не выводится в Word
---
Что, так трудно показать строку с ошибкой? Ведь в ошибке явно указан модуль и номер строки.
---
```1c
    Поле объекта не обнаружено (СтрокаСотрудников)
    {ОбщийМодуль.УправлениеПечатьюСлужебный.Модуль(1091)}: ЗначениеПараметра = Строка(ДанныеОбъекта[ПараметрТекст]);
    {ОбщийМодуль.УправлениеПечатьюСлужебный.Модуль(356)}: ЗаполнитьПараметрыОбласти(ПечатнаяФорма, ОбластьМакета, ДанныеОбъекта);
    {ОбщийМодуль.УправлениеПечатью.Модуль(1345)}: УправлениеПечатьюСлужебный.ЗаполнитьПараметры(ПечатнаяФорма, ПечатнаяФорма.ПоследняяВыведеннаяОбласть.Область, Данные);
    {ОбщийМодуль.УправлениеПечатью.Модуль(1368)}: ЗаполнитьПараметры(ПечатнаяФорма, Данные);
    {ОбщийМодуль.УправлениеПечатью.Модуль(2104)}: МенеджерПечати.Печать(ОбъектыСоответствующиеПечатнойФорме, ПараметрыПечати, ВременнаяКоллекцияДляОднойПечатнойФормы,
    {ОбщаяФорма.ПечатьДокументов.Форма(479)}: ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(Параметры.ИмяМенеджераПечати, ИменаМакетов,
    {ОбщаяФорма.ПечатьДокументов.Форма(46)}: КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
    {ОбщийМодуль.УправлениеПечатьюКлиент.Модуль(34)}: ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
    {ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(123)}: УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(ОписаниеКоманды.МенеджерПечати, ОписаниеКоманды.Идентификатор,
    {ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(26)}: ВыполнитьПодключаемуюКомандуПечатиЗавершение(Истина, ПараметрыВыполнения);
    {ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(169)}: ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
    {ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(33)}: ПродолжитьВыполнениеКоманды(Контекст);
    {Документ.СЭ_ДоговорМОЛ_Коллективный.Форма.ФормаДокумента.Форма(30)}: ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
```
---
где "там"? Если вы про Word макет, то нет, я вам показал как у меня там сделано
---
```1c
    МакетДокумента = УправлениеПечатью.МакетПечатнойФормы("Документ.СЭ_ДоговорМОЛ_Коллективный.ПФ_DOC_ДоговорМатОтвКол_ru");
```
---
Не смущает незакрытый тег "СтрокаСотрудников"?
---
Это закрытие области
---
как то неправильно называть и область "СтрокаСотрудников" и параметр внутри области "СтрокаСотрудников"
---
У меня по такому же принципу работают и другие печатные формы и там всё хорошо.
Но там печать сделана в общем модуле
---
Отладка что говорит? Чудес то не бывает, если остальные области заполняются нормально, то значит что то в макете.
---
Я добавил

```1c
    Для каждого СтрокаСотр Из КадровыеДанные Цикл
    //собираем представление сотрудника
    СтрокаМассива = ";

    СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
    Если ПустаяСтрока(СЭ_ТабНомер) Тогда
    СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
    СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
    КонецЕсли;
    СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));

    ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
    ПредставлениеДолжности = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущаяДолжность, "ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(ПредставлениеИмени);

    Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
    ПредставлениеПодразделения = ";
    КонецЕслИ;

    СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
    СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);

    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
    Иначе
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + " " + ПредставлениеПодразделения + ":";
    КонецЕслИ;

    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);
    НайденныеСтроки = ТЗДат.НайтиСтроки(Отбор);

    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива);
    ДанныеОбъекта.Вставить("СтрокаСотрудников", СтрокаМассива);
    КонецЦикла;
```

а именно
```1c
    ДанныеОбъекта.Вставить("СтрокаСотрудников", СтрокаМассива);
```

и теперь в Word выводится только один сотрудник
---
так "СтрокаМассива" все время перезаписывается, не увидел там добавления новый сотрудников
---
Но мне нужно, чтобы выводило всех
---
через форум трудно что сказать, надо видеть саму форму и тогда в отладке можно отследить, почему выводится только 1 сотрудник.
---
Ну 1 сотрудник из-за того, что он последний идёт. Я через отладчик посмотрел, что выводится только 1 человек, а не весь массив
---
смотреть в (23)
---
а как тогда написать, чтобы она сохраняла в себе, а не переписывала?
---
```1c
    СтрокаМассива = ";
```
 вынести за цикл

```1c
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
```
 сделать как :
```1c
    СтрокаМассива = СтрокаМассива +" "+ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
```
---
Это выносим за цикл?

```1c
    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
    Иначе
    СтрокаМассива = ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + " " + ПредставлениеПодразделения + ":";
    КонецЕслИ;
```

и вывод потом тоже за циклом?
---
нет, это в цикле
---
Могли бы подробнее написать?
---
```1c
    СтрокаМассива = ";

    Для каждого СтрокаСотр Из КадровыеДанные Цикл
    //собираем представление сотрудника

    СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
    Если ПустаяСтрока(СЭ_ТабНомер) Тогда
    СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
    СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
    КонецЕсли;
    СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));

    ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
    ПредставлениеДолжности = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущаяДолжность, "ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(ПредставлениеИмени);

    Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
    ПредставлениеПодразделения = ";
    КонецЕслИ;

    СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
    СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);

    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива =СтрокаМассива +" "+ ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
    Иначе
    СтрокаМассива = СтрокаМассива +" "+ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + " " + ПредставлениеПодразделения + ":";
    КонецЕслИ;

    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);
    НайденныеСтроки = ТЗДат.НайтиСтроки(Отбор);

    КонецЦикла;
    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива);
    ДанныеОбъекта.Вставить("СтрокаСотрудников", СтрокаМассива);
```
---
Спасибо большое
---
Получилось?
---
да
---
а как можно было бы поставить между сотрудниками запятую, но так, чтобы после последнего она не выводилась?
---
```1c
    СтрокаМассива = ","+СтрокаМассива +" "+
```
 и сделать проверку на первого сотрудника, чтобы если первый, то не добавлять ","
---
```1c
    Если КадровыеДанные.Индексы = 0 Тогда
    СтрокаМассива = СтрокаМассива +" "+ ПредставлениеИмени;
    Иначе
    СтрокаМассива = ","+СтрокаМассива +" "+ ПредставлениеИмени;

    КонецЕслИ;
```

но вывелось неправильно, запятые все стали вначале
---
запятые все стали вначале Тогда так:
```1c
    СтрокаМассива = ";
    Первый = Истина;
    Для каждого СтрокаСотр Из КадровыеДанные Цикл
    //собираем представление сотрудника
    Если НЕ Первый Тогда
    СтрокаМассива = СтрокаМассива + ",";
    КонецЕсли;
    СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
    Если ПустаяСтрока(СЭ_ТабНомер) Тогда
    СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
    СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
    КонецЕсли;
    СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));

    ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
    ПредставлениеДолжности = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущаяДолжность, "ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
    ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(ПредставлениеИмени);

    Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
    ПредставлениеПодразделения = ";
    КонецЕслИ;

    СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
    СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);

    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива =СтрокаМассива +" "+ ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + ":";
    Иначе
    СтрокаМассива = СтрокаМассива +" "+ПредставлениеИмени + ", таб.№ " + СЭ_ТабНомер + " - " + ПредставлениеДолжности + СотрудникКатегория + " " + ПредставлениеПодразделения + ":";
    КонецЕслИ;

    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);
    НайденныеСтроки = ТЗДат.НайтиСтроки(Отбор);

    Первый = Ложь;

    КонецЦикла;
    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива);
    ДанныеОбъекта.Вставить("СтрокаСотрудников", СтрокаМассива);
```
---
Спасибо, работает
---
как можно было бы поставить между сотрудниками запятую,и кстати в коде уже есть запятая, перед номером, как бы она не помешала.
---
Могли бы помочь с выводом сотрудников в таблицу?
---
Что значит в таблицу?
---
Вот так

адрес я нахожу вот так

```1c
    СотрудникТаблицаКИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ФизЛицо, , ТекущаяДатаСеанса(), Ложь);
    НайденнаяСтрокаАдрес = СотрудникТаблицаКИ.Найти(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица"), "Вид");
    АдресФактический = НайденнаяСтрокаАдрес.Представление;
```

а в сотрудниках нужны инициалы, делаю вот так

```1c
    СотИнА = ФизическиеЛицаКлиентСервер.ФамилияИнициалы (СтрокаСотр.Сотрудник.Наименование);
```
---
У меня сейчас вот такой код

```1c
    Функция СформироватьДоговорПолнойМатОтв(МассивОбъектов,Ссылка)

    // Подготавливаем макет для формирования печатной формы OpenXML
    МакетДокумента = УправлениеПечатью.МакетПечатнойФормы("Документ.СЭ_ДоговорМОЛ_Коллективный.ПФ_DOC_ДоговорМатОтвКол_ru");
    Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДокумента, Неопределено);

    // Создаем структуру областей формируемой печатной формы OpenXМL
    ОписаниеОбластей = Новый Структура;
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Заголовок", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Шапка", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаСотрудников", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал", "Общая");
    //УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаТаблица", "Общая");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаТаблицаСот", "СтрокаТаблицы");
    УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал1", "Общая");

    // Подготавливаем печатную форму в формате офисного документа
    ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет);
    //получаем данные документа

    СсылкаНаОбъект = МассивОбъектов[0];

    Объект = СсылкаНаОбъект;
    ДанныеОбъекта = Новый Структура;

    МассивСотрудниковТЗ = Объект.Сотрудники.ВыгрузитьКолонку("Сотрудник");

    Если МассивСотрудниковТЗ.Количество() = 0 Тогда
    Возврат Ложь;
    КонецЕсли;

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СЭ_ДоговорМОЛ_Коллективный.Номер КАК Номер,
    | СЭ_ДоговорМОЛ_Коллективный.Дата КАК Дата,
    | СЭ_ДоговорМОЛ_Коллективный.Ссылка КАК Ссылка,
    | СЭ_ДоговорМОЛ_Коллективный.Подразделение КАК Подразделение,
    | СЭ_ДоговорМОЛ_Коллективный.СодержаниеРабот КАК Работа
    |ИЗ
    | Документ.СЭ_ДоговорМОЛ_Коллективный КАК СЭ_ДоговорМОЛ_Коллективный
    |ГДЕ
    | СЭ_ДоговорМОЛ_Коллективный.Ссылка = &Ссылка;
    |////////////////////////////////////////////////////////////­////
    |ВЫБРАТЬ
    | СотрудникиТЧ.Ссылка КАК Ссылка,
    | СотрудникиТЧ.Сотрудник КАК Сотрудники
    |
    |
    |
    |ИЗ
    | Документ.СЭ_ДоговорМОЛ_Коллективный.Сотрудники КАК СотрудникиТЧ
    |ГДЕ
    | СотрудникиТЧ.ССылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка", Ссылка);

    ДанныеДляПечати = Запрос.ВыполнитьПакет();

    Шапка = ДанныеДляПечати[0].Выгрузить();
    Сотрудники = ДанныеДляПечати[1].Выгрузить();

    ДанныеШапка = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Шапка[0]);
    ДанныеШапка["Номер"] = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеШапка["Номер"]);
    ДанныеШапка["Дата"] = Формат(ДанныеШапка["Дата"], "ДФ=dd.MM.yyyy");
    //ДанныеШапка["Сотрудники"] = (ДанныеШапка["Сотрудники"]);
    ДанныеШапка["Подразделение"] = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(ДанныеШапка["Подразделение"],"ПД=Родительный");
    ДанныеШапка["Работа"] = НРег(ДанныеШапка["Работа"]);
    ДанныеТовары = ОбщегоНазначения.ТаблицаЗначенийВМассив(Сотрудники);

    //Список Сотрудников
    КЛ = СотрудникиФормы.КлючиСтруктурыТекущихКадровыхДанныхСотрудника();
    КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудниковТЗ, КЛ, Объект.Дата,,Ложь);

    МассивСотрудников = Новый Массив;
    ДанныеОбъекта.Вставить("МассивСотрудников", МассивСотрудников);

    Если Тип(Объект.Сотрудники) = Тип("ДокументТабличнаяЧасть.СЭ_ДоговорМОЛ_Коллективный.Сотрудники") Тогда
    ТЗДат = Объект.Сотрудники.Выгрузить(,"Сотрудник");
    Иначе
    Возврат Ложь;
    КонецЕсли;

    СтрокаМассива = ";
    СтрокаМассива1 = ";
    Первый = Истина;
    Для каждого СтрокаСотр Из КадровыеДанные Цикл
    //собираем представление сотрудника
    Если НЕ Первый Тогда
    СтрокаМассива = СтрокаМассива + ",";
    КонецЕсли;
    СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
    Если ПустаяСтрока(СЭ_ТабНомер) Тогда
    СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
    СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
    КонецЕсли;
    СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));

    ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
    ПредставлениеДолжности = СтрокаСотр.ТекущаяДолжность;
    //ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
    ПредставлениеИмени = СтрокаСотр.Сотрудник;
    ФизЛицо = СтрокаСотр.ФизическоеЛицо;
    ПредоставлениеИмениИн = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(СтрокаСотр.Сотрудник);
    СотИнА = ФизическиеЛицаКлиентСервер.ФамилияИнициалы (СтрокаСотр.Сотрудник.Наименование);
    Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
    ПредставлениеПодразделения = ";
    КонецЕслИ;

    СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
    СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);

    Если ПредставлениеПодразделения = " Тогда
    СтрокаМассива =СтрокаМассива +" "+ ПредставлениеИмени;
    СтрокаМассива1 = Символы.Таб+СтрокаМассива1+Символы.Таб +"-"+ПредставлениеДолжности + ":" + ПредоставлениеИмениИн+Символы.ПС;

    Иначе
    СтрокаМассива = СтрокаМассива +" "+ПредставлениеИмени;
    СтрокаМассива1 = Символы.Таб+СтрокаМассива1+Символы.Таб +"-"+ ПредставлениеДолжности + ":" + ПредоставлениеИмениИн +Символы.ПС;
    КонецЕслИ;

    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);
    НайденныеСтроки = ТЗДат.НайтиСтроки(Отбор);

    Первый = Ложь;

    КонецЦикла;
    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива);
    ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива1);
    ДанныеОбъекта.Вставить("СтрокаСотрудников", СтрокаМассива);
    ДанныеОбъекта.Вставить("СотИнФИО", СтрокаМассива1);
    //ДанныеОбъекта.Вставить("СотИнА", СтрокаМассива2);

    СотрудникТаблицаКИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ФизЛицо, , ТекущаяДатаСеанса(), Ложь);
    НайденнаяСтрокаАдрес = СотрудникТаблицаКИ.Найти(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица"), "Вид");
    АдресФактический = НайденнаяСтрокаАдрес.Представление;
    //ДанныеОбъекта.Вставить("АдресФактический", АдресФактический);

    //ИзменитьОкончание(ДанныеОбъекта.МассивСотрудников);

    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Заголовок"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Вывод шапки документа
    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Шапка"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Вывод таблицы
    //Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицы"]);
    //УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары);

    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаСотрудников"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта);

    //Вывод подвала
    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Подвал"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Вывод таблицы
    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицаСот"]);
    УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары);

    Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Подвал1"]);
    УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);

    // Помещаем сформированную печатную форму в соответствие ОфисныеДокументы
    АдресХранилищаПечатнойФормы = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма);

    //удаление временных файлов
    УправлениеПечатью.ОчиститьСсылки(ПечатнаяФорма);
    УправлениеПечатью.ОчиститьСсылки(Макет);

    Возврат АдресХранилищаПечатнойФормы;

    КонецФункции
```

и выводится только то, что есть в самой табличной части формы.

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