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