Здравствуйте, есть вот такой код
нужно вывести ДанныеОбъекта.КириллМассив, сейчас почему-то ничего не выводится.
Сам Объект содержит в себе
Функция СформироватьДоговорПолнойМатОтв(МассивОбъектов,Ссылка)
// Подготавливаем макет для формирования печатной формы OpenXML
МакетДокумента = УправлениеПечатью.МакетПечатнойФормы("Документ.СЭ_ДоговорМОЛ_Коллективный.ПФ_DOC_ДоговорМатОтвКол_ru");
Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДокумента, Неопределено);
// Создаем структуру областей формируемой печатной формы OpenXМL
ОписаниеОбластей = Новый Структура;
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Заголовок", "Общая");
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Шапка", "Общая");
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Массив", "СтрокаТаблицы");
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал", "Общая");
//УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаТаблица", "Общая");
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "СтрокаТаблицаСот", "СтрокаТаблицы");
УправлениеПечатью.ДобавитьОписаниеОбласти(ОписаниеОбластей, "Подвал1", "Общая");
// Подготавливаем печатную форму в формате офисного документа
ПечатнаяФорма = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Неопределено, Макет);
//получаем данные документа
СсылкаНаОбъект = МассивОбъектов[0];
Объект = СсылкаНаОбъект;
ДанныеОбъекта = Новый Структура;
МассивСотрудниковТЗ = Объект.Сотрудники.ВыгрузитьКолонку("Сотрудник");
Если МассивСотрудниковТЗ.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СЭ_ДоговорМОЛ_Коллективный.Номер КАК Номер,
| СЭ_ДоговорМОЛ_Коллективный.Дата КАК Дата,
| СЭ_ДоговорМОЛ_Коллективный.Ссылка КАК Ссылка,
| СЭ_ДоговорМОЛ_Коллективный.Подразделение КАК Подразделение,
| СЭ_ДоговорМОЛ_Коллективный.СодержаниеРабот КАК Работа
|ИЗ
| Документ.СЭ_ДоговорМОЛ_Коллективный КАК СЭ_ДоговорМОЛ_Коллективный
|ГДЕ
| СЭ_ДоговорМОЛ_Коллективный.Ссылка = &Ссылка
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| СотрудникиТЧ.Ссылка КАК Ссылка,
| СотрудникиТЧ.Сотрудник КАК Сотрудники
|ИЗ
| Документ.СЭ_ДоговорМОЛ_Коллективный.Сотрудники КАК СотрудникиТЧ
|ГДЕ
| СотрудникиТЧ.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
ДанныеДляПечати = Запрос.ВыполнитьПакет();
Шапка = ДанныеДляПечати[0].Выгрузить();
Сотрудники = ДанныеДляПечати[1].Выгрузить();
ДанныеШапка = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Шапка[0]);
ДанныеШапка["Номер"] = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеШапка["Номер"]);
ДанныеШапка["Дата"] = Формат(ДанныеШапка["Дата"], "ДФ=dd.MM.yyyy");
//ДанныеШапка["Сотрудники"] = (ДанныеШапка["Сотрудники"]);
ДанныеШапка["Подразделение"] = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(ДанныеШапка["Подразделение"],"ПД=Родительный");
ДанныеШапка["Работа"] = НРег(ДанныеШапка["Работа"]);
//ДанныеТовары = ОбщегоНазначения.ТаблицаЗначенийВМассив(Сотрудники);
//Список Сотрудников
КЛ = СотрудникиФормы.КлючиСтруктурыТекущихКадровыхДанныхСотрудника();
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудниковТЗ, КЛ, Объект.Дата,,Ложь);
МассивСотрудников = Новый Массив;
ДанныеОбъекта.Вставить("МассивСотрудников", МассивСотрудников);
Если Тип(Объект.Сотрудники) = Тип("ДокументТабличнаяЧасть.СЭ_ДоговорМОЛ_Коллективный.Сотрудники") Тогда
ТЗДат = Объект.Сотрудники.Выгрузить(,"Сотрудник");
Иначе
Возврат Ложь;
КонецЕсли;
СтрокаМассива = "";
СтрокаМассива1 = "";
Ии = -1;
КириллМассив = Новый Массив;
КириллСтруктура = Новый Структура;
СписокДолжностей = КадровыеДанные.Скопировать(, "ТекущаяДолжность");
СписокДолжностей.Свернуть("ТекущаяДолжность");
СписокДолжностей = СписокДолжностей.ВыгрузитьКолонку("ТекущаяДолжность");
Для Каждого Должность Из СписокДолжностей Цикл
СтрокаДляВывода = "";
Отбор = Новый Структура("ТекущаяДолжность", Должность);
МассивСотрудников = КадровыеДанные.НайтиСтроки(Отбор);
СотрудникиСтрока = "";
Сч = 1;
СчетчикДолжностей = 1;
Для Каждого СтрокаСотр Из МассивСотрудников Цикл
СЭ_ТабНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СтрокаСотр.Сотрудник.Код, Истина, Истина);
Если ПустаяСтрока(СЭ_ТабНомер) Тогда
СЭ_ТабНомер = СокрЛП(СтрокаСотр.Сотрудник.Код);
СЭ_ТабНомер = СЭ_УправлениеПечатьюСервер.УбратьНечисловые(СЭ_ТабНомер);
КонецЕсли;
СтрДолжность = НРег(СокрЛП(СтрокаСотр.ТекущаяДолжность));
ПредставлениеПодразделения = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.ТекущееПодразделение, "ПД=Родительный");
ПредставлениеДолжности = СтрокаСотр.ТекущаяДолжность;
//ПредставлениеИмени = СЭ_УправлениеПечатьюСервер.СЭ_ПолучитьСклонение(СтрокаСотр.Сотрудник,"ПД=Дательный");
ПредставлениеИмени = СтрокаСотр.Сотрудник;
ФизЛицо = СтрокаСотр.ФизическоеЛицо;
ПредоставлениеИмениИн = СЭ_УправлениеПечатьюСервер.СЭ_ФамилияИнициалы(СтрокаСотр.Сотрудник);
СотИнА = ФизическиеЛицаКлиентСервер.ФамилияИнициалы (СтрокаСотр.Сотрудник.Наименование);
Если СтрНайти(ПредставлениеДолжности, ПредставлениеПодразделения) <> 0 Тогда
ПредставлениеПодразделения = "";
КонецЕслИ;
СотрудникКатегория = ПолучитьРазрядКатегориюСотрудника(СтрокаСотр.Сотрудник, Объект.Дата);
СотрудникКатегория = Сред(СотрудникКатегория, 1, СтрДлина(СотрудникКатегория) - 1);
СотрудникиСтрока = СотрудникиСтрока + ПредоставлениеИмениИн + ?(Сч = МассивСотрудников.Количество(), "", ", ");
Сч = Сч + 1;
КонецЦикла;
//СтрокаДляВывода = Строка(Должность) + ": " + СотрудникиСтрока + Символы.ПС + Символы.ВК;
СтрокаДляВывода = СтрокаДляВывода + Нрег(Строка(Должность)) + ": " + СотрудникиСтрока + ?(СчетчикДолжностей = СписокДолжностей.Количество(), "", Символы.ПС);
СчетчикДолжностей = СчетчикДолжностей + 1;
СтрокаМассива1 = Строка(Должность) + ": " + СотрудникиСтрока;
Ии = Ии +1;
КириллМассив.Вставить(Ии,СтрокаДляВывода);
ДанныеОбъекта.МассивСотрудников.Добавить(" " + СтрокаМассива1);
Отбор = Новый Структура;
Отбор.Вставить("Сотрудник" , СтрокаСотр.Сотрудник);
НайденныеСтроки = ТЗДат.НайтиСтроки(Отбор);
Первый = Ложь;
КонецЦикла;
СтруктураЧК = Новый Массив;
СтруктураЧК = ПолучитьСот(Объект, СтруктураЧК);
ДанныеОбъекта.Вставить("СтруктураЧК", СтруктураЧК);
ДанныеОбъекта.Вставить("КириллМассив", КириллМассив);
СотрудникТаблицаКИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ФизЛицо, , ТекущаяДатаСеанса(), Ложь);
НайденнаяСтрокаАдрес = СотрудникТаблицаКИ.Найти(ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица"), "Вид");
АдресФактический = НайденнаяСтрокаАдрес.Представление;
ДанныеОбъекта.Вставить("АдресФактический", АдресФактический);
ДанныеТовары = ОбщегоНазначения.ТаблицаЗначенийВМассив(Сотрудники);
//ДанныеТовары.Вставить("Сотрудники",СотИнА);
//ДанныеТовары = ОбщегоНазначения.ТаблицаЗначенийВМассив(АдресФактический);
//ИзменитьОкончание(ДанныеОбъекта.МассивСотрудников);
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Заголовок"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);
// Вывод шапки документа
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Шапка"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);
// Вывод таблицы
//Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицы"]);
//УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары);
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Массив"]);
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.КириллМассив);
//Вывод подвала
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Подвал"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);
// Вывод таблицы
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицаСот"]);
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.СтруктураЧК);
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Подвал1"]);
УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеШапка);
// Помещаем сформированную печатную форму в соответствие ОфисныеДокументы
АдресХранилищаПечатнойФормы = УправлениеПечатью.СформироватьДокумент(ПечатнаяФорма);
//удаление временных файлов
УправлениеПечатью.ОчиститьСсылки(ПечатнаяФорма);
УправлениеПечатью.ОчиститьСсылки(Макет);
//Возврат ДанныеОбъекта;
Возврат АдресХранилищаПечатнойФормы;
КонецФункции
Показатьнужно вывести ДанныеОбъекта.КириллМассив, сейчас почему-то ничего не выводится.
Сам Объект содержит в себе
Прикрепленные файлы:
По теме из базы знаний
- Вывод печатных форм с запросом данных в форму "Печать документов" из подсистемы БСП "Печать".
- Печатная форма OpenOffice (ODT) с объединением строк в таблицу
- Подключаемые печатные формы с .DOCX макетом без Word'а
- Генератор внешних печатных форм
- Формирование документа MS Word с использованием БСП и программное добавление закладок
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Массив"]);
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.КириллМассив);
Предположу, что в цикле нужно.
А вообще на несколько бы процедур разбить. Читабельнее код будет.
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["Массив"]);
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.КириллМассив);
Предположу, что в цикле нужно.
А вообще на несколько бы процедур разбить. Читабельнее код будет.
Слишком большой кусок кода чтобы в него вчитываться
не представляю как этот код работает
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.СтруктураЧК);
но
-сюда передается структура, а вы передаете массив(если я правильно понял)
-есть ли в области ваши параметры
не представляю как этот код работает
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеОбъекта.СтруктураЧК);
но
-сюда передается структура, а вы передаете массив(если я правильно понял)
-есть ли в области ваши параметры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот