#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция УстановитьСтатус(НовыйСтатус, ДополнительныеПараметры) Экспорт
ДатаПерехода = Дата('00010101');
Если ДополнительныеПараметры <> Неопределено Тогда
ДополнительныеПараметры.Свойство("НоваяДата", ДатаПерехода);
КонецЕсли;
Статус = Перечисления.СтатусыРеализацийТоваровУслуг[НовыйСтатус];
Если ЗначениеЗаполнено(ДатаПерехода) Тогда
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав Тогда
ДатаПереходаПраваСобственности = ДатаПерехода;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ПриКопировании(ОбъектКопирования)
РасшифровкаПлатежа.Очистить();
ПараметрыЗаполнения = Документы.РеализацияУслугПрочихАктивов.ПараметрыЗаполненияНалогообложенияНДСПродажи(ЭтотОбъект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСПродажи(НалогообложениеНДС, ПараметрыЗаполнения);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(ЭтотОбъект);
СтруктураДействий = Новый Структура;
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураЗаполненияСтавкиНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(ЭтотОбъект);
СтруктураЗаполненияСтавкиНДС.ЗаполнениеНаОснованииКопирование = Истина;
СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", СтруктураЗаполненияСтавкиНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Доходы, СтруктураДействий, КэшированныеЗначения);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
КэшированныеЗначения.ОбработанныеСтроки,
СтруктураДействий,
Доходы,
КэшированныеЗначения);
ВзаиморасчетыСервер.ПриКопировании(ЭтотОбъект);
ОбщегоНазначенияУТ.ОчиститьИдентификаторыДокумента(ЭтотОбъект, "Доходы,Расходы");
РеализацияУслугПрочихАктивовЛокализация.ПриКопировании(ЭтотОбъект, ОбъектКопирования);
Автор = Пользователи.ТекущийПользователь();
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
НепроверяемыеРеквизиты = Новый Массив;
НепроверяемыеРеквизиты.Добавить("Расходы");
НепроверяемыеРеквизиты.Добавить("Расходы.ВидАктива");
НепроверяемыеРеквизиты.Добавить("Расходы.ВнеоборотныйАктив");
НепроверяемыеРеквизиты.Добавить("Расходы.СуммаАмортизационнойПремии");
НепроверяемыеРеквизиты.Добавить("Расходы.СтатьяДоходов");
НепроверяемыеРеквизиты.Добавить("Расходы.АналитикаДоходов");
НепроверяемыеРеквизиты.Добавить("Доходы.ПредметАренды");
Если Не ЗначениеЗаполнено(ХозяйственнаяОперация)
Или ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
И ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав Тогда
НепроверяемыеРеквизиты.Добавить("Статус");
НепроверяемыеРеквизиты.Добавить("ДатаПереходаПраваСобственности");
КонецЕсли;
Если Не ЗначениеЗаполнено(Статус)
Или Статус <> Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено Тогда
НепроверяемыеРеквизиты.Добавить("ДатаПереходаПраваСобственности");
КонецЕсли;
Если Не ЗначениеЗаполнено(Соглашение)
Или Не ОбщегоНазначенияУТ.ЗначениеРеквизитаОбъектаТипаБулево(Соглашение, "ИспользуютсяДоговорыКонтрагентов") Тогда
НепроверяемыеРеквизиты.Добавить("Договор");
КонецЕсли;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав Тогда
НепроверяемыеРеквизиты.Добавить("Расходы.СтатьяРасходов");
НепроверяемыеРеквизиты.Добавить("Расходы.СтатьяАктивовПассивов");
ПроверитьРеализациюВнеоборотныхАктивов(НепроверяемыеРеквизиты, Отказ);
КонецЕсли;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияУслугПоАренде Тогда
ПроверитьРеализациюУслугПоАренде(Отказ);
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, НепроверяемыеРеквизиты);
ПродажиСервер.ПроверитьЗапретОтгрузки(Партнер, Отказ);
ПараметрыВыбораСтатейИАналитик = Документы.РеализацияУслугПрочихАктивов.ПараметрыВыбораСтатейИАналитик(
ХозяйственнаяОперация, РеализацияВзаимозависимомуЛицу);
ДоходыИРасходыСервер.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты, ПараметрыВыбораСтатейИАналитик);
РеализацияУслугПрочихАктивовЛокализация.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
Если Не Отказ И ОбщегоНазначенияУТ.ПроверитьЗаполнениеРеквизитовОбъекта(ЭтотОбъект, ПроверяемыеРеквизиты) Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ИсправлениеДокументов.ПередЗаписью(ЭтотОбъект, Отказ, РежимЗаписи, РежимПроведения);
ПроведениеДокументов.ПередЗаписьюДокумента(ЭтотОбъект, РежимЗаписи, РежимПроведения);
Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
ЕстьКорректировки = Ложь;
ПродажиСервер.ПроверитьНаличиеКорректировок(Ссылка, Ссылка, ЕстьКорректировки);
Если ЕстьКорректировки Тогда
ПродажиСервер.СообщитьОбОшибкахОтменаПроведенияЕстьКорректировки(Ссылка,Отказ);
КонецЕсли;
КонецЕсли;
ПараметрыРегистрации = Документы.РеализацияУслугПрочихАктивов.ПараметрыРегистрацииСчетовФактурВыданных(ЭтотОбъект);
УчетНДСУП.АктуализироватьСчетаФактурыВыданныеПередЗаписью(ПараметрыРегистрации, РежимЗаписи, ПометкаУдаления, Проведен);
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
ДозаполнитьДанныеДоходов();
КонецЕсли;
ОбщегоНазначенияУТ.ЗаполнитьИдентификаторыДокумента(ЭтотОбъект, "Доходы,Расходы");
СуммаДокумента = ЦенообразованиеКлиентСервер.ПолучитьСуммуДокумента(Доходы, ЦенаВключаетНДС);
Если ЭтоНовый() И НЕ ЗначениеЗаполнено(Номер) Тогда
УстановитьНовыйНомер();
КонецЕсли;
ИдентификаторПлатежа = ОбщегоНазначенияУТ.ПолучитьУникальныйИдентификаторПлатежа(ЭтотОбъект);
ВзаиморасчетыСервер.ПередЗаписью(ЭтотОбъект, Отказ, РежимЗаписи);
НастройкаСчетовУчетаСервер.ПередЗаписью(ЭтотОбъект,
Документы.РеализацияУслугПрочихАктивов.ПараметрыНастройкиСчетовУчета(ХозяйственнаяОперация));
ПараметрыВыбораСтатейИАналитик = Документы.РеализацияУслугПрочихАктивов.ПараметрыВыбораСтатейИАналитик(
ХозяйственнаяОперация, РеализацияВзаимозависимомуЛицу);
ДоходыИРасходыСервер.ПередЗаписью(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
УстановитьСвойстваИзмененияРеквизитов(ЭтотОбъект, ДополнительныеСвойства);
РеализацияУслугПрочихАктивовЛокализация.ПередЗаписью(ЭтотОбъект, Отказ, РежимЗаписи, РежимПроведения);
Если Не ЗначениеЗаполнено(Автор) И ЭтоНовый() Тогда
Автор = Пользователи.ТекущийПользователь();
КонецЕсли;
Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
ДополнительныеСвойства.Вставить("КонтролироватьСписаниеВНоль", Ложь);
Иначе
ДополнительныеСвойства.Вставить("КонтролироватьСписаниеВНоль", Истина);
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
ДополнительныеСвойства.Вставить("НомерДокумента", Номер);
РеализацияУслугПрочихАктивовЛокализация.ПриЗаписи(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Если ДополнительныеСвойства.Свойство("ИзменилосьТолькоСостояниеПереходаПраваСобственности")
И ДополнительныеСвойства.ИзменилосьТолькоСостояниеПереходаПраваСобственности Тогда
ПропуститьПроверкуЗапретаИзмененияРегистров(Движения);
КонецЕсли;
СформироватьЗаданияКЗакрытиюМесяца();
ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
РеализацияУслугПрочихАктивовЛокализация.ОбработкаПроведения(ЭтотОбъект, Отказ, РежимПроведения);
Если Не ДополнительныеСвойства.ИзменилосьТолькоСостояниеПереходаПраваСобственности Тогда
ПараметрыРегистрации = Документы.РеализацияУслугПрочихАктивов.ПараметрыРегистрацииСчетовФактурВыданных(ЭтотОбъект);
УчетНДСУП.АктуализироватьСчетаФактурыВыданныеПриПроведении(ПараметрыРегистрации);
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
РеализацияУслугПрочихАктивовЛокализация.ОбработкаУдаленияПроведения(ЭтотОбъект, Отказ);
ПараметрыРегистрации = Документы.РеализацияУслугПрочихАктивов.ПараметрыРегистрацииСчетовФактурВыданных(ЭтотОбъект);
УчетНДСУП.АктуализироватьСчетаФактурыВыданныеПриУдаленииПроведения(ПараметрыРегистрации);
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ТипДанныхЗаполнения = Тип("СправочникСсылка.СоглашенияСКлиентами") Тогда
УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(ДанныеЗаполнения);
ПродажиСервер.ПроверитьВозможностьВводаНаОснованииСоглашения("РеализацияУслугПрочихАктивов",
УсловияПродаж.ХозяйственнаяОперация);
ДопустимыеСтатусы = Новый Массив();
ДопустимыеСтатусы.Добавить(Перечисления.СтатусыСоглашенийСКлиентами.Действует);
ОшибкиСтатуса = (УсловияПродаж.СтатусСоглашения <> Перечисления.СтатусыСоглашенийСКлиентами.Действует);
ОбщегоНазначенияУТ.ПроверитьВозможностьВводаНаОснованииСоглашения(УсловияПродаж.Типовое);
ОбщегоНазначенияУТ.ПроверитьВозможностьВводаНаОсновании(ДанныеЗаполнения, УсловияПродаж.СтатусСоглашения, , ОшибкиСтатуса, ДопустимыеСтатусы);
Если (Не УсловияПродаж.Типовое) И ЗначениеЗаполнено(УсловияПродаж.Партнер) Тогда
Партнер = УсловияПродаж.Партнер;
КонецЕсли;
Соглашение = ДанныеЗаполнения;
Документы.РеализацияУслугПрочихАктивов.ЗаполнитьПоУсловиямПродаж(ЭтотОбъект, УсловияПродаж);
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ПодготовкаКПередачеНМА2_4") Тогда
ЗаполнитьПоДокументуПодготовкаКПередачеНМА2_4(ДанныеЗаполнения);
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ПодготовкаКПередачеОС2_4") Тогда
ЗаполнитьПоДокументуПодготовкаКПередачеОС2_4(ДанныеЗаполнения);
КонецЕсли;
РеализацияУслугПрочихАктивовЛокализация.ОбработкаЗаполнения(ЭтотОбъект, ДанныеЗаполнения, СтандартнаяОбработка);
ПараметрыЗаполнения = Документы.РеализацияУслугПрочихАктивов.ПараметрыЗаполненияНалогообложенияНДСПродажи(ЭтотОбъект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСПродажи(НалогообложениеНДС, ПараметрыЗаполнения);
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(ЭтотОбъект, Ложь);
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьРеквизитыОбъекта(ЭтотОбъект, ДанныеЗаполнения);
ИнициализироватьДокумент(ДанныеЗаполнения);
ДополнительныеСвойства.Вставить("НеобходимостьЗаполненияСчетаПриФОИспользоватьНесколькоСчетовЛожь", Ложь);
ПараметрыВыбораСтатейИАналитик = Документы.РеализацияУслугПрочихАктивов.ПараметрыВыбораСтатейИАналитик(
ХозяйственнаяОперация, РеализацияВзаимозависимомуЛицу);
ДоходыИРасходыСервер.ОбработкаЗаполнения(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ОбработкаЗаполнения(ЭтотОбъект, ДанныеЗаполнения);
КонецПроцедуры
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
Префикс = ОбщегоНазначенияУТПовтИсп.ДополнительныйПрефиксНумератораДокументыРеализацииТоваров();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ИнициализацияИЗаполнение
Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
Автор = Пользователи.ТекущийПользователь();
Документы.РеализацияУслугПрочихАктивов.ЗаполнитьПоУмолчанию(ЭтотОбъект);
КонецПроцедуры
Процедура ЗаполнитьПоДокументуПодготовкаКПередачеОС2_4(ДанныеЗаполнения)
ТекстЗапроса =
"ВЫБРАТЬ
| Операция.Ссылка КАК Ссылка,
| Операция.Организация КАК Организация,
| Операция.Подразделение КАК Подразделение,
| ТабличнаяЧасть.ОсновноеСредство КАК ОсновноеСредство,
| Операция.Партнер КАК Партнер,
| Операция.Контрагент КАК Контрагент,
| Операция.Валюта КАК Валюта,
| Операция.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| Операция.НалогообложениеНДС КАК НалогообложениеНДС,
| Операция.Основание КАК Основание,
| Операция.ОснованиеДата КАК ОснованиеДата,
| Операция.ОснованиеНомер КАК ОснованиеНомер,
| Операция.Грузоотправитель КАК Грузоотправитель,
| Операция.Грузополучатель КАК Грузополучатель,
| Операция.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
| Операция.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
| Операция.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
| Операция.БанковскийСчетГрузополучателя КАК БанковскийСчетГрузополучателя,
| Операция.Отпустил КАК Отпустил,
| Операция.ОтпустилДолжность КАК ОтпустилДолжность,
| Операция.Руководитель КАК Руководитель,
| Операция.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
| ТабличнаяЧасть.Сумма КАК Цена,
| ТабличнаяЧасть.Сумма КАК Сумма,
| ТабличнаяЧасть.СтавкаНДС КАК СтавкаНДС,
| ТабличнаяЧасть.СуммаНДС КАК СуммаНДС,
| ТабличнаяЧасть.СуммаСНДС КАК СуммаСНДС
|ПОМЕСТИТЬ втДанныеОснования
|ИЗ
| Документ.ПодготовкаКПередачеОС2_4 КАК Операция
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПодготовкаКПередачеОС2_4.ОС КАК ТабличнаяЧасть
| ПО Операция.Ссылка = ТабличнаяЧасть.Ссылка
|ГДЕ
| Операция.Ссылка = &ДанныеЗаполнения
|;
|
|
|ВЫБРАТЬ
| ИСТИНА КАК РеализацияНаОсновании,
| втДанныеОснования.Ссылка КАК ДокументОснование,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено) КАК Статус,
| втДанныеОснования.Организация КАК Организация,
| втДанныеОснования.Подразделение КАК Подразделение,
| втДанныеОснования.Партнер КАК Партнер,
| втДанныеОснования.Контрагент КАК Контрагент,
| втДанныеОснования.Валюта КАК Валюта,
| втДанныеОснования.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
| втДанныеОснования.НалогообложениеНДС КАК НалогообложениеНДС,
| втДанныеОснования.Основание КАК Основание,
| втДанныеОснования.ОснованиеДата КАК ОснованиеДата,
| втДанныеОснования.ОснованиеНомер КАК ОснованиеНомер,
| втДанныеОснования.Грузоотправитель КАК Грузоотправитель,
| втДанныеОснования.Грузополучатель КАК Грузополучатель,
| втДанныеОснования.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
| втДанныеОснования.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
| втДанныеОснования.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
| втДанныеОснования.БанковскийСчетГрузополучателя КАК БанковскийСчетГрузополучателя,
| втДанныеОснования.Отпустил КАК Отпустил,
| втДанныеОснования.ОтпустилДолжность КАК ОтпустилДолжность,
| втДанныеОснования.Руководитель КАК Руководитель,
| втДанныеОснования.ГлавныйБухгалтер КАК ГлавныйБухгалтер
|ИЗ
| втДанныеОснования КАК втДанныеОснования
|;
|
|
|ВЫБРАТЬ
| ПРЕДСТАВЛЕНИЕ(втДанныеОснования.ОсновноеСредство) КАК Содержание,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.РеализацияОС) КАК СтатьяДоходов,
| втДанныеОснования.ОсновноеСредство КАК АналитикаДоходов,
| &ЕдиницаИзмеренияШтуки КАК ЕдиницаИзмерения,
| 1 КАК Количество,
| втДанныеОснования.Сумма КАК Цена,
| втДанныеОснования.Сумма КАК Сумма,
| втДанныеОснования.СтавкаНДС КАК СтавкаНДС,
| втДанныеОснования.СуммаНДС КАК СуммаНДС,
| втДанныеОснования.СуммаСНДС КАК СуммаСНДС
|ИЗ
| втДанныеОснования КАК втДанныеОснования
|;
|
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.ОсновныеСредства) КАК СтатьяАктивовПассивов,
| втДанныеОснования.ОсновноеСредство КАК АналитикаАктивовПассивов,
| ЗНАЧЕНИЕ(Перечисление.ВидыВнеоборотныхАктивов.ОсновноеСредство) КАК ВидАктива,
| втДанныеОснования.ОсновноеСредство КАК ВнеоборотныйАктив
|ИЗ
| втДанныеОснования КАК втДанныеОснования";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ДанныеЗаполнения", ДанныеЗаполнения);
Запрос.УстановитьПараметр("ЕдиницаИзмеренияШтуки", Справочники.УпаковкиЕдиницыИзмерения.НайтиПоКоду("796", Ложь));
Пакет = Запрос.ВыполнитьПакет();
Выборка = Пакет[Пакет.Количество()-3].Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка);
КонецЕсли;
Доходы.Загрузить(Пакет[Пакет.Количество()-2].Выгрузить());
Расходы.Загрузить(Пакет[Пакет.Количество()-1].Выгрузить());
РеализацияУслугПрочихАктивовЛокализация.ЗаполнитьПоДокументуПодготовкаКПередачеОС2_4Завершение(ЭтотОбъект);
КонецПроцедуры
Процедура ЗаполнитьПоДокументуПодготовкаКПередачеНМА2_4(ДанныеЗаполнения)
ТекстЗапроса =
"ВЫБРАТЬ
| Операция.Ссылка КАК Ссылка,
| Операция.Организация КАК Организация,
| Операция.Подразделение КАК Подразделение,
| ТабличнаяЧасть.НематериальныйАктив КАК НематериальныйАктив,
| Операция.Партнер КАК Партнер,
| Операция.Контрагент КАК Контрагент
|ПОМЕСТИТЬ втДанныеОснования
|ИЗ
| Документ.ПодготовкаКПередачеНМА2_4 КАК Операция
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПодготовкаКПередачеНМА2_4.НМА КАК ТабличнаяЧасть
| ПО (ТабличнаяЧасть.Ссылка = Операция.Ссылка)
|ГДЕ
| Операция.Ссылка = &ДанныеЗаполнения
|;
|
|
|ВЫБРАТЬ
| ИСТИНА КАК РеализацияНаОсновании,
| втДанныеОснования.Ссылка КАК ДокументОснование,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов) КАК ХозяйственнаяОперация,
| ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено) КАК Статус,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДатаПереходаПраваСобственности,
| втДанныеОснования.Организация КАК Организация,
| втДанныеОснования.Подразделение КАК Подразделение,
| втДанныеОснования.Партнер КАК Партнер,
| втДанныеОснования.Контрагент КАК Контрагент
|ИЗ
| втДанныеОснования КАК втДанныеОснования
|;
|
|
|ВЫБРАТЬ
| ПРЕДСТАВЛЕНИЕ(втДанныеОснования.НематериальныйАктив) КАК Содержание,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.ПустаяСсылка) КАК СтатьяДоходов,
| втДанныеОснования.НематериальныйАктив КАК АналитикаДоходов,
| &ЕдиницаИзмеренияШтуки КАК ЕдиницаИзмерения,
| 1 КАК Количество
|ИЗ
| втДанныеОснования КАК втДанныеОснования
|;
|
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиАктивовПассивов.НематериальныеАктивы) КАК СтатьяАктивовПассивов,
| втДанныеОснования.НематериальныйАктив КАК АналитикаАктивовПассивов,
| ЗНАЧЕНИЕ(Перечисление.ВидыВнеоборотныхАктивов.НМА) КАК ВидАктива,
| втДанныеОснования.НематериальныйАктив КАК ВнеоборотныйАктив
|ИЗ
| втДанныеОснования КАК втДанныеОснования";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ДанныеЗаполнения", ДанныеЗаполнения);
Запрос.УстановитьПараметр("ЕдиницаИзмеренияШтуки", Справочники.УпаковкиЕдиницыИзмерения.НайтиПоКоду("796", Ложь));
Пакет = Запрос.ВыполнитьПакет();
Выборка = Пакет[Пакет.Количество()-3].Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка);
КонецЕсли;
Доходы.Загрузить(Пакет[Пакет.Количество()-2].Выгрузить());
Расходы.Загрузить(Пакет[Пакет.Количество()-1].Выгрузить());
КонецПроцедуры
#КонецОбласти
#Область Прочее
Процедура ПропуститьПроверкуЗапретаИзмененияРегистров(Движения)
Для Каждого ТекНаборЗаписей Из Движения Цикл
ТекНаборЗаписей.ДополнительныеСвойства.Вставить("ИзменилосьТолькоСостояниеПереходаПраваСобственности", Истина);
Если Не ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов")
И (ТекНаборЗаписей.ЭтотОбъект.Метаданные().Имя = "РасчетыСКлиентами"
ИЛИ ТекНаборЗаписей.ЭтотОбъект.Метаданные().Имя = "РасчетыСПоставщиками") Тогда
Продолжить;
КонецЕсли;
ТекНаборЗаписей.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
КонецЦикла;
КонецПроцедуры
Процедура ДозаполнитьДанныеДоходов()
Для Каждого Строка Из Доходы Цикл
Если НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС И Не ЗначениеЗаполнено(Строка.СтавкаНДС) Тогда
Строка.СтавкаНДС = Справочники.СтавкиНДС.БезНДС;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПроверитьРеализациюВнеоборотныхАктивов(НепроверяемыеРеквизиты, Отказ)
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав Тогда
ШаблонСообщения = НСтр("ru = 'Не заполнена колонка ""%1"" в строке %2 списка ""Основные средства""'");
ПолеВнеоборотныйАктив = НСтр("ru = 'Основное средство'");
Иначе
ШаблонСообщения = НСтр("ru = 'Не заполнена колонка ""%1"" в строке %2 списка ""Внеоборотные активы""'");
ПолеВнеоборотныйАктив = НСтр("ru = 'Внеоборотный актив'");
КонецЕсли;
Если Расходы.Количество() = 0 Тогда
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав Тогда
ТекстСообщения = НСтр("ru = 'Не введено ни одной строки в список ""Основные средства""'");
Иначе
ТекстСообщения = НСтр("ru = 'Не введено ни одной строки в список ""Внеоборотные активы""'");
КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Расходы", "", Отказ);
КонецЕсли;
Для каждого ДанныеСтроки Из Расходы Цикл
Если НЕ ЗначениеЗаполнено(ДанныеСтроки.ВидАктива) Тогда
ТекстСообщения = СтрШаблон(ШаблонСообщения, НСтр("ru = 'Вид актива'"), Формат(ДанныеСтроки.НомерСтроки, "ЧГ="));
Поле = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Расходы", ДанныеСтроки.НомерСтроки, "ВидАктива");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "", Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДанныеСтроки.ВнеоборотныйАктив) Тогда
ТекстСообщения = СтрШаблон(ШаблонСообщения, ПолеВнеоборотныйАктив, Формат(ДанныеСтроки.НомерСтроки, "ЧГ="));
Поле = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Расходы", ДанныеСтроки.НомерСтроки, "ВнеоборотныйАктив");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "", Отказ);
КонецЕсли;
Если ДанныеСтроки.ВосстановитьАмортизационнуюПремию Тогда
Если НЕ ЗначениеЗаполнено(ДанныеСтроки.СуммаАмортизационнойПремии) Тогда
ТекстСообщения = СтрШаблон(ШаблонСообщения, НСтр("ru = 'Сумма амортизационной премии'"), Формат(ДанныеСтроки.НомерСтроки, "ЧГ="));
Поле = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Расходы", ДанныеСтроки.НомерСтроки, "СуммаАмортизационнойПремии");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "", Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДанныеСтроки.СтатьяДоходов) Тогда
ТекстСообщения = СтрШаблон(ШаблонСообщения, НСтр("ru = 'Статья доходов'"), Формат(ДанныеСтроки.НомерСтроки, "ЧГ="));
Поле = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Расходы", ДанныеСтроки.НомерСтроки, "СтатьяДоходов");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "", Отказ);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПроверитьРеализациюУслугПоАренде(Отказ)
ШаблонСообщения = НСтр("ru = 'Не заполнена колонка ""Предмет аренды"" в строке %1 списка ""Выручка (доходы)""'");
Для каждого ДанныеСтроки Из Доходы Цикл
Если ДанныеСтроки.АрендныйКомпонентДоговора И НЕ ЗначениеЗаполнено(ДанныеСтроки.ПредметАренды) Тогда
ТекстСообщения = СтрШаблон(ШаблонСообщения, Формат(ДанныеСтроки.НомерСтроки, "ЧГ="));
Поле = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Доходы", ДанныеСтроки.НомерСтроки, "ПредметАренды");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, Поле, "", Отказ);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура УстановитьСвойстваИзмененияРеквизитов(Объект, ДополнительныеСвойства)
ИзменилосьТолькоСостояниеПереходаПраваСобственности = Ложь;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав)
И Объект.Проведен Тогда
НепроверяемыеРеквизиты = Новый Структура;
НепроверяемыеРеквизиты.Вставить("Комментарий");
НепроверяемыеРеквизиты.Вставить("ДатаПлатежа");
НепроверяемыеРеквизиты.Вставить("ИдентификаторПлатежа");
НепроверяемыеТабличныеЧасти = Новый Структура;
НепроверяемыеТабличныеЧасти.Вставить("ДополнительныеРеквизиты");
ИзмененияДокумента = ОбщегоНазначенияУТ.ИзмененияДокумента(Объект, НепроверяемыеРеквизиты, НепроверяемыеТабличныеЧасти);
ИзменилосьТолькоСостояниеПереходаПраваСобственности = Истина;
СтараяДатаПереходаПраваСобственности = Объект.ДатаПереходаПраваСобственности;
Если ИзмененияДокумента.Свойство("ТабличныеЧасти") Тогда
ИзменилосьТолькоСостояниеПереходаПраваСобственности = Ложь;
КонецЕсли;
Если ИзмененияДокумента.Свойство("Реквизиты") Тогда
Для каждого Реквизит Из ИзмененияДокумента.Реквизиты Цикл
Если Реквизит.Имя = "Статус" Тогда
Если (Реквизит.НовоеЗначение = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ Реквизит.СтароеЗначение = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате) Тогда
ИзменилосьТолькоСостояниеПереходаПраваСобственности = Ложь;
Прервать;
КонецЕсли;
ИначеЕсли Реквизит.Имя = "ДатаПереходаПраваСобственности" Тогда
СтараяДатаПереходаПраваСобственности = Реквизит.СтароеЗначение;
Иначе
ИзменилосьТолькоСостояниеПереходаПраваСобственности = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ДополнительныеСвойства.Вставить("ИзменилосьТолькоСостояниеПереходаПраваСобственности",
ИзменилосьТолькоСостояниеПереходаПраваСобственности);
ДополнительныеСвойства.Вставить("СтараяДатаПереходаПраваСобственности",
СтараяДатаПереходаПраваСобственности);
КонецПроцедуры
Процедура СформироватьЗаданияКЗакрытиюМесяца()
Если ПланыОбмена.ГлавныйУзел() <> Неопределено Тогда
Возврат;
КонецЕсли;
ИзменилосьТолькоСостояниеПереходаПраваСобственности =
ДополнительныеСвойства.Свойство("ИзменилосьТолькоСостояниеПереходаПраваСобственности")
И ДополнительныеСвойства.ИзменилосьТолькоСостояниеПереходаПраваСобственности;
Если НЕ ИзменилосьТолькоСостояниеПереходаПраваСобственности
И (ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов
ИЛИ ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияОСсОтложеннымПереходомПрав) Тогда
МенеджерВременныхТаблиц = ПроведениеДокументов.МенеджерВременныхТаблицКонтроля(ЭтотОбъект);
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Документ,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.ДатаПереходаПраваСобственности КАК ДатаПереходаПраваСобственности,
| ДанныеДокумента.Статус КАК Статус,
| ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ДанныеДокументаТаблицаРасходы.ВнеоборотныйАктив КАК ВнеоборотныйАктив
|
|ПОМЕСТИТЬ РеализацияУслугПрочихАктивовИзменение
|
|ИЗ
| Документ.РеализацияУслугПрочихАктивов КАК ДанныеДокумента
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияУслугПрочихАктивов.Расходы КАК ДанныеДокументаТаблицаРасходы
| ПО ДанныеДокументаТаблицаРасходы.Ссылка = ДанныеДокумента.Ссылка
|
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И ДанныеДокумента.Проведен";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Выполнить();
ДанныеТаблиц = ПроведениеДокументов.ДанныеТаблицСтаройСтруктуры(ЭтотОбъект, МенеджерВременныхТаблиц);
ДанныеТаблиц.Вставить("РеализацияУслугПрочихАктивовИзменение", Истина);
ЗакрытиеРасходовОтВыбытияОС.СформироватьЗадания(ЭтотОбъект, МенеджерВременныхТаблиц);
ОтложенноеФормированиеДвиженийВНА.СформироватьЗадания(ЭтотОбъект, ДанныеТаблиц);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли