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