Сделай Сам Свою Работу на 5

Модуль «БИТ_DEN_СоответствиеСтатьИзПроводки»





Функция ПолучитьСтруктуруДанныхПоПроводкам(Проводка) Экспорт

НайденнаяНоменклатурнаяГруппа = Неопределено;

НайденныйКонтрагент = Неопределено;

НайденныйДоговор = Неопределено;

НайденнаяСтатьяЗатрат = Неопределено;

НайденнаяСтавкаНДС = Неопределено;

НайденнаяНоменклатура = Неопределено;

НайденноеЦФО = Неопределено;

НайденныйПроект = Неопределено;

НайденнаяСтатьяДвиженияДДС = Неопределено;

Для каждого ТекСтрока Из Проводка.СубконтоДт Цикл

Если ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.НоменклатурныеГруппы") Тогда

НайденнаяНоменклатурнаяГруппа = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.ОбъектыСтроительства") Тогда

ЛОкальныйЗапрос = Новый Запрос("ВЫБРАТЬ

| ОсновныеСредства.Ссылка КАК Ссылка

|ИЗ

| Справочник.ОсновныеСредства КАК ОсновныеСредства

|ГДЕ

| ОсновныеСредства.ЭтоГруппа = ИСТИНА

| И ОсновныеСредства.Наименование = &Наименование");

ЛОкальныйЗапрос.УстановитьПараметр("Наименование",Лев(ТекСтрока.Значение.Наименование,7));

РезЗапроса = ЛОкальныйЗапрос.Выполнить();

Если НЕ РезЗапроса.Пустой() Тогда



РезЗапроса = РезЗапроса.Выгрузить();

Аналитика1 = РезЗапроса[0].Ссылка;

КонецЕсли;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.Контрагенты") Тогда

НайденныйКонтрагент = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда

НайденныйДоговор = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.СтатьиЗатрат") ИЛИ ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.ПрочиеДоходыИРасходы") Тогда

НайденнаяСтатьяЗатрат = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("ПеречислениеСсылка.СтавкиНДС") Тогда

НайденнаяСтавкаНДС = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.Номенклатура") Тогда

НайденнаяНоменклатура = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств") Тогда

НайденнаяСтатьяДвиженияДДС = ТекСтрока.Значение;



НайденнаяСтатьяЗатрат = ТекСтрока.Значение;

КонецЕсли;

КонецЦикла;

Для каждого ТекСтрока Из Проводка.СубконтоКт Цикл

Если ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.НоменклатурныеГруппы") Тогда

НайденнаяНоменклатурнаяГруппа = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.Контрагенты") Тогда

НайденныйКонтрагент = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда

НайденныйДоговор = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.СтатьиЗатрат") ИЛИ ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.ПрочиеДоходыИРасходы") Тогда

НайденнаяСтатьяЗатрат = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("ПеречислениеСсылка.СтавкиНДС") Тогда

НайденнаяСтавкаНДС = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.Номенклатура") Тогда

НайденнаяНоменклатура = ТекСтрока.Значение;

ИначеЕсли ТипЗнч(ТекСтрока.Значение) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств") Тогда

НайденнаяСтатьяДвиженияДДС = ТекСтрока.Значение;

НайденнаяСтатьяЗатрат = ТекСтрока.Значение;

КонецЕсли;

КонецЦикла;

Аналитика1 = Неопределено;

Аналитика2 = Неопределено;

Если НайденнаяСтатьяДвиженияДДС <> Неопределено Тогда

ЛокальныйЗапрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1

| бит_ДополнительныеУсловияПоДоговору.ЦФО,

| бит_ДополнительныеУсловияПоДоговору.Проект

|ИЗ

| Документ.бит_ДополнительныеУсловияПоДоговору КАК бит_ДополнительныеУсловияПоДоговору



|ГДЕ

| бит_ДополнительныеУсловияПоДоговору.Проведен = ИСТИНА

| И бит_ДополнительныеУсловияПоДоговору.Контрагент = &Контрагент

| И бит_ДополнительныеУсловияПоДоговору.ДоговорКонтрагента = &ДоговорКонтрагента");

ЛокальныйЗапрос.УстановитьПараметр("Контрагент",НайденныйКонтрагент);

ЛокальныйЗапрос.УстановитьПараметр("ДоговорКонтрагента",НайденныйДоговор);

РезультатЗапроса = ЛокальныйЗапрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда

НайденноеЦФО = РезультатЗапроса.Выгрузить()[0].ЦФО;

НайденныйПроект = РезультатЗапроса.Выгрузить()[0].Проект;

КонецЕсли;

ИначеЕсли НайденнаяНоменклатурнаяГруппа <> Неопределено Тогда

ЛокальныйЗапрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1

| бит_ДополнительныеУсловияПоДоговору.Аналитика_1,

| бит_ДополнительныеУсловияПоДоговору.Аналитика_2

|ИЗ

| Документ.бит_ДополнительныеУсловияПоДоговору КАК бит_ДополнительныеУсловияПоДоговору

|ГДЕ

| бит_ДополнительныеУсловияПоДоговору.НоменклатурнаяГруппа = &НоменклатурнаяГруппа

| И бит_ДополнительныеУсловияПоДоговору.Проведен = ИСТИНА");

ЛокальныйЗапрос.УстановитьПараметр("НоменклатурнаяГруппа",НайденнаяНоменклатурнаяГруппа);

РезультатЗапроса = ЛокальныйЗапрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда

Аналитика1 = РезультатЗапроса.Выгрузить()[0].Аналитика_1;

Аналитика2 = РезультатЗапроса.Выгрузить()[0].Аналитика_2;

ЛокальныйЗапрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1

| бит_ДополнительныеУсловияПоДоговору.ЦФО,

| бит_ДополнительныеУсловияПоДоговору.Проект

|ИЗ

| Документ.бит_ДополнительныеУсловияПоДоговору КАК бит_ДополнительныеУсловияПоДоговору

|ГДЕ

| бит_ДополнительныеУсловияПоДоговору.Проведен = ИСТИНА

| И бит_ДополнительныеУсловияПоДоговору.Контрагент = &Контрагент

| И бит_ДополнительныеУсловияПоДоговору.Аналитика_1 = &Аналитика_1

| И бит_ДополнительныеУсловияПоДоговору.ДоговорКонтрагента = &ДоговорКонтрагента");

ЛокальныйЗапрос.УстановитьПараметр("Контрагент",НайденныйКонтрагент);

ЛокальныйЗапрос.УстановитьПараметр("ДоговорКонтрагента",НайденныйДоговор);

ЛокальныйЗапрос.УстановитьПараметр("Аналитика_1",Аналитика1);

РезультатЗапроса = ЛокальныйЗапрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда

НайденноеЦФО = РезультатЗапроса.Выгрузить()[0].ЦФО;

НайденныйПроект = РезультатЗапроса.Выгрузить()[0].Проект;

КонецЕсли;

КонецЕсли;

КонецЕсли;

Если НайденнаяСтатьяЗатрат <> Неопределено Тогда

ЛокальныйЗапрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1

| бит_СтатьиОборотов_СтатьиРегл.СтатьяОборотов

|ИЗ

| РегистрСведений.бит_СтатьиОборотов_СтатьиРегл КАК бит_СтатьиОборотов_СтатьиРегл

|ГДЕ

| бит_СтатьиОборотов_СтатьиРегл.СтатьяРегл = &СтатьяРегл");

ЛокальныйЗапрос.УстановитьПараметр("СтатьяРегл",НайденнаяСтатьяЗатрат);

РезультатЗапроса = ЛокальныйЗапрос.Выполнить();

Если НЕ РезультатЗапроса.Пустой() Тогда

СтатьяБюджета = РезультатЗапроса.Выгрузить()[0].СтатьяОборотов;

КонецЕсли;

КонецЕсли;

Если НайденнаяСтатьяЗатрат = Неопределено И НайденнаяНоменклатура <> Неопределено Тогда

Если НайденнаяНоменклатура.Родитель.Код = "00000001487" ИЛИ НайденнаяНоменклатура.Родитель.Код = "00000000981" Тогда

СтатьяБюджета = Справочники.бит_СтатьиОборотов.НайтиПоНаименованию("01.01.01_Поступления от продажи покупателям (закзачикам) продукции и товаров, выполнения работ");

Иначе

СтатьяБюджета = Справочники.бит_СтатьиОборотов.НайтиПоНаименованию("01.01.02_Вомещение Электроэнергии");

КонецЕсли;

КонецЕсли;

ВозвращаемоеСсотвествие = Новый Соответствие();

ВозвращаемоеСсотвествие.Вставить("Контрагент",НайденныйКонтрагент);

ВозвращаемоеСсотвествие.Вставить("ДоговорКонтрагента",НайденныйДоговор);

ВозвращаемоеСсотвествие.Вставить("СтатьяБюджета",СтатьяБюджета);

ВозвращаемоеСсотвествие.Вставить("НоменклатурнаяГруппа",НайденнаяНоменклатурнаяГруппа);

ВозвращаемоеСсотвествие.Вставить("Аналитика1",Аналитика1);

ВозвращаемоеСсотвествие.Вставить("Аналитика2",Аналитика2);

ВозвращаемоеСсотвествие.Вставить("ЦФО",НайденноеЦФО);

ВозвращаемоеСсотвествие.Вставить("Проект",НайденныйПроект);

 

Возврат(ВозвращаемоеСсотвествие);

КонецФункции

 

Функция ТестТест(ЗаписьИсточник) Экспорт

СписокРеквезитов = БИТ_DEN_СоотвествиеСтатьИзПроводки.ПолучитьСтруктуруДанныхПоПроводкам(ЗаписьИсточник);

 

Возврат(СписокРеквезитов);

КонецФункции

 

Функция ОпределитьСуммуПоПроводке(Проводка) Экспорт

Если ТипЗнч(Проводка.Регистратор) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда

СуммаНДС = Проводка.Регистратор.Товары.Итог("СуммаНДС") + Проводка.Регистратор.Услуги.Итог("СуммаНДС");

Если СуммаНДС = 0 Тогда

СуммаСНДС = Проводка.Сумма;

СуммаБезНДС = Проводка.Сумма;

Иначе

СуммаСНДС = Проводка.Сумма*118/100;

СуммаБезНДС = Проводка.Сумма;

КонецЕсли;

ИначеЕсли ТипЗнч(Проводка.Регистратор) = Тип("ДокументСсылка.СписаниеСРасчетногоСчета") ИЛИ ТипЗнч(Проводка.Регистратор) = Тип("ДокументСсылка.ПоступлениеНаРасчетныйСчет") Тогда

СуммаНДС = Проводка.Регистратор.РасшифровкаПлатежа.Итог("СуммаНДС");

Если СуммаНДС = 0 Тогда

СуммаСНДС = Проводка.Сумма;

СуммаБезНДС = Проводка.Сумма;

Иначе

СуммаСНДС = Проводка.Сумма;

СуммаБезНДС = Проводка.Сумма*100/118;

КонецЕсли;

ИначеЕсли Проводка.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.Выручка) Тогда

СуммаСНДС = Проводка.Сумма;

СуммаБезНДС = Проводка.Сумма*100/118;

ИначеЕсли Проводка.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_)

ИЛИ Проводка.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходы)

ИЛИ Проводка.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.Материалы)

ИЛИ Проводка.СчетДт.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.ВложенияВоВнеоборотныеАктивы) Тогда

СуммаСНДС = Проводка.Сумма*118/100;

СуммаБезНДС = Проводка.Сумма;

Иначе

СуммаСНДС = Проводка.Сумма*118/100;

СуммаБезНДС = Проводка.Сумма;

КонецЕсли;

ВозвращаемоеСсотвествие = Новый Соответствие();

ВозвращаемоеСсотвествие.Вставить("СуммаБезНДС",СуммаБезНДС);

ВозвращаемоеСсотвествие.Вставить("СуммаСНДС",СуммаСНДС);

Возврат(ВозвращаемоеСсотвествие);

КонецФункции // ()

 

Процедура Бит_Фин_УстановкаДокументаОснованиеОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт

//Если ЗначениеЗаполнено(Источник.Ссылка) Тогда

// Врме_выборка = РегистрыСведений.бит_ДополнительныеАналитики.ВыбратьПоРегистратору();

//КонецЕсли;

//Сообщить(Источник.Ссылка);

КонецПроцедуры

 

Функция РольДоступнаПользователю(ПользовательБазы,КодДоступаКОбъекту) Экспорт

ЛокальныйЗапрос = Новый Запрос("ВЫБРАТЬ

| бит_ИсполнителиЗадач.ОбъектАдресации_1

|ИЗ

| РегистрСведений.бит_ИсполнителиЗадач КАК бит_ИсполнителиЗадач

|ГДЕ

| бит_ИсполнителиЗадач.РольИсполнителя = &РольИсполнителя

| И бит_ИсполнителиЗадач.Исполнитель = &Исполнитель");

ЛокальныйЗапрос.УстановитьПараметр("РольИсполнителя",Справочники.бит_РолиИсполнителей.НайтиПоКоду(КодДоступаКОбъекту));

ЛокальныйЗапрос.УстановитьПараметр("Исполнитель",ПользовательБазы);

Если ЛокальныйЗапрос.Выполнить().Пустой() Тогда

Возврат(Ложь);

Иначе

Возврат(Истина);

КонецЕсли;

КонецФункции // РольДоступнаПользователю()

 

 

Процедура бит_ПриЗаписиОсновногоСредстваПриЗаписи(Источник, Отказ) Экспорт

 

Если Отказ Тогда

Возврат;

КонецЕсли;

 

Для каждого ДопРеквизит из Источник.ДополнительныеРеквизиты Цикл

 

НоваяЗапись = РегистрыСведений.УдалитьЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();

НоваяЗапись.Активность = Истина;

НоваяЗапись.Объект = Источник.Ссылка;

Если ДопРеквизит.Свойство.Наименование = "Номенклатура" Тогда

НоваяЗапись.Свойство = ПланыВидовХарактеристик.УдалитьСвойстваОбъектов.НайтиПоКоду("008");

ИначеЕсли ДопРеквизит.Свойство.Наименование = "Строительства объект" Тогда

НоваяЗапись.Свойство = ПланыВидовХарактеристик.УдалитьСвойстваОбъектов.НайтиПоКоду("001");

КонецЕсли;

НоваяЗапись.Значение = ДопРеквизит.Значение;

Попытка

НоваяЗапись.Записать();

Исключение

КонецПопытки;

 

КонецЦикла;

 

КонецПроцедуры

 

Роли

Роль «Бит_ЭлетроЭнергия»

Роль «DIADOK»

Для данных ролей я не нашла в свойствах ничего. Не подскажешь в каком направлении двигаться?

Подписки на события

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.