Модуль «БИТ_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 Все материалы защищены законодательством РФ.
|