#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПредыдущиеРеквизитыСтроки;
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
УстановитьЗаголовокФормы();
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтотОбъект, Элементы.СтрокаИсправление);
ИспользоватьПартнеровКакКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
УстановитьЗаголовокСтатьяДоходовРасходов();
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
ДополнительныеПараметры.Вставить("ОтложеннаяИнициализация", Истина);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыДляВыбора.Вставить("ТипКорректировки", Объект.ТипКорректировки);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитикКорректировкаДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
Справочники.Назначения.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект, "ТаблицаКорректировки.Назначение");
РегистраторДляВыбораНазначения = Объект.Ссылка;
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ТипКорректировки", Объект.ТипКорректировки);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчетаКорректировкаДоВводаОстатков(ПараметрыДляВыбора);
НастройкаСчетовУчетаСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыНастройки);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
Элементы.ГруппаИтого.ЦветФона = Новый Цвет();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
ПодготовитьЗаполнитьУстановитьВидимостьСерий();
Если ЗначениеЗаполнено(ТипПредыдущейКорректировки) Тогда
Объект.ТипКорректировки = ТипПредыдущейКорректировки;
КонецЕсли;
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
УстановитьДоступностьКомандБуфераОбмена();
УстановитьВидимостьКоличестваРНПТ();
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект);
УчетПрослеживаемыхТоваровЛокализация.УстановитьЗаголовокНомерГТД(Элементы, "ТаблицаКорректировкиНомерГТД", КорректировкаПриобретенияУслугПрочихАктивов);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыДляВыбора.Вставить("ТипКорректировки", Объект.ТипКорректировки);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитикКорректировкаДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ТипКорректировки", Объект.ТипКорректировки);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчетаКорректировкаДоВводаОстатков(ПараметрыДляВыбора);
НастройкаСчетовУчетаСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыНастройки);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтотОбъект, Элементы.СтрокаИсправление);
ПриЧтенииСозданииНаСервере();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтотОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаНавигационнойСсылки(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СобытияФормКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ПроверитьНаличиеДублейСтрокВТаблицеИУдалитьСерии(Отказ);
НастройкаСчетовУчетаКлиент.ПередЗаписьюНаКлиенте(ЭтотОбъект);
ВыгрузитьТаблицуКорректировкиВДанныеДокумента();
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
Если Отказ Тогда
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи);
НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Заголовок = "";
АвтоЗаголовок = Истина;
ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере();
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
ОбновитьОбязательностьСкладаВТЧ();
УстановитьДоступностьЭлементовПоСтатусуСервер();
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект.ДополнительныеСвойства);
НастройкаСчетовУчетаСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
РегистраторДляВыбораНазначения = Объект.Ссылка;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "ИзмененРеквизитЗависящийОтСтатуса"
И Параметр.УникальныйИдентификатор = УникальныйИдентификатор Тогда
Если Объект.Согласован Тогда
Объект.Согласован = Ложь;
КонецЕсли;
ПодключитьОбработчикОжидания("Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса", 0.1, Истина);
КонецЕсли;
Если ИмяСобытия = "КопированиеСтрокВБуферОбмена" Тогда
УстановитьДоступностьКомандБуфераОбменаНаКлиенте();
КонецЕсли;
Если ИмяСобытия = "ОбновитьДокументИБПослеЗаполнения"
И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
Прочитать();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект);
Если ИмяСобытия = "ПриИзмененииДоговора"
И Источник = ЭтотОбъект Тогда
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
Подключаемый_ПриИзменении_УстановитьДоступностьЭлементовПоСтатусуСервер(Элементы[Параметр]);
Иначе
ДоговорПриИзменении(Элементы[Параметр]);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
Если ЗакупкиКлиент.ЭтоУказаниеНомераГТД(Источник) Тогда
Действия = Новый Структура;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина);
ПараметрыУказанияНомераГТД = ЗакупкиКлиент.ПараметрыУказанияНомераГТД();
ПараметрыУказанияНомераГТД.ИмяТЧ = "ТаблицаКорректировки";
ЗакупкиКлиент.ОбработатьУказаниеНомераГТД(ЭтотОбъект, НовыйОбъект, ПараметрыУказанияНомераГТД, , Действия);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Обработка.ПодборТоваровВДокументЗакупки.Форма.Форма" Тогда
ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.КорректировкаПриобретения.Форма.ФормаПодбораИсправляемогоДокумента" Тогда
ОбработкаПодбораИсправляемогоДокумента(ВыбранноеЗначение);
ИначеЕсли УчетНДСУПКлиент.ЗаконченоРедактированиеСчетаФактурыПолученного(ВыбранноеЗначение, ИсточникВыбора) Тогда
ОбновитьТекстСчетаФактурыПолученные();
ИначеЕсли ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.ПервичныйДокумент") Тогда
ОбработкаВыбораДокументаОснованияКлиент(ВыбранноеЗначение);
ИначеЕсли НоменклатураКлиент.ЭтоУказаниеСерий(ИсточникВыбора) Тогда
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтотОбъект, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецЕсли;
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
УстановитьПризнакЗаполненияСклада();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("ДокументОснование", Объект.ДокументОснование);
Оповестить("Запись_КорректировкаПриобретенияДоВводаОстатков", ПараметрыЗаписи, Объект.Ссылка);
ОбменСКонтрагентамиКлиент.ПослеЗаписи_ФормаДокумента(ЭтотОбъект, ПараметрыЗаписи);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверкаКонтрагентов.ПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ПредыдущиеРеквизитыСтроки = Новый Структура(
"НоменклатураПартнера,
|Номенклатура,
|Характеристика,
|Назначение,
|Упаковка,
|Количество,
|КоличествоУпаковок,
|Склад,
|ТипНоменклатуры,
|ХарактеристикиИспользуются,
|КодСтроки,
|КоличествоПосле,
|КоличествоУпаковокПосле,
|СтавкаНДС,
|СтавкаНДСПосле,
|СуммаСНДС,
|СуммаСНДСПосле,
|Сумма,
|СуммаПосле,
|СуммаНДС,
|СуммаНДСПосле");
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
ОбновитьСлужебныеПоляТаблицыЗначений();
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница.Имя = "ГруппаОсновное" Тогда
ВзаиморасчетыКлиент.ОбновитьТекстГиперссылкиЭтапыОплаты(ЭтотОбъект);
ВзаиморасчетыКлиентСервер.ОбновитьТекстГиперссылкиВалюты(ЭтотОбъект);
КонецЕсли;
Если ТекущаяСтраница.Имя = "ГруппаДополнительно"
И Не ЭтотОбъект.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация Тогда
СвойстваВыполнитьОтложеннуюИнициализацию();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Если Объект.Расхождения.Количество() = 0 Тогда
НастроитьУчетРНПТ();
Возврат;
КонецЕсли;
ПериодКорректировки = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ОбщегоНазначенияКлиент.ДатаСеанса());
ПериодПоступления = ?(ЗначениеЗаполнено(Объект.ДокументОснование),
ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.ДокументОснование, "Дата"), ПериодКорректировки);
НовоеЗначение = ПериодПоступления < НачалоМесяца(ПериодКорректировки);
Если КорректировкаПрошлогоПериода <> НовоеЗначение
И ТипЗнч(Объект.ДокументОснование)= Тип("ДокументСсылка.ПервичныйДокумент")
И Объект.ТипКорректировки = ПредопределенноеЗначение("Перечисление.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг") Тогда
Если КорректировкаПрошлогоПериода Тогда
ТекстВопроса = НСтр("ru='Корректировка перенесена в один месяц с документом-основанием. Перезаполнить расхождения?'");
Иначе
ТекстВопроса = НСтр("ru='Корректировка перенесена в месяц, отличный от документа-основания. Перезаполнить расхождения?'");
КонецЕсли;
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.ОК, Нстр("ru='Перезаполнить'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, Нстр("ru='Отмена'"));
ПоказатьВопрос(Новый ОписаниеОповещения("ДатаПриИзмененииЗавершение", ЭтотОбъект, Новый Структура("НовоеЗначение", НовоеЗначение)), ТекстВопроса, СписокКнопок);
Иначе
ДатаПриИзмененииСервер();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Объект.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
НовоеЗначение = ДополнительныеПараметры.НовоеЗначение;
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.ОК Тогда
КорректировкаПрошлогоПериода = НовоеЗначение;
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
Оповещение = Новый ОписаниеОповещения("ДатаПриИзмененииПослеПроверки", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтотОбъект, Оповещение, ПараметрыПроверки);
ДатаПриИзмененииСервер();
ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда
Объект.Дата = ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Дата");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
СтатьяРасходовПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура СтатьяРасходовПриИзмененииСервер()
ПараметрыДляДоступности = Новый Структура("ХозяйственнаяОперация, ТипКорректировки", Объект.ВидКорректировки, Объект.ТипКорректировки);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчетаКорректировкаДоВводаОстатков(ПараметрыДляДоступности);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяДоходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
СтатьяДоходовПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура СтатьяДоходовПриИзмененииСервер()
ПараметрыДляДоступности = Новый Структура("ХозяйственнаяОперация, ТипКорректировки", Объект.ВидКорректировки, Объект.ТипКорректировки);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчетаКорректировкаДоВводаОстатков(ПараметрыДляДоступности);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
НалогообложениеНДСПриИзмененииСервер(КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВалютыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьВалютыНажатиеЗавершение", ЭтотОбъект);
ВзаиморасчетыКлиент.ВалютыИКурсДокументаНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВалютыНажатиеЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда
ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
Если ИзмененныеРеквизиты.Количество() > 0 Тогда
НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия)
ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, ИзмененныеРеквизиты, Истина);
Если Объект.Валюта <> ТекущаяВалюта
Или Объект.ВалютаВзаиморасчетов <> ТекущаяВалютаВзаиморасчетов Тогда
ВалютаПриИзмененииСервер(Объект.Валюта);
ТекущаяВалюта = Объект.Валюта;
ТекущаяВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
КонецЕсли;
Если ИзмененныеРеквизиты.Свойство("КурсЧислитель")
И ИзмененныеРеквизиты.КурсЧислитель <> Объект.КурсЧислитель Тогда
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", "После");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьЭтапыОплатыНажатиеЗавершение", ЭтотОбъект);
ВзаиморасчетыКлиент.НадписьЭтапыОплатыНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ИзмененныеРеквизиты = Результат.СтарыеЗначенияИзмененныхРеквизитов;
ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТекстСчетФактураПолученныйОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактурПолученныхСервер(Объект);
УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыПолученные(
ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ПараметрыРегистрации);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(
ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы.ДекорацияСостояниеОригинала);
КонецПроцедуры
&НаКлиенте
Процедура ОперацияПриИзменении(Элемент)
ОперацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
ПартнерПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ДоговорСоздание(Элемент, СтандартнаяОбработка)
ЗакупкиКлиент.ОткрытьФормуСозданияДоговора(ЭтотОбъект, Элемент, "Объект.Договор", Объект.Партнер, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииСервер();
ОбновитьСлужебныеПоляТаблицыЗначений();
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеПриИзменении(Элемент)
ЦеныПредприятияЗаполнениеКлиент.ЗадатьВопросПересчетаЦеныПриИзмененииДаты(Объект,
Новый ОписаниеОповещения("СоглашениеПриИзмененииВопросЗавершение", ЭтотОбъект));
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеПриИзмененииВопросЗавершение(ОтветНаВопрос, ДополнительныеПараметры) Экспорт
СоглашениеПриИзмененииСервер(
ЗначениеЗаполнено(Объект.Соглашение)
И ТаблицаКорректировки.Количество() > 0
И НЕ ОтветНаВопрос = КодВозвратаДиалога.Отмена
И ОтветНаВопрос);
Если ЗначениеЗаполнено(Объект.Соглашение) Тогда
ЗакупкиКлиент.ОповеститьОбОкончанииЗаполненияУсловийЗакупок();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТипКорректировкиПриИзменении(Элемент)
Если Не ЗначениеЗаполнено(Объект.ТипКорректировки) Тогда
Объект.ТипКорректировки = ТипКорректировкиСтарый;
Возврат;
КонецЕсли;
Если Объект.ТипКорректировки <> ТипКорректировкиСтарый
И ТаблицаКорректировки.Количество() > 0 Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.ОК, Нстр("ru='Очистить'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, Нстр("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)) Тогда
ТекущиеДанные.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
СписокВыбора = ПолучитьДоступныВариантыОтраженияДляСтроки(ТекущиеДанные);
Если СписокВыбора.Найти(ТекущиеДанные.ВариантОтражения) = Неопределено Тогда
Если СписокВыбора.Количество() = 1 Тогда
ТекущиеДанные.ВариантОтражения = СписокВыбора[0];
Иначе
ТекущиеДанные.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ТекущиеДанные <> Неопределено
И Не ЗначениеЗаполнено(ТекущиеДанные.ВариантОтражения) Тогда
ТекущиеДанные.ВариантОтражения = ВариантОтраженияПоСтроке(ТекущиеДанные);
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений(Истина);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
УстановитьПризнакЗаполненияСклада();
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущиеДанные);
КонецЕсли;
Если ОтразитьНаПрочихДоходахНовый <> ОтразитьНаПрочихДоходах
Или СписатьНаРасходыНовый <> СписатьНаРасходы Тогда
СписатьНаРасходы = СписатьНаРасходыНовый;
ОтразитьНаПрочихДоходах = ОтразитьНаПрочихДоходахНовый;
ПодключитьОбработчикОжидания("ОбновитьВыборСтатейСчетовУчета", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНоменклатураПартнераПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
НоменклатураПартнеровКлиент.УстановитьПараметрыВыбораУпаковки(Элемент.ПараметрыВыбора, ТекущаяСтрока);
ОбновитьДанныеПослеИзмененияНоменклатуры(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНоменклатураПриИзменении(Элемент)
ОбновитьДанныеПослеИзмененияНоменклатуры();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНазначениеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущиеДанные.СписатьНаРасходы = Ложь;
СтруктураДействий = Новый Структура;
ДоходыИРасходыКлиентСервер.ВставитьДействиеОчиститьСтатьюИАналитикуРасходов(СтруктураДействий, ЭтотОбъект);
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
ТекущиеДанные.ВидЗапасов = ПредопределенноеЗначение("Справочник.ВидыЗапасов.ПустаяСсылка");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущиеДанные, СтруктураДействий, КэшированныеЗначения);
Если ТекущиеДанные.ТипНазначения = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала") Тогда
ТекущиеДанные.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДанныеПослеИзмененияНоменклатуры(ПоНоменклатуреПартнера = Ложь)
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Суффикс = "После";
ТекущаяСтрока.ЦенаПосле = 0;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Суффикс = Суффикс;
ПараметрыПоСкладу = Новый Структура;
ПараметрыПоСкладу.Вставить("ДатаПроверки", Объект.Дата);
СтруктураДействий = Новый Структура;
Если ПоНоменклатуреПартнера Тогда
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПоНоменклатуреПартнера");
КонецЕсли;
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка);
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьПризнакОрдерногоСклада", ПараметрыПоСкладу);
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", ВернутьМногооборотнуюТару);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс, ИмяКоличества", Суффикс, "КоличествоУпаковок"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
Иначе
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьСтрануПроисхожденияНоменклатуры",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтраныПроисхождения());
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры", Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь));
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ИмяФормы, "ТаблицаКорректировки"));
ДоходыИРасходыКлиентСервер.ВставитьДействиеОчиститьСтатьюИАналитикуРасходов(
СтруктураДействий,
ЭтотОбъект);
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
Или ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара")
Или ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Набор")
Или ЗначениеЗаполнено(ТекущаяСтрока.Назначение) Тогда
ТекущаяСтрока.СписатьНаРасходы = Ложь;
ТекущаяСтрока.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
ИначеЕсли ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
ТекущаяСтрока.СписатьНаРасходы = Истина;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, ТекущаяСтрока, "ТаблицаКорректировки");
УстановитьПризнакЗаполненияСклада();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкаХарактеристикаПриИзменении(Элемент)
Суффикс = "После";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Суффикс);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
СтруктураДействий.Вставить("ХарактеристикаПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ИмяФормы, "ТаблицаКорректировки"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиУпаковкаПриИзменении(Элемент)
Суффикс = "После";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиницСуффикс", Суффикс);
Если ТекущаяСтрока.Количество > 0 Тогда
СтруктураДействий.Вставить("ПересчитатьЦенуЗаУпаковку", ТекущаяСтрока.Количество);
Иначе
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
КонецЕсли;
Если ТекущаяСтрока.КоличествоПосле > 0 Тогда
СтруктураДействий.Вставить("ПересчитатьЦенуЗаУпаковкуСуффикс",
Новый Структура("Количество, Суффикс", ТекущаяСтрока.КоличествоПосле, Суффикс));
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Суффикс);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина,
Суффикс);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоУпаковокПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураДействий = Новый Структура;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина,
"После");
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоУпаковокПослеПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураДействий = Новый Структура;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект, "После");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
СтруктураДействий = Новый Структура;
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиКоличествоПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("КоличествоПосле", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("ЦенаПосле", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("СуммаПосле", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДСПосле", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДСПосле", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДСПосле", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("КоличествоУпаковокПосле", 0);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетовПосле", ТекущиеДанные.СуммаВзаиморасчетовПосле);
СтруктураДействий = Новый Структура;
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект, "После");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ТекущиеДанные.КоличествоУпаковокПосле = ТекущаяСтрока.КоличествоУпаковокПосле;
ТекущиеДанные.ЦенаПосле = ТекущаяСтрока.ЦенаПосле;
ТекущиеДанные.СуммаПосле = ТекущаяСтрока.СуммаПосле;
ТекущиеДанные.СтавкаНДСПосле = ТекущаяСтрока.СтавкаНДСПосле;
ТекущиеДанные.СуммаНДСПосле = ТекущаяСтрока.СуммаНДСПосле;
ТекущиеДанные.СуммаСНДСПосле = ТекущаяСтрока.СуммаСНДСПосле;
ТекущиеДанные.СуммаВзаиморасчетовПосле = ТекущаяСтрока.СуммаВзаиморасчетовПосле;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиЦенаПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетов);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиЦенаПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковокПосле);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетовПосле);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ТекущиеДанные.КоличествоУпаковокПосле = ТекущаяСтрока.КоличествоУпаковок;
ТекущиеДанные.ЦенаПосле = ТекущаяСтрока.Цена;
ТекущиеДанные.СуммаПосле = ТекущаяСтрока.Сумма;
ТекущиеДанные.СтавкаНДСПосле = ТекущаяСтрока.СтавкаНДС;
ТекущиеДанные.СуммаНДСПосле = ТекущаяСтрока.СуммаНДС;
ТекущиеДанные.СуммаСНДСПосле = ТекущаяСтрока.СуммаСНДС;
ТекущиеДанные.СуммаВзаиморасчетовПосле = ТекущаяСтрока.СуммаВзаиморасчетов;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетов);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуПоСумме", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковокПосле);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетовПосле);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуПоСумме", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ТекущиеДанные.КоличествоУпаковокПосле = ТекущаяСтрока.КоличествоУпаковок;
ТекущиеДанные.ЦенаПосле = ТекущаяСтрока.Цена;
ТекущиеДанные.СуммаПосле = ТекущаяСтрока.Сумма;
ТекущиеДанные.СтавкаНДСПосле = ТекущаяСтрока.СтавкаНДС;
ТекущиеДанные.СуммаНДСПосле = ТекущаяСтрока.СуммаНДС;
ТекущиеДанные.СуммаСНДСПосле = ТекущаяСтрока.СуммаСНДС;
ТекущиеДанные.СуммаВзаиморасчетовПосле = ТекущаяСтрока.СуммаВзаиморасчетов;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСуммаНДСПослеПриИзменении(Элемент)
Суффикс = "После";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтавкаНДСПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетов);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтавкаНДСПослеПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.КоличествоПосле <> 0, ТекущиеДанные.КоличествоПосле, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковокПосле);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.ЦенаПосле);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.СуммаПосле);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДСПосле);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДСПосле);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДСПосле);
ТекущаяСтрока.Вставить("СуммаВзаиморасчетов",ТекущиеДанные.СуммаВзаиморасчетовПосле);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ТекущиеДанные.КоличествоУпаковокПосле = ТекущаяСтрока.КоличествоУпаковок;
ТекущиеДанные.ЦенаПосле = ТекущаяСтрока.Цена;
ТекущиеДанные.СуммаПосле = ТекущаяСтрока.Сумма;
ТекущиеДанные.СтавкаНДСПосле = ТекущаяСтрока.СтавкаНДС;
ТекущиеДанные.СуммаНДСПосле = ТекущаяСтрока.СуммаНДС;
ТекущиеДанные.СуммаСНДСПосле = ТекущаяСтрока.СуммаСНДС;
ТекущиеДанные.СуммаВзаиморасчетовПосле = ТекущаяСтрока.СуммаВзаиморасчетов;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСкладПриИзменении(Элемент)
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ПроверитьСериюРассчитатьСтатус = Новый Структура("Склад, ПараметрыУказанияСерий",
ТекущаяСтрока.Склад, ПараметрыУказанияСерий);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПроверитьСериюРассчитатьСтатус);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
ПриИзмененииСкладаВТабличнойЧастиСервер();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСписатьНаРасходыПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, ТекущиеДанные, "ТаблицаКорректировки");
Если (ТекущиеДанные.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар") Или
ТекущиеДанные.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))
Или ТекущиеДанные.ТипНазначения = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала") Тогда
ТекущиеДанные.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
КонецЕсли;
СписокВариантовОтражения = ПолучитьДоступныВариантыОтраженияДляСтроки(ТекущиеДанные);
Если СписокВариантовОтражения.Найти(ТекущиеДанные.ВариантОтражения) = Неопределено Тогда
Если СписокВариантовОтражения.Количество() > 0 Тогда
ТекущиеДанные.ВариантОтражения = СписокВариантовОтражения[0];
КонецЕсли;
КонецЕсли;
Если ТекущиеДанные.СтавкаНДС <> ТекущиеДанные.СтавкаНДСПосле
И (ТекущиеДанные.Количество > 0 Или ТекущиеДанные.Сумма > 0 Или ТекущиеДанные.СуммаНДС > 0) Тогда
СписокВариантовОтраженияСписания = ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(ТекущиеДанные);
Если СписокВариантовОтраженияСписания.Найти(ТекущиеДанные.ВариантОтраженияСписания) = Неопределено Тогда
Если СписокВариантовОтраженияСписания.Количество() > 0 Тогда
ТекущиеДанные.ВариантОтраженияСписания = СписокВариантовОтраженияСписания[0];
КонецЕсли;
КонецЕсли;
Иначе
ТекущиеДанные.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСерияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьПодборСерий(Элемент.ТекстРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСерияПриИзменении(Элемент)
ВыбранноеЗначение = НоменклатураКлиентСервер.ВыбраннаяСерия();
ВыбранноеЗначение.Значение = Элементы.ТаблицаКорректировки.ТекущиеДанные.Серия;
ВыбранноеЗначение.ИдентификаторТекущейСтроки = Элементы.ТаблицаКорректировки.ТекущиеДанные.ПолучитьИдентификатор();
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтотОбъект, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНомерГТДПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыЗаполнения = Новый Структура("НомерГТД", ТекущиеДанные.НомерГТД);
Действия = Новый Структура;
Действия.Вставить("ЗаполнитьТипНомераГТД", ПараметрыЗаполнения);
Действия.Вставить("ЗаполнитьСтрануПроисхожденияДляНомераГТД", ПараметрыЗаполнения);
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущиеДанные);
Иначе
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина,
"После");
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущиеДанные, Действия, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНомерГТДСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ДополнительныеПараметры = ЗакупкиКлиент.ДополнительныеПараметрыСозданияНомераГТД();
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Объект);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект);
ДополнительныеПараметры.ВалютаДокумента = Объект.Валюта;
ДополнительныеПараметры.ИмяПоляКоличество = ?(ИспользуетсяКоличествоУпаковок,
"КоличествоУпаковокПосле",
"КоличествоПосле");
ДополнительныеПараметры.ИмяПоляСуммаНДС = "СуммаНДСПосле";
ДополнительныеПараметры.ИмяПоляСуммаСНДС = "СуммаСНДСПосле";
ПараметрыСоздания = ЗакупкиКлиент.ПараметрыСозданияНомераГТД(ТекущиеДанные,
Элемент.ТекстРедактирования,
ДополнительныеПараметры);
ПараметрыФормы = Новый Структура("ПараметрыСоздания", ПараметрыСоздания);
ОткрытьФорму("Справочник.НомераГТД.Форма.ФормаЭлемента",
ПараметрыФормы,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПередУдалением(Элемент, Отказ)
Если Элементы.ТаблицаКорректировки.ТекущиеДанные <> Неопределено Тогда
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.ТаблицаКорректировки, ЭтотОбъект);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиПередНачаломИзменения(Элемент, Отказ)
ЗаполнитьЗначенияСвойств(ПредыдущиеРеквизитыСтроки, Элементы.ТаблицаКорректировки.ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиНоменклатураПартнераНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЭлементФормы" , Элемент);
ДополнительныеПараметры.Вставить("ТекущаяСтрока", ТекущаяСтрока);
ОповещениеОЗакрытие = Новый ОписаниеОповещения("ОбработатьРезультатВыбораНоменклатурыПартнера", ЭтотОбъект, ДополнительныеПараметры);
НоменклатураПартнеровКлиент.ОткрытьФормуВыбораНоменклатурыПартнера(ЭтотОбъект, Объект.Партнер, ТекущаяСтрока, Элемент.Заголовок, ОповещениеОЗакрытие);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиВариантОтраженияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТипЗнч(ВыбранноеЗначение) = Тип("ПеречислениеСсылка.ВариантыОтраженияКорректировокПоступлений") Тогда
ТекущаяСтрока.ВариантОтражения = ВыбранноеЗначение;
Иначе
ТекущаяСтрока.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаКлиенте
Процедура ТаблицаКорректировкиВариантОтраженияОбработкаВыбораСписания(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.ТаблицаКорректировки.ТекущиеДанные;
Если ТипЗнч(ВыбранноеЗначение) = Тип("ПеречислениеСсылка.ВариантыОтраженияКорректировокПоступлений") Тогда
ТекущаяСтрока.ВариантОтраженияСписания = ВыбранноеЗначение;
Иначе
ТекущаяСтрока.ВариантОтраженияСписания = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВставитьСтроки(Команда)
КоличествоТоваровДоВставки = ТаблицаКорректировки.Количество();
ПолучитьСтрокиИзБуфераОбмена();
КоличествоВставленных = ТаблицаКорректировки.Количество()-КоличествоТоваровДоВставки;
РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОВставкеСтрок(КоличествоВставленных);
ОбновитьЗаголовокТаблицыКорректировки();
КонецПроцедуры
&НаКлиенте
Процедура СкопироватьСтроки(Команда)
Если РаботаСТабличнымиЧастямиКлиент.ВыбранаСтрокаДляВыполненияКоманды(Элементы.ТаблицаКорректировки) Тогда
СкопироватьСтрокиНаСервере();
РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОКопированииСтрок(Элементы.ТаблицаКорректировки.ВыделенныеСтроки.Количество());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура ТекстНастроитьОтражениеВРеглУчетеАктивовНажатие(Элемент, СтандартнаяОбработка)
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТекстНастроитьОтражениеВРеглУчетеПассивовНажатие(Элемент, СтандартнаяОбработка)
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьНоменклатуруПоставщика(Команда)
НоменклатураПартнеровКлиент.ПоказатьНоменклатуруПартнера(Объект.Партнер, Объект.Ссылка, Элементы.ТаблицаКорректировки.ТекущиеДанные, НСтр("ru = 'Поставщик'"));
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНоменклатуруПоНоменклатуреПартнера(Команда)
Если Не ОбщегоНазначенияУТКлиент.ПроверитьНаличиеСтрокВСписке(ТаблицаКорректировки, НСтр("ru = 'Данные корректировки'")) Тогда
Возврат;
КонецЕсли;
АдресТоваровВХранилище = ПоместитьТоварыВоВременноеХранилищеСервер("ТаблицаКорректировки");
ЗакупкиКлиент.ОткрытьФормуЗаполненияНоменклатурыПоставщика(
Новый ОписаниеОповещения("ЗаполнитьНоменклатуруПоНоменклатуреПартнераЗавершение", ЭтотОбъект),
АдресТоваровВХранилище,
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНоменклатуруПоНоменклатуреПартнераЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ЗаполнитьТоварыИзВременногоХранилищаСервер(Результат);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныПоСоглашению(Команда)
СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("Соглашение", Объект.Соглашение);
СтруктураОбъекта.Вставить("Валюта", Объект.Валюта);
СтруктураОбъекта.Вставить("ТаблицаКорректировки", ТаблицаКорректировки);
ПредставлениеТабличнойЧасти = НСтр("ru='Данные корректировки'");
Если ЦеныПартнеровЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоСоглашению(СтруктураОбъекта, "ТаблицаКорректировки", ПредставлениеТабличнойЧасти) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныПоСоглашениюСервер();
ЗакупкиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны);
РасхожденияАктуальны = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщика(Команда)
СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("Валюта", Объект.Валюта);
СтруктураОбъекта.Вставить("ТаблицаКорректировки", ТаблицаКорректировки);
ПредставлениеТабличнойЧасти = НСтр("ru='Данные корректировки'");
Если ЦеныПартнеровЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВидуЦенПоставщика(СтруктураОбъекта, "ТаблицаКорректировки", ПредставлениеТабличнойЧасти) Тогда
ЦеныПартнеровЗаполнениеКлиент.ВыбратьВидЦеныПоставщика(
Новый ОписаниеОповещения("ЗаполнитьЦеныВыделенныхСтрокВыборВидЦеныПоставщикаЗавершение", ЭтотОбъект),
Объект.Партнер,
Объект.ЦенаВключаетНДС);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныВыделенныхСтрокВыборВидЦеныПоставщикаЗавершение(ВидЦеныПоставщика, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(ВидЦеныПоставщика) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщикаСервер(ВидЦеныПоставщика);
ЦеныПартнеровЗаполнениеКлиент.ОповеститьОбОкончанииЗаполненияЦенПоВидуЦеныПоставщика(ЦеныРассчитаны, ВидЦеныПоставщика);
РасхожденияАктуальны = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСкладВВыделенныхСтроках(Команда)
ВыделенныеСтроки = Элементы.ТаблицаКорректировки.ВыделенныеСтроки;
ПредставлениеТабличнойЧасти = НСтр("ru='Данные корректировки'");
Если СкладыКлиент.ПроверитьВозможностьЗаполненияСкладовВТабличнойЧасти(Объект, ТаблицаКорректировки, ПредставлениеТабличнойЧасти, ВыделенныеСтроки) Тогда
СтруктураОтбора = Новый Структура("ВыборГруппы,ЭтоГруппа", ПредопределенноеЗначение("Перечисление.ВыборГруппыСкладов.РазрешитьВЗаказахИНакладных"), Ложь);
СтруктураПараметров = Новый Структура("Отбор,ГруппаСкладов", СтруктураОтбора, Объект.Склад);
ДополнительныеПараметры = Новый Структура("ВыделенныеСтроки", ВыделенныеСтроки);
ОписаниеОповещения = Новый ОписаниеОповещения("ЗаполнитьСкладВВыделенныхСтрокахЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Справочник.Склады.ФормаВыбора",
СтруктураПараметров,
ЭтотОбъект,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСкладВВыделенныхСтрокахЗавершение(Результат, ДополнительныеПараметры) Экспорт
ВыделенныеСтроки = ДополнительныеПараметры.ВыделенныеСтроки;
ВыбранныйСклад = Результат;
Если ЗначениеЗаполнено(ВыбранныйСклад) Тогда
ЗаполненоСтрок = ЗаполнитьСкладВВыделенныхСтрокахНаСервере(ВыделенныеСтроки, ВыбранныйСклад);
СкладыКлиент.ПоказатьОповещениеОЗаполненииСкладаВТабличнойЧасти(ВыбранныйСклад, ЗаполненоСтрок, ВыделенныеСтроки.Количество());
РасхожденияАктуальны = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьТовары(Команда)
ОценкаПроизводительностиКлиент.ЗамерВремени("Документ.КорректировкаПриобретения.ФормаДокумента.Команда.ПодобратьТовары");
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
Отказ = Ложь;
Если Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ОчиститьСообщения();
СообщитьОбОшибкахОткрытияПодбора(Отказ);
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Документ", Объект.Ссылка);
ПараметрыФормы.Вставить("Партнер", Объект.Партнер);
ПараметрыФормы.Вставить("Соглашение", Объект.Соглашение);
ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
ПараметрыФормы.Вставить("Склад", Объект.Склад);
ПараметрыФормы.Вставить("Валюта", Объект.Валюта);
ПараметрыФормы.Вставить("Дата", Объект.Дата);
ПараметрыФормы.Вставить("РежимПодбораИспользоватьСкладыВТабличнойЧасти", Истина);
ПараметрыФормы.Вставить("РежимПодбораИсключитьГруппыДоступныеВЗаказах", Истина);
ПараметрыФормы.Вставить("СкрыватьРучныеСкидки", Истина);
ПараметрыФормы.Вставить("ПараметрыУказанияСерий", ПараметрыУказанияСерий);
ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь)));
ОткрытьФорму("Обработка.ПодборТоваровВДокументЗакупки.Форма", ПараметрыФормы, ЭтотОбъект, УникальныйИдентификатор);
ПараметрыУказанияСерий.ИмяТЧТовары = "ТаблицаКорректировки";
ПараметрыУказанияСерий.ИмяТЧСерии = "ТаблицаКорректировки";
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеДокументаОснованияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НавигационнаяСсылкаФорматированнойСтроки = "ВыбратьДокумент" Тогда
ОткрытьФормуВыбораОснования();
ИначеЕсли ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ПоказатьЗначение(Неопределено, Объект.ДокументОснование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДанныеКорректировки(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ТабличнаяЧасть = ТаблицаКорректировки;
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
Оповещение = Новый ОписаниеОповещения("ЗаполнитьДанныеКорректировкиЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтотОбъект, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ВсеИсправления(Команда)
ИсправляемыйДокумент = ИсправляемыйДокумент();
ИсправлениеДокументовКлиент.ОткрытьСписокИсправлений(ИсправляемыйДокумент, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьИсправляемыйДокумент(Команда)
ПодобратьИсправляемыйДокумент();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СвойстваВыполнитьОтложеннуюИнициализацию()
УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция ИсправляемыйДокумент()
ИсправляемыйДокумент = Неопределено;
Если ЗначениеЗаполнено(Объект.ИсправляемыйДокумент) Тогда
ИсправляемыйДокумент = Объект.ИсправляемыйДокумент;
ИначеЕсли Объект.Проведен Тогда
ИсправляемыйДокумент = ИсправлениеДокументовВызовСервера.ИсправляемыйДокумент(Объект.Ссылка);
Иначе
ИсправляемыйДокумент = Объект.ДокументОснование;
КонецЕсли;
Возврат ИсправляемыйДокумент;
КонецФункции
&НаСервере
Процедура УстановитьУсловноеОформлениеДляСтатейИАналитик()
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСписатьНаРасходы.Имя);
ГруппаОтбораИЛИ = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИЛИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбораИ1 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбораИ2 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбораИ2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров и работ без назначения>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при списании на расходы>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтатьяРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.АналитикаРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<выберите статью расходов>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтатьяРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтатьяРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров и работ без назначения>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюЗакупки(ЭтотОбъект,
"ТаблицаКорректировкиСтавкаНДС",
"ТаблицаКорректировкиСуммаНДС",
"ТаблицаКорректировкиСуммаСНДС");
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюЗакупки(ЭтотОбъект,
"ТаблицаКорректировкиСтавкаНДСПосле",
"ТаблицаКорректировкиСуммаНДСПосле",
"ТаблицаКорректировкиСуммаСНДСПосле");
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтотОбъект, "ТаблицаКорректировкиСуммаСНДС");
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтотОбъект, "ТаблицаКорректировкиСуммаСНДСПосле");
ПараметрыУсловногоОформления = НоменклатураСервер.НовыеПараметрыУсловногоОформленияЕдиницИзмерения();
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмерения = "ТаблицаКорректировкиНоменклатураЕдиницаИзмерения";
ПараметрыУсловногоОформления.ПутьКПолюУпаковка = "ТаблицаКорректировки.Упаковка";
НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтотОбъект, ПараметрыУсловногоОформления);
НоменклатураСервер.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(ЭтотОбъект,
"ТаблицаКорректировкиХарактеристика",
"ТаблицаКорректировки.ХарактеристикиИспользуются");
СкладыСервер.УстановитьУсловноеОформлениеСкладаВТЧ(ЭтотОбъект, "ТаблицаКорректировкиСклад");
ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
УсловноеОформление, "ТаблицаКорректировкиСклад", "ТаблицаКорректировки.Склад", "ТаблицаКорректировки.СкладОбязателен");
ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
УсловноеОформление, "Склад", "Объект.Склад", "СкладОбязателен");
ПараметрыУсловногоОформления = НоменклатураСервер.ПараметрыУстановкиУсловногоОформленияНомераГТД();
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТаблицаКорректировкиНомерГТД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоГТД = "ТаблицаКорректировки.ВедетсяУчетПоГТД";
ПараметрыУсловногоОформления.ПутьКПолюПризнакаКорректировкиПУиПА = "КорректировкаПриобретенияУслугПрочихАктивов";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТаблицаКорректировкиНомерГТДСтранаПроисхождения";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияНомераГТД();
ПараметрыУсловногоОформления.ПутьКПолюДатаДокумента = "Объект.Дата";
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТаблицаКорректировкиНомерГТД";
ПараметрыУсловногоОформления.ИмяПоляВводаСтранаПроисхождения = "ТаблицаКорректировкиНомерГТДСтранаПроисхождения";
ПараметрыУсловногоОформления.ПутьКПолюНомерГТД = "ТаблицаКорректировки.НомерГТД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "ТаблицаКорректировки.ВедетсяУчетПоРНПТ";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияКоличестваПоРНПТ();
ПараметрыУсловногоОформления.ИмяПоляВводаКоличествоПоРНПТ = "ТаблицаКорректировкиКоличествоПоРНПТ";
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмеренияТНВЭД = "ТаблицаКорректировкиНоменклатураЕдиницаИзмеренияТНВЭД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "ТаблицаКорректировки.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "ТаблицаКорректировки.ТипНоменклатуры";
ПараметрыУсловногоОформления.ПутьКПолюТипНомераГТД = "ТаблицаКорректировки.ТипНомераГТД";
ПараметрыУсловногоОформления.ПутьКПолюПризнакаКорректировкиПУиПА = "КорректировкаПриобретенияУслугПрочихАктивов";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект,
ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияКоличестваПоРНПТ();
ПараметрыУсловногоОформления.ИмяПоляВводаКоличествоПоРНПТ = "ТаблицаКорректировкиКоличествоПоРНПТПосле";
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмеренияТНВЭД = "ТаблицаКорректировкиНоменклатураЕдиницаИзмеренияТНВЭДПосле";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "ТаблицаКорректировки.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "ТаблицаКорректировки.ТипНоменклатуры";
ПараметрыУсловногоОформления.ПутьКПолюТипНомераГТД = "ТаблицаКорректировки.ТипНомераГТД";
ПараметрыУсловногоОформления.ПутьКПолюПризнакаКорректировкиПУиПА = "КорректировкаПриобретенияУслугПрочихАктивов";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект,
ПараметрыУсловногоОформления);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоПоРНПТ.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоПоРНПТПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
НоменклатураСервер.УстановитьУсловноеОформлениеСерийНоменклатуры(ЭтотОбъект,
Истина,
"ТаблицаКорректировкиСерия",
"ТаблицаКорректировки.СтатусУказанияСерий",
"ТаблицаКорректировки.ТипНоменклатуры");
НоменклатураСервер.УстановитьУсловноеОформлениеНазначенияНоменклатуры(ЭтотОбъект,
"ТаблицаКорректировкиНазначение",
"ТаблицаКорректировки.ТипНоменклатуры");
УстановитьУсловноеОформлениеДляСтатейИАналитик();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиПодразделение.Имя);
ГруппаОтбора0 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора0.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаНе;
ГруппаОтбора1 = ГруппаОтбора0.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Подразделение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ГруппаОтбора3 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ГруппаОтбора4 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора4.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора5 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора5.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНазначения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНазначений.ПоставкаПодПринципала;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Подразделение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ГруппаОтбора3 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ГруппаОтбора4 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора4.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора5 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора5.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНазначения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНазначений.ПоставкаПодПринципала;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при списании на расходы>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНазначения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала");
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для закупки не под принципала>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНоменклатура.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТипКорректировки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ПредопределенноеЗначение("Перечисление.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов");
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтраженияСписания.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтраженияСписания.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтраженияСписания");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ВариантОтражения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиВариантОтражения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Количество");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоПосле");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет расхождений>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковок.Имя);
ГруппаОтбора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 = 'после корректировки:'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСтавкаНДС.Имя);
ГруппаОтбора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.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СтавкаНДСПосле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
УстановитьУсловноеОформлениеСуммЦен("Сумма","Количество","СуммаПосле");
УстановитьУсловноеОформлениеСуммЦен("Цена","Количество","ЦенаПосле");
УстановитьУсловноеОформлениеСуммЦен("СуммаПосле","КоличествоПосле", "Сумма");
УстановитьУсловноеОформлениеСуммЦен("ЦенаПосле","КоличествоПосле", "Цена");
УстановитьУсловноеЦветовоеОформление();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаВзаиморасчетовПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Валюта");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ВалютаВзаиморасчетов");
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаВзаиморасчетов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Валюта");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ВалютаВзаиморасчетов");
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКодТНВЭД.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКодТНВЭД.Имя);
СписокТиповГТД = Новый СписокЗначений();
СписокТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТ);
СписокТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТКомплекта);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ТипНомераГТД");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = СписокТиповГТД;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Для ГТД по РНПТ или комплектам по РНПТ'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиНомерГТД.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформлениеСуммЦен(Поле, ПолеКоличество, ПолеСвязанное)
ИмяТаблицы = "ТаблицаКорректировки";
ПутьКПолюЭлемента = ИмяТаблицы + "." + Поле;
ЭлементПоля = ИмяТаблицы + Поле;
ПутьКПолюКоличество = ИмяТаблицы + "." + ПолеКоличество;
ПутьКПолюЭлементаСвязанного = ИмяТаблицы + "." + ПолеСвязанное;
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы[ЭлементПоля].Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюЭлемента);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюКоличество);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = 0;
ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюЭлемента);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКПолюЭлементаСвязанного);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеЦветовоеОформление()
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаСНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиЦенаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Цена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ЦенаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОтрицательногоЧисла);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.КоличествоУпаковокПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаСНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаСНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиСуммаНДСПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДС");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.СуммаНДСПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКорректировкиЦенаПосле.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.Цена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКорректировки.ЦенаПосле");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаПоложительногоЗначения);
КонецПроцедуры
#Область ПриИзмененииРеквизитов
&НаСервере
Процедура НалогообложениеНДСПриИзмененииСервер(КэшированныеЗначения)
УчетНДСЛокализация.УстановитьЦенаВключаетНДСПоНалогообложениюНДС(Объект.ЦенаВключаетНДС, Объект.НалогообложениеНДС);
УчетНДСЛокализация.УстановитьДоступностьЦенаВключаетНДСПоНалогообложениюНДС(Элементы.ЦенаВключаетНДС, Объект.НалогообложениеНДС);
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект, Ложь, ВернутьМногооборотнуюТару);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
ВзаиморасчетыКлиентСервер.ОбновитьТекстГиперссылкиВалюты(ЭтотОбъект);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
ОбновитьТекстСчетаФактурыПолученные();
КонецПроцедуры
&НаСервере
Процедура ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения)
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, КэшированныеЗначения);
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииСервер()
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Дата");
ЗаполнитьВидДеятельностиНДС();
НастроитьУчетРНПТ();
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
Для каждого СтрокаТаблицы Из ТаблицаКорректировки Цикл
СписокВыбора = ПолучитьДоступныВариантыОтраженияДляСтроки(СтрокаТаблицы);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтражения) = Неопределено Тогда
СтрокаТаблицы.ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка();
КонецЕсли;
СписокВыбораСписания = ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(СтрокаТаблицы);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтраженияСписания) = Неопределено Тогда
СтрокаТаблицы.ВариантОтраженияСписания = Перечисления.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка();
КонецЕсли;
КонецЦикла;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОперацияПриИзмененииСервер()
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыДляВыбора.Вставить("ТипКорректировки", Объект.ТипКорректировки);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитикКорректировкаДоВводаОстатков(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
Если Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.ИсправлениеОшибок Тогда
Объект.ИсправляемыйДокумент = Неопределено;
КонецЕсли;
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
УстановитьПредставлениеДокументаОснования();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
УстановитьВидимостьИсправляемогоДокумента();
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьИсправляемогоДокумента()
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаИсправляемыйДокумент",
"Видимость", ЗначениеЗаполнено(ОБъект.ДокументОснование) И Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.ИсправлениеОшибок);
КонецПроцедуры
&НаСервере
Процедура ТаблицаКорректировкиПослеУдаленияСервер(КэшированныеЗначения)
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Неопределено, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
Если Объект.Организация = ТекущаяОрганизация Тогда
Возврат;
КонецЕсли;
ТекущаяОрганизация = Объект.Организация;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЗаполнитьНалогообложениеНДСЗакупки();
НалогообложениеНДСПриИзмененииСервер(Неопределено);
ЗаполнитьВидДеятельностиНДС();
КонецЕсли;
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Организация");
КонецПроцедуры
&НаСервере
Процедура ПартнерПриИзмененииСервер()
Если Объект.Партнер = ТекущийПартнер Тогда
Возврат;
КонецЕсли;
ТекущийПартнер = Объект.Партнер;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
ЗаполнитьУсловияЗакупокПоУмолчанию(Ложь);
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
Если ТекущийДоговор <> Объект.Договор Тогда
ДоговорПриИзмененииСервер();
КонецЕсли;
ТекущийДоговор = Объект.Договор;
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("Валюта");
МассивРеквизитов.Добавить("ВалютаВзаиморасчетов");
МассивРеквизитов.Добавить("Партнер");
МассивРеквизитов.Добавить("Контрагент");
МассивРеквизитов.Добавить("Организация");
МассивРеквизитов.Добавить("Соглашение");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, МассивРеквизитов);
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовЗакупки(Объект.Склад);
СкладПриИзмененииСервер();
НоменклатураПартнеровСервер.ЗаполнитьНоменклатуруПартнераПоНоменклатуреПриИзмененииПартнера(ТаблицаКорректировки, Объект.Партнер);
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
ОбновитьТекстСчетаФактурыПолученные();
ЗакупкиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость, Объект.Договор);
КонтрагентПриИзмененииСервер();
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
Если Объект.Контрагент = ТекущийКонтрагент Тогда
Возврат;
КонецЕсли;
ТекущийКонтрагент = Объект.Контрагент;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("Контрагент");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, МассивРеквизитов);
КонецПроцедуры
&НаСервере
Процедура СоглашениеПриИзмененииСервер(ПересчитыватьЦены=Истина)
ЦенаВключаетНДС = Объект.ЦенаВключаетНДС;
ЗакупкиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.Договор.Видимость, Объект.Договор);
Если ЗначениеЗаполнено(Объект.Соглашение) Тогда
УсловияЗакупок = ЗакупкиСервер.ПолучитьУсловияЗакупок(Объект.Соглашение, Истина, Истина);
ЗаполнитьУсловияЗакупок(УсловияЗакупок);
Если ТекущийДоговор <> Объект.Договор Тогда
ДоговорПриИзмененииСервер();
КонецЕсли;
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("Валюта");
МассивРеквизитов.Добавить("ВалютаВзаиморасчетов");
МассивРеквизитов.Добавить("Партнер");
МассивРеквизитов.Добавить("НаправлениеДеятельности");
МассивРеквизитов.Добавить("Организация");
МассивРеквизитов.Добавить("Соглашение");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, МассивРеквизитов);
Если ПересчитыватьЦены Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполненияЦены = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
ПараметрыЗаполненияЦены.Вставить("ПоляЗаполнения", "Цена, СтавкаНДС, ВидЦеныПоставщика");
ПараметрыЗаполненияЦены.Вставить("Дата", Объект.Дата);
ПараметрыЗаполненияЦены.Вставить("Организация", Объект.Организация);
ПараметрыЗаполненияЦены.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполненияЦены.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполненияЦены.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ЦеныРассчитаны = ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(
ТаблицаКорректировки,
Неопределено,
ПараметрыЗаполненияЦены,
СтруктураДействий);
Если ЦеныРассчитаны Тогда
Суффикс = "После";
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс, ИмяКоличества", Суффикс, "КоличествоУпаковок"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
Для каждого Строка Из ТаблицаКорректировки Цикл
Строка.ЦенаПосле = Строка.Цена;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий);
КонецЕсли;
ИначеЕсли ЦенаВключаетНДС <> Объект.ЦенаВключаетНДС Тогда
Суффикс = "После";
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
КонецЕсли;
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовЗакупки(Объект.Склад);
СкладПриИзмененииСервер();
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
ОбновитьТекстСчетаФактурыПолученные();
КонецЕсли;
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииСервер()
Если ТекущийДоговор <> Объект.Договор Тогда
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Договор");
Если ЗначениеЗаполнено(Объект.Договор)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ТипДоговора") = Перечисления.ТипыДоговоров.СПереработчиком2_5 Тогда
КорректировкаПереработчика = Истина;
Иначе
КорректировкаПереработчика = Ложь;
КонецЕсли;
Если КорректировкаПереработчика
И Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг Тогда
УдалитьСтрокиНеУслуг();
КонецЕсли;
ЗаполнитьНалогообложениеНДСЗакупки();
ЗаполнитьОграниченияПриСменеДоговора();
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
УстановитьВидимостьЭлементовПоОснованию();
НалогообложениеНДСПриИзмененииСервер(Неопределено);
ЗаполнитьВидДеятельностиНДС();
ПриИзмененииКлючевыхРеквизитовСостояниеЭДО();
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОграниченияПриСменеДоговора()
СпсисокТиповНоменклатуры = Новый Массив();
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Работа);
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
МассивТиповДоговоров = Новый Массив();
МассивТиповДоговоров.Добавить(ПредопределенноеЗначение("Перечисление.ТипыДоговоров.СПоставщиком"));
МассивТиповДоговоров.Добавить(ПредопределенноеЗначение("Перечисление.ТипыДоговоров.СПереработчиком2_5"));
Если ЗначениеЗаполнено(Объект.Договор)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор,"ТипДоговора") = Перечисления.ТипыДоговоров.СПереработчиком2_5 Тогда
СпсисокТиповНоменклатуры.Очистить();
СпсисокТиповНоменклатуры.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.ТипНоменклатуры", Новый ФиксированныйМассив(СпсисокТиповНоменклатуры)));
Элементы.ТаблицаКорректировкиНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(НовыйМассив);
ЭлементТипаКорректировки = Элементы.ТипКорректировки.СписокВыбора.НайтиПоЗначению(Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг);
Если ЭлементТипаКорректировки <> Неопределено Тогда
ЭлементТипаКорректировки.Представление = НСтр("ru = 'Корректировка услуг по номенклатуре'");
КонецЕсли;
ЭлементТипаКорректировки = Элементы.ТипКорректировки.СписокВыбора.НайтиПоЗначению(Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов);
Если ЭлементТипаКорректировки <> Неопределено Тогда
ЭлементТипаКорректировки.Представление = НСтр("ru = 'Корректировка услуг по содержанию'");
КонецЕсли;
Иначе
ЭлементТипаКорректировки = Элементы.ТипКорректировки.СписокВыбора.НайтиПоЗначению(Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг);
Если ЭлементТипаКорректировки <> Неопределено Тогда
ЭлементТипаКорректировки.Представление = НСтр("ru = 'Корректировка по товарам и услугам'");
КонецЕсли;
ЭлементТипаКорректировки = Элементы.ТипКорректировки.СписокВыбора.НайтиПоЗначению(Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов);
Если ЭлементТипаКорректировки <> Неопределено Тогда
ЭлементТипаКорректировки.Представление = НСтр("ru = 'Корректировка по услугам и прочим активам'");
КонецЕсли;
КонецЕсли;
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.ТипДоговора", Новый ФиксированныйМассив(МассивТиповДоговоров)));
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.Статус", Перечисления.СтатусыДоговоровКонтрагентов.Действует));
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.ПометкаУдаления", Ложь));
Элементы.Договор.ПараметрыВыбора = Новый ФиксированныйМассив(НовыйМассив);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(Новый ПараметрВыбора("Отбор.ТипНоменклатуры", Новый ФиксированныйМассив(СпсисокТиповНоменклатуры)));
Элементы.ТаблицаКорректировкиНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(НовыйМассив);
Возврат;
КонецПроцедуры
&НаСервере
Процедура УдалитьСтрокиНеУслуг()
МассивСтрокКУдалению = Новый Массив();
Для каждого СтрокаКорректировки Из ТаблицаКорректировки Цикл
Если СтрокаКорректировки.ТипНоменклатуры <> Перечисления.ТипыНоменклатуры.Услуга Тогда
МассивСтрокКУдалению.Добавить(СтрокаКорректировки);
КонецЕсли;
КонецЦикла;
Для каждого СтрокаКУдалению Из МассивСтрокКУдалению Цикл
ТаблицаКорректировки.Удалить(СтрокаКУдалению);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ТипКорректировкиПриИзмененииСервер()
КорректировкаПриобретенияУслугПрочихАктивов =
Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов;
Если КорректировкаПриобретенияУслугПрочихАктивов
И ЗначениеЗаполнено(Объект.Склад) Тогда
Объект.Склад = Справочники.Склады.ПустаяСсылка();
КонецЕсли;
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
УстановитьВидимостьЭлементовПоОснованию();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
УстановитьТипКорректировки();
УстановитьПараметрыВыбораНомераГТДИКодаТНВЭД();
УчетПрослеживаемыхТоваровЛокализация.УстановитьЗаголовокНомерГТД(Элементы, "ТаблицаКорректировкиНомерГТД", КорректировкаПриобретенияУслугПрочихАктивов);
КонецПроцедуры
&НаСервере
Процедура СкладПриИзмененииСервер()
УстановитьПараметрыВыбораТоварыСклад();
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовЗакупки(Объект.Склад);
СкладыСервер.ЗаполнитьСкладыВТабличнойЧасти(Объект.Склад, СкладГруппа, ТаблицаКорректировки, Истина, "СписатьНаРасходы");
ПриИзмененииСкладаВТабличнойЧастиСервер();
ПодготовитьЗаполнитьУстановитьВидимостьСерий();
ЗаполнитьВидДеятельностиНДС();
Если Не СкладГруппа Тогда
Элементы.ТаблицаКорректировкиПолучатель.Заголовок = НСтр("ru = 'Подразделение-получатель'");
Иначе
Элементы.ТаблицаКорректировкиПолучатель.Заголовок = НСтр("ru = 'Получатель'");
КонецЕсли;
Элементы.ГруппаКартинкаИНадписьНесколькоСкладов.Видимость = СкладГруппа;
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
Для каждого СтрокаТаблицы Из ТаблицаКорректировки Цикл
Если (СтрокаТаблицы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар
Или СтрокаТаблицы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара)
И СтрокаТаблицы.Количество <> СтрокаТаблицы.КоличествоПосле Тогда
СписокВыбора = ПолучитьДоступныВариантыОтраженияДляСтроки(СтрокаТаблицы);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтражения) = Неопределено Тогда
СтрокаТаблицы.ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка();
КонецЕсли;
СписокВыбораСписания = ПолучитьДоступныВариантыОтраженияСписанияДляСтроки(СтрокаТаблицы);
Если СписокВыбора.Найти(СтрокаТаблицы.ВариантОтраженияСписания) = Неопределено Тогда
СтрокаТаблицы.ВариантОтраженияСписания = Перечисления.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
КонецЦикла;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ВалютаПриИзмененииСервер(НоваяВалюта)
ДатаДокумента = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
СтруктурыКурсов = ВзаиморасчетыСервер.КурсыВалютДляПересчета(ЭтотОбъект, ТекущаяВалюта, НоваяВалюта, ВалютаРегламентированногоУчета, ДатаДокумента);
СтруктураКурсовСтаройВалюты = СтруктурыКурсов.СтруктураКурсовСтаройВалюты;
СтруктураКурсовНовойВалюты = СтруктурыКурсов.СтруктураКурсовНовойВалюты;
ПараметрыПересчета = Ценообразование.ПараметрыПересчетаСуммТаблицыВВалюту(Объект.ЦенаВключаетНДС, ТекущаяВалюта, НоваяВалюта, ДатаДокумента);
ПараметрыПересчета.СтруктураКурсовСтаройВалюты = СтруктураКурсовСтаройВалюты;
ПараметрыПересчета.СтруктураКурсовНовойВалюты = СтруктураКурсовНовойВалюты;
Ценообразование.ПересчитатьСуммыТаблицыВВалюту(ТаблицаКорректировки, ПараметрыПересчета);
СтруктураКолонок = Новый Структура;
СтруктураКолонок.Вставить("ЦенаПосле","Цена");
СтруктураКолонок.Вставить("СуммаПосле", "Сумма");
СтруктураКолонок.Вставить("СуммаНДСПосле", "СуммаНДС");
СтруктураКолонок.Вставить("СуммаСНДСПосле", "СуммаСНДС");
СтруктураКолонок.Вставить("СтавкаНДСПосле", "СтавкаНДС");
СтруктураКолонок.Вставить("КоличествоПосле", "Количество");
СтруктураКолонок.Вставить("КоличествоУпаковокПосле", "КоличествоУпаковок");
ВременнаяТаблицаКорректировки =
ОбщегоНазначенияУТ.ВыгрузитьТаблицуЗначений(ТаблицаКорректировки,,
"ЦенаПосле,СуммаПосле,СуммаНДСПосле,СуммаСНДСПосле,СтавкаНДСПосле,КоличествоПосле,КоличествоУпаковокПосле",,
СтруктураКолонок);
Ценообразование.ПересчитатьСуммыТаблицыВВалюту(ВременнаяТаблицаКорректировки, ПараметрыПересчета);
Для Каждого Строка из ТаблицаКорректировки Цикл
НовыеДанные = ВременнаяТаблицаКорректировки[ТаблицаКорректировки.Индекс(Строка)];
Строка.ЦенаПосле = НовыеДанные.Цена;
Строка.СуммаПосле = НовыеДанные.Сумма;
Строка.СуммаНДСПосле = НовыеДанные.СуммаНДС;
Строка.СуммаСНДСПосле = НовыеДанные.СуммаСНДС;
КонецЦикла;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", "После");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки()
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
Объект.ШтрихкодыУпаковок.Очистить();
Объект.КорректировкаЗадолженности.Очистить();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
#КонецОбласти
#Область Заполнение
&НаСервере
Функция ЗаполнитьЦеныПоСоглашениюСервер()
МассивСтрок = Новый Массив;
Для Каждого Строка Из Элементы.ТаблицаКорректировки.ВыделенныеСтроки Цикл
МассивСтрок.Добавить(ТаблицаКорректировки.НайтиПоИдентификатору(Строка));
КонецЦикла;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполненияЦены = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
ПараметрыЗаполненияЦены.Вставить("ПоляЗаполнения", "Цена, ВидЦеныПоставщика");
ПараметрыЗаполненияЦены.Вставить("Дата", Объект.Дата);
ПараметрыЗаполненияЦены.Вставить("Организация", Объект.Организация);
ПараметрыЗаполненияЦены.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполненияЦены.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполненияЦены.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ЦеныРассчитаны = ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(
ТаблицаКорректировки,
МассивСтрок,
ПараметрыЗаполненияЦены,
СтруктураДействий);
Если ЦеныРассчитаны Тогда
Суффикс = "После";
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс, ИмяКоличества", Суффикс, "КоличествоУпаковок"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
КэшированныеЗначения = Неопределено;
Для каждого Строка Из МассивСтрок Цикл
Строка.ЦенаПосле = Строка.Цена;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
МассивСтрок,
СтруктураДействий,
ТаблицаКорректировки,
КэшированныеЗначения);
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщикаСервер(ВидЦеныПоставщика)
МассивСтрок = Новый Массив;
Для Каждого Строка Из Элементы.ТаблицаКорректировки.ВыделенныеСтроки Цикл
МассивСтрок.Добавить(ТаблицаКорректировки.НайтиПоИдентификатору(Строка));
КонецЦикла;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполненияЦены = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
ПараметрыЗаполненияЦены.Вставить("ПоляЗаполнения", "Цена, ВидЦеныПоставщика");
ПараметрыЗаполненияЦены.Вставить("Дата", Объект.Дата);
ПараметрыЗаполненияЦены.Вставить("Организация", Объект.Организация);
ПараметрыЗаполненияЦены.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполненияЦены.Вставить("ВидЦеныПоставщика", ВидЦеныПоставщика);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
ЦеныРассчитаны = ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(
ТаблицаКорректировки,
МассивСтрок,
ПараметрыЗаполненияЦены,
СтруктураДействий);
Суффикс = "После";
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс, ИмяКоличества", Суффикс, "КоличествоУпаковок"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
КэшированныеЗначения = Неопределено;
Для каждого Строка Из МассивСтрок Цикл
Строка.ЦенаПосле = Строка.Цена;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
МассивСтрок,
СтруктураДействий,
ТаблицаКорректировки,
КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьСкладВВыделенныхСтрокахНаСервере(Знач МассивВыделенныхСтрок, Склад)
ЗаполненоСтрок = СкладыСервер.ЗаполнитьСкладыВВыделенныхСтроках(ТаблицаКорректировки, МассивВыделенныхСтрок, Склад);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект,ПараметрыУказанияСерий);
ПриИзмененииСкладаВТабличнойЧастиСервер();
Возврат ЗаполненоСтрок;
КонецФункции
&НаСервере
Процедура ЗаполнитьНалогообложениеНДСЗакупки()
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСЗакупки(Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВидДеятельностиНДС()
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияВидаДеятельностиНДС(Объект);
УчетНДСУП.ЗаполнитьВидДеятельностиНДС(Объект.ЗакупкаПодДеятельность, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
УчетНДСУП.ЗаполнитьСписокВыбораВидаДеятельностиНДС(Элементы.ЗакупкаПодДеятельность, Объект.ЗакупкаПодДеятельность, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияЗакупок(Знач УсловияЗакупок)
Если УсловияЗакупок = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.Валюта = УсловияЗакупок.Валюта;
Объект.ВалютаВзаиморасчетов = УсловияЗакупок.ВалютаВзаиморасчетов;
Если ЗначениеЗаполнено(УсловияЗакупок.Организация) И УсловияЗакупок.Организация <> Объект.Организация Тогда
Объект.Организация = УсловияЗакупок.Организация;
КонецЕсли;
Если ЗначениеЗаполнено(УсловияЗакупок.Склад) Тогда
Объект.Склад = УсловияЗакупок.Склад;
КонецЕсли;
Если ЗначениеЗаполнено(УсловияЗакупок.Контрагент) И УсловияЗакупок.Контрагент <> Объект.Контрагент Тогда
Объект.Контрагент = УсловияЗакупок.Контрагент;
КонецЕсли;
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
Если ЗначениеЗаполнено(УсловияЗакупок.ХозяйственнаяОперация) Тогда
ОперацияПоСоглашению = Объект.ХозяйственнаяОперация;
ОперацииРаздельнойЗакупки = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(УсловияЗакупок.ХозяйственнаяОперация);
Если ОперацииРаздельнойЗакупки.Найти(Объект.ХозяйственнаяОперация) = Неопределено
И Не (ОперацияПоСоглашению = Перечисления.ХозяйственныеОперации.ЗакупкаЧерезПодотчетноеЛицо
И УсловияЗакупок.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика) Тогда
ОперацияПоСоглашению = УсловияЗакупок.ХозяйственнаяОперация;
КонецЕсли;
Объект.ХозяйственнаяОперация = ОперацияПоСоглашению;
КонецЕсли;
ХозяйственнаяОперацияДоговора = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(Объект.ХозяйственнаяОперация);
Если УсловияЗакупок.ИспользуютсяДоговорыКонтрагентов <> Неопределено
И УсловияЗакупок.ИспользуютсяДоговорыКонтрагентов Тогда
ДопПараметры = ЗакупкиСервер.ДополнительныеПараметрыОтбораДоговоров();
ДопПараметры.ВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ДопПараметры.Налогообложение = Объект.НалогообложениеНДС;
Объект.Договор = ЗакупкиСервер.ПолучитьДоговорПоУмолчанию(Объект, ХозяйственнаяОперацияДоговора, ДопПараметры);
КонецЕсли;
Объект.ФормаОплаты = УсловияЗакупок.ФормаОплаты;
Объект.ЦенаВключаетНДС = УсловияЗакупок.ЦенаВключаетНДС;
РаботаСКурсамиВалютУТ.ЗаполнитьКурсДокументаПоУмолчанию(Объект.КурсЧислитель,
Объект.КурсЗнаменатель, Объект.Валюта, Объект.ВалютаВзаиморасчетов, Объект.Организация, , Объект.Договор);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияЗакупокПоУмолчанию(ПересчитатьЦены = Истина)
Если ЗначениеЗаполнено(Объект.Партнер) Тогда
КлючиУсловийЗакупок = "УчитыватьГруппыСкладов, ИсключитьГруппыСкладовДоступныеВЗаказах, ВыбранноеСоглашение";
ОтборУсловийЗакупок = Новый Структура(КлючиУсловийЗакупок, Истина, Истина, Объект.Соглашение);
УсловияЗакупокПоУмолчанию = ЗакупкиСервер.ПолучитьУсловияЗакупокПоУмолчанию(Объект.Партнер, ОтборУсловийЗакупок);
Если УсловияЗакупокПоУмолчанию <> Неопределено Тогда
Если Объект.Соглашение <> УсловияЗакупокПоУмолчанию.Соглашение
И ЗначениеЗаполнено(УсловияЗакупокПоУмолчанию.Соглашение) Тогда
Объект.Соглашение = УсловияЗакупокПоУмолчанию.Соглашение;
ЗаполнитьУсловияЗакупок(УсловияЗакупокПоУмолчанию);
ЗаполнитьНалогообложениеНДСЗакупки();
ЗаполнитьВидДеятельностиНДС();
Если ПересчитатьЦены
И ЗначениеЗаполнено(Объект.Соглашение) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПересчитатьСуммуСУчетомРучнойСкидки = Новый Структура("Очищать", Ложь);
ПараметрыЗаполнения = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, СтавкаНДС, ВидЦеныПоставщика");
ПараметрыЗаполнения.Вставить("Дата", Объект.Дата);
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(ТаблицаКорректировки,
Неопределено,
ПараметрыЗаполнения,
СтруктураДействий);
КонецЕсли;
Иначе
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
Объект.Соглашение = УсловияЗакупокПоУмолчанию.Соглашение;
КонецЕсли;
Иначе
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
Объект.Соглашение = Неопределено;
ХозяйственнаяОперацияДоговора = ЗакупкиСервер.ХозяйственныеОперацииПоОсновной(Объект.ХозяйственнаяОперация);
ДопПараметры = ЗакупкиСервер.ДополнительныеПараметрыОтбораДоговоров();
ДопПараметры.ВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
Объект.Договор = ЗакупкиСервер.ПолучитьДоговорПоУмолчанию(Объект, ХозяйственнаяОперацияДоговора, ДопПараметры);
ЗаполнитьНалогообложениеНДСЗакупки();
ЗаполнитьВидДеятельностиНДС();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДанныеКорректировкиЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьДанныеКорректировкиСервер();
Если ТаблицаКорректировки.Количество() = 0 Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Нет данных для заполнения'"));
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеКорректировкиСервер()
Если Не ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Поле ""Документ-основание"" не заполнено'"),
,
"ПредставлениеДокументаОснования");
Возврат;
КонецЕсли;
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
Документы.КорректировкаПриобретения.ЗаполнитьТоварыПоИсходнымДанным(Объект.ДокументОснование, Объект.Товары, Объект.Ссылка);
ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере();
ПриЧтенииСозданииНаСервере();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущиеДанные, ЭтоРасхождение = Ложь)
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ТекущиеДанные.АналитикаРасходов) = Тип("СправочникСсылка.ОбъектыЭксплуатации") Тогда
УказанНомерГТД = ЗначениеЗаполнено(ТекущиеДанные.НомерГТД);
ТекущиеДанные.ВедетсяУчетПоГТД = ?(ЭтоРасхождение, УказанНомерГТД, Истина);
ТекущиеДанные.ВедетсяУчетПоРНПТ = ТоварПрослеживается(ТекущиеДанные.НомерГТД);
Если Не УказанНомерГТД Тогда
Если ЗначениеЗаполнено(ТекущиеДанные.КодТНВЭД) Тогда
ТекущиеДанные.КодТНВЭД = Неопределено;
КонецЕсли;
ТекущиеДанные.СтранаПроисхождения = Неопределено;
КонецЕсли;
Иначе
ТекущиеДанные.ВедетсяУчетПоГТД = Ложь;
ТекущиеДанные.ВедетсяУчетПоРНПТ = Ложь;
Если ЗначениеЗаполнено(ТекущиеДанные.КодТНВЭД) Тогда
ТекущиеДанные.КодТНВЭД = Неопределено;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтоговыеПоказателиПоступления(Форма)
ОтображатьИтогСуммыНДС = УчетНДСУПКлиентСервер.ОтображатьНДСВИтогахДокументаПродажи(Форма.Объект.НалогообложениеНДС);
Если ОтображатьИтогСуммыНДС Тогда
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоСНДС;
Иначе
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоБезНДС;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
Перем ЕстьКорректировки;
ИспользоватьРеглУчет = ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет");
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ИспользоватьНаправленияДеятельности = ПолучитьФункциональнуюОпцию("ИспользоватьУчетЗатратПоНаправлениямДеятельности");
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
ЗагрузитьТаблицуКорректировкиИзДанныхДокументаНаСервере();
ПроверитьНаличиеКорректировок(Объект.Ссылка, Объект.ДокументОснование, ЕстьКорректировки, ТипПредыдущейКорректировки);
УстановитьТипКорректировки();
Операция = ХозяйственнаяОперацияДокументаОснования(Объект.ТипКорректировки);
УстановитьХозяйственнуюОперациюДокумента(Объект.ДокументОснование);
УстановитьПредставлениеДокументаОснования();
КорректировкаПриобретенияУслугПрочихАктивов =
Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковУслугИПрочихАктивов;
УстановитьПараметрыВыбораТоварыСклад();
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовЗакупки(Объект.Склад);
Элементы.ГруппаКартинкаИНадписьНесколькоСкладов.Видимость = СкладГруппа;
НаправленияДеятельностиСервер.ПриЧтенииСозданииНаСервере(ЭтотОбъект);
ПодготовитьЗаполнитьУстановитьВидимостьСерий();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
ПриИзмененииСкладаВТабличнойЧастиСервер();
Элементы.ТаблицаКорректировкиЗаполнитьСкладВВыделенныхСтроках.Доступность = СкладГруппа;
УстановитьПараметрыВыбораТаблицаКорректировкиСклад();
УстановитьДоступностьЭлементовПоСтатусуСервер();
ОбновитьТекстСчетаФактурыПолученные();
ЗапретитьПоступлениеТоваровБезНомеровГТД = ПолучитьФункциональнуюОпцию("ЗапретитьПоступлениеТоваровБезНомеровГТД");
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ДокументОснованиеСтарый = Объект.ДокументОснование;
ПериодКорректировки = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
УстановитьПривилегированныйРежим(Истина);
ДатаОснования = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДокументОснование, "Дата");
ДоговорОснования = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДокументОснование, "Договор");
ИспользуютсяДоговорыКонтрагентов = ЗначениеЗаполнено(ДоговорОснования);
УстановитьПривилегированныйРежим(Ложь);
КорректировкаПрошлогоПериода = ДатаОснования < НачалоМесяца(ПериодКорректировки);
Если ЗначениеЗаполнено(Объект.Договор)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ТипДоговора") = Перечисления.ТипыДоговоров.СПереработчиком2_5 Тогда
КорректировкаПереработчика = Истина;
Иначе
КорректировкаПереработчика = Ложь;
КонецЕсли;
Иначе
ДатаОснования = Объект.Дата;
ИспользуютсяДоговорыКонтрагентов = Неопределено;
КорректировкаПереработчика = Ложь;
КонецЕсли;
ВернутьМногооборотнуюТару = Ложь;
ТребуетсяЗалогЗаТару = Ложь;
УстановитьВидимостьЭлементовПоТипуКорректировкиСервер();
УстановитьВидимостьЭлементовПоОснованию();
ЗаполнитьОграниченияПриСменеДоговора();
РаботаСТабличнымиЧастями.ИнициализироватьКэшСтрок(Элементы.ТаблицаКорректировки);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(
Элементы.НалогообложениеНДС,
Объект.НалогообложениеНДС,
ПараметрыЗаполнения,
УчетНДСКэшированныеЗначенияПараметров);
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияВидаДеятельностиНДС(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораВидаДеятельностиНДС(
Элементы.ЗакупкаПодДеятельность,
Объект.ЗакупкаПодДеятельность,
ПараметрыЗаполнения,
УчетНДСКэшированныеЗначенияПараметров);
ТекущаяОрганизация = Объект.Организация;
ТекущаяВалюта = Объект.Валюта;
ТекущаяВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ТекущийКонтрагент = Объект.Контрагент;
ТекущийПартнер = Объект.Партнер;
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
ОбновитьОбязательностьСкладаВТЧ();
ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ();
УстановитьВидимостьИсправляемогоДокумента();
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
УстановитьПараметрыВыбораНомераГТДИКодаТНВЭД();
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставлениеДокументаОснования()
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОписаниеДокументаОснования = Новый ФорматированнаяСтрока(Строка(Объект.ДокументОснование),,,, "ОткрытьДокумент");
КомандаИзменить = Новый ФорматированнаяСтрока(НСтр("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 Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.ОК, Нстр("ru='Да'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, Нстр("ru='Нет'"));
ТекстВопроса = НСтр("ru = 'При изменении документа-основания текущая таблица с данными по корректировке будет перезаполнена по выбранному основанию с учетом предыдущих корректировок. Продолжить?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ТипКорректировкиПриИзмененииДокументаОсеованияЗавершение", ЭтотОбъект, ВыбранноеЗначение), ТекстВопроса, СписокКнопок);
Иначе
ОбработкаВыбораДокументаОснованияСервер(ВыбранноеЗначение);
ОбновитьСлужебныеПоляТаблицыЗначений();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораДокументаОснованияСервер(ВыбранноеЗначение)
Модифицированность = Истина;
Если ТаблицаКорректировки.Количество() > 0 Тогда
ВыгрузитьТаблицуКорректировкиВДанныеДокумента();
КонецЕсли;
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(ВыбранноеЗначение);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
Объект.ДокументОснование = ВыбранноеЗначение;
Объект.ИсправляемыйДокумент = Неопределено;
ИзмененныеСтроки = НаправленияДеятельностиСервер.ПриИзмененииНаправленияДеятельности(ЭтотОбъект);
ЗакупкиСервер.ОчиститьРеквизитыСписанияНаРасходыПриУстановкеНазначенияВТабличнойЧасти(ИзмененныеСтроки);
ПриЧтенииСозданииНаСервере();
УстановитьВидимостьКоличестваРНПТ();
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, Форма, Суффикс = "")
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
Если Суффикс = "" Тогда
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", "Количество");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
Иначе
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс, ИмяКоличества", Суффикс, "Количество"));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, Форма, Суффикс = "")
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
Если Суффикс = "" Тогда
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Форма.Объект,
СтруктураДействий,
"Склад",
Истина);
Иначе
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиницСуффикс", Суффикс);
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Суффикс);
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Форма.Объект,
СтруктураДействий,
"Склад",
Истина,
Суффикс);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда,
НавигационнаяСсылка = Неопределено,
СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПроверитьНаличиеКорректировок(Ссылка, Основание, ЕстьКорректировки, ТипПредыдущейКорректировки)
ЗакупкиСервер.ПроверитьНаличиеКорректировокИСчетовФактур(Ссылка, Основание, ЕстьКорректировки, Неопределено);
Если ЕстьКорректировки Тогда
ТипПредыдущейКорректировки = ЗакупкиСервер.ПолучитьТипПоследнейКорректировки(Ссылка, Основание);
Иначе
ТипПредыдущейКорректировки = Перечисления.ТипыКорректировки.ПустаяСсылка();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СообщитьОбОшибкахОткрытияПодбора(Отказ)
Если Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Валюта"" не заполнено'"), Объект.Ссылка, "Объект.Валюта",,Отказ);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
Суффикс = "После";
ПараметрыПоСкладу = Новый Структура;
ПараметрыПоСкладу.Вставить("ДатаПроверки", Объект.Дата);
ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Суффикс = Суффикс;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются",
Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры",
Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь));
СтруктураДействий.Вставить("ЗаполнитьПризнакОрдерногоСклада", ПараметрыПоСкладу);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект, Суффикс);
ОбрабатываемыеСтроки = Новый Массив;
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
ТекущаяСтрока = ТаблицаКорректировки.Добавить();
ЗаполнитьЗначенияСвойств(
ТекущаяСтрока,
СтрокаТовара,
"НоменклатураПартнера, Номенклатура, Характеристика, Упаковка, Склад, Цена, КоличествоУпаковок");
ТекущаяСтрока.ЦенаПосле = СтрокаТовара.Цена;
ТекущаяСтрока.КоличествоУпаковокПосле = СтрокаТовара.КоличествоУпаковок;
ОбновитьНомерСтрокиТаблицыКорректировки(ТекущаяСтрока);
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
ТаблицаКорректировки);
Для каждого ТекущаяСтрока Из ОбрабатываемыеСтроки Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "ТаблицаКорректировки");
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(СтрокаТовара);
КонецЕсли;
КонецЦикла;
ЗаполнитьПризнакСписанияНаРасходыДляУслуг();
ПриИзмененииСкладаВТабличнойЧастиСервер();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
ОбновитьЗаголовокТаблицыКорректировки();
КонецПроцедуры
&НаСервере
Функция ПолучитьДанныеПоСкладам()
СкладыРасхождений = ТаблицаКорректировки.Выгрузить(,"Склад");
СкладыРасхождений.Свернуть("Склад");
СкладыРасхождений.Колонки.Добавить("ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач",
Новый ОписаниеТипов("Булево"));
Для Каждого Стр Из СкладыРасхождений Цикл
Если ЗначениеЗаполнено(Стр.Склад) Тогда
Стр.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = СкладыСервер.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач(Стр.Склад, Объект.Дата);
КонецЕсли;
КонецЦикла;
Возврат СкладыРасхождений;
КонецФункции
&НаСервереБезКонтекста
Функция ДанныеВыбораСкладов(Склад)
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Склады.Ссылка КАК Ссылка
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Ссылка В ИЕРАРХИИ(&ГруппаСкладов)
| И Склады.ЭтоГруппа = ЛОЖЬ
| И Склады.ВыборГруппы <> ЗНАЧЕНИЕ(Перечисление.ВыборГруппыСкладов.Запретить)");
Запрос.УстановитьПараметр("ГруппаСкладов", Склад);
МассивСкладов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Возврат МассивСкладов;
КонецФункции
&НаСервере
Процедура УстановитьПараметрыВыбораТоварыСклад()
Элементы.ТаблицаКорректировкиСклад.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
ДанныеВыбораСкладов = ДанныеВыбораСкладов(Объект.Склад);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.ТаблицаКорректировкиСклад, "Ссылка", ДанныеВыбораСкладов);
КонецПроцедуры
&НаСервере
Функция ПоместитьТоварыВоВременноеХранилищеСервер(ИмяКоллекции)
Возврат ЗакупкиСервер.ПоместитьТоварыВоВременноеХранилище(ЭтотОбъект[ИмяКоллекции]);
КонецФункции
&НаСервере
Процедура ЗаполнитьТоварыИзВременногоХранилищаСервер(АдресВоВременномХранилище)
Суффикс = "После";
ТаблицаТоваров = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", Суффикс);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", Новый Структура ("Суффикс", Суффикс));
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетовСуффикс", Суффикс);
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ОбрабатываемыеСтроки = Новый Массив();
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
Для каждого ТекСтрока Из ТаблицаТоваров Цикл
МассивСтрокКоллекции = ТаблицаКорректировки.НайтиСтроки(Новый Структура("НомерСтроки", ТекСтрока.НомерСтроки));
Если МассивСтрокКоллекции.Количество() <> 1 Тогда
Продолжить;
Иначе
СтрокаКоллекции = МассивСтрокКоллекции[0];
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаКоллекции, ТекСтрока, "Номенклатура, Характеристика, Упаковка");
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекСтрока);
КонецЕсли;
ОбрабатываемыеСтроки.Добавить(СтрокаКоллекции);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
ТаблицаКорректировки,
КэшированныеЗначения);
ПриИзмененииСкладаВТабличнойЧастиСервер();
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект,ПараметрыУказанияСерий);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПризнакСписанияНаРасходыДляУслуг()
СтруктураОтбора = Новый Структура("ТипНоменклатуры", Перечисления.ТипыНоменклатуры.Услуга);
НайденныеСтроки = ТаблицаКорректировки.НайтиСтроки(СтруктураОтбора);
СтруктураДействий = Новый Структура;
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
Для Каждого Строка Из НайденныеСтроки Цикл
Строка.СписатьНаРасходы = Истина;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
НайденныеСтроки,
СтруктураДействий,
ТаблицаКорректировки);
Для Каждого Строка Из НайденныеСтроки Цикл
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, Строка, "ТаблицаКорректировки");
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьРезультатВыбораНоменклатурыПартнера(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры.ТекущаяСтрока.НоменклатураПартнера = ВыбранноеЗначение;
ТаблицаКорректировкиНоменклатураПартнераПриИзменении(ДополнительныеПараметры.ЭлементФормы);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьЭлементовПоТипуКорректировкиСервер()
ЭтоКорректировкаТоваровИУслуг = Объект.ТипКорректировки = Перечисления.ТипыКорректировки.КорректировкаДоВводаОстатковТоваровИУслуг;
Элементы.Склад.Видимость = ЭтоКорректировкаТоваровИУслуг И Не КорректировкаПереработчика;
Элементы.ТаблицаКорректировкиСодержание.Видимость = КорректировкаПриобретенияУслугПрочихАктивов;
Элементы.ТаблицаКорректировкиНаправлениеДеятельности.Видимость = КорректировкаПриобретенияУслугПрочихАктивов;
Элементы.ТаблицаКорректировкиНоменклатураПартнера.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНоменклатура.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиХарактеристика.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиСерия.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиСклад.Видимость = ЭтоКорректировкаТоваровИУслуг И Не КорректировкаПереработчика;
Элементы.ТаблицаКорректировкиНомерГТД.Видимость = ЭтоКорректировкаТоваровИУслуг Или КорректировкаПриобретенияУслугПрочихАктивов;
Элементы.ТаблицаКорректировкиНомерГТДСтранаПроисхождения.Видимость = ЭтоКорректировкаТоваровИУслуг Или КорректировкаПриобретенияУслугПрочихАктивов;
Элементы.ТаблицаКорректировкиГруппаКоличествоПоРНПТ.Видимость = ЭтоКорректировкаТоваровИУслуг Или КорректировкаПриобретенияУслугПрочихАктивов;
Элементы.ТаблицаКорректировкиГруппаКоличествоУпаковок.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНоменклатураКод.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНоменклатураАртикул.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиНазначение.Видимость = ЭтоКорректировкаТоваровИУслуг;
Элементы.ТаблицаКорректировкиСтатусУказанияСерий.Видимость = ЭтоКорректировкаТоваровИУслуг;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПризнакЗаполненияСклада()
СкладОбязателен = ?(ТаблицаКорректировки.Итог("СкладОбязателен") = 0, 0, 1);
КонецПроцедуры
&НаСервере
Процедура ОбновитьОбязательностьСкладаВТЧ()
ПараметрыЗаполнения = Новый Структура("ЕстьРаботы, ЕстьОтменено", Истина, Ложь);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПриИзмененииТипаНоменклатуры", ПараметрыЗаполнения);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
СкладОбязателен = ?(ТаблицаКорректировки.Итог("СкладОбязателен") = 0, 0, 1);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПодбораИсправляемогоДокумента(Знач ВыбранноеЗначение)
Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
Объект.ИсправляемыйДокумент = ВыбранноеЗначение;
КонецЕсли;
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИсправляемыйДокумент()
ДатаИсправления = Объект.Дата;
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
ДатаИсправления = Неопределено;
КонецЕсли;
ПараметрыСписка = Новый Структура;
ПараметрыСписка.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыСписка.Вставить("ДатаИсправления", ДатаИсправления);
ОткрытьФорму("Документ.КорректировкаПриобретения.Форма.ФормаПодбораИсправляемогоДокумента", ПараметрыСписка, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура НастроитьЭлементыИсправляемогоДокумента()
ОтображаетсяИсправляемыйДокумент = Элементы.ГруппаИсправляемыйДокумент.Видимость;
Если НЕ ОтображаетсяИсправляемыйДокумент Тогда
Возврат;
КонецЕсли;
ЗаполненИсправляемыйДокумент = ЗначениеЗаполнено(Объект.ИсправляемыйДокумент);
ШиринаЭлементаИсправляемыйДокумент = 0;
ЦветТекстаИзменитьИсправляемыйДокумент = Новый Цвет;
Если ЗаполненИсправляемыйДокумент Тогда
ШиринаЭлементаИсправляемыйДокумент = 15;
Иначе
ШиринаЭлементаИсправляемыйДокумент = 22;
ЦветТекстаИзменитьИсправляемыйДокумент = ЦветаСтиля.ЦветОсобогоТекста;
КонецЕсли;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПредставлениеИсправляемогоДокумента",
"Ширина", ШиринаЭлементаИсправляемыйДокумент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПредставлениеИсправляемогоДокумента",
"ЦветТекста", ЦветТекстаИзменитьИсправляемыйДокумент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ИзменитьИсправляемыйДокумент",
"Видимость", ЗаполненИсправляемыйДокумент);
КонецПроцедуры
&НаСервере
Процедура ОбновитьПредставлениеЭлементыИсправляемогоДокумента()
ПредставлениеИсправляемогоДокумента = ИсправлениеДокументов.ПредставлениеИсправляемогоДокумента(Объект.ИсправляемыйДокумент);
Если НЕ ЗначениеЗаполнено(ПредставлениеИсправляемогоДокумента) Тогда
ПредставлениеИсправляемогоДокумента = Нстр("ru='Выберите исправляемый документ'");
КонецЕсли;
НастроитьЭлементыИсправляемогоДокумента();
КонецПроцедуры
#КонецОбласти
#Область КонтрольНесогласованныхИзменений
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент)
Если Элемент.Имя = Элементы.Дата.Имя Тогда
ДатаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Партнер.Имя Тогда
ПартнерПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Контрагент.Имя Тогда
КонтрагентПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Соглашение.Имя Тогда
СоглашениеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Организация.Имя Тогда
ОрганизацияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Договор.Имя Тогда
ДоговорПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Склад.Имя Тогда
СкладПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТипКорректировки.Имя Тогда
ТипКорректировкиПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.Подразделение.Имя Тогда
ПодразделениеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.НалогообложениеНДС.Имя Тогда
НалогообложениеНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ЦенаВключаетНДС.Имя Тогда
ЦенаВключаетНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиНоменклатураПартнера.Имя Тогда
ТаблицаКорректировкиНоменклатураПартнераПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиНоменклатура.Имя Тогда
ТаблицаКорректировкиНоменклатураПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиХарактеристика.Имя Тогда
ТаблицаКорректировкаХарактеристикаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСерия.Имя Тогда
ТаблицаКорректировкиСерияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличествоУпаковок.Имя Тогда
ТаблицаКорректировкиКоличествоУпаковокПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличествоУпаковокПосле.Имя Тогда
ТаблицаКорректировкиКоличествоУпаковокПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиУпаковка.Имя Тогда
ТаблицаКорректировкиУпаковкаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличество.Имя Тогда
ТаблицаКорректировкиКоличествоПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиКоличествоПосле.Имя Тогда
ТаблицаКорректировкиКоличествоПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиЦена.Имя Тогда
ТаблицаКорректировкиЦенаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиЦенаПосле.Имя Тогда
ТаблицаКорректировкиЦенаПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСумма.Имя Тогда
ТаблицаКорректировкиСуммаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаПосле.Имя Тогда
ТаблицаКорректировкиСуммаПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСтавкаНДС.Имя Тогда
ТаблицаКорректировкиСтавкаНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя =Элементы.ТаблицаКорректировкиСтавкаНДСПосле.Имя Тогда
ТаблицаКорректировкиСтавкаНДСПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаНДС.Имя Тогда
ТаблицаКорректировкиСуммаНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСуммаНДСПосле.Имя Тогда
ТаблицаКорректировкиСуммаНДСПослеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСклад.Имя Тогда
ТаблицаКорректировкиСкладПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиПодразделение.Имя Тогда
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиСписатьНаРасходы.Имя Тогда
ТаблицаКорректировкиСписатьНаРасходыПриИзменении(Элемент);
ИначеЕсли Элемент.Имя =Элементы.ТаблицаКорректировкиСтатьяРасходов.Имя Тогда
ТаблицаКорректировкиСтатьяРасходовПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиНомерГТД.Имя Тогда
ТаблицаКорректировкиНомерГТДПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТаблицаКорректировкиНазначение.Имя Тогда
ТаблицаКорректировкиНазначениеПриИзменении(Элемент);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда)
Если Команда.Имя = Команды.ПодобратьТовары.Имя Тогда
ПодобратьТовары(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьЦеныПоСоглашению.Имя Тогда
ЗаполнитьЦеныПоСоглашению(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьЦеныВыделенныхСтрокПоВидуЦеныПоставщика.Имя Тогда
ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщика(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьСкладВВыделенныхСтроках.Имя Тогда
ЗаполнитьСкладВВыделенныхСтроках(Команда);
ИначеЕсли Команда.Имя = Команды.ЗаполнитьНоменклатуруПоНоменклатуреПартнера.Имя Тогда
ЗаполнитьНоменклатуруПоНоменклатуреПартнера(Команда);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеНажатие(Элемент)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ)
Если Элемент.Имя = Элементы.ТаблицаКорректировки.Имя Тогда
ТаблицаКорректировкиПередНачаломИзменения(Элемент, Отказ);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ)
Если Элемент.Имя = Элементы.ТаблицаКорректировки.Имя Тогда
ТаблицаКорректировкиПередУдалением(Элемент, Отказ);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент,
Отказ,
Копирование,
Родитель,
Группа)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Функция ВыполнитьПроверкиПередИзменениемСтатуса()
Перем ЕстьКорректировки;
РеквизитМожноИзменить = Ложь;
ДополнительныеПараметры = Новый Структура;
Оповещение = Новый ОписаниеОповещения("ВыполнитьПроверкиПередИзменениемСтатусаЗавершение",
ЭтотОбъект,
ДополнительныеПараметры);
Если СтруктураДействийКонтрольНеСогласованныхИзменений = Неопределено
Или СтруктураДействийКонтрольНеСогласованныхИзменений.ОжидаетсяОповещение Тогда
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
ОчиститьСообщения();
ПроверитьНаличиеКорректировок(Объект.Ссылка, Объект.ДокументОснование, ЕстьКорректировки, ТипПредыдущейКорректировки);
Если ЕстьКорректировки Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить("ВвестиКорректировку", Нстр("ru='Ввести корректировку'"));
СписокКнопок.Добавить("ОтменитьИзменения", Нстр("ru='Отмена'"));
ПоказатьВопрос(
Оповещение,
НСтр("ru='На основании документа введена корректировка приобретения.
|Изменение исходного документа запрещено.'"),
СписокКнопок,
,
"ВвестиКорректировку");
Иначе
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
Возврат РеквизитМожноИзменить;
КонецФункции
&НаКлиенте
Процедура ВыполнитьПроверкиПередИзменениемСтатусаЗавершение(КодОтвета, ДополнительныеПараметры) Экспорт
Если КодОтвета = "ВвестиКорректировку" Тогда
ПараметрыОткрытия = Новый Структура("Основание", Объект.ДокументОснование);
ОткрытьФорму("Документ.КорректировкаПриобретения.Форма.ФормаДокументаДоВводаОстатков",
ПараметрыОткрытия);
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзменении_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
ОбщегоНазначенияУТКлиент.ВернутьПредыдущееЗначениеРеквизита(ЭтотОбъект, Элемент);
Возврат;
Иначе
ОбщегоНазначенияУТКлиент.СохранитьЗначениеРеквизита(ЭтотОбъект, Элемент);
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПриИзменении.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Нажатие_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Нажатие.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеНажатие(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Команда_УстановитьДоступностьЭлементовПоСтатусуСервер(Команда)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Команды.Свойство(Команда.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломИзменения_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если Элемент.ТекущиеДанные = Неопределено
Или СтруктураДействийКонтрольНеСогласованныхИзменений = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтруктураДействийКонтрольНеСогласованныхИзменений.ЗначенияРеквизитов[Элемент.Имя], Элемент.ТекущиеДанные);
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломИзменения.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередУдалением_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередУдалением.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломДобавления_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент,
Отказ,
Копирование,
Родитель,
Группа)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломДобавления.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса()
УстановитьДоступностьЭлементовПоСтатусуСервер();
ОбщегоНазначенияУТКлиент.ПослеИзмененияРеквизитаЗависящегоОтСтатуса(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область РаботаСБуферомОбмена
&НаСервере
Процедура СкопироватьСтрокиНаСервере()
РаботаСТабличнымиЧастями.СкопироватьСтрокиВБуферОбмена(ТаблицаКорректировки, Элементы.ТаблицаКорректировки.ВыделенныеСтроки);
КонецПроцедуры
&НаСервере
Процедура ПолучитьСтрокиИзБуфераОбмена()
Суффикс = "После";
Колонки = "Номенклатура,Характеристика,Содержание,Упаковка,КоличествоУпаковок,Количество,Цена,НомерГТД,Склад,
|Подразделение,НаправлениеДеятельности,КоличествоУпаковокПосле,КоличествоПосле,ЦенаПосле,
|ВариантОтражения,Серия,СписатьНаРасходы,ТипНоменклатуры";
ТаблицаТоваров = РаботаСТабличнымиЧастями.СтрокиИзБуфераОбмена(, Колонки);
Если Не ЗначениеЗаполнено(ТаблицаТоваров) Тогда
Возврат;
КонецЕсли;
Если ТаблицаТоваров.Колонки.Найти("ТипНоменклатуры") = Неопределено Тогда
ТаблицаТоваров.Колонки.Добавить("ТипНоменклатуры", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыНоменклатуры"));
КонецЕсли;
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.Вставить("Суффикс", Суффикс);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДССуффикс", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
КонецЕсли;
Если ИспользуетсяКоличествоУпаковок Тогда
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект, Суффикс);
Иначе
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект);
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтотОбъект, Суффикс);
КонецЕсли;
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ЕстьЦенаПосле = Ложь;
ЕстьКоличествоПосле = Ложь;
Если ТаблицаТоваров.Колонки.Найти("ЦенаПосле") <> Неопределено Тогда
ЕстьЦенаПосле = Истина;
КонецЕсли;
Если ТаблицаТоваров.Колонки.Найти("КоличествоПосле") <> Неопределено
И ТаблицаТоваров.Колонки.Найти("КоличествоУпаковокПосле") <> Неопределено Тогда
ЕстьКоличествоПосле = Истина;
КонецЕсли;
ОбрабатываемыеСтроки = Новый Массив;
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ОтборПоТипамНоменклатуры = НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь);
Если ОтборПоТипамНоменклатуры.Найти(СтрокаТовара.ТипНоменклатуры) = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ТекущаяСтрока = ТаблицаКорректировки.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара);
Если Не ЕстьЦенаПосле Тогда
ТекущаяСтрока.ЦенаПосле = ТекущаяСтрока.Цена;
КонецЕсли;
Если Не ЕстьКоличествоПосле Тогда
ТекущаяСтрока.КоличествоУпаковокПосле = ТекущаяСтрока.КоличествоУпаковок;
ТекущаяСтрока.КоличествоПосле = ТекущаяСтрока.Количество;
КонецЕсли;
ОбновитьНомерСтрокиТаблицыКорректировки(ТекущаяСтрока);
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
ТаблицаКорректировки,
КэшированныеЗначения);
Для каждого ТекущаяСтрока Из ОбрабатываемыеСтроки Цикл
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "ТаблицаКорректировки");
КонецЦикла;
ДействияДляЗаполнения = Новый Структура;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(ДействияДляЗаполнения);
КонецЕсли;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(ТаблицаКорректировки, ДействияДляЗаполнения);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(ТаблицаКорректировки);
ЗаполнитьПризнакСписанияНаРасходыДляУслуг();
ПриИзмененииСкладаВТабличнойЧастиСервер();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьКомандБуфераОбмена()
МассивЭлементов = Новый Массив();
МассивЭлементов.Добавить("ТаблицаКорректировкиВставитьСтроки");
МассивЭлементов.Добавить("ТаблицаКорректировкиКонтекстноеМенюВставитьСтроки");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность",
РаботаСТабличнымиЧастями.ЕстьСтрокиВБуфереОбмена());
КонецПроцедуры
&НаКлиенте
Процедура УстановитьДоступностьКомандБуфераОбменаНаКлиенте()
МассивЭлементов = Новый Массив();
МассивЭлементов.Добавить("ТаблицаКорректировкиВставитьСтроки");
МассивЭлементов.Добавить("ТаблицаКорректировкиКонтекстноеМенюВставитьСтроки");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность", Истина);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ТоварПрослеживается(НомерГТД)
Возврат ПриобретениеУслугПрочихАктивовЛокализация.ТоварПрослеживается(НомерГТД);
КонецФункции
#КонецОбласти
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область Серии
&НаКлиенте
Процедура ОткрытьПодборСерий(Текст = "")
Если НоменклатураКлиент.ДляУказанияСерийНуженСерверныйВызов(ЭтотОбъект,ПараметрыУказанияСерий,Текст)Тогда
ТекстИсключения = НСтр("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 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах"));
КонецЕсли;
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьСтоимостьТовара"));
КонецЕсли;
КонецЕсли;
Возврат СписокВыбора;
КонецФункции
#КонецОбласти
&НаКлиенте
Процедура ДатаПриИзмененииПослеПроверки(Результат, ДополнительныеПараметры) Экспорт
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораТаблицаКорректировкиСклад()
Элементы.ТаблицаКорректировкиСклад.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
ДанныеВыбораСкладов = ДанныеВыбораСкладов(Объект.Склад);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.ТаблицаКорректировкиСклад, "Ссылка", ДанныеВыбораСкладов);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокФормы()
АвтоЗаголовок = Ложь;
ШаблонЗаголовка = НСтр("ru = 'Корректировка приобретения до ввода остатков %1'");
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
ОкончаниеЗаголовка = НСтр("ru = '%1 от %2'");
ОкончаниеЗаголовка = СтрШаблон(ОкончаниеЗаголовка, Объект.Номер, Объект.Дата);
Иначе
ОкончаниеЗаголовка = НСтр("ru = '(создание)'");
КонецЕсли;
Заголовок = СтрШаблон(ШаблонЗаголовка, ОкончаниеЗаголовка);
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораНомераГТДИКодаТНВЭД()
МассивПараметровНомераГТД = Новый Массив;
МассивПараметровКодаТНВЭД = Новый Массив;
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
МассивТиповГТД = Новый СписокЗначений;
МассивТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТ);
МассивТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТКомплекта);
МассивПараметровНомераГТД.Добавить(
Новый ПараметрВыбора(
"СписокТиповГТД",
МассивТиповГТД));
МассивПараметровКодаТНВЭД.Добавить(
Новый ПараметрВыбора(
"Отбор.ПрослеживаемыйТовар",
Истина));
КонецЕсли;
Элементы.ТаблицаКорректировкиНомерГТД.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровНомераГТД);
Элементы.ТаблицаКорректировкиКодТНВЭД.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровКодаТНВЭД);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
Элементы.ТаблицаКорректировкиСтатьяРасходов.Заголовок = НСтр("ru = 'Списать на расходы'");
Элементы.ТаблицаКорректировкиСписатьНаРасходы.Заголовок = НСтр("ru = 'Списать на расходы'");
Элементы.ТекстСуммаНаПрочиеРасходыАктивы.Заголовок = НСтр("ru = 'На расходы:'");
Элементы.ТекстСуммаНаПрочиеДоходыПассивы.Заголовок = НСтр("ru = 'На доходы:'");
Элементы.СтатьяРасходов.Заголовок = НСтр("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 Тогда
ТекстЗаголовка = НСтр("ru = 'Данные корректировки'");
Иначе
ТекстЗаголовка = СтрШаблон(НСтр("ru = 'Данные корректировки (%1)'"), ТаблицаКорректировки.Количество());
КонецЕсли;
Элементы.ГруппаТаблицаКорректировки.Заголовок = ТекстЗаголовка;
Для каждого ТекущаяСтрока Из ТаблицаКорректировки Цикл
ТекущаяСтрока.НомерСтроки = ТаблицаКорректировки.Индекс(ТекущаяСтрока)+1;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьЗаголовокТаблицыКорректировки()
Если ТаблицаКорректировки.Количество() = 0 Тогда
ТекстЗаголовка = НСтр("ru = 'Данные корректировки'");
Иначе
ТекстЗаголовка = СтрШаблон(НСтр("ru = 'Данные корректировки (%1)'"), ТаблицаКорректировки.Количество());
КонецЕсли;
Элементы.ГруппаТаблицаКорректировки.Заголовок = ТекстЗаголовка;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНомерСтрокиТаблицыКорректировки(ТекущаяСтрока)
ТекущаяСтрока.НомерСтроки = ТаблицаКорректировки.Индекс(ТекущаяСтрока)+1;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораОснования()
СтруктураОтбор = Новый Структура;
СтруктураОтбор.Вставить("Проведен", Истина);
СтруктураОтбор.Вставить("ТипПервичногоДокумента",
ПредопределенноеЗначение("Перечисление.ТипыПервичныхДокументов.ПриобретениеУПоставщика"));
СтруктураОтбор.Вставить("Контрагент", Объект.Контрагент);
СтруктураОтбор.Вставить("Партнер", Объект.Партнер);
СтруктураОтбор.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ОткрытьФорму(
"Документ.ПервичныйДокумент.ФормаВыбора",
Новый Структура("Отбор", СтруктураОтбор),
ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ()
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТаблицаКорректировки, СтруктураДействий, Неопределено);
КонецПроцедуры
#КонецОбласти