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