helpf.pro
Регистрация
 0 
Распечатать

1С 8.2 УП : Как результат СКД в виде Табличного Документа разобрать и вывести в Таблицу Значений

В отчете должна быть настроена и указана основная схема компоновки данных
Когда идет конвертирование в ТЗ, то ищется в первом столбце пустая строка, как только она найдена - конвертация считается завершенной.
Поэтому для сложных отчетов - выводите первым столбцом Системное поле № п/п.
Код 1C v 8.х
 
// В МОДУЛЕ ФОРМЫ
&НаКлиенте
Процедура СформироватьБезСКД(Команда)
СформироватьСервер();
КонецПроцедуры

&НаСервере
Функция СформироватьСервер()
мОтчет = РеквизитФормыВЗначение("Отчет");
Результат = мОтчет.СформироватьПечатнуюФорму();
КонецФункции


// В МОДУЛЕ ОБЪЕКТА
Функция СформироватьПечатнуюФорму() Экспорт
рзДанные = ПолучитьДанныеДляОтчета();
Возврат рзДанные;
КонецФункции


Функция ТДВТаблицуЗначений(ТабДок, КолонкаИндекса = 1)

ТаблицаДанных = Новый ТаблицаЗначений;
НомерКолонки = 0;
Пока Истина Цикл
НомерКолонки = НомерКолонки + 1;
ИмяКолонки = ТабДок.Область(1, НомерКолонки).Текст;
Если ПустаяСтрока(ИмяКолонки) Тогда
Прервать;
КонецЕсли;
ТаблицаДанных.Колонки.Добавить(СтрЗаменить(ИмяКолонки, " ","_"));
КонецЦикла;

СчетчикКолонок = НомерКолонки - 1;

НомерСтроки = 1; ФлагПрерывания = Ложь;
Пока Истина Цикл
НомерСтроки = НомерСтроки + 1;
Стр = ТаблицаДанных.Добавить();

Для А = 1 ПО СчетчикКолонок Цикл
ТекстКолонки = ТабДок.Область(НомерСтроки, А).Текст;
Если ПустаяСтрока(ТекстКолонки) Тогда
Если А = КолонкаИндекса Тогда
Флагпрерывания = Истина;
ТаблицаДанных.Удалить(Стр);
КонецЕсли;
Иначе
Стр[А - 1] = ТекстКолонки
КонецЕсли;

Если Флагпрерывания Тогда
Прервать
КонецЕсли;
КонецЦикла;

Если Флагпрерывания Тогда
Прервать
КонецЕсли;
КонецЦикла;

Возврат ТаблицаДанных
КонецФункции


Функция ПолучитьДанныеДляОтчета()
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоПериода);
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецДня(КонецПериода));
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Организация", Организация);

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных"));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);

ТабличныйДокумент = Новый ТабличныйДокумент;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);

///Переведем ТабДокумент в ТЗ
тзДанные = ТДВТаблицуЗначений(ТабличныйДокумент);
Возврат тзДанные;
КонецФункции
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 7042
 0 
Распечатать
Возможно, вас также заинтересует
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.