Таблица данных для расчета рассмотрено. Формирует таблицу данных для расчета состояний папок и предметов взаимодействий.
// Формирует таблицу данных для расчета состояний папок и предметов взаимодействий.
//
// Параметры:
// ДанныеДляРасчета - Структура, ВыборкаИзРезультатовЗапроса, Массив - данные, на основании
// которых будет формироваться таблица.
// ИмяРеквизита - Строка - может принимать значения "Предмет" или "Папка".
//
// Возвращаемое значение:
// ТаблицаЗначений - подготовленная для расчета таблица.
//
Функция ТаблицаДанныхДляРасчетаРассмотрено(ДанныеДляРасчета, ИмяРеквизита) Экспорт
СформированнаяТаблица = Новый ТаблицаЗначений;
Если ИмяРеквизита = "Папка" Тогда
ОписаниеТиповКолонки = Новый ОписаниеТипов("СправочникСсылка.ПапкиЭлектронныхПисем");
ИначеЕсли ИмяРеквизита = "Предмет" Тогда
ОписаниеТиповКолонки = Новый ОписаниеТипов(Новый ОписаниеТипов(Метаданные.РегистрыСведений.СостоянияПредметовВзаимодействий.Измерения.Предмет.Тип.Типы()));
ИначеЕсли ИмяРеквизита = "Контакт" Тогда
ОписаниеТиповКолонки = Новый ОписаниеТипов(Новый ОписаниеТипов(Метаданные.РегистрыСведений.КонтактыВзаимодействий.Измерения.Контакт.Тип.Типы()));
КонецЕсли;
СформированнаяТаблица.Колонки.Добавить("ПоЧемуРассчитывать", ОписаниеТиповКолонки);
Если ТипЗнч(ДанныеДляРасчета) = Тип("Структура") Тогда
НоваяЗапись = ДанныеДляРасчета.НоваяЗапись;
СтараяЗапись = ДанныеДляРасчета.СтараяЗапись;
Если ЗначениеЗаполнено(НоваяЗапись[ИмяРеквизита]) Тогда
НоваяСтрока = СформированнаяТаблица.Добавить();
НоваяСтрока.ПоЧемуРассчитывать = НоваяЗапись[ИмяРеквизита];
КонецЕсли;
Если ЗначениеЗаполнено(СтараяЗапись[ИмяРеквизита]) И НоваяЗапись[ИмяРеквизита] <> СтараяЗапись[ИмяРеквизита] Тогда
НоваяСтрока = СформированнаяТаблица.Добавить();
НоваяСтрока.ПоЧемуРассчитывать = СтараяЗапись[ИмяРеквизита];
КонецЕсли;
ИначеЕсли ТипЗнч(ДанныеДляРасчета) = Тип("ВыборкаИзРезультатаЗапроса") Тогда
Пока ДанныеДляРасчета.Следующий() Цикл
Если ЗначениеЗаполнено(ДанныеДляРасчета[ИмяРеквизита]) И СформированнаяТаблица.Найти(ДанныеДляРасчета[ИмяРеквизита], "ПоЧемуРассчитывать") = Неопределено Тогда
НоваяСтрока = СформированнаяТаблица.Добавить();
НоваяСтрока.ПоЧемуРассчитывать = ДанныеДляРасчета[ИмяРеквизита];
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипЗнч(ДанныеДляРасчета) = Тип("Массив") Тогда
Для Каждого ЭлементМассива Из ДанныеДляРасчета Цикл
Если ЗначениеЗаполнено(ЭлементМассива) И СформированнаяТаблица.Найти(ЭлементМассива, "ПоЧемуРассчитывать") = Неопределено Тогда
НоваяСтрока = СформированнаяТаблица.Добавить();
НоваяСтрока.ПоЧемуРассчитывать = ЭлементМассива;
КонецЕсли;
КонецЦикла;
КонецЕсли;
СформированнаяТаблица.Индексы.Добавить("ПоЧемуРассчитывать");
Возврат СформированнаяТаблица;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
Изменение видимости колонок табличной части по параметру свойству таблицы "ПланыВидовРасчета"
Определение плановых остатков товара с учетом предшествующих фактических и будущих плановых продаж
ТаблицаПредопределенныхДанных (БСП)
АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета (БСП)