public void ЗаполнитьСпособыРаспределенияЗатратУпр(/*СтруктураШапкиДокумента, Отказ, Заголовок*/)
{
if(true/*НЕ ЗначениеЗаполнено(СтруктураШапкиДокумента.НастройкаЗакрытияМесяца)*/)
{
}
//НастройкаРаспределения = ПолучитьНастройкуРаспределения(СтруктураШапкиДокумента.НастройкаЗакрытияМесяца);
if(true/*НастройкаРаспределения.Количество() = 0*/)
{
//ТекстСообщения = "В настройке закрытия месяца не указаны способы распределения затрат.";
//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок,, НастройкаРаспределения);
}
//НаборЗаписейУпр = РегистрыСведений.СпособыРаспределенияСтатейЗатрат.СоздатьНаборЗаписей();
//НаборЗаписейУпр.Отбор.Период.Установить(НачалоМесяца(СтруктураШапкиДокумента.Дата));
/*// Получим список затрат для которых требуется заполнить настройки
*/
/*ТекстЗапроса =
"ВЫБРАТЬ
| АналитикаВидаУчетаДанные.Ссылка
|ПОМЕСТИТЬ АналитикаВидаУчетаДанные
|ИЗ
| РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчетаДанные
|ГДЕ
| АналитикаВидаУчетаДанные.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| УчетЗатратОстатки.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
| УчетЗатратОстатки.АналитикаВидаУчета КАК АналитикаВидаУчета
|
|ПОМЕСТИТЬ ТаблицаАналитикЗатрат
|ИЗ
| РегистрНакопления.УчетЗатрат.Остатки(
| &КонецПериодаГраница,
| АналитикаВидаУчета В
| (ВЫБРАТЬ
| АналитикаВидаУчетаДанные.Ссылка
| ИЗ
| АналитикаВидаУчетаДанные)) КАК УчетЗатратОстатки
|ГДЕ
| (УчетЗатратОстатки.КоличествоОстаток <> 0
| ИЛИ УчетЗатратОстатки.СтоимостьОстаток <> 0)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| УчетЗатратРасход.КорАналитикаУчетаЗатрат,
| УчетЗатратРасход.КорАналитикаВидаУчета
|ИЗ
| РегистрНакопления.УчетЗатрат КАК УчетЗатратРасход
|ГДЕ
| УчетЗатратРасход.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И УчетЗатратРасход.Активность
| И УчетЗатратРасход.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И УчетЗатратРасход.КорАналитикаВидаУчета В
| (ВЫБРАТЬ
| АналитикаВидаУчетаДанные.Ссылка
| ИЗ
| АналитикаВидаУчетаДанные)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| АналитикаУчетаЗатратДанные.СтатьяЗатрат,
| АналитикаУчетаЗатратДанные.ХарактерЗатрат,
| АналитикаВидаУчетаДанные.Подразделение,
| АналитикаВидаУчетаДанные.Подразделение.ВидПодразделения КАК ВидПодразделения
|ИЗ
| ТаблицаАналитикЗатрат КАК ТаблицаАналитикЗатрат
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатратДанные
| ПО
| ТаблицаАналитикЗатрат.АналитикаУчетаЗатрат = АналитикаУчетаЗатратДанные.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУчетаДанные
| ПО
| АналитикаВидаУчетаДанные.Ссылка = ТаблицаАналитикЗатрат.АналитикаВидаУчета
|ГДЕ
| АналитикаУчетаЗатратДанные.ХарактерЗатрат В (
| ВЫБРАТЬ
| ХарактерЗатрат
| ИЗ
| РаспределяемыеХарактерыЗатрат)";*/
//СпособыРаспределения = НаборЗаписейУпр.ВыгрузитьКолонки();
//МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
//СформироватьВременнуюТаблицуРаспределяемыхХарактеровЗатрат(СтруктураШапкиДокумента, МенеджерВременныхТаблиц);
//Запрос = Новый Запрос;
//Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
//Запрос.Текст = ТекстЗапроса;
//Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(СтруктураШапкиДокумента.Дата));
//Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(СтруктураШапкиДокумента.Дата));
//Запрос.УстановитьПараметр("КонецПериодаГраница", Новый Граница(КонецМесяца(СтруктураШапкиДокумента.Дата), ВидГраницы.Включая));
//Результат = Запрос.Выполнить();
//Выборка = Результат.Выбрать();
while(true/*Выборка.Следующий()*/)
{
/*// Не добавляем настройку с пустой аналитикой
*/
if(true/*НЕ ЗначениеЗаполнено(Выборка.СтатьяЗатрат)
ИЛИ НЕ ЗначениеЗаполнено(Выборка.Подразделение)*/)
{
}
//НоваяСтрока = СпособыРаспределения.Добавить();
//НоваяСтрока.Период = НачалоМесяца(СтруктураШапкиДокумента.Дата);
//ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
if(true/*Выборка.ХарактерЗатрат = Перечисления.ХарактерЗатрат.ОбщехозяйственныеРасходы*/)
{
//ХарактерРаспределенияЗатрат = Перечисления.ХарактерРаспределенияЗатрат.НеУчитыватьПодразделение;
}
//НоваяСтрока.ХарактерРаспределенияЗатрат = ХарактерРаспределенияЗатрат;
//СпособРаспределения = ПолучитьСпособРаспределения(Выборка, НастройкаРаспределения);
if(true/*СпособРаспределения = Неопределено*/)
{
//НоваяСтрока.НеРаспределять = Истина;
}
}
/*;
ТекстЗапроса =
"ВЫБРАТЬ
| СпособыРаспределения.Период,
| СпособыРаспределения.СтатьяЗатрат,
| СпособыРаспределения.Подразделение,
| СпособыРаспределения.СпособРаспределенияЗатрат,
| СпособыРаспределения.НеРаспределять,
| СпособыРаспределения.ХарактерРаспределенияЗатрат
|ПОМЕСТИТЬ СпособыРаспределения
|ИЗ
| &СпособыРаспределения КАК СпособыРаспределения
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Получим противоречия в настройках
|
|ВЫБРАТЬ
| СпособыРаспределения.СтатьяЗатрат,
| СпособыРаспределения.Подразделение
|ИЗ
| СпособыРаспределения КАК СпособыРаспределения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СпособыРаспределенияСтатейЗатрат.СрезПоследних(&Период, ) КАК СпособыРаспределенияСрезПоследних
| ПО (СпособыРаспределенияСрезПоследних.СтатьяЗатрат = СпособыРаспределения.СтатьяЗатрат)
| И (СпособыРаспределенияСрезПоследних.Подразделение = СпособыРаспределения.Подразделение)
|ГДЕ
| (СпособыРаспределенияСрезПоследних.СпособРаспределенияЗатрат <> СпособыРаспределения.СпособРаспределенияЗатрат
| ИЛИ СпособыРаспределенияСрезПоследних.ХарактерРаспределенияЗатрат <> СпособыРаспределения.ХарактерРаспределенияЗатрат
| ИЛИ СпособыРаспределенияСрезПоследних.НеРаспределять <> СпособыРаспределения.НеРаспределять)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Отберем настройки, которых нет в регистре
|
|ВЫБРАТЬ
| СпособыРаспределения.Период,
| СпособыРаспределения.СтатьяЗатрат,
| СпособыРаспределения.Подразделение,
| СпособыРаспределения.СпособРаспределенияЗатрат,
| СпособыРаспределения.НеРаспределять,
| СпособыРаспределения.ХарактерРаспределенияЗатрат
|ИЗ
| СпособыРаспределения КАК СпособыРаспределения
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СпособыРаспределенияСтатейЗатрат.СрезПоследних(&Период, ) КАК СпособыРаспределенияСрезПоследних
| ПО (СпособыРаспределенияСрезПоследних.Подразделение = СпособыРаспределения.Подразделение)
| И (СпособыРаспределенияСрезПоследних.СтатьяЗатрат = СпособыРаспределения.СтатьяЗатрат)
|ГДЕ
| СпособыРаспределенияСрезПоследних.Период ЕСТЬ NULL";*/
//Запрос = Новый Запрос;
//Запрос.Текст = ТекстЗапроса;
//Запрос.УстановитьПараметр("СпособыРаспределения", СпособыРаспределения);
//Запрос.УстановитьПараметр("Период", КонецМесяца(СтруктураШапкиДокумента.Дата));
//Результат = Запрос.ВыполнитьПакет();
if(true/*НЕ Результат[1].Пустой()*/)
{
/*ТекстСообщения = "Обнаружены противоречия между настройкой закрытия месяца (закладка ""Распределение затрат"") и данными регистра ""Способы распределения статей затрат"".
|Необходимо внести исправления в регистр ""Способы распределения статей затрат"".
|Список противоречивых записей:";*/
//ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ, Заголовок, СтатусСообщения.Важное);
/*// Выведим обнаруженные противоречия
*/
//Выборка = Результат[1].Выбрать();
while(true/*Выборка.Следующий()*/)
{
/*ТекстСообщения = "Статья затрат: " + Выборка.СтатьяЗатрат
+ "; Подразделение: " + Выборка.Подразделение;*/
//ОбщегоНазначения.Сообщение(ТекстСообщения, СтатусСообщения.Информация, Заголовок);
}
}
//НаборЗаписейУпр.Загрузить(Результат[2].Выгрузить());
//НаборЗаписейУпр.Записать(Ложь);
}