#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
&НаКлиенте
Перем ПредыдущиеРеквизитыСтроки;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
УстановитьЗаголовокФормы();
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовПродажи")
И Не ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения") Тогда
Элементы.ТаблицаКорректировкиГруппаОтправитель.Видимость = Ложь;
ИначеЕсли Не СкладГруппа Тогда
Элементы.ТаблицаКорректировкиГруппаОтправитель.Заголовок = НСтр("ru = 'Подразделение-отправитель'");
КонецЕсли;
Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
Элементы.ГруппаИтого.ЦветФона = Новый Цвет();
КонецЕсли;
ИспользоватьПартнеровКакКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
ДополнительныеПараметры.Вставить("ОтложеннаяИнициализация", Истина);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
ПараметрыДляВыбора = ПараметрыДляВыбораСтатейИАналитик();
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаРеализации.ПараметрыВыбораСтатейИАналитикДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтотОбъект, Элементы.СтрокаИсправление);
Если Не ЗначениеЗаполнено(Объект.Ссылка)
Или (Параметры.Свойство("ЗначениеКопирования")
И ЗначениеЗаполнено(Параметры.ЗначениеКопирования.ТипКорректировки)) Тогда
ПриЧтенииСозданииНаСервере();
ПодготовитьЗаполнитьУстановитьВидимостьСерий();
Если ЗначениеЗаполнено(ТипПредыдущейКорректировки) Тогда
Объект.ТипКорректировки = ТипПредыдущейКорректировки;
КонецЕсли;
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
УстановитьДоступностьКомандБуфераОбмена();
ПродажиСервер.УстановитьОтметкуНезаполненногоДоговора(Элементы, "Договор");
УстановитьВидимостьКоличестваРНПТ();
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
УстановитьСвязьПараметровВыбораДляЕдиницИзмерений();
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект);
УчетПрослеживаемыхТоваровЛокализация.УстановитьЗаголовокНомерГТД(Элементы, "ТаблицаКорректировкиНомерГТД");
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтотОбъект, Элементы.СтрокаИсправление);
ПриЧтенииСозданииНаСервере();
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтотОбъект);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ОчиститьСлужебныеДанныеСписываемыхИмпортныхТоваров();
ПроверитьНаличиеДублейСтрокВТаблицеИУдалитьСерии(Отказ);
ВыгрузитьТаблицуКорректировкиВДанныеДокумента();
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Заголовок = "";
АвтоЗаголовок = Истина;
ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере();
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
УстановитьПредставлениеСебестоимости();
УстановитьДоступностьЭлементовПоСтатусуСервер();
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ОбновитьОбязательностьСкладаВТЧ();
ОбновитьТекстДокументыНаОсновании();
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект.ДополнительныеСвойства);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
УчетПодакцизныхТоваров.ОбновитьЭлементыУчетаПодакцизныхТоваров(ЭтотОбъект, Ложь, ДатаОснования);
СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "ИзмененРеквизитЗависящийОтСтатуса"
И Параметр.УникальныйИдентификатор = УникальныйИдентификатор Тогда
Если Объект.Согласован Тогда
Объект.Согласован = Ложь;
КонецЕсли;
ПодключитьОбработчикОжидания("Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса", 0.1, Истина);
КонецЕсли;
Если ИмяСобытия = "КопированиеСтрокВБуферОбмена" Тогда
УстановитьДоступностьКомандБуфераОбменаНаКлиенте();
КонецЕсли;
Если ИмяСобытия = "Закрытие_РедактированиеКомплекта"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
ПриОкончанииРедактированияНабора(Параметр.АдресВоВременномХранилище);
КонецЕсли;
Если ИмяСобытия = "РедактироватьНабор"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
ПараметрыКомплекта = Новый Структура;
ПараметрыКомплекта.Вставить("НоменклатураНабора", Параметр.НоменклатураНабора);
ПараметрыКомплекта.Вставить("ХарактеристикаНабора", Параметр.ХарактеристикаНабора);
ПараметрыКомплекта.Вставить("КолонкиНабора", КолонкиНабора());
Если Элементы.ТаблицаКорректировки.ТекущийЭлемент <> Неопределено
И СтрНайти(Элементы.ТаблицаКорректировки.ТекущийЭлемент.Имя, "После") > 0 Тогда
ПараметрыКомплекта.Вставить("СоответствиеИменКолонокДляНабора", СоответствиеИменКолонокНабора());
КонецЕсли;
АдресНабораВоВременномХранилище = АдресНабораВоВременномХранилище(ПараметрыКомплекта);
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("АдресВоВременномХранилище", АдресНабораВоВременномХранилище);
ПараметрыОткрытия.Вставить("НоменклатураНабора", Параметр.НоменклатураНабора);
ПараметрыОткрытия.Вставить("ХарактеристикаНабора", Параметр.ХарактеристикаНабора);
ПараметрыОткрытия.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
ПараметрыОткрытия.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыОткрытия.Вставить("Валюта", Объект.Валюта);
ПараметрыОткрытия.Вставить("Партнер", Объект.Партнер);
ПараметрыОткрытия.Вставить("Соглашение", Объект.Соглашение);
ПараметрыОткрытия.Вставить("Дата", Объект.Дата);
ПараметрыОткрытия.Вставить("Ссылка", Объект.Ссылка);
ПараметрыОткрытия.Вставить("Склад", Объект.Склад);
ПараметрыОткрытия.Вставить("СкрыватьКомандуОстаткиНаСкладах", Ложь);
ПараметрыОткрытия.Вставить("Организация", Объект.Организация);
ОткрытьФорму("Обработка.РедактированиеНабора.Форма.Форма", ПараметрыОткрытия, ЭтотОбъект, УникальныйИдентификатор);
КонецЕсли;
Если ИмяСобытия = "Запись_СчетФактураВыданный"
И (Параметр.Свойство("ФормаВладелец") И Параметр.ФормаВладелец = УникальныйИдентификатор
Или Параметр.Свойство("СписокОснований") И Параметр.СписокОснований.НайтиПоЗначению(Объект.Ссылка) <> Неопределено) Тогда
ОбновитьТекстДокументыНаОсновании();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "ОбновитьСостояниеЭД" Тогда
ОбновитьТекстСчетаФактурыВыданные();
КонецЕсли;
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник);
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия,ЭтотОбъект);
Если ИмяСобытия = "ПриИзмененииДоговора"
И Источник = ЭтотОбъект Тогда
Модифицированность = Истина;
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
Подключаемый_ПриИзменении_УстановитьДоступностьЭлементовПоСтатусуСервер(Элементы[Параметр]);
Иначе
ДоговорПриИзменении(Элементы[Параметр]);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Документ.КорректировкаРеализации.Форма.ФормаПодбораИсправляемогоДокумента" Тогда
ОбработкаПодбораИсправляемогоДокумента(ВыбранноеЗначение);
ИначеЕсли ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.ПервичныйДокумент") Тогда
ОбработкаВыбораДокументаОснованияКлиент(ВыбранноеЗначение);
ИначеЕсли УчетНДСУПКлиент.ЗаконченоРедактированиеСчетаФактурыВыданного(ВыбранноеЗначение, ИсточникВыбора) Тогда
ОбновитьТекстДокументыНаОсновании();
ИначеЕсли УчетНДСУПКлиент.ЗаконченоРедактированиеСчетаФактурыПолученного(ВыбранноеЗначение, ИсточникВыбора) Тогда
ОбновитьТекстДокументыНаОсновании();
ИначеЕсли ИсточникВыбора.ИмяФормы = "Обработка.ПодборТоваровВДокументПродажи.Форма.Форма" Тогда
ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение);
ИначеЕсли ИсточникВыбора.ИмяФормы = "ОбщаяФорма.РеквизитыПечатиРеализации" Тогда
Если ВыбранноеЗначение <> Неопределено Тогда
Модифицированность = Истина;
ЗаполнитьЗначенияСвойств(Объект, ВыбранноеЗначение);
ОбновитьТекстДокументыНаОсновании();
КонецЕсли;
ИначеЕсли ИсточникВыбора.ИмяФормы = "Справочник.СтруктураПредприятия.Форма.ФормаВыбора" Тогда
ПродажиКлиент.ОбработкаВыбораПодразделения(ТаблицаКорректировки, Элементы.ТаблицаКорректировки.ВыделенныеСтроки, ВыбранноеЗначение);
ИначеЕсли НоменклатураКлиент.ЭтоУказаниеСерий(ИсточникВыбора) Тогда
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтотОбъект, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецЕсли;
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
УстановитьПризнакЗаполненияСклада();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("ДокументОснование", Объект.ДокументОснование);
Оповестить("Запись_КорректировкаРеализацииДоВводаОстатков", ПараметрыЗаписи, Объект.Ссылка);
ОбменСКонтрагентамиКлиент.ПослеЗаписи_ФормаДокумента(ЭтотОбъект, ПараметрыЗаписи);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если ЗавершениеРаботы Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПредыдущиеРеквизитыСтроки = Новый Структура(
"НоменклатураПартнера,
|Номенклатура,
|Характеристика,
|Назначение,
|Упаковка,
|Количество,
|КоличествоУпаковок,
|Склад,
|ТипНоменклатуры,
|ХарактеристикиИспользуются,
|КодСтроки,
|КоличествоПосле,
|КоличествоУпаковокПосле,
|СтавкаНДС,
|СтавкаНДСПосле,
|СуммаСНДС,
|СуммаСНДСПосле,
|Сумма,
|СуммаПосле,
|СуммаНДС,
|СуммаНДСПосле");
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ЗаполнитьПризнакУчетаСебестоимости();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверкаКонтрагентов.ПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаНавигационнойСсылки(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СобытияФормКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
Если ЗакупкиКлиент.ЭтоУказаниеНомераГТД(Источник) Тогда
Действия = Новый Структура;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина);
ПараметрыУказанияНомераГТД = ЗакупкиКлиент.ПараметрыУказанияНомераГТД();
ПараметрыУказанияНомераГТД.ИмяТЧ = "ТаблицаКорректировки";
ЗакупкиКлиент.ОбработатьУказаниеНомераГТД(ЭтотОбъект, НовыйОбъект, ПараметрыУказанияНомераГТД, , Действия);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
ПартнерПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДоговорСоздание(Элемент, СтандартнаяОбработка)
ПродажиКлиент.ОткрытьФормуСозданияДоговора(ЭтотОбъект, Элемент, "Объект.Договор", Объект.Партнер, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииСервер();
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СкладПриИзменении(Элемент)
СкладПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДСНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ТипКорректировкиПриИзменении(Элемент)
Если Не ЗначениеЗаполнено(Объект.ТипКорректировки) Тогда
Объект.ТипКорректировки = ТипКорректировкиСтарый;
Возврат;
КонецЕсли;
Если Объект.ТипКорректировки <> ТипКорректировкиСтарый
И ТаблицаКорректировки.Количество() > 0 Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.ОК, Нстр("ru = 'Очистить'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, Нстр("ru = 'Отмена'"));
ТекстВопроса = НСтр("ru = 'Очистить таблицу с данными по корректировке?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ТипКорректировкиПриИзмененииЗавершение", ЭтотОбъект), ТекстВопроса, СписокКнопок);
ИначеЕсли Объект.ТипКорректировки <> ТипКорректировкиСтарый Тогда
ТипКорректировкиПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеПриИзменении(Элемент)
Соглашение = Объект.Соглашение;
Если Не ЗначениеЗаполнено (Объект.Соглашение) Тогда
Возврат;
КонецЕсли;
ДоговорДоИзменения = Объект.Договор;
СоглашениеПриИзмененииСервер();
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияУсловийПродаж();
ЗаполнитьСписокВыбораОпераций();
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ПараметрыВыбораСоглашения = ПродажиКлиент.ПараметрыНачалаВыбораСоглашенияСКлиентом();
ПараметрыВыбораСоглашения.Элемент = Элемент;
ПараметрыВыбораСоглашения.Партнер = Объект.Партнер;
ПараметрыВыбораСоглашения.Документ = Объект.Соглашение;
ПараметрыВыбораСоглашения.ДатаДокумента = Объект.Дата;
ПараметрыВыбораСоглашения.ДанныеФормыСтруктура = Объект;
ПараметрыВыбораСоглашения.ИспользуютсяДоговорыКонтрагентов = ИспользуютсяДоговорыКонтрагентов;
ПродажиКлиент.НачалоВыбораСоглашенияСКлиентом(ПараметрыВыбораСоглашения, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница.Имя = "ГруппаОсновное" Тогда
ВзаиморасчетыКлиент.ОбновитьТекстГиперссылкиЭтапыОплаты(ЭтотОбъект);
ВзаиморасчетыКлиентСервер.ОбновитьТекстГиперссылкиВалюты(ЭтотОбъект);
КонецЕсли;
Если ТекущаяСтраница.Имя = "ГруппаДополнительно"
И Не ЭтотОбъект.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация Тогда
СвойстваВыполнитьОтложеннуюИнициализацию();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяДоходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
НалогообложениеНДСПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ДатаПриИзмененииСервер();
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Объект.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ОперацияПриИзменении(Элемент)
ОперацияПриИзмененииНаСервере();
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВалютыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьВалютыНажатиеЗавершение", ЭтотОбъект);
ВзаиморасчетыКлиент.ВалютыИКурсДокументаНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьЭтапыОплатыНажатиеЗавершение", ЭтотОбъект);
ВзаиморасчетыКлиент.НадписьЭтапыОплатыНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТекстДокументыНаОснованииОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактур();
УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыВыданные(ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ПараметрыРегистрации.Выданные);
УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыПолученные(ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ПараметрыРегистрации.Полученные);
ТекстДокументыНаОснованииОбработкаНавигационнойСсылкиЛокализация(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(
ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект, Элементы.ДекорацияСостояниеОригинала);
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеИсправляемогоДокументаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(Объект.ИсправляемыйДокумент) Тогда
ПоказатьЗначение(, Объект.ИсправляемыйДокумент);
Иначе
ПодобратьИсправляемыйДокумент();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОблагаетсяАкцизомПриИзменении(Элемент)
УчетПодакцизныхТоваровКлиентСервер.НастроитьПолеПодразделениеПроизводства(ЭтотОбъект);
Возврат;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаКорректировки
&НаКлиенте
Процедура ТаблицаКорректировкиПриИзменении(Элемент)
ВариантОтражения = Неопределено;
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено И ТекущиеДанные.НомерСтроки <> ТаблицаКорректировки.Индекс(ТекущиеДанные)+1 Тогда
ТекущиеДанные.НомерСтроки = ТаблицаКорректировки.Индекс(ТекущиеДанные)+1;
ОтборПоНомеруСтроки = Новый Структура();
ОтборПоНомеруСтроки.Вставить("НомерСтроки", ТекущиеДанные.НомерСтроки);
НайденныеСтроки = ТаблицаКорректировки.НайтиСтроки(ОтборПоНомеруСтроки);
Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл
Если СтрокаТаблицы <> ТекущиеДанные Тогда
СтрокаТаблицы.НомерСтроки = ТаблицаКорректировки.Индекс(СтрокаТаблицы)+1;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ТекущиеДанные <> Неопределено
И ПредыдущиеРеквизитыСтроки.КоличествоУпаковок <> Неопределено Тогда
РасхождениеСтавкиНДС = ТекущиеДанные.СтавкаНДС <> ТекущиеДанные.СтавкаНДСПосле
И (ТекущиеДанные.КоличествоПосле > 0
Или ТекущиеДанные.СуммаСНДСПосле > 0
Или ТекущиеДанные.СуммаНДСПосле > 0);
Если ПредыдущиеРеквизитыСтроки.СтавкаНДС <> ТекущиеДанные.СтавкаНДС
Или ПредыдущиеРеквизитыСтроки.СтавкаНДСПосле <> ТекущиеДанные.СтавкаНДСПосле
Или ПредыдущиеРеквизитыСтроки.ТипНоменклатуры <> ТекущиеДанные.ТипНоменклатуры Тогда
ТекущиеДанные.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
КоличествоУпаковокРасхождение = ТекущиеДанные.КоличествоУпаковокПосле - ТекущиеДанные.КоличествоУпаковок;
СуммаСНДСРасхождение = ТекущиеДанные.СуммаСНДСПосле - ТекущиеДанные.СуммаСНДС;
СуммаНДСРасхождение = ТекущиеДанные.СуммаНДСПосле - ТекущиеДанные.СуммаНДС;
ПредыдущиеКоличествоУпаковокРасхождение = ПредыдущиеРеквизитыСтроки.КоличествоУпаковокПосле - ПредыдущиеРеквизитыСтроки.КоличествоУпаковок;
ПредыдущиеСуммаСНДСРасхождение = ПредыдущиеРеквизитыСтроки.СуммаСНДСПосле - ПредыдущиеРеквизитыСтроки.СуммаСНДС;
ПредыдущиеСуммаНДСРасхождение = ПредыдущиеРеквизитыСтроки.СуммаНДСПосле - ПредыдущиеРеквизитыСтроки.СуммаНДС;
Если ТекущиеДанные.КоличествоУпаковок = 0
И ТекущиеДанные.СуммаСНДС = 0
И ТекущиеДанные.СуммаНДС = 0
И ЗначениеЗаполнено(ТекущиеДанные.ВариантОтраженияСписания) Тогда
ТекущиеДанные.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
Если (Не РасхождениеСтавкиНДС И КоличествоУпаковокРасхождение = 0 И СуммаСНДСРасхождение = 0 И СуммаНДСРасхождение = 0)
Или ПредыдущиеРеквизитыСтроки.ТипНоменклатуры <> ТекущиеДанные.ТипНоменклатуры Тогда
ТекущиеДанные.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
ИначеЕсли Не РасхождениеСтавкиНДС И ((КоличествоУпаковокРасхождение >= 0 И ПредыдущиеКоличествоУпаковокРасхождение < 0)
Или (КоличествоУпаковокРасхождение <> 0 И ПредыдущиеКоличествоУпаковокРасхождение = 0)
Или (КоличествоУпаковокРасхождение = 0 И СуммаСНДСРасхождение >= 0
И ПредыдущиеКоличествоУпаковокРасхождение = 0 И ПредыдущиеСуммаСНДСРасхождение < 0)
Или (КоличествоУпаковокРасхождение = 0 И СуммаСНДСРасхождение = 0 И СуммаНДСРасхождение >= 0
И ПредыдущиеКоличествоУпаковокРасхождение = 0 И ПредыдущиеСуммаСНДСРасхождение = 0 И ПредыдущиеСуммаНДСРасхождение < 0)
Или (КоличествоУпаковокРасхождение < 0 И ПредыдущиеКоличествоУпаковокРасхождение >= 0)
Или (КоличествоУпаковокРасхождение = 0 И СуммаСНДСРасхождение < 0
И ПредыдущиеКоличествоУпаковокРасхождение = 0 И ПредыдущиеСуммаСНДСРасхождение >= 0)
Или (КоличествоУпаковокРасхождение = 0 И СуммаСНДСРасхождение = 0 И СуммаНДСРасхождение < 0
И ПредыдущиеКоличествоУпаковокРасхождение = 0 И ПредыдущиеСуммаСНДСРасхождение = 0 И ПредыдущиеСуммаНДСРасхождение >= 0)) Тогда
ТекущиеДанные.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
УстановитьВариантОтраженияДляСтроки(ТекущиеДанные, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
КонецЕсли;
Если ТекущиеДанные <> Неопределено Тогда
Если ЗначениеЗаполнено(ТекущиеДанные.СпособОпределенияСебестоимости) Тогда
Если (ТекущиеДанные.СтавкаНДС = ТекущиеДанные.СтавкаНДСПосле
И ТекущиеДанные.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"))
Или (ТекущиеДанные.СтавкаНДС <> ТекущиеДанные.СтавкаНДСПосле
И ТекущиеДанные.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы")) Тогда
ТекущиеДанные.СпособОпределенияСебестоимости = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСебестоимостиВозврата.ПустаяСсылка");
ТекущиеДанные.Себестоимость = 0;
СебестоимостьБезНДС = 0;
СебестоимостьРегл = 0;
СебестоимостьПР = 0;
СебестоимостьВР = 0;
ВидЦеныСебестоимости = ПредопределенноеЗначение("Справочник.ВидыЦен.ПустаяСсылка");
ДатаЗаполненияСебестоимостиПоВидуЦены = Дата('00010101');
КонецЕсли;
КонецЕсли;
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Если БлокируемыйЭлемент(Поле) Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) Тогда
ПараметрОповещения = Новый Структура;
ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор);
Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтотОбъект);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТаблицаКорректировкиНоменклатураНабора Тогда
ПоказатьЗначение(Неопределено, Элементы.ТаблицаКорректировки.ТекущиеДанные.НоменклатураНабора);
ИначеЕсли Поле = Элементы.ТаблицаКорректировкиСпособОпределенияСебестоимостиСтрокой Тогда
ЗаполнитьСебестоимостьВТаблице();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.ТаблицаКорректировки, ЭтотОбъект);
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(ПредыдущиеРеквизитыСтроки, ТекущаяСтрока);
ПродажиКлиент.СтрокаНоменклатурыПриНачалеРедактирования(ЭтотОбъект, "ТаблицаКорректировки", ТекущаяСтрока, НоваяСтрока, Копирование);
Если НоваяСтрока И НЕ Копирование Тогда
Если НЕ СкладГруппа Тогда
ТекущаяСтрока.Склад = Объект.Склад;
КонецЕсли;
ТекущаяСтрока.Подразделение = Объект.Подразделение;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "ТаблицаКорректировки");
Если КорректировкаУслугПрочихАктивов
И Объект.НалогообложениеНДС <> ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС") Тогда
ТекущаяСтрока.СтавкаНДС = ПредопределенноеЗначение("Справочник.СтавкиНДС.БезНДС");
КонецЕсли;
ТекущаяСтрока.СпособОпределенияСебестоимости = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзТекущегоДокумента");
УстановитьПредставлениеСебестоимостиВСтроке(ТекущаяСтрока);
КонецЕсли;
Если НоваяСтрока Или Копирование Тогда
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПослеУдаления(Элемент)
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ТаблицаКорректировкиПослеУдаленияСервер();
УстановитьПризнакЗаполненияСклада();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПриАктивизацииЯчейки(Элемент)
СтрокаТаблицы = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
Если Элемент.ТекущийЭлемент = Неопределено Тогда
Возврат;
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТаблицаКорректировкиНоменклатураПартнера" Тогда
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
НоменклатураПартнеровКлиент.ЗаполнитьСписокВыбораНоменклатурыПартнера(
Объект.Партнер, ТекущиеДанные, Элементы.ТаблицаКорректировкиНоменклатураПартнера.СписокВыбора);
НоменклатураПартнеровКлиент.УстановитьПараметрыВыбораУпаковки(
Элементы.ТаблицаКорректировкиНоменклатураПартнера.ПараметрыВыбора, ТекущиеДанные);
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТаблицаКорректировкиНомерГТД" Тогда
ЗакупкиКлиент.ЗаполнитьСписокВыбораНомеровГТД(
Элементы.ТаблицаКорректировки.ТекущиеДанные,
Элементы.ТаблицаКорректировкиНомерГТД.СписокВыбора);
ИначеЕсли Элемент.ТекущийЭлемент = Элементы.ТаблицаКорректировкиВариантОтражения Тогда
СписокВыбора = ПолучитьДоступныВариантыОтраженияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
Элементы.ТаблицаКорректировкиВариантОтражения.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);
ИначеЕсли Элемент.ТекущийЭлемент <> Неопределено
И Элемент.ТекущийЭлемент = Элементы.ТаблицаКорректировкиВариантОтраженияСписания Тогда
СписокВыбора = ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
Элементы.ТаблицаКорректировкиВариантОтраженияСписания.СписокВыбора.ЗагрузитьЗначения(СписокВыбора);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Копирование Тогда
НаборыКлиент.ПередУдалениемСтрокиТабличнойЧасти(ЭтотОбъект, "ТаблицаКорректировки", Отказ, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПередУдалением(Элемент, Отказ)
НаборыКлиент.ПередУдалениемСтрокиТабличнойЧасти(ЭтотОбъект, "ТаблицаКорректировки", Отказ);
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.ТаблицаКорректировки, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если Не ОтменаРедактирования Тогда
КэшСтроки = ?(НоваяСтрока, Неопределено, РаботаСТабличнымиЧастямиКлиентСервер.КэшСтроки(Элементы.ТаблицаКорректировки, ЭтотОбъект));
СкладыКлиент.ОбновитьТаблицуСкладов(ТаблицаСкладов, ТекущиеДанные, КэшСтроки, СкладГруппа, Ложь);
ВсегоСкладов = ТаблицаСкладов.Количество();
СкладыКлиентСервер.ОбновитьКартинкуГруппыСкладов(НадписьНесколькоСкладов, Элементы.КартинкаНесколькоСкладов, ВсегоСкладов);
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
СобытияФормКлиент.ПриИзмененииЭлемента(ЭтотОбъект, Элементы.ТаблицаКорректировки, ДополнительныеПараметры);
Если ДополнительныеПараметры.Свойство("ТребуетсяСерверныйВызов") Тогда
ПодключитьОбработчикОжидания("ТаблицаКорректировкиПриОкончанииРедактированияДляСерверногоВызова", 0.5, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНоменклатураПриИзменении(Элемент)
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
ПараметрыПоСкладу = Новый Структура;
ПараметрыПоСкладу.Вставить("ДатаПроверки", Объект.Дата);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Суффикс = Суффикс;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура ("Суффикс, ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьСодержание", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСодержанияУслугиВСтрокеТЧ(Объект, Истина));
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ЗаполнитьВариантОтраженияКорректировкиРеализации", Объект.ВидКорректировки);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ЗаполнитьСтрануПроисхожденияНоменклатуры",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтраныПроисхождения());
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры", Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь));
СтруктураДействий.Вставить("ЗаполнитьПризнакОрдерногоСклада", ПараметрыПоСкладу);
ПакетнаяОбработкаТабличнойЧастиКлиентСерверЛокализация.ДополнитьСтруктуруДействийПриИзмененииЭлемента(ЭтотОбъект, "Номенклатура", СтруктураДействий);
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ИмяФормы, "ТаблицаКорректировки"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина,
Суффикс);
ДоходыИРасходыКлиентСервер.ВставитьДействиеОчиститьСтатьюИАналитикуРасходов(
СтруктураДействий,
ЭтотОбъект);
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
СтруктураДействий.Вставить("ЗаполнитьПодразделениеВСтрокеТЧ", Новый Структура("Подразделение", Объект.Подразделение));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
УстановитьПризнакЗаполненияСклада();
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНоменклатураПартнераПриИзменении(Элемент)
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Суффикс = Суффикс;
ПараметрыПоСкладу = Новый Структура;
ПараметрыПоСкладу.Вставить("ДатаПроверки", Объект.Дата);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка);
Если Не КорректировкаУслугПрочихАктивов Тогда
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиницСуффикс", Суффикс);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПоНоменклатуреПартнера");
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура("Суффикс,ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьСодержание", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСодержанияУслугиВСтрокеТЧ(Объект, Истина));
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ЗаполнитьВариантОтраженияКорректировкиРеализации", Объект.ВидКорректировки);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ЗаполнитьСтрануПроисхожденияНоменклатуры",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтраныПроисхождения());
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры", Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь));
СтруктураДействий.Вставить("ЗаполнитьПризнакОрдерногоСклада", ПараметрыПоСкладу);
ПакетнаяОбработкаТабличнойЧастиКлиентСерверЛокализация.ДополнитьСтруктуруДействийПриИзмененииЭлемента(ЭтотОбъект, "Номенклатура", СтруктураДействий);
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ИмяФормы, "ТаблицаКорректировки"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина,
Суффикс);
ДоходыИРасходыКлиентСервер.ВставитьДействиеОчиститьСтатьюИАналитикуРасходов(
СтруктураДействий,
ЭтотОбъект);
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
СтруктураДействий.Вставить("ЗаполнитьПодразделениеВСтрокеТЧ", Новый Структура("Подразделение", Объект.Подразделение));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
УстановитьПризнакЗаполненияСклада();
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНоменклатураПартнераНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЭлементФормы" , Элемент);
ДополнительныеПараметры.Вставить("ТекущаяСтрока", ТекущаяСтрока);
ОповещениеОЗакрытие = Новый ОписаниеОповещения("ОбработатьРезультатВыбораНоменклатурыПартнера", ЭтотОбъект, ДополнительныеПараметры);
НоменклатураПартнеровКлиент.ОткрытьФормуВыбораНоменклатурыПартнера(ЭтотОбъект, Объект.Партнер, ТекущаяСтрока, Элемент.Заголовок, ОповещениеОЗакрытие);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьРезультатВыбораНоменклатурыПартнера(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры.ТекущаяСтрока.НоменклатураПартнера = ВыбранноеЗначение;
ТаблицаКорректировкиНоменклатураПартнераПриИзменении(ДополнительныеПараметры.ЭлементФормы);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиХарактеристикаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура("Суффикс,ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
СтруктураДействий.Вставить("ХарактеристикаПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ИмяФормы, "ТаблицаКорректировки"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиУпаковкаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
Если Не КорректировкаУслугПрочихАктивов Тогда
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиницСуффикс", Суффикс);
КонецЕсли;
Если ТекущаяСтрока.Количество > 0 Тогда
СтруктураДействий.Вставить("ПересчитатьЦенуЗаУпаковку", ТекущаяСтрока.Количество);
КонецЕсли;
Если ТекущаяСтрока.КоличествоПосле > 0 Тогда
СтруктураДействий.Вставить("ПересчитатьЦенуЗаУпаковкуСуффикс",
Новый Структура("Количество, Суффикс", ТекущаяСтрока.КоличествоПосле, Суффикс));
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Суффикс);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоУпаковокПриИзменении(Элемент)
СтруктураДействий = Новый Структура;
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Склад", ТекущиеДанные.Склад);
ТекущаяСтрока.Вставить("НомерГТД", ТекущиеДанные.НомерГТД);
ТекущаяСтрока.Вставить("ВедетсяУчетПоРНПТ", ТекущиеДанные.ВедетсяУчетПоРНПТ);
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
Если КорректировкаУслугПрочихАктивов Тогда
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковок <> 0, ТекущиеДанные.КоличествоУпаковок, 1));
ТекущаяСтрока.Вставить("КоличествоПоРНПТ", ?(ТекущиеДанные.КоличествоПоРНПТ <> 0, ТекущиеДанные.КоличествоПоРНПТ, 1));
Иначе
ТекущаяСтрока.Вставить("Количество", ТекущиеДанные.Количество);
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("КоличествоПоРНПТ", ТекущиеДанные.КоличествоПоРНПТ);
ТекущаяСтрока.Вставить("КоличествоПосле", ТекущиеДанные.КоличествоПосле);
ТекущаяСтрока.Вставить("КоличествоУпаковокПосле", ТекущиеДанные.КоличествоУпаковокПосле);
ТекущаяСтрока.Вставить("КоличествоПоРНПТПосле", ТекущиеДанные.КоличествоПоРНПТПосле);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина,
"После");
КонецЕсли;
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
ТекущаяСтрока.Вставить("СуммаБезНДСРегл", ТекущиеДанные.СуммаБезНДСРегл);
ТекущаяСтрока.Вставить("СуммаБезНДСУпр", ТекущиеДанные.СуммаБезНДСУпр);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если ТекущиеДанные.КоличествоУпаковок = 0
И КорректировкаУслугПрочихАктивов Тогда
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество,КоличествоУпаковок");
ТекущиеДанные.Количество = 0;
Иначе
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоУпаковокПослеПриИзменении(Элемент)
СтруктураДействий = Новый Структура;
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Склад", ТекущиеДанные.Склад);
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("ВедетсяУчетПоРНПТ", ТекущиеДанные.ВедетсяУчетПоРНПТ);
ТекущаяСтрока.Вставить("НомерГТД", ТекущиеДанные.НомерГТД);
Если КорректировкаУслугПрочихАктивов Тогда
ТекущаяСтрока.Вставить("КоличествоПосле", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковокПосле", ?(ТекущиеДанные.КоличествоУпаковокПосле <> 0, ТекущиеДанные.КоличествоУпаковокПосле, 1));
ТекущаяСтрока.Вставить("КоличествоПоРНПТПосле", ?(ТекущиеДанные.КоличествоПоРНПТПосле <> 0, ТекущиеДанные.КоличествоПоРНПТПосле, 1));
Иначе
ТекущаяСтрока.Вставить("Количество", ТекущиеДанные.Количество);
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("КоличествоПоРНПТ", ТекущиеДанные.КоличествоПоРНПТ);
ТекущаяСтрока.Вставить("КоличествоПосле", ТекущиеДанные.КоличествоПосле);
ТекущаяСтрока.Вставить("КоличествоУпаковокПосле", ТекущиеДанные.КоличествоУпаковокПосле);
ТекущаяСтрока.Вставить("КоличествоПоРНПТПосле", ТекущиеДанные.КоличествоПоРНПТПосле);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
КонецЕсли;
ТекущаяСтрока.Вставить("ЦенаПосле", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("СуммаПосле", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДСПосле", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДСПосле", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДСПосле", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетовПосле", ТекущиеДанные.СуммаВзаиморасчетовПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСРеглПосле", ТекущиеДанные.СуммаБезНДСРеглПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСУпрПосле", ТекущиеДанные.СуммаБезНДСУпрПосле);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект, "После");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если ТекущиеДанные.КоличествоУпаковокПосле = 0
И КорректировкаУслугПрочихАктивов Тогда
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "КоличествоПосле,КоличествоУпаковокПосле");
ТекущиеДанные.КоличествоПосле = 0;
Иначе
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковок <> 0, ТекущиеДанные.КоличествоУпаковок, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаБезНДСРегл", ТекущиеДанные.СуммаБезНДСРегл);
ТекущаяСтрока.Вставить("СуммаБезНДСУпр", ТекущиеДанные.СуммаБезНДСУпр);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
СтруктураДействий = Новый Структура;
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если ТекущиеДанные.Количество = 0 Тогда
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество,КоличествоУпаковок");
ИначеЕсли ТекущиеДанные.КоличествоУпаковок = 0 Тогда
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "КоличествоУпаковок");
Иначе
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("КоличествоПосле", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковокПосле", ?(ТекущиеДанные.КоличествоУпаковокПосле <> 0, ТекущиеДанные.КоличествоУпаковокПосле, 1));
ТекущаяСтрока.Вставить("ЦенаПосле", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("СуммаПосле", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДСПосле", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДСПосле", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДСПосле", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетовПосле", ТекущиеДанные.СуммаВзаиморасчетовПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСРеглПосле", ТекущиеДанные.СуммаБезНДСРеглПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСУпрПосле", ТекущиеДанные.СуммаБезНДСУпрПосле);
СтруктураДействий = Новый Структура;
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект, "После");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если ТекущиеДанные.КоличествоПосле = 0 Тогда
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "КоличествоПосле,КоличествоУпаковокПосле");
ИначеЕсли ТекущиеДанные.КоличествоУпаковокПосле = 0 Тогда
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "КоличествоУпаковокПосле");
Иначе
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиЦенаПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковок <> 0, ТекущиеДанные.КоличествоУпаковок, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
ТекущаяСтрока.Вставить("СуммаБезНДСРегл", ТекущиеДанные.СуммаБезНДСРегл);
ТекущаяСтрока.Вставить("СуммаБезНДСУпр", ТекущиеДанные.СуммаБезНДСУпр);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ДанныеДляПересчетаСуммыРегл = ПолучитьПараметрыДляПересчетаСуммыРегл(ЭтотОбъект);
ДанныеДляПересчетаСуммыУпр = ПолучитьПараметрыДляПересчетаСуммыУпр(ЭтотОбъект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество,КоличествоУпаковок");
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиЦенаПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("КоличествоПосле", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковокПосле", ?(ТекущиеДанные.КоличествоУпаковокПосле <> 0, ТекущиеДанные.КоличествоУпаковокПосле, 1));
ТекущаяСтрока.Вставить("ЦенаПосле", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("СуммаПосле", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДСПосле", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДСПосле", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДСПосле", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетовПосле",ТекущиеДанные.СуммаВзаиморасчетовПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСРеглПосле", ТекущиеДанные.СуммаБезНДСРеглПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСУпрПосле", ТекущиеДанные.СуммаБезНДСУпрПосле);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
ДанныеДляПересчетаСуммыРегл = ПолучитьПараметрыДляПересчетаСуммыРегл(ЭтотОбъект, Суффикс);
ДанныеДляПересчетаСуммыУпр = ПолучитьПараметрыДляПересчетаСуммыУпр(ЭтотОбъект, Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура("Суффикс,ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРеглСуффикс", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпрСуффикс", ДанныеДляПересчетаСуммыУпр);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "КоличествоПосле,КоличествоУпаковокПосле");
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковок <> 0, ТекущиеДанные.КоличествоУпаковок, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
ТекущаяСтрока.Вставить("СуммаБезНДСРегл", ТекущиеДанные.СуммаБезНДСРегл);
ТекущаяСтрока.Вставить("СуммаБезНДСУпр", ТекущиеДанные.СуммаБезНДСУпр);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ДанныеДляПересчетаСуммыРегл = ПолучитьПараметрыДляПересчетаСуммыРегл(ЭтотОбъект);
ДанныеДляПересчетаСуммыУпр = ПолучитьПараметрыДляПересчетаСуммыУпр(ЭтотОбъект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуПоСумме", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество,КоличествоУпаковок");
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковокПосле <> 0, ТекущиеДанные.КоличествоУпаковокПосле, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетовПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСРегл", ТекущиеДанные.СуммаБезНДСРеглПосле);
ТекущаяСтрока.Вставить("СуммаБезНДСУпр", ТекущиеДанные.СуммаБезНДСУпрПосле);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ДанныеДляПересчетаСуммыРегл = ПолучитьПараметрыДляПересчетаСуммыРегл(ЭтотОбъект);
ДанныеДляПересчетаСуммыУпр = ПолучитьПараметрыДляПересчетаСуммыУпр(ЭтотОбъект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуПоСумме", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ТекущиеДанные.ЦенаПосле = ТекущаяСтрока.Цена;
ТекущиеДанные.СуммаПосле = ТекущаяСтрока.Сумма;
ТекущиеДанные.СтавкаНДСПосле = ТекущаяСтрока.СтавкаНДС;
ТекущиеДанные.СуммаНДСПосле = ТекущаяСтрока.СуммаНДС;
ТекущиеДанные.СуммаСНДСПосле = ТекущаяСтрока.СуммаСНДС;
ТекущиеДанные.СуммаВзаиморасчетовПосле = ТекущаяСтрока.СуммаВзаиморасчетов;
ТекущиеДанные.СуммаБезНДСРеглПосле = ТекущаяСтрока.СуммаБезНДСРегл;
ТекущиеДанные.СуммаБезНДСУпрПосле = ТекущаяСтрока.СуммаБезНДСУпр;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаНДСПослеПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтавкаНДСПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковок <> 0, ТекущиеДанные.КоличествоУпаковок, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество,КоличествоУпаковок");
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтавкаНДСПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Номенклатура", ТекущиеДанные.Номенклатура);
ТекущаяСтрока.Вставить("Упаковка", ТекущиеДанные.Упаковка);
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ?(ТекущиеДанные.КоличествоУпаковокПосле <> 0, ТекущиеДанные.КоличествоУпаковокПосле, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетовПосле);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ТекущиеДанные.ЦенаПосле = ТекущаяСтрока.Цена;
ТекущиеДанные.СуммаПосле = ТекущаяСтрока.Сумма;
ТекущиеДанные.СтавкаНДСПосле = ТекущаяСтрока.СтавкаНДС;
ТекущиеДанные.СуммаНДСПосле = ТекущаяСтрока.СуммаНДС;
ТекущиеДанные.СуммаСНДСПосле = ТекущаяСтрока.СуммаСНДС;
ТекущиеДанные.СуммаВзаиморасчетовПосле = ТекущаяСтрока.СуммаВзаиморасчетов;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаБезНДСРеглПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ВалютаРегламентированногоУчета = ВалютаУправленческогоУчета Тогда
ТекущиеДанные.СуммаБезНДСУпр = ТекущиеДанные.СуммаБезНДСРегл;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаБезНДСРеглПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ВалютаРегламентированногоУчета = ВалютаУправленческогоУчета Тогда
ТекущиеДанные.СуммаБезНДСУпрПосле = ТекущиеДанные.СуммаБезНДСРеглПосле;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаБезНДСУпрПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ВалютаРегламентированногоУчета = ВалютаУправленческогоУчета Тогда
ТекущиеДанные.СуммаБезНДСРегл = ТекущиеДанные.СуммаБезНДСУпр;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаБезНДСУпрПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ВалютаРегламентированногоУчета = ВалютаУправленческогоУчета Тогда
ТекущиеДанные.СуммаБезНДСРеглПосле = ТекущиеДанные.СуммаБезНДСУпрПосле;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСкладПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус",
Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
ПриИзмененииСкладаВТабличнойЧастиСервер();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСерияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьПодборСерий(Элемент.ТекстРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСерияПриИзменении(Элемент)
ВыбранноеЗначение = НоменклатураКлиентСервер.ВыбраннаяСерия();
ВыбранноеЗначение.Значение = Элементы.ТаблицаКорректировки.ТекущиеДанные.Серия;
ВыбранноеЗначение.ИдентификаторТекущейСтроки = Элементы.ТаблицаКорректировки.ТекущиеДанные.ПолучитьИдентификатор();
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтотОбъект, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиВариантОтраженияСписанияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТипЗнч(ВыбранноеЗначение) = Тип("ПеречислениеСсылка.ВариантыОтраженияКорректировокРеализаций") Тогда
ТекущаяСтрока.ВариантОтраженияСписания = ВыбранноеЗначение;
Иначе
ТекущаяСтрока.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ПустаяСсылка");
КонецЕсли;
Если ТекущаяСтрока <> Неопределено Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.СпособОпределенияСебестоимости)
И ТекущаяСтрока.СтавкаНДС <> ТекущаяСтрока.СтавкаНДСПосле
И ТекущаяСтрока.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы") Тогда
ТекущаяСтрока.СпособОпределенияСебестоимости = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСебестоимостиВозврата.ПустаяСсылка");
ТекущаяСтрока.Себестоимость = 0;
ТекущаяСтрока.СебестоимостьБезНДС = 0;
ТекущаяСтрока.СебестоимостьРегл = 0;
ТекущаяСтрока.СебестоимостьПР = 0;
ТекущаяСтрока.СебестоимостьВР = 0;
ТекущаяСтрока.ВидЦеныСебестоимости = ПредопределенноеЗначение("Справочник.ВидыЦен.ПустаяСсылка");
ТекущаяСтрока.ДатаЗаполненияСебестоимостиПоВидуЦены = Дата('00010101');
ТекущаяСтрока.СпособОпределенияСебестоимостиСтрокой = "";
КонецЕсли;
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиВариантОтраженияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТипЗнч(ВыбранноеЗначение) = Тип("ПеречислениеСсылка.ВариантыОтраженияКорректировокРеализаций") Тогда
ТекущаяСтрока.ВариантОтражения = ВыбранноеЗначение;
Иначе
ТекущаяСтрока.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ПустаяСсылка");
КонецЕсли;
Если ТекущаяСтрока <> Неопределено Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.СпособОпределенияСебестоимости)
И ТекущаяСтрока.СтавкаНДС = ТекущаяСтрока.СтавкаНДСПосле
И ТекущаяСтрока.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы") Тогда
ТекущаяСтрока.СпособОпределенияСебестоимости = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСебестоимостиВозврата.ПустаяСсылка");
ТекущаяСтрока.Себестоимость = 0;
ТекущаяСтрока.СебестоимостьБезНДС = 0;
ТекущаяСтрока.СебестоимостьРегл = 0;
ТекущаяСтрока.СебестоимостьПР = 0;
ТекущаяСтрока.СебестоимостьВР = 0;
ТекущаяСтрока.ВидЦеныСебестоимости = ПредопределенноеЗначение("Справочник.ВидыЦен.ПустаяСсылка");
ТекущаяСтрока.ДатаЗаполненияСебестоимостиПоВидуЦены = Дата('00010101');
ТекущаяСтрока.СпособОпределенияСебестоимостиСтрокой = "";
КонецЕсли;
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтатьяДоходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСпособОпределенияСебестоимостиСтрокойПриИзменении(Элемент)
ОбновитьИнформациюПриИзмененииСебестоимости();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНомерГТДПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыЗаполнения = Новый Структура("НомерГТД", ТекущиеДанные.НомерГТД);
Действия = Новый Структура;
Действия.Вставить("ЗаполнитьТипНомераГТД", ПараметрыЗаполнения);
Действия.Вставить("ЗаполнитьСтрануПроисхожденияДляНомераГТД", ПараметрыЗаполнения);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина,
"После");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущиеДанные, Действия, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНомерГТДСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ДополнительныеПараметры = ЗакупкиКлиент.ДополнительныеПараметрыСозданияНомераГТД();
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Объект);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект);
ДополнительныеПараметры.ВалютаДокумента = Объект.Валюта;
ДополнительныеПараметры.ИмяПоляКоличество = ?(ИспользуетсяКоличествоУпаковок,
"КоличествоУпаковокПосле",
"КоличествоПосле");
ДополнительныеПараметры.ИмяПоляСуммаНДС = "СуммаНДСПосле";
ДополнительныеПараметры.ИмяПоляСуммаСНДС = "СуммаСНДСПосле";
ДополнительныеПараметры.ОснованиеСтоимостиПоступления = Ложь;
ПараметрыСоздания = ЗакупкиКлиент.ПараметрыСозданияНомераГТД(ТекущиеДанные,
Элемент.ТекстРедактирования,
ДополнительныеПараметры);
ПараметрыФормы = Новый Структура("ПараметрыСоздания", ПараметрыСоздания);
ОткрытьФорму("Справочник.НомераГТД.Форма.ФормаЭлемента",
ПараметрыФормы,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РеквизитыПечати(Элемент)
ОткрытьРеквизитыПечатиРеализации();
КонецПроцедуры
&НаКлиенте
Процедура ВставитьСтроки(Команда)
КоличествоТоваровДоВставки = ТаблицаКорректировки.Количество();
ПолучитьСтрокиИзБуфераОбмена();
КоличествоВставленных = ТаблицаКорректировки.Количество()-КоличествоТоваровДоВставки;
РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОВставкеСтрок(КоличествоВставленных);
УстановитьПризнакЗаполненияСклада();
ОбновитьЗаголовокТаблицыКорректировки();
КонецПроцедуры
&НаКлиенте
Процедура СкопироватьСтроки(Команда)
Если РаботаСТабличнымиЧастямиКлиент.ВыбранаСтрокаДляВыполненияКоманды(Элементы.ТаблицаКорректировки) Тогда
СкопироватьСтрокиНаСервере();
РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОКопированииСтрок(Элементы.ТаблицаКорректировки.ВыделенныеСтроки.Количество());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура СоставНабора(Команда)
ВыбраннаяСтрока = Элементы.ТаблицаКорректировки.ТекущаяСтрока;
Если ВыбраннаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ТекущаяСтрока = ТаблицаКорректировки.НайтиПоИдентификатору(ВыбраннаяСтрока);
Если Не ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) Тогда
ПоказатьПредупреждение(,НСтр("ru = 'Открытие состава набора возможно только для набора.'"));
Возврат;
КонецЕсли;
ПараметрыКомплекта = Новый Структура;
ПараметрыКомплекта.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
ПараметрыКомплекта.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
ПараметрыКомплекта.Вставить("КолонкиНабора", КолонкиНабора());
Если Элементы.ТаблицаКорректировки.ТекущийЭлемент <> Неопределено
И СтрНайти(Элементы.ТаблицаКорректировки.ТекущийЭлемент.Имя, "После") > 0 Тогда
ПараметрыКомплекта.Вставить("СоответствиеИменКолонокДляНабора", СоответствиеИменКолонокНабора());
КонецЕсли;
АдресНабораВоВременномХранилище = АдресНабораВоВременномХранилище(ПараметрыКомплекта);
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("АдресВоВременномХранилище", АдресНабораВоВременномХранилище);
ПараметрыОткрытия.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
ПараметрыОткрытия.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
ПараметрыОткрытия.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
ПараметрыОткрытия.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыОткрытия.Вставить("Валюта", Объект.Валюта);
ПараметрыОткрытия.Вставить("Партнер", Объект.Партнер);
ПараметрыОткрытия.Вставить("Соглашение", Объект.Соглашение);
ПараметрыОткрытия.Вставить("Дата", Объект.Дата);
ПараметрыОткрытия.Вставить("Ссылка", Объект.Ссылка);
ПараметрыОткрытия.Вставить("Склад", Объект.Склад);
ПараметрыОткрытия.Вставить("СкрыватьКомандуОстаткиНаСкладах", Ложь);
ПараметрыОткрытия.Вставить("Организация", Объект.Организация);
ОткрытьФорму("Обработка.РедактированиеНабора.Форма.Форма", ПараметрыОткрытия, ЭтотОбъект, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПодбор(Команда)
ОценкаПроизводительностиКлиент.ЗамерВремени("Документ.КорректировкаРеализации.ФормаДокумента.Команда.ОткрытьПодбор");
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
Отказ = Ложь;
Если (ИспользоватьСоглашенияСКлиентами И Не ЗначениеЗаполнено(Объект.Соглашение))
ИЛИ Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ОчиститьСообщения();
СообщитьОбОшибкахОткрытияПодбора(Отказ);
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрЗаголовок = НСтр("ru = 'Подбор товаров в %Документ%'");
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПараметрЗаголовок = СтрЗаменить(ПараметрЗаголовок, "%Документ%", Объект.Ссылка);
Иначе
ПараметрЗаголовок = СтрЗаменить(ПараметрЗаголовок, "%Документ%", НСтр("ru = 'корректировку реализации до ввода остатков'"));
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Партнер", Объект.Партнер);
ПараметрыФормы.Вставить("Соглашение", Объект.Соглашение);
ПараметрыФормы.Вставить("Организация", Объект.Организация);
ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыФормы.Вставить("ВозвращатьМногооборотнуюТару", ВернутьМногооборотнуюТару);
ПараметрыФормы.Вставить("Валюта", Объект.Валюта);
ПараметрыФормы.Вставить("Заголовок", ПараметрЗаголовок);
ПараметрыФормы.Вставить("Дата", Объект.Дата);
ПараметрыФормы.Вставить("РежимПодбораИсключитьГруппыДоступныеВЗаказах", Истина);
ПараметрыФормы.Вставить("Документ", Объект.Ссылка);
Если КорректировкаУслугПрочихАктивов Тогда
МассивТиповНоменклатуры = Новый Массив;
МассивТиповНоменклатуры.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга"));
МассивТиповНоменклатуры.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа"));
ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", МассивТиповНоменклатуры);
ПараметрыФормы.Вставить("СкрыватьКомандуОстаткиНаСкладах", Истина);
Иначе
ПараметрыФормы.Вставить("Склад", Объект.Склад);
ПараметрыФормы.Вставить("РежимПодбораИспользоватьСкладыВТабличнойЧасти", Истина);
ПараметрыФормы.Вставить("СкрыватьПодакцизныеТовары", Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД"));
ПараметрыФормы.Вставить("ОтображатьФлагСкрыватьПодакцизныеТовары", Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД"));
ПараметрыФормы.Вставить("СкрыватьРучныеСкидки", Истина);
ПараметрыФормы.Вставить("ПараметрыУказанияСерий", ПараметрыУказанияСерий);
КонецЕсли;
ОткрытьФорму("Обработка.ПодборТоваровВДокументПродажи.Форма", ПараметрыФормы, ЭтотОбъект, УникальныйИдентификатор);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныПоСоглашению(Команда)
СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("Соглашение", Объект.Соглашение);
СтруктураОбъекта.Вставить("Валюта", Объект.Валюта);
СтруктураОбъекта.Вставить("ТаблицаКорректировки", ТаблицаКорректировки);
ПредставлениеТабличнойЧасти = НСтр("ru='Данные корректировки'");
Если ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоСоглашению(СтруктураОбъекта, "ТаблицаКорректировки", ПредставлениеТабличнойЧасти) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныПоСоглашениюСервер();
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныВыделенныхСтрокПоВидуЦен(Команда)
СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("Валюта", Объект.Валюта);
СтруктураОбъекта.Вставить("ТаблицаКорректировки", ТаблицаКорректировки);
ПредставлениеТабличнойЧасти = НСтр("ru='Таблица корректировки'");
Если ЦеныПредприятияЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВидуЦен(СтруктураОбъекта, "ТаблицаКорректировки", ПредставлениеТабличнойЧасти) Тогда
ПараметрыВыбораЦен = ЦеныПредприятияЗаполнениеКлиент.НовыйПараметрыЗаполненияВыбратьВидЦен();
ПараметрыВыбораЦен.ОписаниеОповещения =
Новый ОписаниеОповещения("ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенЗавершение", ЭтотОбъект);
ПараметрыВыбораЦен.ЦенаВключаетНДС = Объект.ЦенаВключаетНДС;
ПараметрыВыбораЦен.ИспользоватьПриПродаже = Истина;
ЦеныПредприятияЗаполнениеКлиент.ВыбратьВидЦен(ПараметрыВыбораЦен);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСкладВВыделенныхСтроках(Команда)
ВыделенныеСтроки = Элементы.ТаблицаКорректировки.ВыделенныеСтроки;
ПредставлениеТабличнойЧасти = НСтр("ru='Данные корректировки'");
Если СкладыКлиент.ПроверитьВозможностьЗаполненияСкладовВТабличнойЧасти(Объект, ТаблицаКорректировки, ПредставлениеТабличнойЧасти, ВыделенныеСтроки) Тогда
СтруктураОтбора = Новый Структура("ВыборГруппы,ЭтоГруппа", ПредопределенноеЗначение("Перечисление.ВыборГруппыСкладов.РазрешитьВЗаказахИНакладных"), Ложь);
СтруктураПараметров = Новый Структура("Отбор,ГруппаСкладов", СтруктураОтбора, Объект.Склад);
ОткрытьФорму("Справочник.Склады.ФормаВыбора", СтруктураПараметров, ЭтотОбъект,,,, Новый ОписаниеОповещения("ЗаполнитьСкладВВыделенныхСтрокахЗавершение", ЭтотОбъект, Новый Структура("ВыделенныеСтроки", ВыделенныеСтроки)), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеДокументаОснованияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НавигационнаяСсылкаФорматированнойСтроки = "ВыбратьДокумент" Тогда
ОткрытьФормуВыбораОснования();
ИначеЕсли ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ПоказатьЗначение(Неопределено, Объект.ДокументОснование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДанныеКорректировки(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ТабличнаяЧасть = ТаблицаКорректировки;
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
Оповещение = Новый ОписаниеОповещения("ЗаполнитьДанныеКорректировкиЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтотОбъект, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ВсеИсправления(Команда)
ИсправляемыйДокумент = ИсправляемыйДокумент();
ИсправлениеДокументовКлиент.ОткрытьСписокИсправлений(ИсправляемыйДокумент, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьИсправляемыйДокумент(Команда)
ПодобратьИсправляемыйДокумент();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СвойстваВыполнитьОтложеннуюИнициализацию()
УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ТаблицаКорректировкиПослеУдаленияСервер()
ПриИзмененииСкладаВТабличнойЧастиСервер();
СобытияФорм.ПриИзмененииЭлемента(ЭтотОбъект, "ТаблицаКорректировки");
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
УчетНДСУП.УстановитьУсловноеОформлениеКодаТНВЭДПоНалогообложениюПродажи(ЭтотОбъект, "ТаблицаКорректировки");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКодТНВЭД.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ВидКорректировки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ИсправлениеОшибок;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюПродажи(ЭтотОбъект,
"ТаблицаКорректировкиСтавкаНДС",
"ТаблицаКорректировкиСуммаНДС",
"ТаблицаКорректировкиСуммаСНДС");
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюПродажи(ЭтотОбъект,
"ТаблицаКорректировкиСтавкаНДСПосле",
"ТаблицаКорректировкиСуммаНДСПосле",
"ТаблицаКорректировкиСуммаСНДСПосле");
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтотОбъект, "ТаблицаКорректировкиСуммаСНДС");
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтотОбъект, "ТаблицаКорректировкиСуммаСНДСПосле");
ПараметрыУсловногоОформления = НоменклатураСервер.НовыеПараметрыУсловногоОформленияЕдиницИзмерения();
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмерения = "ТаблицаКорректировкиНоменклатураЕдиницаИзмерения";
ПараметрыУсловногоОформления.ПутьКПолюУпаковка = "ТаблицаКорректировки.Упаковка";
НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтотОбъект, ПараметрыУсловногоОформления);
НоменклатураСервер.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(ЭтотОбъект,
"ТаблицаКорректировкиХарактеристика",
"ТаблицаКорректировки.ХарактеристикиИспользуются");
СкладыСервер.УстановитьУсловноеОформлениеСкладаВТЧ(ЭтотОбъект, "ТаблицаКорректировкиСклад");
ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
УсловноеОформление, "ТаблицаКорректировкиСклад", "ТаблицаКорректировки.Склад", "ТаблицаКорректировки.СкладОбязателен");
ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
УсловноеОформление, "Склад", "Объект.Склад", "СкладОбязателен");
СкладыСервер.УстановитьУсловноеОформлениеПодразделенияВТЧ(ЭтотОбъект, "ТаблицаКорректировки", Истина, "");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтражения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет расхождений>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтраженияСписания.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтраженияСписания.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтраженияСписания.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтраженияСписания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
УстановитьУсловноеОформлениеСуммЦен("Сумма","Количество","СуммаПосле");
УстановитьУсловноеОформлениеСуммЦен("Цена","Количество","ЦенаПосле");
УстановитьУсловноеОформлениеСуммЦен("СуммаПосле","КоличествоПосле", "Сумма");
УстановитьУсловноеОформлениеСуммЦен("ЦенаПосле","КоличествоПосле", "Цена");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтавкаНДС.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВернутьМногооборотнуюТару");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.МногооборотнаяТара;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
НоменклатураСервер.УстановитьУсловноеОформлениеСерийНоменклатуры(ЭтотОбъект,
"СерииВсегдаВТЧТовары",
"ТаблицаКорректировкиСерия",
"ТаблицаКорректировки.СтатусУказанияСерий",
"ТаблицаКорректировки.ТипНоменклатуры");
НаборыСервер.УстановитьУсловноеОформление(ЭтотОбъект, "ТаблицаКорректировки");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковок.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Цена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ЦенаПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНадписьДоИзменения.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'до корректировки:'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНадписьПослеИзменения.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'после корректировки:'"));
ПараметрыУсловногоОформления = НоменклатураСервер.ПараметрыУстановкиУсловногоОформленияНомераГТД();
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТаблицаКорректировкиНомерГТД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоГТД = "ТаблицаКорректировки.ВедетсяУчетПоГТД";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТаблицаКорректировкиНомерГТДСтранаПроисхождения";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияНомераГТД();
ПараметрыУсловногоОформления.ПутьКПолюДатаДокумента = "Объект.Дата";
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТаблицаКорректировкиНомерГТД";
ПараметрыУсловногоОформления.ИмяПоляВводаСтранаПроисхождения = "ТаблицаКорректировкиНомерГТДСтранаПроисхождения";
ПараметрыУсловногоОформления.ПутьКПолюНомерГТД = "ТаблицаКорректировки.НомерГТД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "ТаблицаКорректировки.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "ТаблицаКорректировки.ТипНоменклатуры";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНомерГТД.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНомерГТДСтранаПроисхождения.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоПоРНПТ.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоПоРНПТПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтражения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ГруппаОтбораПоНДС = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораПоНДС.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбораПоНДС.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента = ГруппаОтбораПоНДС.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбораПоНДС.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не требуется>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияКоличестваПоРНПТ();
ПараметрыУсловногоОформления.ИмяПоляВводаКоличествоПоРНПТ = "ТаблицаКорректировкиКоличествоПоРНПТ";
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмеренияТНВЭД = "ТаблицаКорректировкиНоменклатураЕдиницаИзмеренияТНВЭД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "ТаблицаКорректировки.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "ТаблицаКорректировки.ТипНоменклатуры";
ПараметрыУсловногоОформления.ПутьКПолюТипНомераГТД = "ТаблицаКорректировки.ТипНомераГТД";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект,
ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияКоличестваПоРНПТ();
ПараметрыУсловногоОформления.ИмяПоляВводаКоличествоПоРНПТ = "ТаблицаКорректировкиКоличествоПоРНПТПосле";
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмеренияТНВЭД = "ТаблицаКорректировкиНоменклатураЕдиницаИзмеренияТНВЭДПосле";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "ТаблицаКорректировки.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "ТаблицаКорректировки.ТипНоменклатуры";
ПараметрыУсловногоОформления.ПутьКПолюТипНомераГТД = "ТаблицаКорректировки.ТипНомераГТД";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект,
ПараметрыУсловногоОформления);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоПоРНПТ.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоПоРНПТПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНоменклатураЕдиницаИзмеренияТНВЭД.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНоменклатураЕдиницаИзмеренияТНВЭДПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСпособОпределенияСебестоимостиСтрокой.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ГруппаОтбора4 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора4.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтражения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы");
ГруппаОтбора5 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора5.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтраженияСписания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы");
Элемент.Оформление.УстановитьЗначениеПараметра("Доступность", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при корректировке товара/работы в минус по количеству без списания>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСодержание.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для услуг и работ>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтавкаНДС.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтавкаНДСПосле.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
УстановитьУсловноеЦветовоеОформление();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаВзаиморасчетовПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Валюта");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ВалютаВзаиморасчетов");
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаВзаиморасчетов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Валюта");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ВалютаВзаиморасчетов");
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСпособОпределенияСебестоимостиСтрокой.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьУчетСебестоимости");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаВзаиморасчетов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаВзаиморасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаВзаиморасчетовПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаВзаиморасчетовПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаВзаиморасчетовПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаВзаиморасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСРегл.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСУпр.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСРеглПосле.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСУпрПосле.Имя);
СписокНалогообложений = Новый СписокЗначений();
СписокНалогообложений.ЗагрузитьЗначения(УчетНДСУПКлиентСервер.ТипыНалогообложенияСкрывающиеРеквизитыНДС());
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.НалогообложениеНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = СписокНалогообложений;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСРегл.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСРеглПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Валюта");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ВалютаРегламентированногоУчета;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСУпр.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСУпрПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Валюта");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ВалютаУправленческогоУчета;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформлениеСуммЦен(Поле, ПолеКоличество, ПолеСвязанное)
ИмяТаблицы = "ТаблицаКорректировки";
ПутьКПолюЭлемента = ИмяТаблицы + "." + Поле;
ЭлементПоля = ИмяТаблицы + Поле;
ПутьКПолюКоличество = ИмяТаблицы + "." + ПолеКоличество;
ПутьКПолюЭлементаСвязанного = ИмяТаблицы + "." + ПолеСвязанное;
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы[ЭлементПоля].Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюЭлемента);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюКоличество);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = 0;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюЭлемента);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюЭлементаСвязанного);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеЦветовоеОформление()
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаСНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиЦенаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Цена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ЦенаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаСНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиЦенаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Цена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ЦенаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСРеглПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаБезНДСРегл");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаБезНДСРеглПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаБезНДСУпрПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаБезНДСУпр");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаБезНДСУпрПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
КонецПроцедуры
#Область ПриИзмененииРеквизитов
&НаКлиенте
Процедура ТаблицаКорректировкиПриОкончанииРедактированияДляСерверногоВызова()
ТаблицаКорректировкиПриОкончанииРедактированияНаСервере();
КонецПроцедуры
&НаСервере
Процедура ТаблицаКорректировкиПриОкончанииРедактированияНаСервере()
СобытияФорм.ПриИзмененииЭлемента(ЭтотОбъект, "ТаблицаКорректировки");
КонецПроцедуры
&НаСервере
Процедура НалогообложениеНДСПриИзмененииСервер()
Суффикс = "После";
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
ДанныеДляПересчетаСуммыРегл = ПолучитьПараметрыДляПересчетаСуммыРегл(ЭтотОбъект, Суффикс);
ДанныеДляПересчетаСуммыУпр = ПолучитьПараметрыДляПересчетаСуммыУпр(ЭтотОбъект, Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРеглСуффикс", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпрСуффикс", ДанныеДляПересчетаСуммыУпр);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДСПродажи()
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
УстановитьПривилегированныйРежим(Истина);
Если ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПервичныйДокумент") Тогда
ПараметрыЗаполнения = Документы.КорректировкаРеализации.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
Если КорректировкаУслугПрочихАктивов Тогда
ПараметрыЗаполнения.РеализацияТоваров = Ложь;
ПараметрыЗаполнения.РеализацияРаботУслуг = ложь;
ПараметрыЗаполнения.РеализацияПрочихАктивов = Истина;
КонецЕсли;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
УчетНДСУП.ЗаполнитьНалогообложениеНДСПродажи(Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСПродажи(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения)
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
Если НЕ ИспользоватьСоглашенияСКлиентами Тогда
ПараметрыВыбораВидаЦены = ЗначениеНастроекПовтИсп.ПараметрыВыбораВидаЦеныПоУмолчанию();
ПараметрыВыбораВидаЦены.ЦенаВключаетНДС = Объект.ЦенаВключаетНДС;
ПараметрыВыбораВидаЦены.ИспользоватьПриПродаже = Истина;
ПараметрыВыбораВидаЦены.Статус = Перечисления.СтатусыДействияВидовЦен.Действует;
ВидЦеныПоУмолчанию = ЗначениеНастроекПовтИсп.ВидЦеныПоУмолчанию(ПараметрыВыбораВидаЦены);
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииСервер()
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
ИспользоватьУчетСебестоимости = РасчетСебестоимостиПовтИсп.ВозможенРасчетСебестоимости(Объект.Дата);
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
Если КорректировкаУслугПрочихАктивов Тогда
КорректировкаПрошлогоПериодаДоИзменения = КорректировкаПрошлогоПериода;
ДатаДокумента = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
КорректировкаПрошлогоПериода = НачалоГода(ДатаДокумента) > НачалоГода(ДатаОснования);
Если КорректировкаПрошлогоПериодаДоИзменения <> КорректировкаПрошлогоПериода Тогда
УстановитьВидимостьЭлементовПоОснованию();
КонецЕсли;
КонецЕсли;
ПараметрыДляВыбора = ПараметрыДляВыбораСтатейИАналитик();
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаРеализации.ПараметрыВыбораСтатейИАналитикДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Дата");
НастроитьУчетРНПТ();
КонецПроцедуры
&НаСервере
Процедура ОперацияПриИзмененииНаСервере()
ОбновитьТекстДокументыНаОсновании();
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
Если Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.ИсправлениеОшибок Тогда
Объект.ИсправляемыйДокумент = Неопределено;
КонецЕсли;
УстановитьПредставлениеДокументаОснования();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
УстановитьВидимостьИсправляемогоДокумента();
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаКлиенте
Процедура НадписьВалютыНажатиеЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда
ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
Если ИзмененныеРеквизиты.Количество() > 0 Тогда
НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия)
ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, ИзмененныеРеквизиты, Истина);
Если Объект.Валюта <> ТекущаяВалюта
ИЛИ Объект.ВалютаВзаиморасчетов <> ТекущаяВалютаВзаиморасчетов Тогда
ВалютаПриИзмененииСервер(Объект.Валюта);
ТекущаяВалюта = Объект.Валюта;
ТекущаяВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
КонецЕсли;
Если ИзмененныеРеквизиты.Свойство("КурсЧислитель")
И ИзмененныеРеквизиты.КурсЧислитель <> Объект.КурсЧислитель Тогда
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", "После");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ИзмененныеРеквизиты = Результат.СтарыеЗначенияИзмененныхРеквизитов;
ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьДоступныВариантыОтраженияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода)
СписокВыбора = Новый Массив();
ДанныеПоРасхождению = ПолучитьИнформациюОРасхожденииВСтроке(СтрокаТаблицы);
Если Не КорректировкаУслугПрочихАктивов И ДанныеПоРасхождению.КоличествоУпаковокРасхождение > 0 Тогда
Если СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УвеличитьРеализацию"));
ИначеЕсли СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа")
Или СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах"));
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УвеличитьРеализацию"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах"));
Если СтрокаТаблицы.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УвеличитьРеализациюУчестьПриИнвентаризации"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УвеличитьРеализациюУменьшитьСкладскиеОстатки"));
КонецЕсли;
КонецЕсли;
ИначеЕсли Не КорректировкаУслугПрочихАктивов И ДанныеПоРасхождению.КоличествоУпаковокРасхождение < 0 Тогда
Если СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализацию"));
ИначеЕсли СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализацию"));
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"));
Если СтрокаТаблицы.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализациюУчестьПриИнвентаризации"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализациюУвеличитьСкладскиеОстатки"));
КонецЕсли;
КонецЕсли;
ИначеЕсли КорректировкаУслугПрочихАктивов Тогда
Если КорректировкаПрошлогоПериода Тогда
Если ДанныеПоРасхождению.СуммаСНДСРасхождение < 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах"));
КонецЕсли;
ИначеЕсли (СтрокаТаблицы.ТипНоменклатуры <> ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
И СтрокаТаблицы.ТипНоменклатуры <> ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))
Или ДанныеПоРасхождению.КоличествоУпаковокРасхождение = 0 Тогда
Если ДанныеПоРасхождению.СуммаСНДСРасхождение < 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализацию"));
ИначеЕсли ДанныеПоРасхождению.СуммаСНДСРасхождение > 0
Или Не ЗначениеЗаполнено(СтрокаТаблицы.ТипНоменклатуры) Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УвеличитьРеализацию"));
КонецЕсли;
КонецЕсли;
Возврат СписокВыбора;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода)
СписокВыбора = Новый Массив();
ДанныеПоРасхождению = ПолучитьИнформациюОРасхожденииВСтроке(СтрокаТаблицы, Истина);
Если Не КорректировкаУслугПрочихАктивов И ДанныеПоРасхождению.РасхождениеСтавкиНДС Тогда
Если ДанныеПоРасхождению.КоличествоУпаковокРасхождение < 0 Тогда
Если СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализацию"));
ИначеЕсли СтрокаТаблицы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализацию"));
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"));
Если СтрокаТаблицы.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализациюУчестьПриИнвентаризации"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализациюУвеличитьСкладскиеОстатки"));
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли КорректировкаУслугПрочихАктивов Тогда
Если КорректировкаПрошлогоПериода Тогда
Если ДанныеПоРасхождению.СуммаСНДСРасхождение < 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах"));
КонецЕсли;
ИначеЕсли (СтрокаТаблицы.ТипНоменклатуры <> ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
И СтрокаТаблицы.ТипНоменклатуры <> ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))
Или ДанныеПоРасхождению.КоличествоУпаковокРасхождение = 0 Тогда
Если ДанныеПоРасхождению.СуммаСНДСРасхождение < 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализацию"));
ИначеЕсли ДанныеПоРасхождению.СуммаСНДСРасхождение > 0
Или Не ЗначениеЗаполнено(СтрокаТаблицы.ТипНоменклатуры) Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.УвеличитьРеализацию"));
КонецЕсли;
КонецЕсли;
Возврат СписокВыбора;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьИнформациюОРасхожденииВСтроке(ТекущаяСтрока, Списание = Ложь)
ДанныеПоРасхождению = Новый Структура("РасхождениеСтавкиНДС,
|КоличествоУпаковокРасхождение,
|СуммаСНДСРасхождение,
|СуммаНДСРасхождение");
ДанныеПоРасхождению.РасхождениеСтавкиНДС = ТекущаяСтрока.СтавкаНДС <> ТекущаяСтрока.СтавкаНДСПосле
И (ТекущаяСтрока.КоличествоПосле > 0
Или ТекущаяСтрока.СуммаСНДСПосле > 0
Или ТекущаяСтрока.СуммаНДСПосле > 0);
Если ДанныеПоРасхождению.РасхождениеСтавкиНДС Тогда
Если Списание Тогда
ДанныеПоРасхождению.КоличествоУпаковокРасхождение = -ТекущаяСтрока.КоличествоУпаковок;
ДанныеПоРасхождению.СуммаСНДСРасхождение = -ТекущаяСтрока.СуммаСНДС;
ДанныеПоРасхождению.СуммаНДСРасхождение = -ТекущаяСтрока.СуммаНДС;
Иначе
ДанныеПоРасхождению.КоличествоУпаковокРасхождение = ТекущаяСтрока.КоличествоУпаковокПосле;
ДанныеПоРасхождению.СуммаСНДСРасхождение = ТекущаяСтрока.СуммаСНДСПосле;
ДанныеПоРасхождению.СуммаНДСРасхождение = ТекущаяСтрока.СуммаНДСПосле;
КонецЕсли;
Иначе
ДанныеПоРасхождению.КоличествоУпаковокРасхождение = ТекущаяСтрока.КоличествоУпаковокПосле - ТекущаяСтрока.КоличествоУпаковок;
ДанныеПоРасхождению.СуммаСНДСРасхождение = ТекущаяСтрока.СуммаСНДСПосле - ТекущаяСтрока.СуммаСНДС;
ДанныеПоРасхождению.СуммаНДСРасхождение = ТекущаяСтрока.СуммаНДСПосле - ТекущаяСтрока.СуммаНДС;
КонецЕсли;
Возврат ДанныеПоРасхождению;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция УстановитьВариантОтраженияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода)
РасхождениеСтавкиНДС = СтрокаТаблицы.СтавкаНДС <> СтрокаТаблицы.СтавкаНДСПосле
И (СтрокаТаблицы.КоличествоПосле > 0
Или СтрокаТаблицы.СуммаСНДСПосле > 0
Или СтрокаТаблицы.СуммаНДСПосле > 0);
СписокВыбора = ПолучитьДоступныВариантыОтраженияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтражения) = Неопределено Тогда
Если СписокВыбора.Количество() = 1 Тогда
СтрокаТаблицы.ВариантОтражения = СписокВыбора[0];
Иначе
СтрокаТаблицы.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
КонецЕсли;
Если РасхождениеСтавкиНДС Тогда
СписокВыбора = ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтраженияСписания) = Неопределено Тогда
Если СписокВыбора.Количество() = 1 Тогда
СтрокаТаблицы.ВариантОтраженияСписания = СписокВыбора[0];
Иначе
СтрокаТаблицы.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
КонецЕсли;
Иначе
СтрокаТаблицы.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
КонецФункции
&НаСервере
Процедура ПриИзмененииКлючевыхРеквизитовСостояниеЭДО()
ПараметрыПриИзменении = ОбменСКонтрагентами.ПараметрыПриИзмененииКлючевыхРеквизитовЭДО();
ПараметрыПриИзменении.Форма = ЭтотОбъект;
ПараметрыПриИзменении.ДокументСсылка = Объект.Ссылка;
ПараметрыПриИзменении.ДокументОбъект = РеквизитФормыВЗначение("Объект");
ПараметрыПриИзменении.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПриИзменении.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриИзмененииКлючевыхРеквизитовЭДО(ПараметрыПриИзменении);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОснованиеДляПечати()
Если Не ОснованиеИзменено Тогда
СтруктураОснования = Документы.КорректировкаРеализации.СтруктураОснованияДляПечати(Объект);
ЗаполнитьЗначенияСвойств(Объект, СтруктураОснования);
КонецЕсли;
ТаблицаОснованийДляПечати.Загрузить(Документы.КорректировкаРеализации.ТаблицаОснованийДляПечати(Объект));
КонецПроцедуры
#КонецОбласти
#Область Заполнение
&НаСервере
Функция ЗаполнитьЦеныПоСоглашениюСервер()
МассивСтрок = Новый Массив;
Для Каждого Строка Из Элементы.ТаблицаКорректировки.ВыделенныеСтроки Цикл
МассивСтрок.Добавить(ТаблицаКорректировки.НайтиПоИдентификатору(Строка));
КонецЦикла;
НаборыВызовСервера.ДополнитьДоПолногоНабора(ТаблицаКорректировки, МассивСтрок);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Дата", Объект.Дата);
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Партнер", Объект.Партнер);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыЗаполнения.Вставить("ВозвращатьМногооборотнуюТару", ВернутьМногооборотнуюТару);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, ВидЦены");
ПараметрыЗаполнения.Вставить("РассчитыватьНаборы", Истина);
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
Если НЕ ИспользуетсяКоличествоУпаковок Тогда
ПараметрыЗаполнения.Вставить("КолонкиПоЗначению", Новый Структура("Упаковка", Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка()));
КонецЕсли;
ЦеныРассчитаны = ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
ТаблицаКорректировки,
МассивСтрок,
ПараметрыЗаполнения,
СтруктураДействий);
Если ЦеныРассчитаны Тогда
Суффикс = "После";
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура ("Суффикс, ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
КэшированныеЗначения = Неопределено;
Для каждого Строка Из МассивСтрок Цикл
Строка.ЦенаПосле = Строка.Цена;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
МассивСтрок,
СтруктураДействий,
ТаблицаКорректировки,
КэшированныеЗначения);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенСервер(ВидЦен)
МассивСтрок = Новый Массив;
Для Каждого Строка Из Элементы.ТаблицаКорректировки.ВыделенныеСтроки Цикл
МассивСтрок.Добавить(ТаблицаКорректировки.НайтиПоИдентификатору(Строка));
КонецЦикла;
НаборыВызовСервера.ДополнитьДоПолногоНабора(ТаблицаКорректировки, МассивСтрок);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Дата", Объект.Дата);
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("ВидЦены", ВидЦен);
ПараметрыЗаполнения.Вставить("РассчитыватьНаборы", Истина);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, ВидЦены");
Если НЕ ИспользуетсяКоличествоУпаковок Тогда
ПараметрыЗаполнения.Вставить("КолонкиПоЗначению", Новый Структура("Упаковка", Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка()));
КонецЕсли;
ЦеныРассчитаны = ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
ТаблицаКорректировки,
МассивСтрок,
ПараметрыЗаполнения,
СтруктураДействий);
Суффикс = "После";
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура ("Суффикс, ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
КэшированныеЗначения = Неопределено;
Для каждого Строка Из МассивСтрок Цикл
Строка.ЦенаПосле = Строка.Цена;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
МассивСтрок,
СтруктураДействий,
ТаблицаКорректировки,
КэшированныеЗначения);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьСкладВВыделенныхСтрокахНаСервере(Знач МассивВыделенныхСтрок, Склад)
ЗаполненоСтрок = СкладыСервер.ЗаполнитьСкладыВВыделенныхСтроках(ТаблицаКорректировки, МассивВыделенныхСтрок, Склад);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
ПриИзмененииСкладаВТабличнойЧастиСервер();
ДанныеСкладов = ПолучитьДанныеПоСкладам();
Для Каждого СтрокаТЧ Из ТаблицаКорректировки Цикл
ДанныеСклада = ДанныеСкладов.Найти(СтрокаТЧ.Склад);
Если ДанныеСклада <> Неопределено Тогда
СтрокаТЧ.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = ДанныеСклада.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач;
КонецЕсли;
КонецЦикла;
Возврат ЗаполненоСтрок;
КонецФункции
&НаКлиенте
Процедура ЗаполнитьДанныеКорректировкиЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьДанныеКорректировкиСервер();
Если ТаблицаКорректировки.Количество() = 0 Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Нет данных для заполнения'"));
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеКорректировкиСервер()
Если Не ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Поле ""Документ-основание"" не заполнено'"),
,
"ПредставлениеДокументаОснования");
Возврат;
КонецЕсли;
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
Документы.КорректировкаРеализации.ЗаполнитьТоварыПоИсходнымДанным(Объект.ДокументОснование, Объект.Товары, Объект.Расхождения, Объект.Ссылка);
ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере();
ПриЧтенииСозданииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область Наборы
&НаКлиентеНаСервереБезКонтекста
Функция КолонкиНабора()
Колонки = Новый Массив;
Колонки.Добавить("Номенклатура");
Колонки.Добавить("Характеристика");
Колонки.Добавить("Цена");
Колонки.Добавить("Упаковка");
Колонки.Добавить("Количество");
Колонки.Добавить("КоличествоУпаковок");
Колонки.Добавить("СтавкаНДС");
Колонки.Добавить("СуммаНДС");
Колонки.Добавить("СуммаСНДС");
Колонки.Добавить("Сумма");
Возврат Колонки;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция СоответствиеИменКолонокНабора()
Колонки = Новый Соответствие;
Колонки.Вставить("Цена", "ЦенаПосле");
Колонки.Вставить("Количество", "КоличествоПосле");
Колонки.Вставить("КоличествоУпаковок", "КоличествоУпаковокПосле");
Колонки.Вставить("СтавкаНДС", "СтавкаНДСПосле");
Колонки.Вставить("СуммаНДС", "СуммаНДСПосле");
Колонки.Вставить("СуммаСНДС", "СуммаСНДСПосле");
Колонки.Вставить("Сумма", "СуммаПосле");
Возврат Колонки;
КонецФункции
&НаКлиенте
Процедура ПриУдаленииКомплектующих(Действие, ДополнительныйПараметр) Экспорт
Если НаборыКлиент.ДействиеРедактироватьНабор(Действие) Тогда
НаборыКлиент.ПриУдаленииКомплектующих(ЭтотОбъект, "ТаблицаКорректировки", ДополнительныйПараметр);
ИначеЕсли НаборыКлиент.ДействиеУдалитьВесьНабор(Действие) Тогда
ПриУдаленииКомплектующихНаСервере("ТаблицаКорректировки", ДополнительныйПараметр);
КонецЕсли;
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаСервере
Процедура ПриУдаленииКомплектующихНаСервере(ИмяТЧ, ДополнительныйПараметр)
НаборыСервер.ПриУдаленииКомплектующих(ЭтотОбъект, ИмяТЧ, ДополнительныйПараметр);
КонецПроцедуры
&НаСервере
Функция АдресНабораВоВременномХранилище(Параметры)
Возврат НаборыСервер.АдресНабораВоВременномХранилище(ЭтотОбъект, Параметры, "ТаблицаКорректировки");
КонецФункции
&НаСервере
Процедура ПриОкончанииРедактированияНабора(АдресВоВременномХранилище)
Суффикс = "После";
СтруктураДействийСИзмененнымиСтроками = Новый Структура;
СтруктураДействийСИзмененнымиСтроками.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("ПараметрыУказанияСерий", ПараметрыУказанияСерий));
СтруктураДействийСИзмененнымиСтроками.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействийСИзмененнымиСтроками.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействийСДобавленнымиСтроками = Новый Структура;
СтруктураДействийСДобавленнымиСтроками.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("ПараметрыУказанияСерий", ПараметрыУказанияСерий));
СтруктураДействийСДобавленнымиСтроками.Вставить("ПроверитьХарактеристикуПоВладельцу", Неопределено);
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействийСДобавленнымиСтроками.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", Неопределено);
СтруктураДействийСДобавленнымиСтроками.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьСодержание", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСодержанияУслугиВСтрокеТЧ(Объект, Истина));
СтруктураДействийСДобавленнымиСтроками.Вставить("ЗаполнитьПодразделениеВСтрокеТЧ", Новый Структура("Подразделение", Объект.Подразделение));
СтруктураДействийСДобавленнымиСтроками.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействийСДобавленнымиСтроками.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПараметрыДанных = Новый Структура;
ПараметрыДанных.Вставить("Данные", ПолучитьИзВременногоХранилища(АдресВоВременномХранилище));
ПараметрыДанных.Вставить("СтруктураДействийСИзмененнымиСтроками", СтруктураДействийСИзмененнымиСтроками);
ПараметрыДанных.Вставить("СтруктураДействийСДобавленнымиСтроками", СтруктураДействийСДобавленнымиСтроками);
ПараметрыДанных.Вставить("КолонкиНабора", КолонкиНабора());
Если Элементы.ТаблицаКорректировки.ТекущийЭлемент <> Неопределено
И СтрНайти(Элементы.ТаблицаКорректировки.ТекущийЭлемент.Имя, "После") > 0 Тогда
ПараметрыДанных.Вставить("СоответствиеИменКолонок", СоответствиеИменКолонокНабора());
КонецЕсли;
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
НаборыСервер.ПриОкончанииРедактированияНабора(ЭтотОбъект, "ТаблицаКорректировки", ПараметрыДанных);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
СтрокиНабора = ТаблицаКорректировки.НайтиСтроки(Новый Структура("НоменклатураНабора, ХарактеристикаНабора",
ПараметрыДанных.Данные.НоменклатураНабора, ПараметрыДанных.Данные.ХарактеристикаНабора));
Для каждого Строка Из СтрокиНабора Цикл
УстановитьВариантОтраженияДляСтроки(Строка, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
КонецЦикла;
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаКлиенте
Функция БлокируемыйЭлемент(Поле)
БлокируемыеЭлементы = НаборыКлиентСервер.БлокируемыеЭлементы();
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиИндексНабораПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиКоличествоПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиКоличествоУпаковокПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиЦенаПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиСуммаПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиСтавкаНДСПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиСуммаНДСПосле");
БлокируемыеЭлементы.Добавить("ТаблицаКорректировкиСуммаСНДСПосле");
Если БлокируемыеЭлементы.Найти(Поле.Имя) <> Неопределено Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтоговыеПоказателиРеализации(Форма)
Форма.СуммаВсего = Форма.ТаблицаКорректировки.Итог("СуммаСНДС");
Форма.СуммаНДС = Форма.ТаблицаКорректировки.Итог("СуммаНДС");
ОтображатьИтогСуммыНДС = УчетНДСУПКлиентСервер.ОтображатьНДСВИтогахДокументаПродажи(Форма.Объект.НалогообложениеНДС);
Если ОтображатьИтогСуммыНДС Тогда
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоСНДС;
Иначе
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоБезНДС;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
Перем ЕстьКорректировки;
ИспользоватьСоглашенияСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСКлиентами");
ИспользоватьНаправленияДеятельности = ПолучитьФункциональнуюОпцию("ИспользоватьУчетДоходовПоНаправлениямДеятельности");
ЗапретитьПоступлениеТоваровБезНомеровГТД = ПолучитьФункциональнуюОпцию("ЗапретитьПоступлениеТоваровБезНомеровГТД");
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ВалютаУправленческогоУчета = ЗначениеНастроекПовтИсп.ВалютаУправленческогоУчета();
ИспользоватьРеглУчет = ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет");
ЗаполнитьПризнакУчетаСебестоимости();
ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере();
ПроверитьНаличиеКорректировок(Объект.Ссылка, Объект.ДокументОснование, ЕстьКорректировки, ТипПредыдущейКорректировки);
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
УстановитьПривилегированныйРежим(Истина);
ДокументОснованиеСтарый = Объект.ДокументОснование;
ДанныеДокументаОснования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ДокументОснование, "Дата, Договор, СуммаДокумента, СуммаРегл, СуммаУпр");
ДатаОснования = ДанныеДокументаОснования.Дата;
ДоговорОснования = ДанныеДокументаОснования.Договор;
Если ДанныеДокументаОснования.СуммаДокумента > 0 Тогда
КурсРеглПоДокументуОснованию = Окр(ДанныеДокументаОснования.СуммаРегл / ДанныеДокументаОснования.СуммаДокумента, 4, 1);
КурсУпрПоДокументуОснованию = Окр(ДанныеДокументаОснования.СуммаУпр / ДанныеДокументаОснования.СуммаДокумента, 4, 1);
Иначе
КурсРеглПоДокументуОснованию = 0;
КурсУпрПоДокументуОснованию = 0;
КонецЕсли;
ИспользуютсяДоговорыКонтрагентов = ЗначениеЗаполнено(ДоговорОснования);
ДатаДокумента = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
КорректировкаПрошлогоПериода = НачалоГода(ДатаДокумента) > НачалоГода(ДатаОснования);
КорректировкаУслугПрочихАктивов =
Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов;
КорректировкаДавальца = Ложь;
УстановитьПривилегированныйРежим(Ложь);
Иначе
Если Параметры.Свойство("Основание")
И НЕ Параметры.Основание = Неопределено Тогда
Параметры.Свойство("Основание",Объект.ДокументОснование);
КонецЕсли;
КорректировкаПрошлогоПериода = Ложь;
КорректировкаУслугПрочихАктивов = Ложь;
КорректировкаДавальца = Ложь;
ДатаОснования = Объект.Дата;
ИспользуютсяДоговорыКонтрагентов = Неопределено;
КонецЕсли;
УстановитьТипКорректировки();
ЗаполнитьХозяйственнуюОперациюДокументаОснования();
Если НЕ ИспользоватьСоглашенияСКлиентами Тогда
ПараметрыВыбораВидаЦены = ЗначениеНастроекПовтИсп.ПараметрыВыбораВидаЦеныПоУмолчанию();
ПараметрыВыбораВидаЦены.ЦенаВключаетНДС = Объект.ЦенаВключаетНДС;
ПараметрыВыбораВидаЦены.ИспользоватьПриПродаже = Истина;
ПараметрыВыбораВидаЦены.Статус = Перечисления.СтатусыДействияВидовЦен.Действует;
ВидЦеныПоУмолчанию = ЗначениеНастроекПовтИсп.ВидЦеныПоУмолчанию(ПараметрыВыбораВидаЦены);
КонецЕсли;
УстановитьПредставлениеДокументаОснования();
ПараметрыДляВыбора = ПараметрыДляВыбораСтатейИАналитик();
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаРеализации.ПараметрыВыбораСтатейИАналитикДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
УстановитьВидимостьЭлементовПоОснованию();
УстановитьДоступностьЭлементовПоСтатусуСервер();
ЗаполнитьСписокВыбораОпераций();
УстановитьВидимостьИсправляемогоДокумента();
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
НаправленияДеятельностиСервер.ПриЧтенииСозданииНаСервере(ЭтотОбъект);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовПродажи(Объект.Склад);
Элементы.ГруппаКартинкаИНадписьНесколькоСкладов.Видимость = СкладГруппа;
ПодготовитьЗаполнитьУстановитьВидимостьСерий();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
ПриИзмененииСкладаВТабличнойЧастиСервер();
Элементы.ТаблицаКорректировкиЗаполнитьСкладВВыделенныхСтроках.Доступность = СкладГруппа;
ЗаполнитьОграниченияПриСменеДоговора();
УстановитьПараметрыВыбораТаблицаКорректировкиСклад();
ОбновитьТекстДокументыНаОсновании();
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
УстановитьПредставлениеСебестоимости();
ОснованиеИзменено = Ложь;
Если ПравоДоступа("Изменение", Метаданные.Документы.КорректировкаРеализации) И ЗначениеЗаполнено(Объект.Основание) Тогда
Если ЗначениеЗаполнено(Объект.Основание) Тогда
СтруктураОснования = Документы.КорректировкаРеализации.СтруктураОснованияДляПечати(Объект);
ОснованиеИзменено = (СокрЛП(Объект.Основание) <> СтруктураОснования.Основание)
ИЛИ (СокрЛП(Объект.ОснованиеНомер) <> СтруктураОснования.ОснованиеНомер)
ИЛИ (Объект.ОснованиеДата <> СтруктураОснования.ОснованиеДата);
КонецЕсли;
КонецЕсли;
ТаблицаОснованийДляПечати.Загрузить(Документы.КорректировкаРеализации.ТаблицаОснованийДляПечати(Объект));
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
ОбновитьОбязательностьСкладаВТЧ();
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
Элементы.ВариантОформленияПродажи.Видимость = ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг");
РаботаСТабличнымиЧастями.ИнициализироватьКэшСтрок(Элементы.ТаблицаКорректировки);
ПараметрыЗаполнения = Документы.КорректировкаРеализации.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСПродажи(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
ТекущаяОрганизация = Объект.Организация;
ТекущаяВалюта = Объект.Валюта;
ТекущаяВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ТекущийКонтрагент = Объект.Контрагент;
ТекущийПартнер = Объект.Партнер;
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставлениеДокументаОснования()
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОписаниеДокументаОснования = Новый ФорматированнаяСтрока(Строка(Объект.ДокументОснование),,,, "ОткрытьДокумент");
КомандаИзменить = Новый ФорматированнаяСтрока(НСтр("ru = '<Изменить>'"),,,, "ВыбратьДокумент");
ПредставлениеДокументаОснования = Новый ФорматированнаяСтрока(ОписаниеДокументаОснования, " ", КомандаИзменить);
Иначе
ПредставлениеДокументаОснования = Новый ФорматированнаяСтрока(НСтр("ru = 'Выберите документ-основание'"),, ЦветаСтиля.ЦветОсобогоТекста,, "ВыбратьДокумент");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьИсправляемогоДокумента()
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаИсправляемыйДокумент",
"Видимость", ЗначениеЗаполнено(ОБъект.ДокументОснование) И Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.ИсправлениеОшибок);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьЭлементовПоОснованию()
Перем МассивВсехРеквизитов;
Перем МассивРеквизитовОперации;
Документы.КорректировкаРеализации.ЗаполнитьИменаРеквизитовПоОснованию(
Объект.ДокументОснование,
МассивВсехРеквизитов,
МассивРеквизитовОперации,
Объект.ТипКорректировки);
ДенежныеСредстваСервер.УстановитьВидимостьЭлементовПоМассиву(
Элементы,
МассивВсехРеквизитов,
МассивРеквизитовОперации);
ИспользуетсяКоличествоУпаковок = Элементы.ТаблицаКорректировкиКоличествоУпаковок.Видимость;
ИспользуетсяУпаковка = Элементы.ТаблицаКорректировкиУпаковка.Видимость;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиКоличество", "Видимость", НЕ ИспользуетсяУпаковка);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиКоличествоПосле", "Видимость", НЕ ИспользуетсяУпаковка);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиКоличествоУпаковок", "Видимость", ИспользуетсяУпаковка);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиКоличествоУпаковокПосле", "Видимость", ИспользуетсяУпаковка);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиНоменклатураЕдиницаИзмерения", "Видимость",
Элементы.ТаблицаКорректировкиНоменклатура.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиОткрытьПодбор", "Видимость",
Элементы.ТаблицаКорректировкиНоменклатура.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиЗаполнитьЦеныПоСоглашению", "Видимость",
ИспользоватьСоглашенияСКлиентами И Элементы.ТаблицаКорректировкиНоменклатура.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиЗаполнитьЦеныПоСоглашению", "Видимость",
ИспользоватьСоглашенияСКлиентами И Элементы.ТаблицаКорректировкиНоменклатура.Видимость);
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.ГруппаДоговор.Видимость);
Если КорректировкаУслугПрочихАктивов Тогда
Если КорректировкаПрошлогоПериода Тогда
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("ТекстНаПрочиеРасходы");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Истина);
Иначе
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("ТекстНаПрочиеРасходы");
МассивИменЭлементов.Добавить("ПодразделениеДоходы");
МассивИменЭлементов.Добавить("ПодразделениеРасходы");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Ложь);
КонецЕсли;
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("ТаблицаКорректировкиСоставНабора");
МассивИменЭлементов.Добавить("ТаблицаКорректировкиИндексНабора");
МассивИменЭлементов.Добавить("ТаблицаКорректировкиНоменклатураНабора");
МассивИменЭлементов.Добавить("ТаблицаКорректировкиХарактеристикаНабора");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Ложь);
КонецЕсли;
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("КартинкаНесколькоСкладов");
МассивИменЭлементов.Добавить("НадписьНесколькоСкладов");
МассивИменЭлементов.Добавить("ТаблицаКорректировкиЗаполнитьСкладВВыделенныхСтроках");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Элементы.ТаблицаКорректировкиСклад.Видимость);
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("СуммаНаПрочиеРасходы");
МассивИменЭлементов.Добавить("ВалютаНаПрочиеРасходы");
МассивИменЭлементов.Добавить("ОтступНаПрочиеРасходы");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость",
Элементы.СтатьяРасходов.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТаблицаКорректировкиНомерГТДСтранаПроисхождения", "Видимость", Элементы.ТаблицаКорректировкиНомерГТД.Видимость);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьЭлементовПоСтатусуСервер()
УстановитьПодписку = Объект.Согласован;
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить(Элементы.Дата.Имя);
МассивЭлементов.Добавить(Элементы.Партнер.Имя);
МассивЭлементов.Добавить(Элементы.Контрагент.Имя);
МассивЭлементов.Добавить(Элементы.Соглашение.Имя);
МассивЭлементов.Добавить(Элементы.Организация.Имя);
МассивЭлементов.Добавить(Элементы.Договор.Имя);
МассивЭлементов.Добавить(Элементы.Склад.Имя);
МассивЭлементов.Добавить(Элементы.ТипКорректировки.Имя);
МассивЭлементов.Добавить(Элементы.Подразделение.Имя);
МассивЭлементов.Добавить(Элементы.НалогообложениеНДС.Имя);
МассивЭлементов.Добавить(Элементы.ЦенаВключаетНДС.Имя);
МассивЭлементов.Добавить(Элементы.ТаблицаКорректировкиОткрытьПодбор.Имя);
МассивЭлементов.Добавить(Элементы.ТаблицаКорректировкиЗаполнитьЦеныПоСоглашению.Имя);
МассивЭлементов.Добавить(Элементы.ТаблицаКорректировкиЗаполнитьЦеныВыделенныхСтрокПоВидуЦен.Имя);
МассивЭлементов.Добавить(Элементы.ТаблицаКорректировкиЗаполнитьСкладВВыделенныхСтроках.Имя);
МассивЭлементов.Добавить("ТаблицаКорректировки;ПередНачаломДобавления,ПередУдалением,ПередНачаломИзменения;ТаблицаКорректировкиСтатьяДоходов,ТаблицаКорректировкиАналитикаДоходов,ТаблицаКорректировкиСтатьяДоходов,ТаблицаКорректировкиАналитикаДоходов");
ОбщегоНазначенияУТ.УстановитьПодпискуНаСобытияИзмененияЭлементовФормы(ЭтотОбъект, МассивЭлементов, УстановитьПодписку);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
Элементы.ТаблицаКорректировкиЗаполнитьСкладВВыделенныхСтроках.Имя,
"Доступность",
СкладГруппа);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокВыбораОпераций()
Если ЗначениеЗаполнено(Объект.ДокументОснование) И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов") Тогда
ЭлементСписка = Элементы.Операция.СписокВыбора.НайтиПоЗначению(Перечисления.ХозяйственныеОперации.ВозвратНедопоставленногоТовара);
Если ЭлементСписка <> Неопределено Тогда
Элементы.Операция.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
ЭлементСписка = Элементы.Операция.СписокВыбора.НайтиПоЗначению(Перечисления.ХозяйственныеОперации.РеализацияПерепоставленногоТовара);
Если ЭлементСписка <> Неопределено Тогда
Элементы.Операция.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПараметрыДляВыбораСтатейИАналитик()
ПараметрыДляВыбора = Документы.КорректировкаРеализации.ПараметрыОпределенияДоступностиВыбораСтатейИАналитик();
ПараметрыДляВыбора.ХозяйственнаяОперация = Объект.ВидКорректировки;
ПараметрыДляВыбора.ДокументОснование = Объект.ДокументОснование;
ПараметрыДляВыбора.ДатаДокумента = Объект.Дата;
ПараметрыДляВыбора.ТипКорректировки = Объект.ТипКорректировки;
ПараметрыДляВыбора.ОтразитьНаПрочихДоходах = СуммаНаПрочиеДоходы > 0;
ПараметрыДляВыбора.СписатьНаРасходы = СуммаНаПрочиеРасходы > 0;
Возврат ПараметрыДляВыбора;
КонецФункции
&НаСервере
Процедура НастроитьОтображениеЭлементовПоИтогамРасхождений()
ИтогСуммаНДС = 0;
ИтогСуммаСНДС = 0;
СуммаНаПрочиеДоходы = 0;
СуммаНаПрочиеРасходы = 0;
ИтогСуммаСНДСУвеличение = 0;
ИтогСуммаСНДСУменьшение = 0;
ИтогСуммаНДСУвеличение = 0;
ИтогСуммаНДСУменьшение = 0;
РассчитатьИтоговыеСуммыПоТаблицеТоваров();
ПараметрыДляВыбора = ПараметрыДляВыбораСтатейИАналитик();
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаРеализации.ПараметрыВыбораСтатейИАналитикДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ТекстНаПрочиеРасходы = СтрШаблон(НСтр("ru = 'Прочие расходы: %1 %2'"),
Формат(СуммаНаПрочиеРасходы, "ЧДЦ=2; ЧН="),
Объект.Валюта);
ТекстНаПрочиеДоходы = СтрШаблон(НСтр("ru = 'Прочие доходы: %1 %2'"),
Формат(СуммаНаПрочиеДоходы, "ЧДЦ=2; ЧН="),
Объект.Валюта);
ДоступностьРасходы = ЗначениеЗаполнено(СуммаНаПрочиеРасходы);
Элементы.ПодразделениеРасходы.Доступность = ДоступностьРасходы;
ДоступностьДоходы = ЗначениеЗаполнено(СуммаНаПрочиеДоходы);
Элементы.ПодразделениеДоходы.Доступность = ДоступностьДоходы;
ИспользоватьПодакцизныеТовары = ПолучитьФункциональнуюОпцию("ИспользоватьПодакцизныеТовары")
И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПервичныйДокумент")
И Операция = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
УчетПодакцизныхТоваров.ОбновитьЭлементыУчетаПодакцизныхТоваров(ЭтотОбъект, , ДатаОснования);
КонецПроцедуры
&НаСервере
Процедура РассчитатьИтоговыеСуммыПоТаблицеТоваров()
Для Каждого СтрокаРасхождений Из ТаблицаКорректировки Цикл
Если СтрокаРасхождений.СтавкаНДС = СтрокаРасхождений.СтавкаНДСПосле
Или (СтрокаРасхождений.КоличествоПосле = 0
И СтрокаРасхождений.СуммаНДСПосле = 0
И СтрокаРасхождений.СуммаНДСПосле = 0) Тогда
РасхождениеСуммаСНДС = СтрокаРасхождений.СуммаСНДСПосле - СтрокаРасхождений.СуммаСНДС;
РасхождениеСуммаНДС = СтрокаРасхождений.СуммаНДСПосле - СтрокаРасхождений.СуммаНДС;
ПересчетСуммУвеличенияИУменьшения(РасхождениеСуммаСНДС, РасхождениеСуммаНДС,
СтрокаРасхождений.ВариантОтражения);
Иначе
РасхождениеСуммаСНДС = -СтрокаРасхождений.СуммаСНДС;
РасхождениеСуммаНДС = -СтрокаРасхождений.СуммаНДС;
ПересчетСуммУвеличенияИУменьшения(РасхождениеСуммаСНДС, РасхождениеСуммаНДС,
СтрокаРасхождений.ВариантОтраженияСписания);
РасхождениеСуммаСНДС = СтрокаРасхождений.СуммаСНДСПосле;
РасхождениеСуммаНДС = СтрокаРасхождений.СуммаНДСПосле;
ПересчетСуммУвеличенияИУменьшения(РасхождениеСуммаСНДС, РасхождениеСуммаНДС,
СтрокаРасхождений.ВариантОтражения);
КонецЕсли;
ИтогСуммаСНДС = ИтогСуммаСНДС + СтрокаРасхождений.СуммаСНДСПосле;
ИтогСуммаНДС = ИтогСуммаНДС + СтрокаРасхождений.СуммаНДСПосле;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПересчетСуммУвеличенияИУменьшения(РасхождениеСуммаСНДС, РасхождениеСуммаНДС, ВариантОтражения)
ИтогСуммаСНДСУвеличение = ИтогСуммаСНДСУвеличение + ?(РасхождениеСуммаСНДС > 0, РасхождениеСуммаСНДС, 0);
ИтогСуммаСНДСУменьшение = ИтогСуммаСНДСУменьшение + ?(РасхождениеСуммаСНДС < 0, -РасхождениеСуммаСНДС, 0);
ИтогСуммаНДСУвеличение = ИтогСуммаНДСУвеличение + ?(РасхождениеСуммаНДС > 0, РасхождениеСуммаНДС, 0);
ИтогСуммаНДСУменьшение = ИтогСуммаНДСУменьшение + ?(РасхождениеСуммаНДС < 0, -РасхождениеСуммаНДС, 0);
Если ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах Тогда
Если КорректировкаУслугПрочихАктивов И Не КорректировкаПрошлогоПериода Тогда
СуммаНаПрочиеДоходы = СуммаНаПрочиеДоходы + РасхождениеСуммаСНДС;
Иначе
СуммаНаПрочиеДоходы = СуммаНаПрочиеДоходы + ?(РасхождениеСуммаСНДС<0, -РасхождениеСуммаСНДС, РасхождениеСуммаСНДС);
КонецЕсли;
ИначеЕсли ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокРеализаций.СписатьНаРасходы
Или ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокРеализаций.УменьшитьРеализациюСписатьНаРасходы Тогда
СуммаНаПрочиеРасходы = СуммаНаПрочиеРасходы + ?(РасхождениеСуммаСНДС<0, -РасхождениеСуммаСНДС, РасхождениеСуммаСНДС);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьСлужебныеРеквизитыТабличныхЧастей()
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
СлужебнаяТаблицаКорректировки = ТаблицаКорректировки.Выгрузить();
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(СлужебнаяТаблицаКорректировки, СтруктураДействий);
ТаблицаКорректировки.Загрузить(СлужебнаяТаблицаКорректировки);
НаборыСервер.ЗаполнитьСлужебныеРеквизиты(ЭтотОбъект, "ТаблицаКорректировки");
ДанныеСкладов = ПолучитьДанныеПоСкладам();
Для Каждого СтрокаТЧ Из ТаблицаКорректировки Цикл
ДанныеСклада = ДанныеСкладов.Найти(СтрокаТЧ.Склад);
Если ДанныеСклада <> Неопределено Тогда
СтрокаТЧ.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = ДанныеСклада.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач;
КонецЕсли;
КонецЦикла;
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииСкладаВТабличнойЧастиСервер()
СкладыСервер.ПриИзмененииСкладаВТабличнойЧасти(ТаблицаКорректировки, ТаблицаСкладов, СкладГруппа, Ложь);
ВсегоСкладов = ТаблицаСкладов.Количество();
СкладыКлиентСервер.ОбновитьКартинкуГруппыСкладов(НадписьНесколькоСкладов, Элементы.КартинкаНесколькоСкладов, ВсегоСкладов);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбораДокументаОснованияКлиент(ВыбранноеЗначение)
Перем ЕстьКорректировки;
ПроверитьНаличиеКорректировок(Объект.Ссылка, ВыбранноеЗначение, ЕстьКорректировки, ТипПредыдущейКорректировки);
Если ЕстьКорректировки
И ТаблицаКорректировки.Количество() > 0 Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.ОК, Нстр("ru='Да'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, Нстр("ru='Нет'"));
ТекстВопроса = НСтр("ru = 'При изменении документа-основания текущая таблица с данными по корректировке будет перезаполнена по выбранному основанию с учетом предыдущих корректировок. Продолжить?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ТипКорректировкиПриИзмененииДокументаОснованияЗавершение", ЭтотОбъект, ВыбранноеЗначение), ТекстВопроса, СписокКнопок);
Иначе
Если ТаблицаКорректировки.Количество() > 0 Тогда
ВыгрузитьТаблицуКорректировкиВДанныеДокумента();
КонецЕсли;
ОбработкаВыбораДокументаОснованияСервер(ВыбранноеЗначение);
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораДокументаОснованияСервер(ВыбранноеЗначение)
Модифицированность = Истина;
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(ВыбранноеЗначение);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
Объект.ДокументОснование = ВыбранноеЗначение;
Объект.ИсправляемыйДокумент = Неопределено;
ПриЧтенииСозданииНаСервере();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, Форма, Суффикс = "")
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
ДанныеДляПересчетаСуммыРегл = Новый Структура();
ДанныеДляПересчетаСуммыРегл.Вставить("ЦенаВключаетНДС", Форма.Объект.ЦенаВключаетНДС);
ДанныеДляПересчетаСуммыРегл.Вставить("ПоСуммеДокумента", Форма.Объект.Валюта = Форма.ВалютаРегламентированногоУчета);
ДанныеДляПересчетаСуммыРегл.Вставить("КоэффициентПересчетаИзВалютыДокумента", Форма.КурсРеглПоДокументуОснованию);
ДанныеДляПересчетаСуммыРегл.Вставить("Суффикс", Суффикс);
ДанныеДляПересчетаСуммыУпр = Новый Структура();
ДанныеДляПересчетаСуммыУпр.Вставить("ЦенаВключаетНДС", Форма.Объект.ЦенаВключаетНДС);
ДанныеДляПересчетаСуммыУпр.Вставить("ПоСуммеДокумента", Форма.Объект.Валюта = Форма.ВалютаУправленческогоУчета);
ДанныеДляПересчетаСуммыУпр.Вставить("КоэффициентПересчетаИзВалютыДокумента", Форма.КурсУпрПоДокументуОснованию);
ДанныеДляПересчетаСуммыУпр.Вставить("Суффикс", Суффикс);
Если Суффикс = "" Тогда
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", "Количество");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
Иначе
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс, ИмяКоличества", Суффикс, "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРеглСуффикс", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпрСуффикс", ДанныеДляПересчетаСуммыУпр);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, Форма, Суффикс = "")
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Форма.Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = Форма.ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Вставить("Суффикс", Суффикс);
ДанныеДляПересчетаСуммыРегл = Новый Структура();
ДанныеДляПересчетаСуммыРегл.Вставить("ЦенаВключаетНДС", Форма.Объект.ЦенаВключаетНДС);
ДанныеДляПересчетаСуммыРегл.Вставить("ПоСуммеДокумента", Форма.Объект.Валюта = Форма.ВалютаРегламентированногоУчета);
ДанныеДляПересчетаСуммыРегл.Вставить("КоэффициентПересчетаИзВалютыДокумента", Форма.КурсРеглПоДокументуОснованию);
ДанныеДляПересчетаСуммыРегл.Вставить("Суффикс", Суффикс);
ДанныеДляПересчетаСуммыУпр = Новый Структура();
ДанныеДляПересчетаСуммыУпр.Вставить("ЦенаВключаетНДС", Форма.Объект.ЦенаВключаетНДС);
ДанныеДляПересчетаСуммыУпр.Вставить("ПоСуммеДокумента", Форма.Объект.Валюта = Форма.ВалютаУправленческогоУчета);
ДанныеДляПересчетаСуммыУпр.Вставить("КоэффициентПересчетаИзВалютыДокумента", Форма.КурсУпрПоДокументуОснованию);
ДанныеДляПересчетаСуммыУпр.Вставить("Суффикс", Суффикс);
Если Суффикс = "" Тогда
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Форма.Объект,
СтруктураДействий,
"Склад",
Истина);
Иначе
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиницСуффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Суффикс);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРеглСуффикс", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпрСуффикс", ДанныеДляПересчетаСуммыУпр);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Форма.Объект,
СтруктураДействий,
"Склад",
Истина,
Суффикс);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПроверитьНаличиеКорректировок(Ссылка, Основание, ЕстьКорректировки, ТипПредыдущейКорректировки)
ТипПредыдущейКорректировки = ПродажиСервер.ПроверитьНаличиеКорректировок(Ссылка, Основание, ЕстьКорректировки)
КонецПроцедуры
&НаКлиенте
Процедура СообщитьОбОшибкахОткрытияПодбора(Отказ)
Если (ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение))
Или (Не ИспользоватьСоглашенияСКлиентами И ИспользуетсяЦенообразование25) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Соглашение"" не заполнено'"), Объект.Ссылка, "Объект.Соглашение",,Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Валюта) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Валюта"" не заполнено'"), Объект.Ссылка, "Объект.Валюта",,Отказ);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
Суффикс = "После";
ПараметрыПоСкладу = Новый Структура;
ПараметрыПоСкладу.Вставить("ДатаПроверки", Объект.Дата);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Суффикс = Суффикс;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ЗаполнитьСодержание", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСодержанияУслугиВСтрокеТЧ(Объект, Истина));
СтруктураДействий.Вставить("ЗаполнитьВариантОтраженияКорректировкиРеализации", Объект.ВидКорректировки);
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьПодразделениеВСтрокеТЧ", Новый Структура("Подразделение", Объект.Подразделение));
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры", Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь));
СтруктураДействий.Вставить("ЗаполнитьПризнакОрдерногоСклада", ПараметрыПоСкладу);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект, Суффикс);
ПакетнаяОбработкаТабличнойЧастиКлиентСерверЛокализация.ДополнитьСтруктуруДействийПриИзмененииЭлемента(ЭтотОбъект, "Номенклатура", СтруктураДействий);
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина,
Суффикс);
ОбрабатываемыеСтроки = Новый Массив;
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
ТекущаяСтрока = ТаблицаКорректировки.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара, "НоменклатураНабора, ХарактеристикаНабора, Номенклатура, Характеристика, Упаковка, Склад, Цена, КоличествоУпаковок, Серия");
ТекущаяСтрока.ЦенаПосле = СтрокаТовара.Цена;
ТекущаяСтрока.КоличествоУпаковокПосле = СтрокаТовара.КоличествоУпаковок;
ТекущаяСтрока.ИндексНабора = ?(ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора),1,0);
ОбновитьНомерСтрокиТаблицыКорректировки(ТекущаяСтрока);
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
ТаблицаКорректировки);
СтруктураХарактеристикиНоменклатуры = Новый Структура;
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(ТаблицаКорректировки, СтруктураХарактеристикиНоменклатуры);
НаборыСервер.ЗаполнитьСлужебныеРеквизиты(ЭтотОбъект, "ТаблицаКорректировки");
ПриИзмененииСкладаВТабличнойЧастиСервер();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
ОбновитьЗаголовокТаблицыКорректировки();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьРеквизитыПечатиРеализации()
Попытка
ЗаблокироватьДанныеФормыДляРедактирования();
Исключение
ПоказатьПредупреждение(Неопределено, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
СтруктураПараметров = Новый Структура();
СтруктураПараметров.Вставить("АдресДоставки", Объект.АдресДоставки);
СтруктураПараметров.Вставить("АдресДоставкиЗначение", Объект.АдресДоставкиЗначение);
СтруктураПараметров.Вставить("АдресДоставкиЗначенияПолей", Объект.АдресДоставкиЗначенияПолей);
СтруктураПараметров.Вставить("БанковскийСчетГрузоотправителя", Объект.БанковскийСчетГрузоотправителя);
СтруктураПараметров.Вставить("БанковскийСчетГрузополучателя", Объект.БанковскийСчетГрузополучателя);
СтруктураПараметров.Вставить("Грузоотправитель", Объект.Грузоотправитель);
СтруктураПараметров.Вставить("Грузополучатель", Объект.Грузополучатель);
СтруктураПараметров.Вставить("ДоверенностьВыдана", Объект.ДоверенностьВыдана);
СтруктураПараметров.Вставить("ДоверенностьДата", Объект.ДоверенностьДата);
СтруктураПараметров.Вставить("ДоверенностьЛицо", Объект.ДоверенностьЛицо);
СтруктураПараметров.Вставить("ДоверенностьНомер", Объект.ДоверенностьНомер);
СтруктураПараметров.Вставить("Отпустил", Объект.Отпустил);
СтруктураПараметров.Вставить("ОтпустилДолжность", Объект.ОтпустилДолжность);
СтруктураПараметров.Вставить("ТипОбъекта", "КорректировкаРеализации");
СтруктураПараметров.Вставить("БанковскийСчетГрузоотправителя", Объект.БанковскийСчетГрузоотправителя);
СтруктураПараметров.Вставить("БанковскийСчетГрузополучателя", Объект.БанковскийСчетГрузополучателя);
СтруктураПараметров.Вставить("БанковскийСчетКонтрагента", Объект.БанковскийСчетКонтрагента);
СтруктураПараметров.Вставить("Договор", Объект.Договор);
СтруктураПараметров.Вставить("Основание", Объект.Основание);
СтруктураПараметров.Вставить("ОснованиеДата", Объект.ОснованиеДата);
СтруктураПараметров.Вставить("ОснованиеНомер", Объект.ОснованиеНомер);
СтруктураПараметров.Вставить("Партнер", Объект.Партнер);
СтруктураПараметров.Вставить("ХозяйственнаяОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияКлиенту"));
СтруктураПараметров.Вставить("Контрагент", Объект.Контрагент);
СтруктураПараметров.Вставить("ТолькоПросмотр", ТолькоПросмотр);
СтруктураПараметров.Вставить("ПродажаПоЗаказам", Объект.ПродажаПоЗаказам);
СтруктураПараметров.Вставить("БанковскийСчетОрганизации", Объект.БанковскийСчетОрганизации);
СтруктураПараметров.Вставить("Организация", Объект.Организация);
СтруктураПараметров.Вставить("Дата", Объект.Дата);
СтруктураПараметров.Вставить("Руководитель", Объект.Руководитель);
СтруктураПараметров.Вставить("ГлавныйБухгалтер", Объект.ГлавныйБухгалтер);
СтруктураПараметров.Вставить("ТаблицаОснованийДляПечати", ТаблицаОснованийДляПечати);
СтруктураПараметров.Вставить("КодСпециальныхОбстоятельств", Объект.КодСпециальныхОбстоятельств);
ОткрытьФорму("ОбщаяФорма.РеквизитыПечатиРеализации", СтруктураПараметров, ЭтотОбъект,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаСервере
Функция ПолучитьДанныеПоСкладам()
Склады = ТаблицаКорректировки.Выгрузить(,"Склад");
Склады.Свернуть("Склад");
Склады.Колонки.Добавить("ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач",
Новый ОписаниеТипов("Булево"));
Для Каждого Стр Из Склады Цикл
Если ЗначениеЗаполнено(Стр.Склад) Тогда
Стр.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = СкладыСервер.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач(Стр.Склад, Объект.Дата);
КонецЕсли;
КонецЦикла;
Возврат Склады;
КонецФункции
&НаСервере
Процедура ОбновитьТекстДокументыНаОсновании()
ТекстыПоляДокументыНаОсновании.Очистить();
ОбновитьТекстСчетаФактурыВыданные();
ОбщегоНазначенияУТКлиентСервер.ОбновитьТекстДокументыНаОсновании(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
Если Объект.Организация = ТекущаяОрганизация Тогда
Возврат;
КонецЕсли;
ТекущаяОрганизация = Объект.Организация;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ОбновитьТекстДокументыНаОсновании();
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьБанковскийСчетОрганизацииПоВладельцу(Объект.Организация, Объект.БанковскийСчетОрганизации, , Объект.НаправлениеДеятельности);
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
НаправленияДеятельностиСервер.ПриИзмененииНаправленияДеятельности(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Организация");
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
Если Объект.Контрагент = ТекущийКонтрагент Тогда
Возврат;
КонецЕсли;
ТекущийКонтрагент = Объект.Контрагент;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.ГруппаДоговор.Видимость, Объект.Договор);
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ПродажиСервер.ПартнерПриИзменении(Объект);
Объект.БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Контрагент);
КонецЕсли;
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
НаправленияДеятельностиСервер.ПриИзмененииНаправленияДеятельности(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Контрагент");
ОбновитьТекстДокументыНаОсновании();
КонецПроцедуры
&НаСервере
Процедура ПартнерПриИзмененииСервер()
Если Объект.Партнер = ТекущийПартнер Тогда
Возврат;
КонецЕсли;
ТекущийПартнер = Объект.Партнер;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
МассивРеквизитов = Новый Массив;
НоменклатураПартнеровСервер.ЗаполнитьНоменклатуруПартнераПоНоменклатуреПриИзмененииПартнера(ТаблицаКорректировки, Объект.Партнер);
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
МассивРеквизитов.Добавить("Партнер");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, МассивРеквизитов);
Объект.БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Контрагент);
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
ПродажиСервер.ПартнерПриИзменении(Объект);
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
НаправленияДеятельностиСервер.ПриИзмененииНаправленияДеятельности(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииСервер()
ПродажиСервер.ЗаполнитьБанковскиеСчетаПоДоговору(Объект.Договор, Объект.БанковскийСчетОрганизации, Объект.БанковскийСчетКонтрагента);
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
ЗаполнитьОграниченияПриСменеДоговора();
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
НаправленияДеятельностиСервер.ПриИзмененииНаправленияДеятельности(ЭтотОбъект);
КорректировкаДавальца = Ложь;
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
УстановитьВидимостьЭлементовПоОснованию();
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Договор");
ЗаполнитьОснованиеДляПечати();
ПриИзмененииКлючевыхРеквизитовСостояниеЭДО();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОграниченияПриСменеДоговора()
СпсисокТиповНоменклатуры = Новый Массив();
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Работа);
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
МассивТиповДоговоров = Новый Массив();
МассивТиповДоговоров.Добавить(ПредопределенноеЗначение("Перечисление.ТипыДоговоров.СПокупателем"));
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.ТипДоговора", Новый ФиксированныйМассив(МассивТиповДоговоров)));
Элементы.Договор.ПараметрыВыбора = Новый ФиксированныйМассив(НовыйМассив);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.ТипНоменклатуры", Новый ФиксированныйМассив(СпсисокТиповНоменклатуры)));
Элементы.ТаблицаКорректировкиНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(НовыйМассив);
Возврат;
КонецПроцедуры
&НаСервере
Процедура СоглашениеПриИзмененииСервер()
ЗаполнитьУсловияПродажПоСоглашению();
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
ЗаполнитьСписокВыбораОпераций();
ВалютаДокумента = Объект.Валюта;
ТекущаяОрганизация = Объект.Организация;
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовПродажи(Объект.Склад);
СкладПриИзмененииСервер();
ОперацияПриИзмененииНаСервере();
УстановитьДоступностьЭлементовПоСтатусуСервер();
ОбновитьТекстДокументыНаОсновании();
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
ПродажиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.ГруппаДоговор.Видимость, Объект.Договор);
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("Валюта");
МассивРеквизитов.Добавить("ВалютаВзаиморасчетов");
МассивРеквизитов.Добавить("Партнер");
МассивРеквизитов.Добавить("Договор");
МассивРеквизитов.Добавить("НаправлениеДеятельности");
МассивРеквизитов.Добавить("Контрагент");
МассивРеквизитов.Добавить("Организация");
МассивРеквизитов.Добавить("Соглашение");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, МассивРеквизитов);
Объект.БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Контрагент);
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
ЗаполнитьОснованиеДляПечати();
КонецПроцедуры
&НаСервере
Процедура ТипКорректировкиПриИзмененииСервер()
ЭтоКорректировкаРеализацииТоваровИУслуг = Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг;
КорректировкаУслугПрочихАктивов =
Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов;
Для каждого ТекущаяСтрока Из ТаблицаКорректировки Цикл
Если Не ЭтоКорректировкаРеализацииТоваровИУслуг Тогда
ТекущаяСтрока.Номенклатура = Справочники.Номенклатура.ПустаяСсылка();
ТекущаяСтрока.НоменклатураПартнера = Справочники.НоменклатураКонтрагентов.ПустаяСсылка();
ТекущаяСтрока.Характеристика = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
ТекущаяСтрока.Серия = Справочники.СерииНоменклатуры.ПустаяСсылка();
ТекущаяСтрока.Упаковка = Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка();
ТекущаяСтрока.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.ПустаяСсылка();
ТекущаяСтрока.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = Ложь;
ТекущаяСтрока.ВедетсяУчетПоГТД = Ложь;
ТекущаяСтрока.ТипНомераГТД = Перечисления.ТипыНомеровГТД.ПустаяСсылка();
ТекущаяСтрока.ХарактеристикиИспользуются = Ложь;
ТекущаяСтрока.НомерГТД = Справочники.НомераГТД.ПустаяСсылка();
ТекущаяСтрока.СтатусУказанияСерий = 0;
ТекущаяСтрока.КоличествоУпаковок = 0;
КонецЕсли;
КонецЦикла;
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
УстановитьВидимостьЭлементовПоОснованию();
ПараметрыДляВыбора = ПараметрыДляВыбораСтатейИАналитик();
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаРеализации.ПараметрыВыбораСтатейИАналитикДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
УстановитьТипКорректировки();
КонецПроцедуры
&НаКлиенте
Процедура ТипКорректировкиПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.ОК Тогда
ТаблицаКорректировки.Очистить();
ТипКорректировкиПриИзмененииСервер();
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
Иначе
Объект.ТипКорректировки = ТипКорректировкиСтарый;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТипКорректировкиПриИзмененииДокументаОснованияЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.ОК Тогда
ТаблицаКорректировки.Очистить();
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
ОбработкаВыбораДокументаОснованияСервер(ДополнительныеПараметры);
ОбновитьСлужебныеПоляТаблицыЗначений(ЭтотОбъект);
Иначе
Объект.ДокументОснование = ДокументОснованиеСтарый;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СкладПриИзмененииСервер()
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовПродажи(Объект.Склад);
УстановитьПараметрыВыбораТаблицаКорректировкиСклад();
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСкладыВТабличнойЧастиДокументовПродажи")
И Не ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения") Тогда
Элементы.ТаблицаКорректировкиГруппаОтправитель.Видимость = Ложь;
ИначеЕсли Не СкладГруппа Тогда
Элементы.ТаблицаКорректировкиГруппаОтправитель.Заголовок = НСтр("ru = 'Подразделение-отправитель'");
Иначе
Элементы.ТаблицаКорректировкиГруппаОтправитель.Заголовок = НСтр("ru = 'Отправитель'");
КонецЕсли;
Элементы.ГруппаКартинкаИНадписьНесколькоСкладов.Видимость = СкладГруппа;
Элементы.ТаблицаКорректировкиЗаполнитьСкладВВыделенныхСтроках.Доступность = СкладГруппа;
СкладыСервер.ЗаполнитьСкладыВТабличнойЧасти(Объект.Склад, СкладГруппа, ТаблицаКорректировки, Истина);
ПриИзмененииСкладаВТабличнойЧастиСервер();
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
ПодготовитьЗаполнитьУстановитьВидимостьСерий();
Для каждого СтрокаТаблицы Из ТаблицаКорректировки Цикл
Если (СтрокаТаблицы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар
Или СтрокаТаблицы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара)
И СтрокаТаблицы.Количество <> СтрокаТаблицы.КоличествоПосле Тогда
СписокВыбора = ПолучитьДоступныВариантыОтраженияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтражения) = Неопределено Тогда
СтрокаТаблицы.ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка();
КонецЕсли;
СписокВыбораСписания = ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(СтрокаТаблицы, КорректировкаУслугПрочихАктивов, КорректировкаПрошлогоПериода);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтраженияСписания) = Неопределено Тогда
СтрокаТаблицы.ВариантОтраженияСписания = Перечисления.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
КонецЦикла;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ВалютаПриИзмененииСервер(НоваяВалюта)
ДатаДокумента = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата,ТекущаяДатаСеанса());
СтруктурыКурсов = ВзаиморасчетыСервер.КурсыВалютДляПересчета(ЭтотОбъект, ТекущаяВалюта, НоваяВалюта, ВалютаРегламентированногоУчета, ДатаДокумента);
СтруктураКурсовСтаройВалюты = СтруктурыКурсов.СтруктураКурсовСтаройВалюты;
СтруктураКурсовНовойВалюты = СтруктурыКурсов.СтруктураКурсовНовойВалюты;
ПараметрыПересчета = Ценообразование.ПараметрыПересчетаСуммТаблицыВВалюту(Объект.ЦенаВключаетНДС, ТекущаяВалюта, НоваяВалюта, ДатаДокумента);
ПараметрыПересчета.СтруктураКурсовСтаройВалюты = СтруктураКурсовСтаройВалюты;
ПараметрыПересчета.СтруктураКурсовНовойВалюты = СтруктураКурсовНовойВалюты;
Ценообразование.ПересчитатьСуммыТаблицыВВалюту(ТаблицаКорректировки, ПараметрыПересчета);
СтруктураКолонок = Новый Структура;
СтруктураКолонок.Вставить("ЦенаПосле","Цена");
СтруктураКолонок.Вставить("СуммаПосле", "Сумма");
СтруктураКолонок.Вставить("СуммаНДСПосле", "СуммаНДС");
СтруктураКолонок.Вставить("СуммаСНДСПосле", "СуммаСНДС");
СтруктураКолонок.Вставить("СтавкаНДСПосле", "СтавкаНДС");
СтруктураКолонок.Вставить("КоличествоПосле", "Количество");
СтруктураКолонок.Вставить("КоличествоУпаковокПосле", "КоличествоУпаковок");
ВременнаяТаблицаКорректировки =
ОбщегоНазначенияУТ.ВыгрузитьТаблицуЗначений(ТаблицаКорректировки,,
"ЦенаПосле,СуммаПосле,СуммаНДСПосле,СуммаСНДСПосле,СтавкаНДСПосле,КоличествоПосле,КоличествоУпаковокПосле",,
СтруктураКолонок);
Ценообразование.ПересчитатьСуммыТаблицыВВалюту(ВременнаяТаблицаКорректировки, ПараметрыПересчета);
Для Каждого Строка из ТаблицаКорректировки Цикл
НовыеДанные = ВременнаяТаблицаКорректировки[ТаблицаКорректировки.Индекс(Строка)];
Строка.ЦенаПосле = НовыеДанные.Цена;
Строка.СуммаПосле = НовыеДанные.Сумма;
Строка.СуммаНДСПосле = НовыеДанные.СуммаНДС;
Строка.СуммаСНДСПосле = НовыеДанные.СуммаСНДС;
КонецЦикла;
Если НЕ ЗначениеЗаполнено(Объект.Соглашение) Тогда
Объект.ВалютаВзаиморасчетов = Объект.Валюта;
КонецЕсли;
ДанныеДляПересчетаСуммыРегл = ПолучитьПараметрыДляПересчетаСуммыРегл(ЭтотОбъект, "После");
ДанныеДляПересчетаСуммыУпр = ПолучитьПараметрыДляПересчетаСуммыУпр(ЭтотОбъект, "После");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", "После");
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРегл", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпр", ДанныеДляПересчетаСуммыУпр);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСРеглСуффикс", ДанныеДляПересчетаСуммыРегл);
СтруктураДействий.Вставить("ПересчитатьСуммуБезНДСУпрСуффикс", ДанныеДляПересчетаСуммыУпр);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокФормы()
АвтоЗаголовок = Ложь;
ШаблонЗаголовка = НСтр("ru = 'Корректировка реализации до ввода остатков %1'");
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
ОкончаниеЗаголовка = НСтр("ru = '%1 от %2'");
ОкончаниеЗаголовка = СтрШаблон(ОкончаниеЗаголовка, Объект.Номер, Объект.Дата);
Иначе
ОкончаниеЗаголовка = НСтр("ru = '(создание)'");
КонецЕсли;
Заголовок = СтрШаблон(ШаблонЗаголовка, ОкончаниеЗаголовка);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПризнакЗаполненияСклада()
СкладОбязателен = ?(ТаблицаКорректировки.Итог("СкладОбязателен") = 0, 0, 1);
КонецПроцедуры
&НаСервере
Процедура ОбновитьОбязательностьСкладаВТЧ()
ПараметрыЗаполнения = Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры", ПараметрыЗаполнения);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
СкладОбязателен = ?(ТаблицаКорректировки.Итог("СкладОбязателен") = 0, 0, 1);
КонецПроцедуры
&НаСервере
Процедура УстановитьСвязьПараметровВыбораДляЕдиницИзмерений()
НовыйМассив = Новый Массив();
Если НЕ КорректировкаУслугПрочихАктивов Тогда
НоваяСвязь = Новый СвязьПараметраВыбора("Номенклатура", "Элементы.ТаблицаКорректировки.ТекущиеДанные.Номенклатура");
НовыйМассив.Добавить(НоваяСвязь);
КонецЕсли;
Элементы.ТаблицаКорректировкиУпаковка.СвязиПараметровВыбора = Новый ФиксированныйМассив(НовыйМассив);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСкладВВыделенныхСтрокахЗавершение(Результат, ДополнительныеПараметры) Экспорт
ВыделенныеСтроки = ДополнительныеПараметры.ВыделенныеСтроки;
ВыбранныйСклад = Результат;
Если ЗначениеЗаполнено(ВыбранныйСклад) Тогда
ЗаполненоСтрок = ЗаполнитьСкладВВыделенныхСтрокахНаСервере(ВыделенныеСтроки, ВыбранныйСклад);
СкладыКлиент.ПоказатьОповещениеОЗаполненииСкладаВТабличнойЧасти(ВыбранныйСклад, ЗаполненоСтрок, ВыделенныеСтроки.Количество());
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ОбновитьТекстСчетаФактурыВыданные()
ПараметрыРегистрацииВыданныхСФ = Документы.КорректировкаРеализации.ПараметрыРегистрацииСчетовФактурВыданных(Объект);
ПараметрыРегистрацииПолученныхСФ = Документы.КорректировкаРеализации.ПараметрыРегистрацииСчетовФактурПолученных(Объект);
СчетФактураНаОсновании = УчетНДСУП.СчетаФактурыОбщиеНаОсновании(ПараметрыРегистрацииВыданныхСФ, ПараметрыРегистрацииПолученныхСФ);
ТекстДокументыНаОснованииПодвал = ПродажиСервер.СформироватьПредставлениеКомандФормированияСчетаФактурыНаОсновании(Объект.Ссылка, СчетФактураНаОсновании);
ТекстыПоляДокументыНаОсновании.Добавить(ТекстДокументыНаОснованииПодвал);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьЭлементовПоТипуКорректировкиСервер()
ЭтоКорректировкаТоваровИУслуг = Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг;
Элементы.Склад.Видимость = ЭтоКорректировкаТоваровИУслуг И Не КорректировкаДавальца;
Элементы.ТаблицаКорректировкиНоменклатура.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиХарактеристика.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиСерия.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиСклад.Видимость = ЭтоКорректировкаТоваровИУслуг И Не КорректировкаДавальца;
Элементы.ТаблицаКорректировкиНомерГТД.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНомерГТДСтранаПроисхождения.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиГруппаКоличествоПоРНПТ.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНоменклатураКод.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНоменклатураАртикул.Видимость = ЭтоКорректировкаТоваровИУслуг;
СвязиПараметровВыбораПолитикиУпаковок = Новый Массив;
Если ЭтоКорректировкаТоваровИУслуг Тогда
СвязиПараметровВыбораПолитикиУпаковок.Добавить(Новый СвязьПараметраВыбора("Номенклатура",
"Элементы.ТаблицаКорректировки.ТекущиеДанные.Номенклатура", РежимИзмененияСвязанногоЗначения.Очищать));
КонецЕсли;
Элементы.ТаблицаКорректировкиУпаковка.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораПолитикиУпаковок);
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставлениеСебестоимости()
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСпособОпределенияСебестоимостиСтрокой", ПараметрыОпределенияСебестоимости(ЭтотОбъект));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПредставлениеСебестоимостиВСтроке(ТекущаяСтрока)
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСпособОпределенияСебестоимостиСтрокой", ПараметрыОпределенияСебестоимости(ЭтотОбъект));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
#Область КонтрольНесогласованныхИзменений
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент)
Если Элемент.Имя = Элементы.Дата.Имя Тогда
ДатаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Партнер.Имя Тогда
ПартнерПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Контрагент.Имя Тогда
КонтрагентПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Соглашение.Имя Тогда
СоглашениеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Организация.Имя Тогда
ОрганизацияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Договор.Имя Тогда
ДоговорПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Склад.Имя Тогда
СкладПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТипКорректировки.Имя Тогда
ТипКорректировкиПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Подразделение.Имя Тогда
ПодразделениеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.НалогообложениеНДС.Имя Тогда
НалогообложениеНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ЦенаВключаетНДС.Имя Тогда
ЦенаВключаетНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиНоменклатура.Имя Тогда
ТаблицаКорректировкиНоменклатураПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиХарактеристика.Имя Тогда
ТаблицаКорректировкиХарактеристикаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСерия.Имя Тогда
ТаблицаКорректировкиСерияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличествоУпаковок.Имя Тогда
ТаблицаКорректировкиКоличествоУпаковокПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя Тогда
ТаблицаКорректировкиКоличествоУпаковокПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиУпаковка.Имя Тогда
ТаблицаКорректировкиУпаковкаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличество.Имя Тогда
ТаблицаКорректировкиКоличествоПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличествоПосле.Имя Тогда
ТаблицаКорректировкиКоличествоПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиЦена.Имя Тогда
ТаблицаКорректировкиЦенаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиЦенаПосле.Имя Тогда
ТаблицаКорректировкиЦенаПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСумма.Имя Тогда
ТаблицаКорректировкиСуммаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаПосле.Имя Тогда
ТаблицаКорректировкиСуммаПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаНДС.Имя Тогда
ТаблицаКорректировкиСуммаНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаНДСПосле.Имя Тогда
ТаблицаКорректировкиСуммаНДСПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСтавкаНДС.Имя Тогда
ТаблицаКорректировкиСтавкаНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСтавкаНДСПосле.Имя Тогда
ТаблицаКорректировкиСтавкаНДСПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСклад.Имя Тогда
ТаблицаКорректировкиСкладПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиПодразделение.Имя Тогда
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиНомерГТД.Имя Тогда
ТаблицаКорректировкиНомерГТДПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаБезНДСРегл.Имя Тогда
ТаблицаКорректировкиСуммаБезНДСРеглПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаБезНДСРеглПосле.Имя Тогда
ТаблицаКорректировкиСуммаБезНДСРеглПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаБезНДСУпр.Имя Тогда
ТаблицаКорректировкиСуммаБезНДСУпрПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаБезНДСУпрПосле.Имя Тогда
ТаблицаКорректировкиСуммаБезНДСУпрПослеПриИзменении(Элемент);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда)
Если Команда.Имя = Команды.ОткрытьПодбор.Имя Тогда
ОткрытьПодбор(Команда);
ИначеЕсли Команда.Имя = Команды.СоставНабора.Имя Тогда
СоставНабора(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьЦеныПоСоглашению.Имя Тогда
ЗаполнитьЦеныПоСоглашению(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьЦеныВыделенныхСтрокПоВидуЦен.Имя Тогда
ЗаполнитьЦеныВыделенныхСтрокПоВидуЦен(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьСкладВВыделенныхСтроках.Имя Тогда
ЗаполнитьСкладВВыделенныхСтроках(Команда);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеНажатие(Элемент)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ)
Если Элемент.Имя = Элементы.ТаблицаКорректировки.Имя Тогда
ТаблицаКорректировкиПередУдалением(Элемент, Отказ);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Элемент.Имя = Элементы.ТаблицаКорректировки.Имя Тогда
ТаблицаКорректировкиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ВыполнитьПроверкиПередИзменениемСтатуса()
Перем ЕстьКорректировки;
РеквизитМожноИзменить = Ложь;
ДополнительныеПараметры = Новый Структура;
Оповещение = Новый ОписаниеОповещения(
"РезультатВопросаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
Если СтруктураДействийКонтрольНеСогласованныхИзменений = Неопределено
Или СтруктураДействийКонтрольНеСогласованныхИзменений.ОжидаетсяОповещение Тогда
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
ОчиститьСообщения();
ПроверитьНаличиеКорректировок(Объект.Ссылка, Объект.ДокументОснование, ЕстьКорректировки, ТипПредыдущейКорректировки);
Если ЕстьКорректировки Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить("ВвестиКорректировку", Нстр("ru='Ввести корректировку'"));
СписокКнопок.Добавить("ОтменитьИзменения", Нстр("ru='Отмена'"));
ПоказатьВопрос(
Оповещение,
НСтр("ru='На основании документа введена корректировка реализации.
|Изменение исходного документа запрещено.'"),
СписокКнопок,
,
"ВвестиКорректировку");
Иначе
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
Возврат РеквизитМожноИзменить;
КонецФункции
&НаКлиенте
Процедура Подключаемый_ПриИзменении_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
ОбщегоНазначенияУТКлиент.ВернутьПредыдущееЗначениеРеквизита(ЭтотОбъект, Элемент);
Возврат;
Иначе
ОбщегоНазначенияУТКлиент.СохранитьЗначениеРеквизита(ЭтотОбъект, Элемент);
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПриИзменении.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Нажатие_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Нажатие.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеНажатие(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Команда_УстановитьДоступностьЭлементовПоСтатусуСервер(Команда)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Команды.Свойство(Команда.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломИзменения_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если Элемент.ТекущиеДанные = Неопределено
Или СтруктураДействийКонтрольНеСогласованныхИзменений = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтруктураДействийКонтрольНеСогласованныхИзменений.ЗначенияРеквизитов[Элемент.Имя], Элемент.ТекущиеДанные);
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломИзменения.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередУдалением_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередУдалением.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломДобавления_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ, Копирование, Родитель, Группа)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломДобавления.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса()
УстановитьДоступностьЭлементовПоСтатусуСервер();
ОбщегоНазначенияУТКлиент.ПослеИзмененияРеквизитаЗависящегоОтСтатуса(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область РаботаСБуферомОбмена
&НаСервере
Процедура СкопироватьСтрокиНаСервере()
РаботаСТабличнымиЧастями.СкопироватьСтрокиВБуферОбмена(ТаблицаКорректировки, Элементы.ТаблицаКорректировки.ВыделенныеСтроки);
КонецПроцедуры
&НаСервере
Процедура ПолучитьСтрокиИзБуфераОбмена()
Суффикс = "После";
Если КорректировкаУслугПрочихАктивов Тогда
Колонки = "Содержание,КоличествоУпаковок,Количество,Цена,Сумма,КоличествоПосле,ЦенаПосле,СуммаПосле,КоличествоУпаковокПосле,
|СуммаВзаиморасчетов,СуммаВзаиморасчетовПосле,ВариантОтраженияСписания,ВариантОтражения,СтатьяДоходов,АналитикаДоходов,
|СебестоимостьБезНДС,СебестоимостьРегл";
Иначе
Колонки = "Номенклатура,Характеристика,Содержание,Упаковка,КоличествоУпаковок,Количество,Цена,Склад,НомерГТД,
|Подразделение,НоменклатураНабора,ХарактеристикаНабора,КоличествоУпаковокПосле,КоличествоПосле,ЦенаПосле,
|СуммаВзаиморасчетов,СуммаВзаиморасчетовПосле,ВариантОтраженияСписания,ВариантОтражения,СтатьяДоходов,АналитикаДоходов,
|СпособОпределенияСебестоимостиСтрокой,СпособОпределенияСебестоимости,Себестоимость,СебестоимостьБезНДС,СебестоимостьРегл,
|СебестоимостьПР,СебестоимостьВР,ВидЦеныСебестоимости,ДатаЗаполненияСебестоимостиПоВидуЦены";
КонецЕсли;
ТаблицаТоваров = РаботаСТабличнымиЧастями.СтрокиИзБуфераОбмена(, Колонки);
Если Не ЗначениеЗаполнено(ТаблицаТоваров) Тогда
Возврат;
КонецЕсли;
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьВариантОтраженияКорректировкиРеализации", Объект.ВидКорректировки);
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
Если ИспользуетсяКоличествоУпаковок Тогда
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект, Суффикс);
Иначе
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект);
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект, Суффикс);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиентСерверЛокализация.ДополнитьСтруктуруДействийПриИзмененииЭлемента(ЭтотОбъект, "Номенклатура", СтруктураДействий);
ПараметрыПроверкиВидаЦены = Новый Структура("ЦенаВключаетНДС, ИспользоватьПриПродаже, Статус", Объект.ЦенаВключаетНДС, Истина, Перечисления.СтатусыДействияВидовЦен.Действует);
ЕстьЦенаПосле = Ложь;
ЕстьКоличествоПосле = Ложь;
Если ТаблицаТоваров.Колонки.Найти("ЦенаПосле") <> Неопределено Тогда
ЕстьЦенаПосле = Истина;
КонецЕсли;
Если ТаблицаТоваров.Колонки.Найти("КоличествоПосле") <> Неопределено
И ТаблицаТоваров.Колонки.Найти("КоличествоУпаковокПосле") <> Неопределено Тогда
ЕстьКоличествоПосле = Истина;
КонецЕсли;
ОбрабатываемыеСтроки = Новый Массив;
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
ТекущаяСтрока = ТаблицаКорректировки.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара);
ТекущаяСтрока.ИндексНабора = ?(ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора), 1, 0);
Если Не ЕстьЦенаПосле Тогда
ТекущаяСтрока.ЦенаПосле = ТекущаяСтрока.Цена;
КонецЕсли;
Если Не ЕстьКоличествоПосле Тогда
ТекущаяСтрока.КоличествоУпаковокПосле = ТекущаяСтрока.КоличествоУпаковок;
ТекущаяСтрока.КоличествоПосле = ТекущаяСтрока.Количество;
КонецЕсли;
ОбновитьНомерСтрокиТаблицыКорректировки(ТекущаяСтрока);
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
ТаблицаКорректировки);
СтруктураХарактеристикиНоменклатуры = Новый Структура;
СтруктураХарактеристикиНоменклатуры.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(ТаблицаКорректировки, СтруктураХарактеристикиНоменклатуры);
НаборыСервер.ЗаполнитьСлужебныеРеквизиты(ЭтотОбъект, "ТаблицаКорректировки");
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
ДанныеСкладов = ПолучитьДанныеПоСкладам();
Для Каждого СтрокаТЧ Из ТаблицаКорректировки Цикл
ДанныеСклада = ДанныеСкладов.Найти(СтрокаТЧ.Склад);
Если ДанныеСклада <> Неопределено Тогда
СтрокаТЧ.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = ДанныеСклада.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач;
КонецЕсли;
КонецЦикла;
ПриИзмененииСкладаВТабличнойЧастиСервер();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьКомандБуфераОбмена()
МассивЭлементов = Новый Массив();
МассивЭлементов.Добавить("ТаблицаКорректировкиВставитьСтроки");
МассивЭлементов.Добавить("ТаблицаКорректировкиКонтекстноеМенюВставитьСтроки");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность",
РаботаСТабличнымиЧастями.ЕстьСтрокиВБуфереОбмена());
КонецПроцедуры
&НаКлиенте
Процедура УстановитьДоступностьКомандБуфераОбменаНаКлиенте()
МассивЭлементов = Новый Массив();
МассивЭлементов.Добавить("ТаблицаКорректировкиВставитьСтроки");
МассивЭлементов.Добавить("ТаблицаКорректировкиКонтекстноеМенюВставитьСтроки");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность", Истина);
КонецПроцедуры
#КонецОбласти
#Область Серии
&НаКлиенте
Процедура ОткрытьПодборСерий(Текст = "")
Если НоменклатураКлиент.ДляУказанияСерийНуженСерверныйВызов(ЭтотОбъект,ПараметрыУказанияСерий,Текст)Тогда
ТекстИсключения = НСтр("ru = 'Ошибка при попытке указать серии - в этом документе для указания серий не нужен серверный вызов.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодготовитьЗаполнитьУстановитьВидимостьСерий()
ПараметрыУказанияСерийДокумента = НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.КорректировкаРеализации);
ПараметрыУказанияСерий = ПараметрыУказанияСерийДокумента.Товары;
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
УстановитьВидимостьЭлементовСерий();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьЭлементовСерий()
Элементы.ТаблицаКорректировкиСерия.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
КонецПроцедуры
#КонецОбласти
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
#КонецОбласти
#Область ПроверкаЗаполненияДокумента
&НаСервере
Процедура ПроверитьНаличиеДублейСтрокВТаблицеИУдалитьСерии(Отказ)
КлючевыеРеквизиты = Документы.КорректировкаРеализации.КлючевыеРеквизитыСвязиСтрокТаблиц(КорректировкаУслугПрочихАктивов);
ОбщегоНазначенияУТ.ПроверитьНаличиеДублейСтрокТЧ(
ЭтотОбъект,
"ТаблицаКорректировки",
КлючевыеРеквизиты,
Отказ,
НСтр("ru='Данные корректировки'"),
Истина);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
НоменклатураСервер.ОчиститьНеиспользуемыеСерии(
ЭтотОбъект,
ПараметрыУказанияСерий);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ЗаполнитьУсловияПродаж(Знач УсловияПродаж)
Если УсловияПродаж = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.Валюта = УсловияПродаж.Валюта;
Объект.ВалютаВзаиморасчетов = УсловияПродаж.ВалютаВзаиморасчетов;
Объект.ЦенаВключаетНДС = УсловияПродаж.ЦенаВключаетНДС;
ИзмененаОрганизация = ЗначениеЗаполнено(УсловияПродаж.Организация) И УсловияПродаж.Организация <> Объект.Организация;
ИзмененаФормаОплаты = ЗначениеЗаполнено(УсловияПродаж.ФормаОплаты) И УсловияПродаж.ФормаОплаты <> Объект.ФормаОплаты;
Объект.ФормаОплаты = УсловияПродаж.ФормаОплаты;
Если ИзмененаОрганизация Тогда
Объект.Организация = УсловияПродаж.Организация;
КонецЕсли;
Если ИзмененаОрганизация Или ИзмененаФормаОплаты Тогда
СтруктураПараметров = ДенежныеСредстваСервер.ПараметрыЗаполненияБанковскогоСчетаОрганизацииПоУмолчанию();
СтруктураПараметров.Организация = Объект.Организация;
Объект.БанковскийСчетОрганизации = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(СтруктураПараметров);
КонецЕсли;
Если Не УсловияПродаж.Типовое Тогда
Если ЗначениеЗаполнено(УсловияПродаж.Контрагент) И УсловияПродаж.Контрагент<>Объект.Контрагент Тогда
Объект.Контрагент = УсловияПродаж.Контрагент;
КонецЕсли;
КонецЕсли;
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
Если УсловияПродаж.ИспользуютсяДоговорыКонтрагентов <> Неопределено И УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
Объект.Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(
Объект,
Перечисления.ХозяйственныеОперации.РеализацияКлиенту,
Объект.ВалютаВзаиморасчетов);
ПродажиСервер.ЗаполнитьБанковскиеСчетаПоДоговору(Объект.Договор, Объект.БанковскийСчетОрганизации, Объект.БанковскийСчетКонтрагента);
КонецЕсли;
Если ИспользоватьНаправленияДеятельности Тогда
НаправленияДеятельностиСервер.ЗаполнитьНаправлениеПоУмолчанию(Объект.НаправлениеДеятельности, Объект.Соглашение, Объект.Договор);
КонецЕсли;
НаправленияДеятельностиСервер.ПриИзмененииНаправленияДеятельности(ЭтотОбъект);
Если ЗначениеЗаполнено(УсловияПродаж.Склад) Тогда
Объект.Склад = УсловияПродаж.Склад;
СтруктураОтветственного = ПродажиСервер.ПолучитьОтветственногоПоСкладу(Объект.Склад);
Если СтруктураОтветственного <> Неопределено Тогда
Объект.Отпустил = СтруктураОтветственного.Ответственный;
Объект.ОтпустилДолжность = СтруктураОтветственного.ОтветственныйДолжность;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(УсловияПродаж.ГруппаФинансовогоУчета) Тогда
Объект.ГруппаФинансовогоУчета = УсловияПродаж.ГруппаФинансовогоУчета;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияПродажПоСоглашению()
Суффикс = "После";
УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(Объект.Соглашение, Истина, Истина);
ЗаполнитьУсловияПродаж(УсловияПродаж);
ПараметрыЗаполнения = Документы.КорректировкаРеализации.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСПродажи(Объект.НалогообложениеНДС, ПараметрыЗаполнения);
ПараметрыЗаполненияСтавкиНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполненияСтавкиНДС.Суффикс = Суффикс;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполненияСтавкиНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполненияСтавкиНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("Дата", Объект.Дата);
ПараметрыЗаполнения.Вставить("Организация", Объект.Организация);
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыЗаполнения.Вставить("ВозвращатьМногооборотнуюТару", ВернутьМногооборотнуюТару);
ПараметрыЗаполнения.Вставить("РассчитыватьНаборы", Истина);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, СтавкаНДС");
ЦеныРассчитаны = ЦеныПредприятияЗаполнениеСервер.ЗаполнитьЦены(
ТаблицаКорректировки,
,
ПараметрыЗаполнения,
СтруктураДействий);
Если ЦеныРассчитаны Тогда
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс",
Новый Структура ("Суффикс, ИмяКоличества",
Суффикс,
?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество")));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов", Суффикс);
Для каждого Строка Из ТаблицаКорректировки Цикл
Строка.ЦенаПосле = Строка.Цена;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий);
КонецЕсли;
Объект.БанковскийСчетКонтрагента = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Контрагент, , Объект.БанковскийСчетКонтрагента);
СтруктураПараметров = ДенежныеСредстваСервер.ПараметрыЗаполненияБанковскогоСчетаОрганизацииПоУмолчанию();
СтруктураПараметров.Организация = Объект.Организация;
СтруктураПараметров.БанковскийСчет = Объект.БанковскийСчетОрганизации;
Объект.БанковскийСчетОрганизации = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(СтруктураПараметров);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенЗавершение(ВидЦен, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(ВидЦен) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенСервер(ВидЦен);
ПродажиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоВидуЦен(ЦеныРассчитаны, ВидЦен);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РезультатВопросаЗавершение(КодОтвета, ДополнительныеПараметры) Экспорт
Если КодОтвета = "ВвестиКорректировку" Тогда
ПараметрыОткрытия = Новый Структура("Основание", Объект.ДокументОснование);
ОткрытьФорму("Документ.КорректировкаРеализации.Форма.ФормаДокументаДоВводаОстатков",
ПараметрыОткрытия);
КонецЕсли;
РассчитатьИтоговыеПоказателиРеализации(ЭтотОбъект);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеВыбораСкладов(Склад)
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Склады.Ссылка КАК Ссылка
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Ссылка В ИЕРАРХИИ(&ГруппаСкладов)
| И Склады.ЭтоГруппа = ЛОЖЬ
| И Склады.ВыборГруппы <> ЗНАЧЕНИЕ(Перечисление.ВыборГруппыСкладов.Запретить)");
Запрос.УстановитьПараметр("ГруппаСкладов", Склад);
МассивСкладов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Возврат МассивСкладов;
КонецФункции
&НаСервере
Процедура УстановитьПараметрыВыбораТаблицаКорректировкиСклад()
Элементы.ТаблицаКорректировкиСклад.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
ДанныеВыбораСкладов = ДанныеВыбораСкладов(Объект.Склад);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.ТаблицаКорректировкиСклад, "Ссылка", ДанныеВыбораСкладов);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьХозяйственнуюОперациюДокументаОснования()
Операция = Документы.КорректировкаРеализации.ХозяйственнаяОперацияДокументаОснования(Объект.ДокументОснование);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаСервере
Функция ПараметрыРегистрацииСчетовФактур()
Результат = Новый Структура;
Результат.Вставить("Выданные", Документы.КорректировкаРеализации.ПараметрыРегистрацииСчетовФактурВыданных(Объект));
Результат.Вставить("Полученные", Документы.КорректировкаРеализации.ПараметрыРегистрацииСчетовФактурПолученных(Объект));
Возврат Результат;
КонецФункции
&НаСервере
Процедура ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты)
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, ИзмененныеРеквизиты, Истина);
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере()
ТаблицаРезультата = Документы.КорректировкаРеализации.ДанныеКорректировкиДоВводаОстатков(Объект, ИспользуетсяКоличествоУпаковок);
ТаблицаКорректировки.Загрузить(ТаблицаРезультата);
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьТаблицуКорректировкиВДанныеДокумента()
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
НалогообложенияБезНДС = УчетНДСУПКлиентСервер.ТипыНалогообложенияСкрывающиеРеквизитыНДС();
ОчищатьСуммыРеглИУпр = Ложь;
Если НалогообложенияБезНДС.Найти(Объект.НалогообложениеНДС) = Неопределено Тогда
ОчищатьСуммыРеглИУпр = Истина;
КонецЕсли;
Для каждого СтрокаТаблицыКорректировки Из ТаблицаКорректировки Цикл
Если ОчищатьСуммыРеглИУпр Тогда
СтрокаТаблицыКорректировки.СуммаБезНДСРегл = 0;
СтрокаТаблицыКорректировки.СуммаБезНДСУпр = 0;
СтрокаТаблицыКорректировки.СуммаБезНДСРеглПосле = 0;
СтрокаТаблицыКорректировки.СуммаБезНДСУпрПосле = 0;
КонецЕсли;
СтрокаТовары = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТовары, СтрокаТаблицыКорректировки);
СтрокаТовары.СтавкаНДС = СтрокаТаблицыКорректировки.СтавкаНДСПосле;
СтрокаТовары.Цена = СтрокаТаблицыКорректировки.ЦенаПосле;
СтрокаТовары.КоличествоУпаковок = СтрокаТаблицыКорректировки.КоличествоУпаковокПосле;
СтрокаТовары.Количество = СтрокаТаблицыКорректировки.КоличествоПосле;
СтрокаТовары.КоличествоПоРНПТ = СтрокаТаблицыКорректировки.КоличествоПоРНПТПосле;
СтрокаТовары.Сумма = СтрокаТаблицыКорректировки.СуммаПосле;
СтрокаТовары.СуммаНДС = СтрокаТаблицыКорректировки.СуммаНДСПосле;
СтрокаТовары.СуммаСНДС = СтрокаТаблицыКорректировки.СуммаСНДСПосле;
СтрокаТовары.СуммаБезНДСРегл = СтрокаТаблицыКорректировки.СуммаБезНДСРеглПосле;
СтрокаТовары.СуммаБезНДСУпр = СтрокаТаблицыКорректировки.СуммаБезНДСУпрПосле;
Если Объект.Валюта = Объект.ВалютаВзаиморасчетов
И СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле <> 0
И СтрокаТаблицыКорректировки.СуммаВзаиморасчетов = 0
И СтрокаТаблицыКорректировки.Количество <> 0 Тогда
СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле = 0;
КонецЕсли;
СтрокаТовары.СуммаВзаиморасчетов = СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле;
КонецЦикла;
Для каждого СтрокаТаблицыКорректировки Из ТаблицаКорректировки Цикл
КоличествоУпаковок = СтрокаТаблицыКорректировки.КоличествоУпаковокПосле - СтрокаТаблицыКорректировки.КоличествоУпаковок;
Количество = СтрокаТаблицыКорректировки.КоличествоПосле - СтрокаТаблицыКорректировки.Количество;
КоличествоПоРНПТ = СтрокаТаблицыКорректировки.КоличествоПоРНПТПосле - СтрокаТаблицыКорректировки.КоличествоПоРНПТ;
Сумма = СтрокаТаблицыКорректировки.СуммаПосле - СтрокаТаблицыКорректировки.Сумма;
СуммаНДСРасхождение = СтрокаТаблицыКорректировки.СуммаНДСПосле - СтрокаТаблицыКорректировки.СуммаНДС;
СуммаСНДС = СтрокаТаблицыКорректировки.СуммаСНДСПосле - СтрокаТаблицыКорректировки.СуммаСНДС;
СуммаБезНДСРегл = СтрокаТаблицыКорректировки.СуммаБезНДСРеглПосле - СтрокаТаблицыКорректировки.СуммаБезНДСРегл;
СуммаБезНДСУпр = СтрокаТаблицыКорректировки.СуммаБезНДСУпрПосле - СтрокаТаблицыКорректировки.СуммаБезНДСУпр;
Если Не ИспользоватьУчетСебестоимости
И Не ЗначениеЗаполнено(СтрокаТаблицыКорректировки.СпособОпределенияСебестоимости) Тогда
СтрокаТаблицыКорректировки.СпособОпределенияСебестоимости = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСебестоимостиВозврата.ИзТекущегоДокумента");
КонецЕсли;
Если Объект.Валюта = Объект.ВалютаВзаиморасчетов
И СтрокаТаблицыКорректировки.СуммаВзаиморасчетов <> 0
И СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле = 0
И СтрокаТаблицыКорректировки.КоличествоПосле <> 0 Тогда
СтрокаТаблицыКорректировки.СуммаВзаиморасчетов = 0;
КонецЕсли;
СуммаВзаиморасчетов = СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле - СтрокаТаблицыКорректировки.СуммаВзаиморасчетов;
РазличныеСтавкиНДС = СтрокаТаблицыКорректировки.СтавкаНДС <> СтрокаТаблицыКорректировки.СтавкаНДСПосле
И (СтрокаТаблицыКорректировки.КоличествоПосле > 0
Или СтрокаТаблицыКорректировки.СуммаСНДСПосле > 0
Или СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле > 0
Или СтрокаТаблицыКорректировки.СуммаНДСПосле > 0);
Если КоличествоУпаковок <> 0
Или Количество <> 0
Или КоличествоПоРНПТ <> 0
Или Сумма <> 0
Или СуммаНДСРасхождение <> 0
Или СуммаСНДС <> 0
Или СуммаВзаиморасчетов <> 0
Или РазличныеСтавкиНДС Тогда
Если СтрокаТаблицыКорректировки.СтавкаНДСПосле = СтрокаТаблицыКорректировки.СтавкаНДС Тогда
СтрокаРасхождения = Объект.Расхождения.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРасхождения, СтрокаТаблицыКорректировки);
СтрокаРасхождения.КоличествоУпаковок = КоличествоУпаковок;
СтрокаРасхождения.Количество = Количество;
СтрокаРасхождения.КоличествоПоРНПТ = КоличествоПоРНПТ;
СтрокаРасхождения.Сумма = Сумма;
СтрокаРасхождения.СуммаНДС = СуммаНДСРасхождение;
СтрокаРасхождения.СуммаСНДС = СуммаСНДС;
СтрокаРасхождения.СуммаВзаиморасчетов = СуммаВзаиморасчетов;
СтрокаРасхождения.СуммаБезНДСРегл = СуммаБезНДСРегл;
СтрокаРасхождения.СуммаБезНДСУпр = СуммаБезНДСУпр;
Иначе
Если СтрокаТаблицыКорректировки.КоличествоУпаковок <> 0
Или СтрокаТаблицыКорректировки.Количество <> 0
Или СтрокаТаблицыКорректировки.КоличествоПоРНПТ <> 0
Или СтрокаТаблицыКорректировки.Сумма <> 0
Или СтрокаТаблицыКорректировки.СуммаНДС <> 0
Или СтрокаТаблицыКорректировки.СуммаСНДС <> 0
Или СтрокаТаблицыКорректировки.СуммаВзаиморасчетов <> 0 Тогда
СтрокаРасхождения = Объект.Расхождения.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРасхождения, СтрокаТаблицыКорректировки);
СтрокаРасхождения.КоличествоУпаковок = -СтрокаТаблицыКорректировки.КоличествоУпаковок;
СтрокаРасхождения.Количество = -СтрокаТаблицыКорректировки.Количество;
СтрокаРасхождения.КоличествоПоРНПТ = -СтрокаТаблицыКорректировки.КоличествоПоРНПТ;
СтрокаРасхождения.Сумма = -СтрокаТаблицыКорректировки.Сумма;
СтрокаРасхождения.СуммаНДС = -СтрокаТаблицыКорректировки.СуммаНДС;
СтрокаРасхождения.СуммаСНДС = -СтрокаТаблицыКорректировки.СуммаСНДС;
СтрокаРасхождения.СуммаВзаиморасчетов = -СтрокаТаблицыКорректировки.СуммаВзаиморасчетов;
СтрокаРасхождения.ВариантОтражения = ?(РазличныеСтавкиНДС, СтрокаТаблицыКорректировки.ВариантОтраженияСписания, СтрокаТаблицыКорректировки.ВариантОтражения);
СтрокаРасхождения.СуммаБезНДСРегл = -СтрокаТаблицыКорректировки.СуммаБезНДСРегл;
СтрокаРасхождения.СуммаБезНДСУпр = -СтрокаТаблицыКорректировки.СуммаБезНДСУпр;
КонецЕсли;
Если СтрокаТаблицыКорректировки.КоличествоУпаковокПосле <> 0
Или СтрокаТаблицыКорректировки.КоличествоПосле <> 0
Или СтрокаТаблицыКорректировки.КоличествоПоРНПТПосле <> 0
Или СтрокаТаблицыКорректировки.СуммаПосле <> 0
Или СтрокаТаблицыКорректировки.СуммаНДСПосле <> 0
Или СтрокаТаблицыКорректировки.СуммаСНДСПосле <> 0
Или СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле <> 0 Тогда
СтрокаРасхождения = Объект.Расхождения.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРасхождения, СтрокаТаблицыКорректировки);
СтрокаРасхождения.СтавкаНДС = СтрокаТаблицыКорректировки.СтавкаНДСПосле;
СтрокаРасхождения.КоличествоУпаковок = СтрокаТаблицыКорректировки.КоличествоУпаковокПосле;
СтрокаРасхождения.Количество = СтрокаТаблицыКорректировки.КоличествоПосле;
СтрокаРасхождения.КоличествоПоРНПТ = СтрокаТаблицыКорректировки.КоличествоПоРНПТПосле;
СтрокаРасхождения.Сумма = СтрокаТаблицыКорректировки.СуммаПосле;
СтрокаРасхождения.СуммаНДС = СтрокаТаблицыКорректировки.СуммаНДСПосле;
СтрокаРасхождения.СуммаСНДС = СтрокаТаблицыКорректировки.СуммаСНДСПосле;
СтрокаРасхождения.СуммаВзаиморасчетов = СтрокаТаблицыКорректировки.СуммаВзаиморасчетовПосле;
СтрокаРасхождения.СуммаБезНДСРегл = СтрокаТаблицыКорректировки.СуммаБезНДСРегл;
СтрокаРасхождения.СуммаБезНДСУпр = СтрокаТаблицыКорректировки.СуммаБезНДСУпр;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьСлужебныеДанныеСписываемыхИмпортныхТоваров()
ЗначениеПоУмолчанию = Новый Структура;
ЗначениеПоУмолчанию.Вставить("НомерГТД", Неопределено);
ЗначениеПоУмолчанию.Вставить("КоличествоПоРНПТ", 0);
ЗначениеПоУмолчанию.Вставить("КоличествоПоРНПТПосле", 0);
Для Каждого СтрокаТЧ Из ТаблицаКорректировки Цикл
Если СтрокаТЧ.ВариантОтражения <> ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокРеализаций.ОтразитьНаПрочихДоходах")
И (СтрокаТЧ.СтавкаНДС = СтрокаТЧ.СтавкаНДСПосле
Или СтрокаТЧ.Количество = 0)
И (СтрокаТЧ.КоличествоПосле > СтрокаТЧ.Количество
Или СтрокаТЧ.КоличествоУпаковокПосле > СтрокаТЧ.КоличествоУпаковок) Тогда
ЗаполнитьЗначенияСвойств(СтрокаТЧ, ЗначениеПоУмолчанию);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьСлужебныеПоляТаблицыЗначений(Форма)
Если Форма.ТаблицаКорректировки.Количество() = 0 Тогда
ТекстЗаголовка = НСтр("ru = 'Данные корректировки'");
Иначе
ТекстЗаголовка = СтрШаблон(НСтр("ru = 'Данные корректировки (%1)'"), Форма.ТаблицаКорректировки.Количество());
КонецЕсли;
Форма.Элементы.ГруппаТаблицаКорректировки.Заголовок = ТекстЗаголовка;
Для каждого ТекущаяСтрока Из Форма.ТаблицаКорректировки Цикл
ТекущаяСтрока.НомерСтроки = Форма.ТаблицаКорректировки.Индекс(ТекущаяСтрока)+1;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьЗаголовокТаблицыКорректировки()
Если ТаблицаКорректировки.Количество() = 0 Тогда
ТекстЗаголовка = НСтр("ru = 'Данные корректировки'");
Иначе
ТекстЗаголовка = СтрШаблон(НСтр("ru = 'Данные корректировки (%1)'"), ТаблицаКорректировки.Количество());
КонецЕсли;
Элементы.ГруппаТаблицаКорректировки.Заголовок = ТекстЗаголовка;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНомерСтрокиТаблицыКорректировки(ТекущаяСтрока)
ТекущаяСтрока.НомерСтроки = ТаблицаКорректировки.Индекс(ТекущаяСтрока) + 1;
КонецПроцедуры
&НаСервере
Процедура УстановитьТипКорректировки()
Если Не ЗначениеЗаполнено(Объект.ТипКорректировки) Тогда
Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг;
КонецЕсли;
ТипКорректировкиСтарый = Объект.ТипКорректировки;
Элементы.ТипКорректировки.Доступность = Не ЗначениеЗаполнено(ТипПредыдущейКорректировки);
КонецПроцедуры
&НаСервере
Процедура ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки()
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
Объект.ШтрихкодыУпаковок.Очистить();
Объект.КорректировкаЗадолженности.Очистить();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПризнакУчетаСебестоимости()
ИспользоватьУчетСебестоимости = РасчетСебестоимостиПовтИсп.ВозможенРасчетСебестоимости(Объект.Дата);
КонецПроцедуры
&НаСервере
Процедура ОбновитьИнформациюПриИзмененииСебестоимости()
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
УстановитьПредставлениеСебестоимости();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыОпределенияСебестоимости(Форма)
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("НалогообложениеНДС", Форма.Объект.НалогообложениеНДС);
СтруктураПараметров.Вставить("ВалютаУправленческогоУчета", Форма.ВалютаУправленческогоУчета);
СтруктураПараметров.Вставить("ВалютаРегламентированногоУчета", Форма.ВалютаРегламентированногоУчета);
СтруктураПараметров.Вставить("ИспользоватьРеглУчет", Форма.ИспользоватьРеглУчет);
Возврат СтруктураПараметров
КонецФункции
&НаКлиенте
Процедура ЗаполнитьСебестоимостьВТаблице()
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Организация", Объект.Организация);
ПараметрыФормы.Вставить("Дата", Объект.Дата);
ПараметрыФормы.Вставить("Партнер", Объект.Партнер);
ПараметрыФормы.Вставить("Контрагент", Объект.Контрагент);
ПараметрыФормы.Вставить("Договор", Объект.Договор);
ПараметрыФормы.Вставить("Соглашение", Объект.Соглашение);
ПараметрыФормы.Вставить("ВалютаДокумента", Объект.Валюта);
ПараметрыФормы.Вставить("ТипНалогообложения", Объект.НалогообложениеНДС);
ВыделенныеСтроки = Элементы.ТаблицаКорректировки.ВыделенныеСтроки;
СтрокиТаблицыТовары = Новый Массив();
Для Каждого ТекущийИдентификаторСтроки Из ВыделенныеСтроки Цикл
СтрокаТаблицы = ТаблицаКорректировки.НайтиПоИдентификатору(ТекущийИдентификаторСтроки);
ПараметрыСтроки = Новый Структура();
Если СтрокаТаблицы.СтавкаНДС = СтрокаТаблицы.СтавкаНДСПосле Тогда
КоличествоУпаковок = СтрокаТаблицы.КоличествоУпаковок - СтрокаТаблицы.КоличествоУпаковокПосле;
Иначе
КоличествоУпаковок = СтрокаТаблицы.КоличествоУпаковок;
КонецЕсли;
ПараметрыСтроки.Вставить("Идентификатор", ТекущийИдентификаторСтроки);
ПараметрыСтроки.Вставить("СпособОпределенияСебестоимости", СтрокаТаблицы.СпособОпределенияСебестоимости);
ПараметрыСтроки.Вставить("ВидЦены", СтрокаТаблицы.ВидЦеныСебестоимости);
ПараметрыСтроки.Вставить("ДатаЗаполненияСебестоимостиПоВидуЦены", СтрокаТаблицы.ДатаЗаполненияСебестоимостиПоВидуЦены);
ПараметрыСтроки.Вставить("КоличествоУпаковок", КоличествоУпаковок);
ПараметрыСтроки.Вставить("Упаковка", СтрокаТаблицы.Упаковка);
ПараметрыСтроки.Вставить("Номенклатура", СтрокаТаблицы.Номенклатура);
ПараметрыСтроки.Вставить("Характеристика", СтрокаТаблицы.Характеристика);
ПараметрыСтроки.Вставить("СтавкаНДС", СтрокаТаблицы.СтавкаНДС);
ПараметрыСтроки.Вставить("СуммаСНДС", СтрокаТаблицы.Себестоимость);
ПараметрыСтроки.Вставить("СуммаБезНДС", СтрокаТаблицы.СебестоимостьБезНДС);
ПараметрыСтроки.Вставить("СуммаРегл", СтрокаТаблицы.СебестоимостьРегл);
ПараметрыСтроки.Вставить("СуммаПР", СтрокаТаблицы.СебестоимостьПР);
ПараметрыСтроки.Вставить("СуммаВР", СтрокаТаблицы.СебестоимостьВР);
СтрокиТаблицыТовары.Добавить(ПараметрыСтроки);
КонецЦикла;
ПараметрыФормы.Вставить("СтрокиТаблицыТовары", СтрокиТаблицыТовары);
ОткрытьФорму("Документ.КорректировкаРеализации.Форма.ФормаВыбораСпособаОпределенияСебестоимости",
ПараметрыФормы,
ЭтотОбъект,,,,
Новый ОписаниеОповещения("ВыборСпособаОпределенияСебестоимостиЗавершение",
ЭтотОбъект),
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ВыборСпособаОпределенияСебестоимостиЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
Если ТипЗнч(РезультатВыбора) = Тип("Структура") Тогда
Строки = РезультатВыбора.СтрокиТаблицыТовары;
Для Каждого Строка Из Строки Цикл
СтрокаТаблицы = ТаблицаКорректировки.НайтиПоИдентификатору(Строка.Идентификатор);
Если СтрокаТаблицы <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Строка);
КонецЕсли;
КонецЦикла;
ОбновитьИнформациюПриИзмененииСебестоимости();
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НастроитьУчетРНПТ()
УстановитьВидимостьКоличестваРНПТ();
Если Не Элементы.ТаблицаКорректировкиГруппаКоличествоПоРНПТ.Видимость Тогда
ПараметрыПолученияКоэффициентаРНПТ = УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ПараметрыПолученияКоэффициентаРНПТ(
Объект,
"Склад",
Истина);
УчетПрослеживаемыхТоваровЛокализация.ЗаполнитьКоличествоПоРНПТВТабличнойЧасти(ПараметрыПолученияКоэффициентаРНПТ,
ТаблицаКорректировки);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКоличестваРНПТ()
УчетПрослеживаемыхТоваровЛокализация.УстановитьВидимостьКоличестваРНПТ(ЭтотОбъект,
Объект.Дата,
"ТаблицаКорректировкиГруппаКоличествоПоРНПТ");
Элементы.ТаблицаКорректировкиГруппаКоличествоПоРНПТ.Видимость = Элементы.ТаблицаКорректировкиГруппаКоличествоПоРНПТ.Видимость
И Не КорректировкаУслугПрочихАктивов;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораОснования()
СтруктураОтбор = Новый Структура;
СтруктураОтбор.Вставить("Проведен", Истина);
СтруктураОтбор.Вставить("ТипПервичногоДокумента", ПредопределенноеЗначение("Перечисление.ТипыПервичныхДокументов.РеализацияКлиенту"));
СтруктураОтбор.Вставить("Контрагент", Объект.Контрагент);
СтруктураОтбор.Вставить("Партнер", Объект.Партнер);
СтруктураОтбор.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ОткрытьФорму(
"Документ.ПервичныйДокумент.ФормаВыбора",
Новый Структура("Отбор", СтруктураОтбор),
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция ИсправляемыйДокумент()
ИсправляемыйДокумент = Неопределено;
Если ЗначениеЗаполнено(Объект.ИсправляемыйДокумент) Тогда
ИсправляемыйДокумент = Объект.ИсправляемыйДокумент;
ИначеЕсли Объект.Проведен Тогда
ИсправляемыйДокумент = ИсправлениеДокументовВызовСервера.ИсправляемыйДокумент(Объект.Ссылка);
Иначе
ИсправляемыйДокумент = Объект.ДокументОснование;
КонецЕсли;
Возврат ИсправляемыйДокумент;
КонецФункции
&НаКлиенте
Процедура ОбработкаПодбораИсправляемогоДокумента(Знач ВыбранноеЗначение)
Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
Объект.ИсправляемыйДокумент = ВыбранноеЗначение;
КонецЕсли;
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИсправляемыйДокумент()
ДатаИсправления = Объект.Дата;
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
ДатаИсправления = Неопределено;
КонецЕсли;
ПараметрыСписка = Новый Структура;
ПараметрыСписка.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыСписка.Вставить("ДатаИсправления", ДатаИсправления);
ОткрытьФорму("Документ.КорректировкаРеализации.Форма.ФормаПодбораИсправляемогоДокумента", ПараметрыСписка, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьПредставлениеЭлементыИсправляемогоДокумента()
ПредставлениеИсправляемогоДокумента = ИсправлениеДокументов.ПредставлениеИсправляемогоДокумента(Объект.ИсправляемыйДокумент);
Если НЕ ЗначениеЗаполнено(ПредставлениеИсправляемогоДокумента) Тогда
ПредставлениеИсправляемогоДокумента = Нстр("ru='Выберите исправляемый документ'");
КонецЕсли;
НастроитьЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаСервере
Процедура НастроитьЭлементыИсправляемогоДокумента()
ОтображаетсяИсправляемыйДокумент = Элементы.ГруппаИсправляемыйДокумент.Видимость;
Если НЕ ОтображаетсяИсправляемыйДокумент Тогда
Возврат;
КонецЕсли;
ЗаполненИсправляемыйДокумент = ЗначениеЗаполнено(Объект.ИсправляемыйДокумент);
ШиринаЭлементаИсправляемыйДокумент = 0;
ЦветТекстаИзменитьИсправляемыйДокумент = Новый Цвет;
Если ЗаполненИсправляемыйДокумент Тогда
ШиринаЭлементаИсправляемыйДокумент = 15;
Иначе
ШиринаЭлементаИсправляемыйДокумент = 22;
ЦветТекстаИзменитьИсправляемыйДокумент = ЦветаСтиля.ЦветОсобогоТекста;
КонецЕсли;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПредставлениеИсправляемогоДокумента",
"Ширина", ШиринаЭлементаИсправляемыйДокумент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПредставлениеИсправляемогоДокумента",
"ЦветТекста", ЦветТекстаИзменитьИсправляемыйДокумент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ИзменитьИсправляемыйДокумент",
"Видимость", ЗаполненИсправляемыйДокумент);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьПараметрыДляПересчетаСуммыРегл(ТекущаяФорма, Суффикс = "")
ДокументОбъект = ТекущаяФорма.Объект;
ДанныеДляПересчетаСуммыРегл = Новый Структура();
ДанныеДляПересчетаСуммыРегл.Вставить("ЦенаВключаетНДС", ДокументОбъект.ЦенаВключаетНДС);
ДанныеДляПересчетаСуммыРегл.Вставить("ПоСуммеДокумента", ДокументОбъект.Валюта = ТекущаяФорма.ВалютаРегламентированногоУчета);
ДанныеДляПересчетаСуммыРегл.Вставить("КоэффициентПересчетаИзВалютыДокумента", ТекущаяФорма.КурсРеглПоДокументуОснованию);
ДанныеДляПересчетаСуммыРегл.Вставить("Суффикс", Суффикс);
Возврат ДанныеДляПересчетаСуммыРегл;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьПараметрыДляПересчетаСуммыУпр(ТекущаяФорма, Суффикс = "")
ДокументОбъект = ТекущаяФорма.Объект;
ДанныеДляПересчетаСуммыУпр = Новый Структура();
ДанныеДляПересчетаСуммыУпр.Вставить("ЦенаВключаетНДС", ДокументОбъект.ЦенаВключаетНДС);
ДанныеДляПересчетаСуммыУпр.Вставить("ПоСуммеДокумента", ДокументОбъект.Валюта = ТекущаяФорма.ВалютаУправленческогоУчета);
ДанныеДляПересчетаСуммыУпр.Вставить("КоэффициентПересчетаИзВалютыДокумента", ТекущаяФорма.КурсУпрПоДокументуОснованию);
ДанныеДляПересчетаСуммыУпр.Вставить("Суффикс", Суффикс);
Возврат ДанныеДляПересчетаСуммыУпр;
КонецФункции
&НаСервере
Процедура ЗаполнитьНалогообложениеНДСНаСервере()
ЗаполнитьНалогообложениеНДСПродажи();
НалогообложениеНДСПриИзмененииСервер();
КонецПроцедуры
#Область Локализация
&НаКлиенте
Процедура ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник)
Если ТранспортнаяНакладнаяКлиент.ЭтоОповещениеЗаписиТранспортнойНакладной(ЭтотОбъект, ИмяСобытия, Параметр, Источник) Тогда
ОбновитьТекстДокументыНаОсновании();
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТекстДокументыНаОснованииОбработкаНавигационнойСсылкиЛокализация(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ТранспортнаяНакладнаяКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
#КонецОбласти
#КонецОбласти