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