#Область ОписаниеПеременных
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
&НаКлиенте
Перем ТекущиеДанныеИдентификатор;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
ХозяйственнаяОперацияПоУмолчанию = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию");
КомиссионныеПродажи25 = ?(Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера, Истина, Ложь);
Если КомиссионныеПродажи25 Тогда
Элементы.ТоварыЗаполнитьЦеныПоСоглашению.Видимость = Ложь;
Элементы.ТоварыЗаполнитьЦеныПоДоговору.Видимость = Истина;
Элементы.ТоварыЗаполнитьЦеныКомитента.Видимость = Истина;
Элементы.ТоварыЗаполнитьЦеныКлиента.Видимость = Истина;
Элементы.ТоварыВидЦеныПродажи.Видимость = Истина;
Иначе
Элементы.ТоварыЗаполнитьЦеныПоСоглашению.Видимость = Истина;
Элементы.ТоварыЗаполнитьЦеныПоДоговору.Видимость = Ложь;
Элементы.ТоварыЗаполнитьЦеныКомитента.Видимость = Ложь;
Элементы.ТоварыЗаполнитьЦеныКлиента.Видимость = Ложь;
Элементы.ТоварыВидЦеныПродажи.Видимость = Ложь;
КонецЕсли;
УправлениеСвязямиПараметровВыбораРеквизитовФормы();
ЗаполнитьУстановитьВидимостьСерий();
ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
РассчитыватьВознаграждение = Истина;
КонецЕсли;
Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
Элементы.ГруппаИтого.ЦветФона = Новый Цвет();
КонецЕсли;
ПродажиСервер.УстановитьОтметкуНезаполненногоДоговора(Элементы, "Договор");
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтаФорма);
Элементы.ТоварыВидЦены.БыстрыйВыбор = Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовЦен");
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументССылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
ДополнительныеПараметры.Вставить("ОтложеннаяИнициализация", Истина);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
СпособРасчетаВознаграждения = Объект.СпособРасчетаВознаграждения;
ПроцентВознаграждения = Объект.ПроцентВознаграждения;
СуммаВознаграждения = Объект.СуммаВознаграждения;
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
УчетПрослеживаемыхТоваровЛокализация.УстановитьЗаголовокНомерГТД(Элементы, "ТоварыНомерГТД");
УчетНДСУП.УстановитьВидимостьКомандыЗаполнитьСтавкуНДС(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода");
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии()
МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "ОбщаяФорма.ПодборПоТоварамПереданнымНаКомиссию" Тогда
ПолучитьТоварыИзХранилища(ВыбранноеЗначение);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Обработка.ПодборТоваровПереданныхНаОтветственноеХранение.Форма.Форма" Тогда
ЦеныРассчитаны = Истина;
ОбработкаВыбораПодборПереданныхТоваров(ВыбранноеЗначение, ЦеныРассчитаны);
ИначеЕсли УчетНДСУПКлиент.ЗаконченоРедактированиеСчетовФактурКомиссионеру(ВыбранноеЗначение, ИсточникВыбора) Тогда
ОбновитьТекстСчетаФактурыКомиссионеру();
ИначеЕсли УчетНДСУПКлиент.ЗаконченоРедактированиеСчетаФактурыПолученного(ВыбранноеЗначение, ИсточникВыбора) Тогда
ОбновитьТекстСчетаФактурыПолученные();
ИначеЕсли ИсточникВыбора.ИмяФормы = "Справочник.ВидыЗапасов.Форма.ФормаВводаВидовЗапасов" Тогда
ПолучитьВидыЗапасовИзХранилища(ВыбранноеЗначение);
ИначеЕсли НоменклатураКлиент.ЭтоУказаниеСерий(ИсточникВыбора) Тогда
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтаФорма, ПараметрыУказанияСерий, ВыбранноеЗначение);
ИначеЕсли ЗакупкиКлиент.ЭтоПодборНомераГТД(ИсточникВыбора) Тогда
ОбработатьПодборНомераГТД(ВыбранноеЗначение);
КонецЕсли;
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
Если ЗакупкиКлиент.ЭтоУказаниеНомераГТД(Источник) Тогда
Действия = Новый Структура;
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтотОбъект, Действия);
ЗакупкиКлиент.ОбработатьУказаниеНомераГТД(ЭтотОбъект, НовыйОбъект, , , Действия);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВМассив(Параметр));
КонецЕсли;
КонецЕсли;
Если Источник = "ПодключаемоеОборудование"
И ИмяСобытия = "НеизвестныеШтрихкоды"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
КэшированныеЗначения.Штрихкоды.Очистить();
ДанныеШтрихкодов = Новый Массив;
Для Каждого ПолученныйШтрихкод Из Параметр.ПолученыНовыеШтрихкоды Цикл
ДанныеШтрихкодов.Добавить(ПолученныйШтрихкод);
КонецЦикла;
Для Каждого ПолученныйШтрихкод Из Параметр.ЗарегистрированныеШтрихкоды Цикл
ДанныеШтрихкодов.Добавить(ПолученныйШтрихкод);
КонецЦикла;
ОбработатьШтрихкоды(ДанныеШтрихкодов);
КонецЕсли;
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "ОбновитьДокументИБПослеЗаполнения" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
ЭтаФорма.Прочитать();
ИначеЕсли ИмяСобытия = "ОбновитьДокументИБПослеЗаполненияИзФайла" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
ПриЧтенииСозданииНаСервере();
ИначеЕсли ИмяСобытия = "Запись_СчетФактураКомиссионера" Тогда
ОбновитьТекстСчетаФактурыКомиссионеру();
ИначеЕсли ИмяСобытия = "Запись_СчетФактураВыданный"
И (Параметр.Свойство("ФормаВладелец") И Параметр.ФормаВладелец = УникальныйИдентификатор
Или Параметр.Свойство("СписокОснований") И Параметр.СписокОснований.НайтиПоЗначению(Объект.Ссылка) <> Неопределено) Тогда
ОбновитьТекстСчетаФактурыКомиссионеру();
ИначеЕсли ИмяСобытия = "Запись_СчетФактураПолученный" Тогда
ОбновитьТекстСчетаФактурыПолученные();
КонецЕсли;
Если ВзаиморасчетыКлиент.НуженВызовОбработкиОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ИзмененаОплатаСервер(ИмяСобытия, Параметр, Источник);
КонецЕсли;
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
Если ИмяСобытия = "ПриИзмененииДоговора"
И Источник = ЭтотОбъект Тогда
ДоговорПриИзменении(Элементы[Параметр]);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
ПриЧтенииСозданииНаСервере();
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтаФорма);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Если РассчитыватьВознаграждение Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
КомиссионнаяТорговляКлиент.НеобходимоРассчитатьВознаграждение(
Новый ОписаниеОповещения("ПередЗаписьюНеобходимоРассчитатьВознаграждениеЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ЭтаФорма);
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюНеобходимоРассчитатьВознаграждениеЗавершение(НеобходимоРассчитатьВознаграждение, ДополнительныеПараметры) Экспорт
НеобходимоРассчитатьВознаграждение = НеобходимоРассчитатьВознаграждение = Истина;
ПередЗаписьюНаКлиентеСервер(НеобходимоРассчитатьВознаграждение);
Если НеобходимоРассчитатьВознаграждение Тогда
КомиссионнаяТорговляКлиент.ОповеститьОбОкончанииРасчетаВознаграждения(Объект.СпособРасчетаВознаграждения);
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ДополнительныеПараметры.ПараметрыЗаписи,,Истина);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаКлиентеСервер(НеобходимоРассчитатьВознаграждение)
Если НеобходимоРассчитатьВознаграждение Тогда
РассчитатьКомиссионноеВознаграждениеСервер();
КонецЕсли;
ВзаиморасчетыВызовСервера.ФормаПередЗаписьюНаКлиентеСервер(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
СтруктураХарактеристикиНоменклатуры = Новый Структура;
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураХарактеристикиНоменклатуры);
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, СтруктураХарактеристикиНоменклатуры);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ОбновитьТекстСчетаФактурыПолученные();
ОбновитьТекстСчетаФактурыКомиссионеру();
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект.ДополнительныеСвойства);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
РазблокироватьДанныеФормыДляРедактирования();
СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("КлючиДокументаОповещение", РаботаСЖурналамиДокументовКлиент.ПолучитьПараметрыКлючаПоДокументу(
Объект.Ссылка, Объект.Дата, Объект.ХозяйственнаяОперация));
Оповестить("Запись_ОтчетКомиссионера", ПараметрыЗаписи, Объект.Ссылка);
ВзаиморасчетыКлиент.ФормаПослеЗаписи(ЭтаФорма);
ОбменСКонтрагентамиКлиент.ПослеЗаписи_ФормаДокумента(ЭтаФорма, ПараметрыЗаписи);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтаФорма, Объект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница.Имя = "СтраницаДополнительно"
И Не ЭтотОбъект.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация Тогда
СвойстваВыполнитьОтложеннуюИнициализацию();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ТекущаяСтраница.Имя = "ГруппаОсновное" Тогда
ВзаиморасчетыКлиент.ОбновитьТекстГиперссылкиЭтапыОплаты(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ПересчитыватьЦены = Ложь;
Если (ИспользоватьСоглашенияСКлиентами
И ЗначениеЗаполнено(Объект.Соглашение)
И ЗначениеЗаполнено(Объект.Валюта)
И Не КомиссионныеПродажи25)
Или (ЗначениеЗаполнено(Объект.Договор)
И КомиссионныеПродажи25)
И Объект.Товары.Количество() <> 0 Тогда
МассивХозяйственныхОпераций25 = Новый Массив;
МассивХозяйственныхОпераций25.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионера"));
МассивХозяйственныхОпераций25.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности"));
Если МассивХозяйственныхОпераций25.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
Если ЗначениеЗаполнено(Объект.Договор) Тогда
ОбработчикОповещения = Новый ОписаниеОповещения("ДоговорПриИзмененииЗавершение", ЭтотОбъект);
ЦеныПредприятияЗаполнениеКлиент.ЗадатьВопросПересчетаЦеныПриИзмененииДоговора(Объект, ОбработчикОповещения);
Возврат;
КонецЕсли;
Иначе
ПараметрыОповещения = Новый Структура("ПересчитыватьЦены", ПересчитыватьЦены);
ОбработчикОповещения = Новый ОписаниеОповещения("ДатаПриИзмененииЗавершение", ЭтотОбъект, ПараметрыОповещения);
ЦеныПредприятияЗаполнениеКлиент.ЗадатьВопросПересчетаЦеныПриИзмененииДаты(Объект, ОбработчикОповещения);
Возврат;
КонецЕсли;
КонецЕсли;
ДатаПриИзмененииФрагмент(ПересчитыватьЦены);
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Объект.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
ПересчитыватьЦены = ДополнительныеПараметры.ПересчитыватьЦены;
Если РезультатВопроса = Истина Тогда
ПересчитыватьЦены = Истина;
КонецЕсли;
ДатаПриИзмененииФрагмент(ПересчитыватьЦены);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзмененииФрагмент(Знач ПересчитыватьЦены)
ЦеныРассчитаны = ДатаПриИзмененииСервер(ПересчитыватьЦены);
Если ПересчитыватьЦены Тогда
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении()
ОрганизацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ВалютаПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.Валюта) Тогда
КомиссионнаяТорговляКлиент.ПроверитьНеобходимостьПересчетаВВалютуОтчетыПоКомиссии(
Новый ОписаниеОповещения("ВалютаПриИзмененииВопросПересчитатьВалютуЗавершение", ЭтотОбъект),
Объект,
ВалютаДокумента);
Иначе
ВалютаДокумента = Объект.Валюта;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВалютаПриИзмененииВопросПересчитатьВалютуЗавершение(ПересчитатьВалюту, ДополнительныеПараметры) Экспорт
ВалютаПриИзмененииСервер(
Объект.Валюта,
ПересчитатьВалюту);
ЦенообразованиеКлиент.ОповеститьОбОкончанииПересчетаСуммВВалюту(ВалютаДокумента, Объект.Валюта);
ВалютаДокумента = Объект.Валюта;
КонецПроцедуры
&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.Партнер) Тогда
ПартнерПриИзмененииСервер();
Если ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение) Тогда
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияУсловийПродажПоУмолчанию();
КонецЕсли;
КонецЕсли;
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
НалогообложениеНДСПриИзмененииСервер();
РассчитыватьВознаграждение = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПараметрыРегистрацииСчетовФактурПолученныхСервер(Знач Объект)
Возврат Документы.ОтчетКомиссионера.ПараметрыРегистрацииСчетовФактурПолученных(Объект);
КонецФункции
&НаКлиенте
Процедура ТекстСчетаФактурыПолученныеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактурПолученныхСервер(Объект);
УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыПолученные(
ЭтаФорма,
НавигационнаяСсылка,
СтандартнаяОбработка,
ПараметрыРегистрации);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПараметрыРегистрацииСчетовФактурКомиссионеруСервер(Знач Объект)
Возврат Документы.ОтчетКомиссионера.ПараметрыРегистрацииСчетовФактурКомиссионеру(Объект);
КонецФункции
&НаКлиенте
Процедура ТекстСчетаФактурыКомиссионеруОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ОчиститьСообщения();
ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактурКомиссионеруСервер(Объект);
УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыКомиссионеру(
ЭтаФорма,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ПараметрыРегистрации);
ОбновитьТекстСчетаФактурыКомиссионеру();
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеПриИзменении(Элемент)
Если Не ЗначениеЗаполнено(Объект.Соглашение) Тогда
КомиссионерНеВедетУчетПоРНПТ = Ложь;
Возврат;
КонецЕсли;
СоглашениеПриИзмененииСервер();
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияУсловийПродаж();
КонецПроцедуры
&НаКлиенте
Процедура ДоговорСоздание(Элемент, СтандартнаяОбработка)
ПродажиКлиент.ОткрытьФормуСозданияДоговора(ЭтотОбъект, Элемент, "Объект.Договор", Объект.Партнер, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = Истина Тогда
ЦеныРассчитаны = ДоговорПриИзмененииЗавершениеСервер();
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоДоговору(ЦеныРассчитаны);
Иначе
НалогообложениеНДСПриИзмененииСервер();
РассчитыватьВознаграждение = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ТекстСообщения = "";
ДоговорПриИзмененииСервер(ТекстСообщения);
Если ЗначениеЗаполнено(ТекстСообщения) Тогда
ПоказатьОповещениеПользователя(
НСтр("ru = 'Цены не могут быть заполнены'"),
,
ТекстСообщения,
БиблиотекаКартинок.Информация32);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", Объект.Организация);
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
СтруктураОтбора.Вставить("ВалютаВзаиморасчетов", Объект.Валюта);
СтруктураОтбора.Вставить("Контрагент", Объект.Контрагент);
СтруктураОтбора.Вставить("Статус", ПредопределенноеЗначение("Перечисление.СтатусыДоговоровКонтрагентов.Действует"));
СтруктураОтбора.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию"));
СтруктураОтбора.Вставить("ВестиРасчетыЧерезКонечныхПокупателей", Ложь);
СтруктураОтбора.Вставить("КомиссионныеПродажи25", КомиссионныеПродажи25);
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
СтруктураПараметровВыбора = Новый Структура;
СтруктураПараметровВыбора.Вставить("Партнер", Объект.Партнер);
СтруктураПараметровВыбора.Вставить("Соглашение", Объект.Соглашение);
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
СтруктураПараметровВыбора.Вставить("РежимВыбора", Истина);
СписокПорядков = Новый СписокЗначений;
СписокПорядков.Добавить(ПредопределенноеЗначение("Перечисление.ПорядокРасчетов.ПоЗаказам"));
СписокПорядков.Добавить(ПредопределенноеЗначение("Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов"));
СтруктураПараметровВыбора.Вставить("ДоступныеПорядкиРасчетов", СписокПорядков);
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ПараметрыВыбораСоглашения = ПродажиКлиент.ПараметрыНачалаВыбораСоглашенияСКлиентом();
ПараметрыВыбораСоглашения.Элемент = Элемент;
ПараметрыВыбораСоглашения.Партнер = Объект.Партнер;
ПараметрыВыбораСоглашения.Документ = Объект.Соглашение;
ПараметрыВыбораСоглашения.ДатаДокумента = Объект.Дата;
ПараметрыВыбораСоглашения.ХозяйственнаяОперация = ХозяйственнаяОперацияПоУмолчанию;
ПараметрыВыбораСоглашения.КомиссионныеПродажи25 = КомиссионныеПродажи25;
ПараметрыВыбораСоглашения.ДанныеФормыСтруктура = Объект;
ПродажиКлиент.НачалоВыбораСоглашенияСКлиентом(ПараметрыВыбораСоглашения, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПоРезультатамИнвентаризацииПриИзменении(Элемент)
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура СпособРасчетаВознагражденияПриИзменении(Элемент)
Если Не Объект.СпособРасчетаВознаграждения = СпособРасчетаВознаграждения Тогда
ДополнительныеПараметры = Новый Структура("ВосстановитьРеквизиты", Ложь);
Оповещение = Новый ОписаниеОповещения(
"СпособРасчетаВознагражденияПриИзмененииНеобходимоРассчитатьВознаграждениеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
КомиссионнаяТорговляКлиент.НеобходимоРассчитатьВознаграждение(Оповещение, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СпособРасчетаВознагражденияПриИзмененииНеобходимоРассчитатьВознаграждениеЗавершение(НеобходимоРассчитатьВознаграждение, ДополнительныеПараметры) Экспорт
Если НеобходимоРассчитатьВознаграждение = Истина Тогда
СпособРасчетаВознаграждения = Объект.СпособРасчетаВознаграждения;
РассчитатьКомиссионноеВознаграждениеСервер();
КомиссионнаяТорговляКлиент.ОповеститьОбОкончанииРасчетаВознаграждения(Объект.СпособРасчетаВознаграждения);
ИначеЕсли ДополнительныеПараметры.ВосстановитьРеквизиты Тогда
Объект.СпособРасчетаВознаграждения = СпособРасчетаВознаграждения;
КонецЕсли;
СпособРасчетаВознагражденияПриИзмененииСервер();
Если Объект.СпособРасчетаВознаграждения = ПредопределенноеЗначение("Перечисление.СпособыРасчетаКомиссионногоВознаграждения.НеРассчитывается") Тогда
Объект.ПроцентВознаграждения = 0;
Объект.СуммаВознаграждения = 0;
ПроцентВознаграждения = 0;
СуммаВознаграждения = 0;
Объект.Услуга = ПредопределенноеЗначение("Справочник.Номенклатура.ПустаяСсылка");
Объект.СтавкаНДСВознаграждения = ПредопределенноеЗначение("Справочник.СтавкиНДС.ПустаяСсылка");
Объект.ДатаПлатежа = Дата(1, 1, 1, 0, 0, 0);
Объект.УдержатьВознаграждение = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СпособРасчетаВознагражденияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СпособРасчетаВознаграждения = Объект.СпособРасчетаВознаграждения;
КонецПроцедуры
&НаКлиенте
Процедура ПроцентВознагражденияПриИзменении(Элемент)
Если Не Объект.ПроцентВознаграждения = ПроцентВознаграждения Тогда
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВосстановитьРеквизиты", Ложь);
ДополнительныеПараметры.Вставить("ОчиститьКомиссионноеВознаграждение", Ложь);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПроцентСуммаВознагражденияПриИзмененииНеобходимоРассчитатьВознаграждениеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
КомиссионнаяТорговляКлиент.НеобходимоРассчитатьВознаграждение(ОписаниеОповещения, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СуммаВознагражденияПриИзменении(Элемент)
Если Не Объект.СуммаВознаграждения = СуммаВознаграждения Тогда
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВосстановитьРеквизиты", Ложь);
ДополнительныеПараметры.Вставить("ОчиститьКомиссионноеВознаграждение", Ложь);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПроцентСуммаВознагражденияПриИзмененииНеобходимоРассчитатьВознаграждениеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
КомиссионнаяТорговляКлиент.НеобходимоРассчитатьВознаграждение(ОписаниеОповещения, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроцентСуммаВознагражденияПриИзмененииНеобходимоРассчитатьВознаграждениеЗавершение(НеобходимоРассчитатьВознаграждение, ДополнительныеПараметры) Экспорт
Если НеобходимоРассчитатьВознаграждение = Истина Тогда
РассчитатьКомиссионноеВознаграждениеСервер();
СпособРасчетаДляОповещения = ?(
ДополнительныеПараметры.ОчиститьКомиссионноеВознаграждение,
ПредопределенноеЗначение("Перечисление.СпособыРасчетаКомиссионногоВознаграждения.НеРассчитывается"),
Объект.СпособРасчетаВознаграждения);
КомиссионнаяТорговляКлиент.ОповеститьОбОкончанииРасчетаВознаграждения(СпособРасчетаДляОповещения);
ПроцентВознаграждения = Объект.ПроцентВознаграждения;
СуммаВознаграждения = Объект.СуммаВознаграждения;
ИначеЕсли ДополнительныеПараметры.ВосстановитьРеквизиты Тогда
Объект.ПроцентВознаграждения = ПроцентВознаграждения;
Объект.СуммаВознаграждения = СуммаВознаграждения;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УслугаПриИзменении(Элемент)
УслугаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура СтавкаНДСВознагражденияПриИзменении(Элемент)
КомиссионнаяТорговляКлиент.СтавкаНДСВознагражденияПриИзменении(Объект, ПроцентНДС);
КонецПроцедуры
&НаКлиенте
Процедура УдержатьВознаграждениеПриИзменении(Элемент)
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
УдержатьВознаграждениеПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Менеджер");
КонецПроцедуры
&НаКлиенте
Процедура НаправлениеДеятельностиПриИзменении(Элемент)
НаправлениеДеятельностиПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(
ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыТовары
&НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле = Элементы.ТоварыЦена Тогда
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) Тогда
ОчиститьСообщения();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru='Для редактирования цены очистите вид цены'"),
Объект.Ссылка,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);
КонецЕсли;
ИначеЕсли КомиссионныеПродажи25
И Поле = Элементы.ТоварыЦенаПродажи Тогда
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦеныПродажи) Тогда
ОчиститьСообщения();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru='Для редактирования цены очистите вид цены'"),
Объект.Ссылка,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦеныПродажи"),);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриАктивизацииЯчейки(Элемент)
Если Элемент.ТекущийЭлемент = Элементы.ТоварыНомерГТД Тогда
ЗакупкиКлиент.ЗаполнитьСписокВыбораНомеровГТД(
Элементы.Товары.ТекущиеДанные, Элементы.ТоварыНомерГТД.СписокВыбора);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.Товары, ЭтотОбъект);
ПродажиКлиент.СтрокаНоменклатурыПриНачалеРедактирования(ЭтаФорма, "Товары", ТекущаяСтрока, НоваяСтрока, Копирование);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий,
Копирование);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ПроверитьСериюРассчитатьСтатус = Новый Структура;
ПроверитьСериюРассчитатьСтатус.Вставить("Склад", ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка"));
ПроверитьСериюРассчитатьСтатус.Вставить("ПараметрыУказанияСерий", ПараметрыУказанияСерий);
ЗаполнитьПризнакТипНоменклатуры = Новый Структура("Номенклатура", "ТипНоменклатуры");
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу" , ТекущаяСтрока.Упаковка);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
Если (ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение))
Или (Не ИспользоватьСоглашенияСКлиентами И ИспользуетсяЦенообразование25) Тогда
СтруктураДействий.Вставить("ЗаполнитьУсловияПродаж", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияУсловийПродажВСтрокеТЧ(Объект));
Иначе
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПроверитьСериюРассчитатьСтатус);
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", ЗаполнитьПризнакТипНоменклатуры);
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ЗаполнитьСтрануПроисхожденияНоменклатуры",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтраныПроисхождения());
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтаФорма, СтруктураДействий);
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ЭтаФорма.ИмяФормы, "Товары"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если Не ТекущаяСтрока.ВедетсяУчетПоРНПТ Тогда
ТекущаяСтрока.НомерГТД = Неопределено;
ТекущаяСтрока.ТипНомераГТД = Неопределено;
ТекущаяСтрока.СтранаПроисхождения = Неопределено;
КонецЕсли;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
РассчитыватьВознаграждение = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыХарактеристикаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
Если (ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение))
Или (Не ИспользоватьСоглашенияСКлиентами И ИспользуетсяЦенообразование25) Тогда
СтруктураДействий.Вставить("ЗаполнитьУсловияПродаж", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияУсловийПродажВСтрокеТЧ(Объект));
Иначе
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ХарактеристикаПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ЭтаФорма.ИмяФормы, "Товары"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
ТекущаяСтрока.СуммаВознаграждения = 0;
РассчитыватьВознаграждение = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыУпаковкаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока.Количество = 0 Тогда
ПересчитатьОстаткиПоДаннымУчетаСервер(ТекущаяСтрока.НомерСтроки);
ТекущаяСтрока.КоличествоУпаковокФакт = ТекущаяСтрока.КоличествоУпаковокУчет;
Иначе
КоличествоДоПересчета = ТекущаяСтрока.Количество;
КомиссионнаяТорговляКлиент.ОтчетКомиссионераТоварыУпаковкаПриИзменении(Объект, ТекущаяСтрока,
ИспользоватьСоглашенияСКлиентами, КэшированныеЗначения);
Если ТекущаяСтрока.Количество <> КоличествоДоПересчета И ТекущаяСтрока.Количество <> 0 Тогда
ТекущаяСтрока.КоличествоУпаковокУчет = Окр(ТекущаяСтрока.КоличествоУпаковокУчет * КоличествоДоПересчета / ТекущаяСтрока.Количество, 2, 1);
ТекущаяСтрока.КоличествоУпаковокФакт = ТекущаяСтрока.КоличествоУпаковокУчет - ТекущаяСтрока.КоличествоУпаковок;
КонецЕсли;
КонецЕсли;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
РассчитыватьВознаграждение = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоУпаковокПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
КомиссионнаяТорговляКлиент.ОтчетКомиссионераТоварыКоличествоУпаковокПриИзменении(Объект, ТекущаяСтрока, КэшированныеЗначения);;
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоУпаковокФактПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоУпаковокПоФакту");
СамообслуживаниеКлиентСервер.ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковокОтчетКомиссионера(СтруктураДействий, Объект);
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтаФорма, СтруктураДействий);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыВидЦеныПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыВидЦеныПродажиПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
ПараметрыЗаполненияЦеныПродажи = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект);
ПараметрыЗаполненияЦеныПродажи.Вставить("ИмяПоляЦена", "ЦенаПродажи");
ПараметрыЗаполненияЦеныПродажи.Вставить("ИмяКолонкиВидЦены", "ВидЦеныПродажи");
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПараметрыЗаполненияЦеныПродажи);
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КомиссионнаяТорговляКлиент.ОтчетКомиссионераТоварыЦенаПродажиПриИзменении(ТекущаяСтрока, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуСкидкуПоСуммеВПродажах");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС");
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПродажиПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
КомиссионнаяТорговляКлиент.ОтчетКомиссионераТоварыЦенаПродажиПриИзменении(ТекущаяСтрока, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаПродажиПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуПродажиПоСуммеПродажи");
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС");
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаПродажиНДСПриИзменении(Элемент)
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаВознагражденияПриИзменении(Элемент)
Объект.СуммаВознаграждения = Объект.Товары.Итог("СуммаВознаграждения");
ИтогСуммаПродажи = Объект.Товары.Итог("СуммаПродажи");
Объект.ПроцентВознаграждения = ?(ИтогСуммаПродажи <> 0, Объект.СуммаВознаграждения / ИтогСуммаПродажи * 100, 0);
КомиссионнаяТорговляКлиент.РассчитатьКомиссионноеВознаграждениеНДС(Объект, ПроцентНДС);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПокупательПриИзменении(Элемент)
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элементы.Товары);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыДатаСчетаФактурыКомиссионераПриИзменении(Элемент)
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элементы.Товары);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНомерГТДПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыЗаполнения = Новый Структура("НомерГТД", ТекущиеДанные.НомерГТД);
Действия = Новый Структура;
Действия.Вставить("ЗаполнитьТипНомераГТД", ПараметрыЗаполнения);
Действия.Вставить("ЗаполнитьСтрануПроисхожденияДляНомераГТД", ПараметрыЗаполнения);
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтотОбъект, Действия);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущиеДанные, Действия, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНомерГТДСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = ЗакупкиКлиент.ДополнительныеПараметрыСозданияНомераГТД();
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект);
ДополнительныеПараметры.ОснованиеСтоимостиПоступления = Ложь;
ПараметрыСоздания = ЗакупкиКлиент.ПараметрыСозданияНомераГТД(ТекущиеДанные,
Элемент.ТекстРедактирования,
ДополнительныеПараметры);
ЗакупкиКлиент.ОткрытьФормуСозданияНомераГТД(ЭтотОбъект, ПараметрыСоздания);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьИнтервал(Команда)
ОбщегоНазначенияУТКлиент.РедактироватьПериод(Объект,
Новый Структура("ДатаНачала, ДатаОкончания", "НачалоПериода", "КонецПериода"));
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткам(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Организация", НСтр("ru = 'Организация'"));
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Партнер", НСтр("ru = 'Комиссионер'"));
Если КомиссионныеПродажи25 Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Договор", НСтр("ru = 'Договор'"));
ПараметрыПроверки.Вставить("ПроверятьРаспроведенность", Ложь);
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьОстаткиПоДаннымУчета(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Организация", НСтр("ru = 'Организация'"));
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Партнер", НСтр("ru = 'Комиссионер'"));
Оповещение = Новый ОписаниеОповещения("ПересчитатьОстаткиПоДаннымУчетаЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьВидыЗапасов(Команда)
ПараметрыРедактированияВидовЗапасов = ПоместитьТоварыИВидыЗапасовВХранилище();
ФинансыКлиент.ОткрытьВидыЗапасов(ЭтотОбъект, ПараметрыРедактированияВидовЗапасов);
КонецПроцедуры
&НаКлиенте
Процедура ПоискПоШтрихкоду(Команда)
ОчиститьСообщения();
Оповещение = Новый ОписаниеОповещения("ПоискПоШтрихкодуЗавершение", ЭтотОбъект);
ШтрихкодированиеНоменклатурыКлиент.ПоказатьВводШтрихкода(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьДанныеИзТСД(Команда)
ОчиститьСообщения();
МенеджерОборудованияКлиент.НачатьЗагрузкуДанныеИзТСД(
Новый ОписаниеОповещения("ЗагрузитьИзТСДЗавершение", ЭтотОбъект),
УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзТСДЗавершение(РезультатВыполнения, Параметры) Экспорт
Если РезультатВыполнения.Результат Тогда
ОбработатьШтрихкоды(РезультатВыполнения.ТаблицаТоваров);
Иначе
МенеджерОборудованияУТКлиент.СообщитьОбОшибке(РезультатВыполнения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазбитьСтроку(Команда)
ТаблицаФормы = Элементы.Товары;
ДанныеТаблицы = Объект.Товары;
ПараметрыРазбиенияСтроки = РаботаСТабличнымиЧастямиКлиент.ПараметрыРазбиенияСтроки();
Если Объект.ПоРезультатамИнвентаризации Тогда
ПараметрыРазбиенияСтроки.Заголовок = НСтр("ru='Введите остаток по факту в новой строке.'");
ПараметрыРазбиенияСтроки.ИмяПоляКоличество = "КоличествоУпаковокФакт";
Иначе
ПараметрыРазбиенияСтроки.РазрешитьНулевоеКоличество = Ложь;
КонецЕсли;
ДополнительныеПараметры = УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеПараметровРазбиенияСтрокиТабличнойЧасти(ТаблицаФормы.ТекущиеДанные);
Оповещение = Новый ОписаниеОповещения("РазбитьСтрокуЗавершение", ЭтотОбъект, ДополнительныеПараметры);
РаботаСТабличнымиЧастямиКлиент.РазбитьСтроку(ДанныеТаблицы, ТаблицаФормы, Оповещение, ПараметрыРазбиенияСтроки);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьВознаграждение(Команда)
КомиссионнаяТорговляКлиент.НеобходимоРассчитатьВознаграждение(
Новый ОписаниеОповещения("РассчитатьВознаграждениеНеобходимоРассчитатьВознаграждениеЗавершение", ЭтотОбъект),
ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьВознаграждениеНеобходимоРассчитатьВознаграждениеЗавершение(НеобходимоРассчитатьВознаграждение, ДополнительныеПараметры) Экспорт
Если НеобходимоРассчитатьВознаграждение = Истина Тогда
РассчитатьКомиссионноеВознаграждениеСервер();
КомиссионнаяТорговляКлиент.ОповеститьОбОкончанииРасчетаВознаграждения(Объект.СпособРасчетаВознаграждения);
УправлениеЭлементамиФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныПоСоглашению(Команда)
Если ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоСоглашению(Объект, "Товары", НСтр("ru='Товары'")) Тогда
ТекстОшибки = "";
ЦеныРассчитаны = ЗаполнитьЦеныПоСоглашениюСервер(ТекстОшибки);
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны, ТекстОшибки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныПоДоговору(Команда)
ВидЦеныКомиссионера = ПолучитьВидЦеныДоговора("ВидЦенУчетный");
ВидЦеныПродажи = ПолучитьВидЦеныДоговора("ВидЦенПродажи");
Если ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВиду(Объект, ВидЦеныКомиссионера)
И ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВиду(Объект, ВидЦеныПродажи) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныПоВидуЦен("ВидЦенУчетный");
ЦеныРассчитаны = ЗаполнитьЦеныПоВидуЦен("ВидЦенПродажи");
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныКомитента(Команда)
ВидЦеныДоговора = ПолучитьВидЦеныДоговора("ВидЦенУчетный");
Если ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВиду(Объект, ВидЦеныДоговора) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныПоВидуЦен("ВидЦенУчетный");
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныКлиента(Команда)
ВидЦеныДоговора = ПолучитьВидЦеныДоговора("ВидЦенПродажи");
Если ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВиду(Объект, ВидЦеныДоговора) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныПоВидуЦен("ВидЦенПродажи");
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайла(Команда)
ПараметрыЗагрузки = РаботаСТабличнымиЧастямиКлиент.ПараметрыЗагрузкиНоменклатуры();
ПараметрыЗагрузки.Организация = Объект.Организация;
ПараметрыЗагрузки.ЗагружатьЦены = Истина;
ПараметрыЗагрузки.ЦенаВключаетНДС = Объект.ЦенаВключаетНДС;
ПараметрыЗагрузки.НалогообложениеНДС = Объект.НалогообложениеНДС;
ПараметрыЗагрузки.ДатаЗаполнения = Объект.Дата;
ПараметрыЗагрузки.ПараметрыОтбора.Вставить("ТипНоменклатуры",
НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь));
Оповещение = Новый ОписаниеОповещения("ЗагрузитьИзВнешнегоФайлаЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПоказатьФормуЗагрузкиНоменклатуры(ПараметрыЗагрузки, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайлаЗавершение(АдресЗагруженныхДанных, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(АдресЗагруженныхДанных) Тогда
ПолучитьЗагруженныеТоварыИзХранилища(АдресЗагруженныхДанных);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗачетОплаты(Команда)
ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
ВзаиморасчетыКлиент.ЗачетОплаты(ЭтаФорма, Элементы.ЗачетОплатыФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗачетОплатыВознаграждение(Команда)
ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
ВзаиморасчетыКлиент.ЗачетОплаты(ЭтаФорма, Элементы.ЗачетОплатыПоВознаграждению);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтавкуНДС(Команда)
Если Объект.Товары.Количество() = 0 Тогда
ТекстПредупреждения = НСтр("ru = 'В список ""Товары"" не введено ни одной строки.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ЗаполнитьСтавкуНДСЗавершение", ЭтотОбъект);
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ТипНалогообложенияНДС", Объект.НалогообложениеНДС);
ОткрытьФорму("Справочник.СтавкиНДС.ФормаВыбора", ПараметрыФормы,,,,, ОповещениеОЗакрытии);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СвойстваВыполнитьОтложеннуюИнициализацию()
УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтаФорма);
НоменклатураСервер.УстановитьУсловноеОформлениеСтатусовУказанияСерий(ЭтаФорма, Ложь);
НоменклатураСервер.УстановитьУсловноеОформлениеСерийНоменклатуры(ЭтаФорма,
"СерииПриПланированииОтгрузкиУказываютсяВТЧТовары");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтавкаНДС.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаНДС.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаПродажиНДС.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.НалогообложениеНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВидЦены");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНомерСчетаФактурыКомиссионера.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДатаСчетаФактурыКомиссионера.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПокупатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не требуется>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
НоменклатураСервер.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(ЭтаФорма);
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеВидовЦен(ЭтаФорма);
НаправленияДеятельностиСервер.УстановитьУсловноеОформлениеНаправленияДеятельности(ЭтаФорма);
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюПродажи(ЭтаФорма);
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект);
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеУчетаПоГТДВДокументахКомиссионера(ЭтотОбъект);
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеВидовЦен(ЭтаФорма, "ТоварыВидЦеныПродажи", "Объект.Товары.ВидЦеныПродажи");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦенаПродажи.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВидЦеныПродажи");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Если Открыта() Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
#Область ПриИзмененииРеквизитов
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость, Объект.Договор);
ДенежныеСредстваСервер.ПроверитьЗаполнитьБанковскийСчетОрганизацииПоВладельцу(Объект.Организация, Объект.БанковскийСчет, Объект.ФормаОплаты);
ДенежныеСредстваСервер.ПроверитьЗаполнитьКассуОрганизацииПоВладельцу(Объект.Организация, Объект.Касса, Объект.ФормаОплаты);
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЗаполнитьДоговорПоУмолчанию();
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
ОбновитьТекстСчетаФактурыКомиссионеру();
ОбновитьТекстСчетаФактурыПолученные();
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
ПересчитатьКоличествоРНПТ();
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Организация");
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Организация");
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
ЗаполнитьСписокВыбораГрузоотправитель();
КонецПроцедуры
&НаСервере
Процедура ВалютаПриИзмененииСервер(НоваяВалюта, ПересчитатьСуммы)
ЗаполнитьДоговорПоУмолчанию();
Если ПересчитатьСуммы Тогда
ПродажиСервер.ПересчитатьСуммуДокументаВВалюту(
Объект,
ВалютаДокумента,
Объект.Валюта,
Истина,
Истина);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Валюта");
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Валюта");
КонецПроцедуры
&НаСервере
Процедура ПартнерПриИзмененииСервер()
МассивИзмененныхРеквизитов = Новый Массив;
МассивИзмененныхРеквизитов.Добавить("Партнер");
Если ИспользоватьСоглашенияСКлиентами Тогда
ЗаполнитьУсловияПродаж();
МассивИзмененныхРеквизитов.Добавить("Валюта");
МассивИзмененныхРеквизитов.Добавить("НаправлениеДеятельности");
МассивИзмененныхРеквизитов.Добавить("Организация");
МассивИзмененныхРеквизитов.Добавить("Контрагент");
МассивИзмененныхРеквизитов.Добавить("Договор");
КонецЕсли;
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
ПартнерыИКонтрагенты.ЗаполнитьКонтактноеЛицоПартнераПоУмолчанию(Объект.Партнер, Объект.КонтактноеЛицо);
ВалютаДокумента = Объект.Валюта;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, МассивИзмененныхРеквизитов);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
ОбновитьТекстСчетаФактурыКомиссионеру();
ОбновитьТекстСчетаФактурыПолученные();
УправлениеЭлементамиФормы();
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость, Объект.Договор);
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость, Объект.Договор);
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ЗаполнитьДоговорПоУмолчанию();
КонецЕсли;
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
ЗаполнитьСписокВыбораГрузоотправитель();
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Контрагент");
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииСервер(ТекстСообщения = "")
Если ЗначениеЗаполнено(Объект.Договор) Тогда
ВидЦеныКомиссионера = ПолучитьВидЦеныДоговора("ВидЦенУчетный");
ВидЦеныПродажи = ПолучитьВидЦеныДоговора("ВидЦенПродажи");
Если (Не ВидЦеныКомиссионера.ЦенаВключаетНДС = Неопределено
И Не Объект.ЦенаВключаетНДС = ВидЦеныКомиссионера.ЦенаВключаетНДС)
Или (Не ВидЦеныПродажи.ЦенаВключаетНДС = Неопределено
И НЕ Объект.ЦенаВключаетНДС = ВидЦеныПродажи.ЦенаВключаетНДС) Тогда
ТекстСообщения = НСтр("ru='Признак ""Цена включает НДС"" различается в виде цен договора и документа'");
КонецЕсли;
КонецЕсли;
ПродажиСервер.ЗаполнитьБанковскиеСчетаПоДоговору(Объект.Договор, Объект.БанковскийСчет);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Договор");
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Договор");
КонецПроцедуры
&НаСервере
Процедура НалогообложениеНДСПриИзмененииСервер()
КэшированныеЗначенияСлужебный = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначенияСлужебный);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС");
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
КэшированныеЗначенияСлужебный.ОбработанныеСтроки,
СтруктураДействий,
Объект.Товары,
Неопределено);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, Неопределено);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
РассчитыватьВознаграждение = Истина;
УчетНДСУП.УстановитьВидимостьКомандыЗаполнитьСтавкуНДС(ЭтотОбъект);
АктулизироватьСтавкаНДСВознаграждения();
КонецПроцедуры
&НаСервере
Процедура АктулизироватьСтавкаНДСВознаграждения()
СтруктураЗаполненияСтавкиНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ТекущаяСтрока = Новый Структура("СтавкаНДС", Справочники.СтавкиНДС.ПустаяСсылка());
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", СтруктураЗаполненияСтавкиНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, Неопределено);
Объект.СтавкаНДСВознаграждения = ТекущаяСтрока.СтавкаНДС;
Объект.СуммаНДСВознаграждения = УчетНДСУПКлиентСервер.РассчитатьСуммуНДС(Объект.СуммаВознаграждения,
УчетНДСУПКлиентСервер.ЗначениеСтавкиНДС(Объект.СтавкаНДСВознаграждения));
КонецПроцедуры
&НаСервере
Процедура ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения)
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
Элементы.ТоварыСумма.Видимость = Не Объект.ЦенаВключаетНДС;
КонецПроцедуры
&НаСервере
Процедура СоглашениеПриИзмененииСервер()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ЗаполнитьУсловияПродажПоСоглашению();
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(ДокументОбъект);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
ЗаполнитьПризнакКомиссионерНеВедетУчетПоРНПТНаСервере();
КомиссионнаяТорговляСервер.РассчитатьСуммуВознаграждения(Объект,, Истина);
РассчитыватьВознаграждение = Ложь;
СтруктураХарактеристикиНоменклатуры = Новый Структура;
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураХарактеристикиНоменклатуры);
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, СтруктураХарактеристикиНоменклатуры);
ВалютаДокумента = Объект.Валюта;
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ЗаполнитьПризнакКомиссионерНеВедетУчетПоРНПТНаСервере();
МассивИзмененныхРеквизитов = Новый Массив;
МассивИзмененныхРеквизитов.Добавить("Партнер");
МассивИзмененныхРеквизитов.Добавить("Валюта");
МассивИзмененныхРеквизитов.Добавить("НаправлениеДеятельности");
МассивИзмененныхРеквизитов.Добавить("Организация");
МассивИзмененныхРеквизитов.Добавить("Контрагент");
МассивИзмененныхРеквизитов.Добавить("Договор");
МассивИзмененныхРеквизитов.Добавить("СпособРасчетаВознаграждения");
МассивИзмененныхРеквизитов.Добавить("УдержатьВознаграждение");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, МассивИзмененныхРеквизитов);
УправлениеЭлементамиФормы();
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость, Объект.Договор);
ОбновитьТекстСчетаФактурыКомиссионеру();
ОбновитьТекстСчетаФактурыПолученные();
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Договор");
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
КонецПроцедуры
&НаСервере
Функция ДоговорПриИзмененииЗавершениеСервер()
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
ЦеныРассчитаны = ЗаполнитьЦеныПоВидуЦен("ВидЦенУчетный");
ЦеныРассчитаны = ЗаполнитьЦеныПоВидуЦен("ВидЦенПродажи");
АктулизироватьСтавкаНДСВознаграждения();
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Процедура УслугаПриИзмененииСервер()
КомиссионнаяТорговляСервер.ЗаполнитьСтавкуНДСкомиссионногоВознаграждения(Объект, ПроцентНДС);
КонецПроцедуры
&НаСервере
Процедура СпособРасчетаВознагражденияПриИзмененииСервер()
УправлениеЭлементамиФормы();
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "СпособРасчетаВознаграждения");
ОбновитьТекстСчетаФактурыПолученные();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПризнакКомиссионерНеВедетУчетПоРНПТНаСервере()
КомиссионерНеВедетУчетПоРНПТ =
Не Справочники.СоглашенияСКлиентами.КомиссионерВедетУчетПоРНПТ(Объект.Соглашение);
КонецПроцедуры
&НаСервере
Функция ДатаПриИзмененииСервер(ПересчитыватьЦены)
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров =
УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(Объект.Дата);
УчетПрослеживаемыхТоваровЛокализация.УстановитьВидимостьКоличестваРНПТ(ЭтаФорма, Объект.Дата);
Если Не Элементы.ТоварыГруппаКоличествоПоРНПТ.Видимость Тогда
ПересчитатьКоличествоРНПТ();
КонецЕсли;
Если ПересчитыватьЦены Тогда
ЦеныРассчитаны = ЗаполнитьЦеныПоСоглашениюСервер();
Иначе
ЦеныРассчитаны = Ложь;
КонецЕсли;
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
Возврат ЦеныРассчитаны;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(Форма, СтруктураДействий)
Если Форма.КомиссионерНеВедетУчетПоРНПТ Тогда
Возврат;
КонецЕсли;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Форма.Объект,
СтруктураДействий,
"Партнер");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСерияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьПодборСерий(Элемент.ТекстРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСерияПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ВыбранноеЗначение = НоменклатураКлиентСервер.ВыбраннаяСерия();
ВыбранноеЗначение.Значение = ТекущаяСтрока.Серия;
ВыбранноеЗначение.ИдентификаторТекущейСтроки = ТекущаяСтрока.ПолучитьИдентификатор();
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтаФорма, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецПроцедуры
#КонецОбласти
#Область ПодборыИОбработкаПроверкиКоличества
&НаСервере
Функция ПоместитьТоварыВХранилище(Знач Товары, УникальныйИдентификатор)
АдресПлатежейВХранилище = ПоместитьВоВременноеХранилище(
Товары.Выгрузить(,"Номенклатура, Характеристика, НомерГТД, Количество, КоличествоПоРНПТ"),
УникальныйИдентификатор);
Возврат АдресПлатежейВХранилище;
КонецФункции
&НаСервере
Функция ПоместитьТоварыВХранилищеССерией(Знач Товары, УникальныйИдентификатор)
АдресПлатежейВХранилище = ПоместитьВоВременноеХранилище(
Товары.Выгрузить(,"НомерСтроки, Номенклатура, Характеристика, НомерГТД, Серия, Количество"),
УникальныйИдентификатор);
Возврат АдресПлатежейВХранилище;
КонецФункции
&НаСервере
Функция ПоместитьТоварыИВидыЗапасовВХранилище()
Возврат ЗапасыСервер.ПоместитьТоварыИВидыЗапасовВХранилище(ЭтотОбъект);
КонецФункции
&НаСервере
Процедура ПолучитьВидыЗапасовИзХранилища(ВыбранноеЗначение)
ЗапасыСервер.ОбработатьВводВидовЗапасовВручную(ВыбранноеЗначение, ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПолучитьТоварыИзХранилища(АдресПлатежейВХранилище)
Перем КэшированныеЗначения;
Объект.Товары.Загрузить(ПолучитьИзВременногоХранилища(АдресПлатежейВХранилище));
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Дата", ?(ЗначениеЗаполнено(Объект.КонецПериода), Объект.КонецПериода, Объект.Дата));
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, СтавкаНДС, ВидЦены");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
Объект.Товары,
,
ПараметрыЗаполнения,
СтруктураДействий);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиПоСуммеСНДС");
СтруктураДействий.Вставить("ПересчитатьЦенуПродажиПоСуммеПродажи");
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС");
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
СтруктураХарактеристикиНоменклатуры = Новый Структура;
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, СтруктураХарактеристикиНоменклатуры);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ПересчитатьКоличествоРНПТ();
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораПодборПереданныхТоваров(ВыбранноеЗначение, ЦеныРассчитаны)
МассивСтрокДляПересчетаЦен = Новый Массив();
ОбрабатываемыеСтроки = Новый Массив();
ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СвернутьНомераГТД = Не ИспользоватьУчетПрослеживаемыхИмпортныхТоваров Или КомиссионерНеВедетУчетПоРНПТ;
ПроверитьСериюРассчитатьСтатус = Новый Структура;
ПроверитьСериюРассчитатьСтатус.Вставить("Склад", ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка"));
ПроверитьСериюРассчитатьСтатус.Вставить("ПараметрыУказанияСерий", ПараметрыУказанияСерий);
СтруктураДействий = Новый Структура();
СтруктураДействий.Вставить("ПересчитатьКоличествоУпаковок");
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПроверитьСериюРассчитатьСтатус);
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу");
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу");
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Партнер");
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
ПоискТоваров = Новый Структура();
ПоискТоваров.Вставить("Номенклатура", СтрокаТовара.Номенклатура);
ПоискТоваров.Вставить("Характеристика", СтрокаТовара.Характеристика);
ПоискТоваров.Вставить("Серия", СтрокаТовара.Серия);
Если Не СвернутьНомераГТД Тогда
ПоискТоваров.Вставить("НомерГТД", СтрокаТовара.НомерГТД);
КонецЕсли;
СтрокиТоваров = Объект.Товары.НайтиСтроки(ПоискТоваров);
Если СтрокиТоваров.Количество() = 0 Тогда
Если Объект.ПоРезультатамИнвентаризации И СтрокаТовара.КоличествоПодобрано = 0 Тогда
Продолжить;
КонецЕсли;
ТекущаяСтрока = Объект.Товары.Добавить();
ИначеЕсли СтрокиТоваров.Количество() = 1 Тогда
ТекущаяСтрока = СтрокиТоваров[0];
Если Объект.ПоРезультатамИнвентаризации И СтрокаТовара.КоличествоПодобрано = 0 Тогда
Объект.Товары.Удалить(ТекущаяСтрока);
Продолжить;
КонецЕсли;
ИначеЕсли СтрокиТоваров.Количество() > 1 Тогда
Для Каждого СтрокаКУдалению Из СтрокиТоваров Цикл
Объект.Товары.Удалить(СтрокаКУдалению);
КонецЦикла;
Если Объект.ПоРезультатамИнвентаризации И СтрокаТовара.КоличествоПодобрано = 0 Тогда
Продолжить;
КонецЕсли;
ТекущаяСтрока = Объект.Товары.Добавить();
КонецЕсли;
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара);
Если ТекущаяСтрока.Количество <> СтрокаТовара.КоличествоПодобрано Тогда
МассивСтрокДляПересчетаЦен.Добавить(ТекущаяСтрока);
КонецЕсли;
ТекущаяСтрока.Количество = СтрокаТовара.КоличествоПодобрано;
ТекущаяСтрока.КоличествоУпаковокУчет = СтрокаТовара.КоличествоОстаток;
ТекущаяСтрока.КоличествоУпаковокФакт = СтрокаТовара.КоличествоОсталосьПодобрать;
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
ЗаполнитьЦеныПоВидуЦен("ВидЦенУчетный", МассивСтрокДляПересчетаЦен);
ЗаполнитьЦеныПоВидуЦен("ВидЦенПродажи", МассивСтрокДляПересчетаЦен);
СобытияФорм.ПриИзмененииЭлемента(ЭтотОбъект, "Товары");
КонецПроцедуры
#КонецОбласти
#Область ШтрихкодыИТорговоеОборудование
&НаКлиенте
Процедура ОбработатьШтрихкоды(ДанныеШтрихкодов)
Если Не ШтрихкодированиеНоменклатурыКлиент.ШтрихкодыВалидны(ДанныеШтрихкодов) Тогда
Возврат;
КонецЕсли;
СтруктураДействийСДобавленнымиСтроками = Новый Структура;
Если (ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение))
Или (Не ИспользоватьСоглашенияСКлиентами И ИспользуетсяЦенообразование25) Тогда
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьУсловияПродаж", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияУсловийПродажВСтрокеТЧ(Объект));
Иначе
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
КонецЕсли;
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СамообслуживаниеКлиентСервер.ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковокОтчетКомиссионера(СтруктураДействийСДобавленнымиСтроками, Объект);
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействийСДобавленнымиСтроками);
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтаФорма, СтруктураДействийСДобавленнымиСтроками);
СтруктураДействийСИзмененнымиСтроками = Новый Структура;
СамообслуживаниеКлиентСервер.ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковокОтчетКомиссионера(СтруктураДействийСИзмененнымиСтроками, Объект);
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтаФорма, СтруктураДействийСИзмененнымиСтроками);
СтруктураДействий = ШтрихкодированиеНоменклатурыКлиент.ПараметрыОбработкиШтрихкодов();
СтруктураДействий.Штрихкоды = ДанныеШтрихкодов;
СтруктураДействий.СтруктураДействийСДобавленнымиСтроками = СтруктураДействийСДобавленнымиСтроками;
СтруктураДействий.СтруктураДействийСИзмененнымиСтроками = СтруктураДействийСИзмененнымиСтроками;
СтруктураДействий.ПараметрыУказанияСерий = ?(КомиссионныеПродажи25, ПараметрыУказанияСерий, Неопределено);
СтруктураДействий.ИмяКолонкиКоличество = "КоличествоУпаковок";
ОбработатьШтрихкодыСервер(СтруктураДействий, КэшированныеЗначения);
ШтрихкодированиеНоменклатурыКлиент.ОбработатьНеизвестныеШтрихкоды(СтруктураДействий, КэшированныеЗначения, ЭтаФорма);
Если ШтрихкодированиеНоменклатурыКлиент.НужноОткрытьФормуУказанияСерийПослеОбработкиШтрихкодов(СтруктураДействий) Тогда
ТекущиеДанныеИдентификатор = СтруктураДействий.МассивСтрокССериями[0];
ПодключитьОбработчикОжидания("ОткрытьПодборСерийПриСканированииШтрихкодаНоменклатуры", 0.1, Истина);
КонецЕсли;
РассчитыватьВознаграждение = Истина;
Если СтруктураДействий.ТекущаяСтрока <> Неопределено Тогда
Элементы.Товары.ТекущаяСтрока = СтруктураДействий.ТекущаяСтрока;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьШтрихкодыСервер(СтруктураПараметровДействия,КэшированныеЗначения)
ШтрихкодированиеНоменклатурыСервер.ОбработатьШтрихкоды(ЭтаФорма, Объект, СтруктураПараметровДействия, КэшированныеЗначения);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
КонецПроцедуры
#КонецОбласти
#Область УправлениеЭлементамиФормы
&НаСервере
Процедура УправлениеЭлементамиФормы()
Перем МассивВсехРеквизитов;
Перем МассивРеквизитовОперации;
Документы.ОтчетКомиссионера.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект.СпособРасчетаВознаграждения,
МассивВсехРеквизитов,
МассивРеквизитовОперации);
ДенежныеСредстваСервер.УстановитьДоступностьЭлементовПоМассиву(
Элементы,
МассивВсехРеквизитов,
МассивРеквизитовОперации);
Элементы.ТоварыСумма.Видимость = Не Объект.ЦенаВключаетНДС;
Элементы.ТоварыКоличествоУпаковокУчет.Видимость = Объект.ПоРезультатамИнвентаризации;
Элементы.ТоварыКоличествоУпаковокФакт.Видимость = Объект.ПоРезультатамИнвентаризации;
Элементы.ТоварыПересчитатьОстаткиПоДаннымУчета.Видимость = Объект.ПоРезультатамИнвентаризации;
Элементы.ТоварыРазбитьСтроку.Видимость = Не Объект.ПоРезультатамИнвентаризации;
Элементы.ТоварыКонтекстноеМенюРазбитьСтроку.Видимость = Не Объект.ПоРезультатамИнвентаризации;
СпособРасчетаНеРассчитывается = (Объект.СпособРасчетаВознаграждения = Перечисления.СпособыРасчетаКомиссионногоВознаграждения.НеРассчитывается);
Элементы.ЗачетОплатыПоВознаграждению.Доступность = Не Объект.УдержатьВознаграждение И Не СпособРасчетаНеРассчитывается
И Объект.СуммаВознаграждения > 0;
Элементы.ДатаПлатежа.Доступность = Не Объект.УдержатьВознаграждение И Не СпособРасчетаНеРассчитывается;
СпособРасчетаПроизвольнаяСумма = (Объект.СпособРасчетаВознаграждения = Перечисления.СпособыРасчетаКомиссионногоВознаграждения.ПроизвольнаяСумма);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПроцентВознаграждения", "Видимость", Не СпособРасчетаПроизвольнаяСумма);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "СуммаВознаграждения", "ТолькоПросмотр", Не СпособРасчетаПроизвольнаяСумма);
УчетПрослеживаемыхТоваровЛокализация.УстановитьВидимостьКоличестваРНПТ(ЭтаФорма, Объект.Дата);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ИспользоватьСоглашенияСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСКлиентами");
ИспользоватьГрафикиОплаты = ПолучитьФункциональнуюОпцию("ИспользоватьГрафикиОплаты");
ИспользоватьУпрощеннуюСхемуОплаты = ПолучитьФункциональнуюОпцию("ИспользоватьУпрощеннуюСхемуОплатыВПродажах");
ИспользоватьНаправленияДеятельности = ПолучитьФункциональнуюОпцию("ИспользоватьУчетДоходовПоНаправлениямДеятельности");
ИспользоватьПартнеровКакКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров =
УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(Объект.Дата);
ПараметрыУказанияСерий = ПараметрыУказанияСерий();
КомиссионныеПродажи25 = ?(Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера,
Истина, Ложь);
Элементы.ГруппаКонтрагент.Видимость = Не ИспользоватьПартнеровКакКонтрагентов;
Если НЕ ИспользоватьСоглашенияСКлиентами Тогда
ПараметрыВыбораВидаЦены = ЗначениеНастроекПовтИсп.ПараметрыВыбораВидаЦеныПоУмолчанию();
ПараметрыВыбораВидаЦены.ЦенаВключаетНДС = Объект.ЦенаВключаетНДС;
ПараметрыВыбораВидаЦены.ИспользоватьПриПродаже = Истина;
ПараметрыВыбораВидаЦены.Статус = Перечисления.СтатусыДействияВидовЦен.Действует;
ВидЦеныПоУмолчанию = ЗначениеНастроекПовтИсп.ВидЦеныПоУмолчанию(ПараметрыВыбораВидаЦены);
КонецЕсли;
ВалютаДокумента = Объект.Валюта;
УправлениеЭлементамиФормы();
ПроцентНДС = ЦенообразованиеКлиентСервер.ПолучитьСтавкуНДСЧислом(Объект.СтавкаНДСВознаграждения);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
СтруктураХарактеристикиНоменклатуры = Новый Структура;
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураХарактеристикиНоменклатуры);
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, СтруктураХарактеристикиНоменклатуры);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость);
ОбновитьТекстСчетаФактурыКомиссионеру();
ОбновитьТекстСчетаФактурыПолученные();
ЗаполнитьСписокВыбораГрузоотправитель();
УстановитьВидимостьЭлементовСерий();
РаботаСТабличнымиЧастями.ИнициализироватьКэшСтрок(Элементы.Товары);
ПараметрыЗаполнения = Документы.ОтчетКомиссионера.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСПродажи(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
ЗаполнитьПризнакКомиссионерНеВедетУчетПоРНПТНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДоговорПоУмолчанию()
Если Объект.ПорядокРасчетов = Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов
И ИспользоватьНаправленияДеятельности Тогда
Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(
Объект,
Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию,
Объект.Валюта,
Объект.НаправлениеДеятельности);
Иначе
Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(
Объект,
Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию,
Объект.Валюта);
КонецЕсли;
Если Договор <> Объект.Договор Тогда
Объект.Договор = Договор;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Договор");
ПродажиСервер.ЗаполнитьБанковскиеСчетаПоДоговору(Объект.Договор, Объект.БанковскийСчет);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РассчитатьКомиссионноеВознаграждениеСервер()
КомиссионнаяТорговляСервер.РассчитатьСуммуВознаграждения(Объект,, Истина);
РассчитыватьВознаграждение = Ложь;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Функция ЗаполнитьЦеныПоСоглашениюСервер(ТекстОшибки = "")
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Дата", ?(ЗначениеЗаполнено(Объект.КонецПериода), Объект.КонецПериода, Объект.Дата));
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
ПараметрыЗаполнения.Вставить("Партнер", Объект.Партнер);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, СтавкаНДС, ВидЦены");
Если КомиссионныеПродажи25 Тогда
ПараметрыЗаполнения.Вставить("ВидЦены", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ВидЦенПродажи"));
Иначе
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Соглашение, "ЦенаВключаетНДС") <> Объект.ЦенаВключаетНДС Тогда
ТекстОшибки =
НСтр("ru = 'Установленные значения полей ""Цена включает НДС"" в документе и соглашении разные.'");
Возврат Ложь;
КонецЕсли;
КонецЕсли;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",
Новый Структура("НалогообложениеНДС, Дата, Организация", Объект.НалогообложениеНДС, Объект.Дата, Объект.Организация));
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ЦеныРассчитаны = ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
Объект.Товары,
,
ПараметрыЗаполнения,
СтруктураДействий);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиПоСуммеСНДС");
СтруктураДействий.Вставить("ПересчитатьЦенуПродажиПоСуммеПродажи");
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС");
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, Неопределено);
РассчитыватьВознаграждение = Истина;
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьЦеныПоВидуЦен(ПолеВидЦеныДоговора, СтрокиДляПересчета = Неопределено)
ЦеныРассчитаны = Ложь;
ВидЦены = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, ПолеВидЦеныДоговора);
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПолеЦена = ?(ПолеВидЦеныДоговора = "ВидЦенПродажи", "ЦенаПродажи", "Цена");
ПолеВидЦены = ?(ПолеВидЦеныДоговора = "ВидЦенПродажи", "ВидЦеныПродажи", "ВидЦены");
ПоляЗаполнения = "%1, %2";
ПоляЗаполнения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ПоляЗаполнения, ПолеЦена, ПолеВидЦены);
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Дата", ?(ЗначениеЗаполнено(Объект.КонецПериода), Объект.КонецПериода, Объект.Дата));
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
ПараметрыЗаполнения.Вставить("Партнер", Объект.Партнер);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", ПоляЗаполнения);
ПараметрыЗаполнения.Вставить("ВидЦены",ВидЦены);
ПараметрыЗаполнения.Вставить("ПолеЦена", ПолеЦена);
ПараметрыЗаполнения.Вставить("ПолеВидЦены", ПолеВидЦены);
СтруктураДействий = Новый Структура;
Если ПолеВидЦеныДоговора = "ВидЦенПродажи" Тогда
СтруктураДействий.Вставить("ПересчитатьСуммуПродажи");
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС", СтруктураПересчетаСуммы);
Иначе
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
Если ЗначениеЗаполнено(ВидЦены) Тогда
ЦеныРассчитаны = ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
Объект.Товары,
СтрокиДляПересчета,
ПараметрыЗаполнения,
СтруктураДействий);
ИначеЕсли СтрокиДляПересчета <> Неопределено Тогда
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
СтрокиДляПересчета,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
Иначе
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
КонецЕсли;
РассчитыватьВознаграждение = Истина;
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Процедура ПересчитатьОстаткиПоДаннымУчетаСервер(НомерСтроки = Неопределено)
КомиссионнаяТорговляСервер.ПересчитатьОстаткиПоДаннымУчета(
Объект,
Объект.КонецПериода,
Истина,
РассчитыватьВознаграждение,
НомерСтроки);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтоговыеПоказателиОтчетаКомиссионера(Форма)
ОтображатьИтогСуммыНДС = УчетНДСУПКлиентСервер.ОтображатьНДСВИтогахДокументаПродажи(Форма.Объект.НалогообложениеНДС);
Если ОтображатьИтогСуммыНДС Тогда
Форма.Элементы.ГруппаСтраницыНДС.ТекущаяСтраница = Форма.Элементы.СтраницаСНДС;
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоСНДС;
Иначе
Форма.Элементы.ГруппаСтраницыНДС.ТекущаяСтраница = Форма.Элементы.СтраницаБезНДС;
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоБезНДС;
КонецЕсли;
Если Форма.Объект.СпособРасчетаВознаграждения = ПредопределенноеЗначение("Перечисление.СпособыРасчетаКомиссионногоВознаграждения.НеРассчитывается") Тогда
Форма.Элементы.СуммаВознагражденияВсего.Видимость = Ложь;
Иначе
Форма.Элементы.СуммаВознагражденияВсего.Видимость = Истина;
КонецЕсли;
ПроцентПлатежейОбщий = 0;
ПредыдущееЗначениеДаты = Дата(1, 1, 1);
Форма.НомерСтрокиПолнойОплаты = 0;
Для Каждого ТекСтрока Из Форма.Объект.ЭтапыГрафикаОплаты Цикл
ПроцентПлатежейОбщий = ПроцентПлатежейОбщий + ТекСтрока.ПроцентПлатежа;
ТекСтрока.ПроцентЗаполненНеВерно = (ПроцентПлатежейОбщий > 100);
ТекСтрока.ДатаЗаполненаНеВерно = (ПредыдущееЗначениеДаты > ТекСтрока.ДатаПлатежа);
ПредыдущееЗначениеДаты = ТекСтрока.ДатаПлатежа;
Если ПроцентПлатежейОбщий = 100 Тогда
Форма.НомерСтрокиПолнойОплаты = ТекСтрока.НомерСтроки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьТекстСчетаФактурыКомиссионеру()
ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактурКомиссионеруСервер(Объект);
СчетаФактурыКомиссионеру = УчетНДСУП.СчетаФактурыКомиссионеруНаОсновании(ПараметрыРегистрации);
ЭтаФорма.ТекстСчетаФактурыКомиссионеру = СчетаФактурыКомиссионеру.Представление;
КонецПроцедуры
&НаСервере
Процедура ОбновитьТекстСчетаФактурыПолученные()
ПараметрыРегистрации = Документы.ОтчетКомиссионера.ПараметрыРегистрацииСчетовФактурПолученных(Объект);
СчетаФактурыПолученныеНаОсновании = УчетНДСУП.СчетаФактурыПолученныеНаОсновании(ПараметрыРегистрации);
ТекстСчетаФактурыПолученные = СчетаФактурыПолученныеНаОсновании.Представление;
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьЭтапыОплатыНажатиеЗавершение", ЭтотОбъект);
ПоместитьЭтапыОплатыВоВременноеХранилище(Элемент.Имя);
ВзаиморасчетыКлиент.НадписьЭтапыОплатыНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение );
КонецПроцедуры
&НаСервере
Процедура ПоместитьЭтапыОплатыВоВременноеХранилище(ИмяЭлемента)
ВзаиморасчетыСервер.ПоместитьЭтапыОплатыВоВременноеХранилище(ЭтаФорма, ИмяЭлемента);
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ИзмененныеРеквизиты = Результат.СтарыеЗначенияИзмененныхРеквизитов;
ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты);
КонецЕсли;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияПродаж()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ЗаполнитьУсловияПродажПоУмолчанию();
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, Неопределено);
ЗаполнитьПризнакКомиссионерНеВедетУчетПоРНПТНаСервере();
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
КонецПроцедуры
&НаСервере
Процедура ПолучитьЗагруженныеТоварыИзХранилища(АдресТоваровВХранилище)
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиПоСуммеСНДС");
СтруктураДействий.Вставить("ПересчитатьЦенуПродажиПоСуммеПродажи");
СамообслуживаниеКлиентСервер.ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковокОтчетКомиссионера(СтруктураДействий, Объект);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтаФорма, СтруктураДействий);
ТоварыИзХранилища = ПолучитьИзВременногоХранилища(АдресТоваровВХранилище);
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ОбрабатываемыеСтроки = Новый Массив();
Для Каждого СтрокаТоваров Из ТоварыИзХранилища Цикл
СтрокаТЧТовары = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧТовары, СтрокаТоваров);
ОбрабатываемыеСтроки.Добавить(СтрокаТЧТовары);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДСПродажи()
ПараметрыЗаполнения = Документы.ОтчетКомиссионера.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСПродажи(Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСПродажи(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецПроцедуры
&НаСервере
Функция ПолучитьВидЦеныДоговора(ПолеВидаЦен)
СтруктураПараметров = ЦеныПредприятияЗаполнениеСервер.НовыйПараметрыПроверкиВидаЦенДоговора();
СтруктураПараметров.ПолеВидаЦен = ПолеВидаЦен;
Если ЗначениеЗаполнено(Объект.Договор) Тогда
ВидЦены = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, ПолеВидаЦен);
Если ЗначениеЗаполнено(ВидЦены) Тогда
СтруктураПараметров.ВидЦены = ВидЦены;
СтруктураПараметров.ЦенаВключаетНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидЦены, "ЦенаВключаетНДС");
КонецЕсли;
КонецЕсли;
Возврат СтруктураПараметров;
КонецФункции
#КонецОбласти
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ЗаполнитьПодчиненныеСвойстваПоСтатистике(ИмяРеквизитаРодителя)
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, ИмяРеквизитаРодителя);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если КомиссионныеПродажи25 Тогда
ОценкаПроизводительностиКлиент.ЗамерВремени(Истина,
"Документ.ОтчетКомиссионера.ФормаДокумента.Команда.ПодобратьПереданныеТовары");
АдресПлатежейВХранилище = ПоместитьТоварыВХранилищеССерией(
Объект.Товары,
УникальныйИдентификатор);
ПараметрыПодбора = Новый Структура;
ПараметрыПодбора.Вставить("Ссылка", Объект.Ссылка);
ПараметрыПодбора.Вставить("Владелец", Объект.Партнер);
ПараметрыПодбора.Вставить("Организация", Объект.Организация);
ПараметрыПодбора.Вставить("Договор", Объект.Договор);
ПараметрыПодбора.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
ПараметрыПодбора.Вставить("ПоРезультатамИнвентаризации", Объект.ПоРезультатамИнвентаризации);
ПараметрыПодбора.Вставить("АдресТоваровНакладнойВХранилище", АдресПлатежейВХранилище);
ПараметрыПодбора.Вставить("МенеджерОбъекта", "Документ.ОтчетКомиссионера");
ПараметрыПодбора.Вставить("СвернутьНомераГТД", Не ИспользоватьУчетПрослеживаемыхИмпортныхТоваров
Или КомиссионерНеВедетУчетПоРНПТ);
ПараметрыПодбора.Вставить("ИспользоватьУчетПрослеживаемыхИмпортныхТоваров", ИспользоватьУчетПрослеживаемыхИмпортныхТоваров);
ПараметрыПодбора.Вставить("КомиссионерНеВедетУчетПоРНПТ", КомиссионерНеВедетУчетПоРНПТ);
ОткрытьФорму("Обработка.ПодборТоваровПереданныхНаОтветственноеХранение.Форма.Форма",
ПараметрыПодбора,
ЭтотОбъект,
УникальныйИдентификатор);
Иначе
АдресПлатежейВХранилище = ПоместитьТоварыВХранилище(
Объект.Товары,
УникальныйИдентификатор);
ПараметрыПодбора = Новый Структура;
ПараметрыПодбора.Вставить("АдресПлатежейВХранилище", АдресПлатежейВХранилище);
ПараметрыПодбора.Вставить("Организация", Объект.Организация);
ПараметрыПодбора.Вставить("Партнер", Объект.Партнер);
ПараметрыПодбора.Вставить("Соглашение", Объект.Соглашение);
ПараметрыПодбора.Вставить("Дата", ?(ЗначениеЗаполнено(Объект.КонецПериода), Объект.КонецПериода, Объект.Дата));
ПараметрыПодбора.Вставить("ПоРезультатамИнвентаризации", Объект.ПоРезультатамИнвентаризации);
ПараметрыПодбора.Вставить("ИспользоватьУчетПрослеживаемыхИмпортныхТоваров", ИспользоватьУчетПрослеживаемыхИмпортныхТоваров);
ОткрытьФорму(
"ОбщаяФорма.ПодборПоТоварамПереданнымНаКомиссию",
ПараметрыПодбора,
ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьОстаткиПоДаннымУчетаЗавершение(Результат, ДополнительныеПараметры) Экспорт
ПересчитатьОстаткиПоДаннымУчетаСервер();
ПоказатьОповещениеПользователя(
НСтр("ru = 'Остаток (учет) заполнен.'"),
,
НСтр("ru='Остаток по данным учета в документе заполнен.'"),
БиблиотекаКартинок.Информация32);
КонецПроцедуры
&НаКлиенте
Процедура ПоискПоШтрихкодуЗавершение(ДанныхШтрихкода, ДополнительныеПараметры) Экспорт
ОбработатьШтрихкоды(ДанныхШтрихкода);
КонецПроцедуры
&НаКлиенте
Процедура РазбитьСтрокуЗавершение(НоваяСтрока, ДополнительныеПараметры) Экспорт
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если НоваяСтрока <> Неопределено Тогда
СтруктураДействий = Новый Структура;
Если Объект.ПоРезультатамИнвентаризации Тогда
СтруктураДействий.Вставить("ПересчитатьКоличествоУпаковокПоФакту");
КонецЕсли;
СамообслуживаниеКлиентСервер.ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковокОтчетКомиссионера(СтруктураДействий, Объект);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтаФорма);
РассчитыватьВознаграждение = Истина;
КонецЕсли;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.РазбитьСтрокуЗавершение(НоваяСтрока, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура НаправлениеДеятельностиПриИзмененииСервер()
ЗаполнитьДоговорПоУмолчанию();
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "НаправлениеДеятельности");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокВыбораГрузоотправитель()
Элементы.Грузоотправитель.СписокВыбора.Очистить();
ОрганизацияГрузоотправитель = НСтр("ru='Организация: %1'");
ОрганизацияГрузоотправитель = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОрганизацияГрузоотправитель, Объект.Организация);
Если ЗначениеЗаполнено(Объект.Организация) Тогда
Элементы.Грузоотправитель.СписокВыбора.Добавить(,ОрганизацияГрузоотправитель);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
Элементы.Грузоотправитель.СписокВыбора.Добавить(Объект.Контрагент,Объект.Контрагент);
КонецЕсли;
Элементы.Грузоотправитель.ПодсказкаВвода = ОрганизацияГрузоотправитель;
КонецПроцедуры
&НаСервере
Процедура УправлениеСвязямиПараметровВыбораРеквизитовФормы()
ЭлементФормы = Элементы.Соглашение;
НовыеСвязиПараметровВыбора = Новый Массив;
Для Каждого СвязьПараметровВыбора Из ЭлементФормы.СвязиПараметровВыбора Цикл
Если Не СвязьПараметровВыбора.Имя = "Отбор.ХозяйственнаяОперация" Тогда
НовыеСвязиПараметровВыбора.Добавить(СвязьПараметровВыбора);
КонецЕсли;
КонецЦикла;
ПараметрВыбора = Новый СвязьПараметраВыбора("Отбор.ХозяйственнаяОперация", "ХозяйственнаяОперацияПоУмолчанию", РежимИзмененияСвязанногоЗначения.НеИзменять);
НовыеСвязиПараметровВыбора.Добавить(ПараметрВыбора);
ЭлементФормы.СвязиПараметровВыбора = Новый ФиксированныйМассив(НовыеСвязиПараметровВыбора);
КонецПроцедуры
&НаСервере
Процедура УдержатьВознаграждениеПриИзмененииСервер()
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "УдержатьВознаграждение");
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаСервере
Процедура ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты)
ВзаиморасчетыСервер.ЗагрузитьЭтапыОплатыИзВременногоХранилища(ЭтаФорма);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, ИзмененныеРеквизиты, Истина);
КонецПроцедуры
&НаСервере
Процедура ИзмененаОплатаСервер(ИмяСобытия, Параметр, Источник)
ВзаиморасчетыСервер.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр);
КонецПроцедуры
&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПересчитатьКоличествоРНПТ()
Если Не КомиссионерНеВедетУчетПоРНПТ
И ЗначениеЗаполнено(Объект.Организация) Тогда
ПараметрыПолученияКоэффициентаРНПТ = УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ПараметрыПолученияКоэффициентаРНПТ(
Объект,
"Партнер");
УчетПрослеживаемыхТоваровЛокализация.ЗаполнитьКоличествоПоРНПТВТабличнойЧасти(ПараметрыПолученияКоэффициентаРНПТ,
Объект.Товары);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ОбновитьСтатусыСерий = НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элемент,
КэшированныеЗначения,
ПараметрыУказанияСерий);
Если ОбновитьСтатусыСерий Тогда
ТекущаяСтрокаИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(ТекущаяСтрокаИдентификатор, КэшированныеЗначения);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПослеУдаления(Элемент)
ОбновитьСтатусыСерий = НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элемент,
КэшированныеЗначения,
ПараметрыУказанияСерий,
Истина);
Если ОбновитьСтатусыСерий Тогда
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий);
КонецЕсли;
РассчитыватьВознаграждение = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтавкуНДСЗавершение(СтавкаНДС, ДополнительныеПараметры) Экспорт
Если СтавкаНДС = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", Новый Структура("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС));
СтруктураДействий.Вставить("ПересчитатьСуммуПродажиНДС");
СтруктураДействий.Вставить("ОчиститьСуммуВознаграждения");
ВыделенныеСтроки = РаботаСТабличнымиЧастямиКлиентСервер.ЭлементыКоллекции(
Объект.Товары, Элементы.Товары.ВыделенныеСтроки);
Для каждого СтрокаТабличнойЧасти Из ВыделенныеСтроки Цикл
СтрокаТабличнойЧасти.СтавкаНДС = СтавкаНДС;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ВыделенныеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
РассчитыватьВознаграждение = Истина;
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтотОбъект);
КонецПроцедуры
#Область Серии
&НаСервере
Функция ПараметрыУказанияСерий()
МенеджерОбъекта = Документы.ОтчетКомиссионера;
Возврат Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(Объект, МенеджерОбъекта));
КонецФункции
&НаСервере
Процедура УстановитьВидимостьЭлементовСерий()
Элементы.ТоварыСерия.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
Элементы.ТоварыУказатьСерии.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
Элементы.ТоварыСтатусУказанияСерий.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
Элементы.ТоварыЗаполнитьСерииПоFEFO.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУстановитьВидимостьСерий()
ПараметрыУказанияСерий = ПараметрыУказанияСерий();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
УстановитьВидимостьЭлементовСерий();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПодборСерийПриСканированииШтрихкодаНоменклатуры()
Если ТекущиеДанныеИдентификатор = Неопределено Тогда
Возврат;
КонецЕсли;
ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(ТекущиеДанныеИдентификатор);
ОткрытьПодборСерий(,ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПодборСерий(Текст = "", ТекущиеДанные = Неопределено)
НуженСерверныйВызов = НоменклатураКлиент.ДляУказанияСерийНуженСерверныйВызов(ЭтаФорма,
ПараметрыУказанияСерий,
Текст,
ТекущиеДанные);
Если НуженСерверныйВызов Тогда
Если ТекущиеДанные = Неопределено Тогда
ТекущиеДанныеИдентификатор = Элементы.Товары.ТекущиеДанные.ПолучитьИдентификатор();
Иначе
ТекущиеДанныеИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
КонецЕсли;
ПараметрыФормыУказанияСерий = ПараметрыФормыУказанияСерий(ТекущиеДанныеИдентификатор);
ДополнительныеПараметры = Новый Структура("ПараметрыФормыУказанияСерий", ПараметрыФормыУказанияСерий);
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьПодборСерийЗавершение",
ЭтотОбъект,
ДополнительныеПараметры);
ОткрытьФорму(ПараметрыФормыУказанияСерий.ИмяФормы, ПараметрыФормыУказанияСерий, ЭтаФорма, , , , ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПодборСерийЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ОбработатьУказаниеСерийСервер(ДополнительныеПараметры.ПараметрыФормыУказанияСерий);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПараметрыФормыУказанияСерий(ТекущиеДанныеИдентификатор)
Возврат НоменклатураСервер.ПараметрыФормыУказанияСерий(Объект,
ПараметрыУказанияСерий,
ТекущиеДанныеИдентификатор,
ЭтаФорма);
КонецФункции
&НаСервере
Процедура ОбработатьУказаниеСерийСервер(ПараметрыФормыУказанияСерий)
НоменклатураСервер.ОбработатьУказаниеСерий(Объект, ПараметрыУказанияСерий, ПараметрыФормыУказанияСерий);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(ТекущаяСтрокаИдентификатор,
КэшированныеЗначения)
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Объект, ПараметрыУказанияСерий,
ТекущаяСтрокаИдентификатор, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
Функция ЕстьЗаполненныеСерииПоFEFO()
Возврат НоменклатураСервер.ЕстьСтрокиСЗаполненнымиПоFEFOСериями(Объект.Товары);
КонецФункции
&НаСервере
Функция ЗаполнитьСерииПоFEFOСервер()
Если НоменклатураСервер.ЕстьСтрокиСЗаполняемымиПоFEFOСериями(Объект.Товары) Тогда
НоменклатураСервер.ЗаполнитьСерииПоFEFO(Объект, ПараметрыУказанияСерий);
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура УказатьСерии(Команда)
ОткрытьПодборСерий();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСерииПоFEFO(Команда)
Если ЕстьЗаполненныеСерииПоFEFO() Тогда
Оповещение = Новый ОписаниеОповещения("ЗаполнитьСерииПоFEFOЗавершение", ЭтотОбъект);
НоменклатураКлиент.ЗадатьВопросОПерезаполненииСерийПоFEFO(Оповещение);
Возврат;
КонецЕсли;
Если Не ЗаполнитьСерииПоFEFOСервер() Тогда
НоменклатураКлиент.ПредупредитьОбОтсутствииСтрокЗаполняемыхПоFEFO();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСерииПоFEFOЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
Если Не ЗаполнитьСерииПоFEFOСервер() Тогда
НоменклатураКлиент.ПредупредитьОбОтсутствииСтрокЗаполняемыхПоFEFO();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область НомераГТД
&НаКлиенте
Процедура ОбработатьПодборНомераГТД(РезультатПодбора)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ИдентификаторСтроки = ТекущиеДанные.ПолучитьИдентификатор();
Если ИдентификаторСтроки = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполненыНомераГТД = Ложь;
НомерГТД = Неопределено;
ОбработатьУказаниеНомераГТДСервер(ИдентификаторСтроки, РезультатПодбора, ЗаполненыНомераГТД, НомерГТД);
ЗакупкиКлиент.ОповеститьОЗаполненииНомеровГТДВТабличнойЧасти(ЗаполненыНомераГТД, НомерГТД);
КонецПроцедуры
&НаСервере
Процедура ОбработатьУказаниеНомераГТДСервер(ИдентификаторСтроки,
РезультатПодбора,
ЗаполненыНомераГТД,
НомерГТД)
ДанныеПодбора = ПолучитьИзВременногоХранилища(РезультатПодбора.АдресВоВременномХранилище);
НомерГТД = ?(ДанныеПодбора.ОстаточныйНомерГТД <> Неопределено,
НомерГТД,
ДанныеПодбора.ОсновнойНомерГТД);
ДействияОбработки = Новый Структура;
Если Объект.ПоРезультатамИнвентаризации Тогда
ДействияОбработки.Вставить("ПересчитатьКоличествоУпаковокПоФакту");
КонецЕсли;
ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(ЭтотОбъект, ДействияОбработки);
Если ДанныеПодбора.ОстаточныйНомерГТД <> Неопределено Тогда
СамообслуживаниеКлиентСервер.ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковокОтчетКомиссионера(
ДействияОбработки,
Объект);
КонецЕсли;
ЗакупкиСервер.ОбработатьУказаниеНомераГТД(ЭтотОбъект,
ИдентификаторСтроки,
ДанныеПодбора,
ЗаполненыНомераГТД,
Неопределено,
ДействияОбработки);
РассчитатьИтоговыеПоказателиОтчетаКомиссионера(ЭтотОбъект);
РассчитыватьВознаграждение = Истина;
КонецПроцедуры
#КонецОбласти
#КонецОбласти