#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыДобавить1", "Видимость", Ложь);
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
АвтоЗаголовок = Ложь;
СформироватьЗависимыеОтТипаОснованияЗаголовки(Истина);
Объект.Автор = Пользователи.ТекущийПользователь();
КонецЕсли;
Если РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении) Тогда
Обработчик = Документы.ПередачаТоваровХранителю.ОбработчикДействийПоТипуОснованияАкта(Объект.ТипОснованияАктаОРасхождении);
ПродажиСервер.УстановитьОтметкуНезаполненногоДоговора(Элементы, "Договор", Не Обработчик.СоглашенияСКлиентамиПрименимы());
ИначеЕсли Не РасхожденияКлиентСервер.ТипОснованияВозвратПоставщику(Объект.ТипОснованияАктаОРасхождении) Тогда
ПродажиСервер.УстановитьОтметкуНезаполненногоДоговора(Элементы, "Договор");
КонецЕсли;
Если РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении) Тогда
КомиссионныеПродажи25 = Истина;
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
ДополнительныеПараметры.Вставить("ОтложеннаяИнициализация", Истина);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
Элементы.ТоварыВидЦены.БыстрыйВыбор = Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовЦен");
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтаФорма);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект);
УстановитьВидимостьКомандыЗаполнитьСтавкуНДС();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ОтключитьОтметкуНезаполненного();
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Обработка.РаботаСАктамиРасхождений.Форма.РеквизитыПечати" Тогда
Если ВыбранноеЗначение <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Объект, ВыбранноеЗначение,,"ПриемкаТоваров");
Объект.ПриемкаТоваров.Очистить();
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ВыбранноеЗначение.ПриемкаТоваров, Объект.ПриемкаТоваров);
КонецЕсли;
Модифицированность = Истина;
ИначеЕсли ИсточникВыбора.ИмяФормы = "Обработка.ПодборТоваровВДокументПродажи.Форма.Форма"
Или ИсточникВыбора.ИмяФормы = "Обработка.ПодборТоваровВДокументЗакупки.Форма.Форма" Тогда
ОбработкаВыбораПодборНаКлиенте(ВыбранноеЗначение);
ИначеЕсли НоменклатураКлиент.ЭтоУказаниеСерий(ИсточникВыбора) Тогда
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтаФорма, ПараметрыУказанияСерий, ВыбранноеЗначение);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Обработка.РаботаСАктамиРасхождений.Форма.ФормаПодбораДокументовОснований" Тогда
УстановитьВидимостьСпособыОтражения();
ОбработатьПодборДокументовОснований(ВыбранноеЗначение, ИсточникВыбора.ВариантПереноса);
КонецЕсли;
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
ОтключитьОтметкуНезаполненного();
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "Запись_СоглашенияСПоставщиками"
И Не (РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)) Тогда
РасхожденияКлиент.УстановитьДоступностьСоглашенийСПоставщиком(ЭтотОбъект);
КонецЕсли;
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия,ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПриЧтенииСозданииНаСервере();
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ОчиститьСообщения();
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
РасхожденияСервер.УправлениеАвтоЗаголовкомПослеЗаписи(ЭтотОбъект);
РасхожденияСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуре(Объект);
РасхожденияСервер.ФормированиеНадписиДокументыОснование(ЭтаФорма);
РасхожденияСервер.УправлениеВидимостьюНДС(ЭтаФорма);
РасхожденияСервер.ЗаполнитьЗависимыеРеквизитыТоваровРасхожденияПослеОтгрузки(Объект);
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
РасхожденияКлиентСервер.ЗаполнитьРеквизитыМногооборотнойТары(Объект, ДокументыОснования);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
РазблокироватьДанныеФормыДляРедактирования();
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
СобытияФорм.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("КлючиДокументаОповещение", РаботаСЖурналамиДокументовКлиент.ПолучитьПараметрыКлючаПоДокументу(
Объект.Ссылка, Объект.Дата, Объект.ХозяйственнаяОперация));
Оповестить("Запись_АктОРасхожденияхПослеОтгрузки", ПараметрыЗаписи, Объект.Ссылка);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура КлиентПриИзменении(Элемент)
КлиентПриИзмененииНаСервере();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
Если Объект.КонтактноеЛицо.Пустая() Тогда
Возврат;
ИначеЕсли Не Объект.Партнер.Пустая() Тогда
Возврат;
КонецЕсли;
КонтактноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииСервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииСервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ДатаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении)
Тогда
ПараметрыВыбораСоглашения = ПродажиКлиент.ПараметрыНачалаВыбораСоглашенияСКлиентом();
ПараметрыВыбораСоглашения.Элемент = Элемент;
ПараметрыВыбораСоглашения.Партнер = Объект.Партнер;
ПараметрыВыбораСоглашения.Документ = Объект.Соглашение;
ПараметрыВыбораСоглашения.ДатаДокумента = Объект.Дата;
ПараметрыВыбораСоглашения.ДанныеФормыСтруктура = Объект;
Если РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыВыбораСоглашения.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи");
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыВыбораСоглашения.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию");
ПараметрыВыбораСоглашения.КомиссионныеПродажи25 = Истина;
КонецЕсли;
ПродажиКлиент.НачалоВыбораСоглашенияСКлиентом(ПараметрыВыбораСоглашения, СтандартнаяОбработка);
Иначе
СтруктураДополнительногоОтбора = Новый Структура;
Если РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровСХранения(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураДополнительногоОтбора.Вставить("ХозяйственнаяОперация",
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи"));
КонецЕсли;
ЗакупкиКлиент.НачалоВыбораСоглашенияСПоставщиком(Элемент, СтандартнаяОбработка, Объект.Партнер, Объект.Соглашение,
Объект.Дата, СтруктураДополнительногоОтбора);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СоглашениеПриИзменении(Элемент)
Если Не ЗначениеЗаполнено (Объект.Соглашение) Тогда
Возврат;
КонецЕсли;
ПриИзмененииСоглашенияСервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
ПриИзмененииХозяйственнойОперацииСервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
ПриИзмененииНалогообложенияНДССервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
ЦенаВключаетНДСПриИзмененииСервер();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ДокументыОснованиеПредставлениеНажатие(Элемент, СтандартнаяОбработка)
РасхожденияКлиент.ДокументыОснованиеПредставлениеНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница.Имя = "СтраницаДополнительно"
И Не ЭтотОбъект.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация Тогда
СвойстваВыполнитьОтложеннуюИнициализацию();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаОсновное Тогда
СформироватьСпособОтраженияРасхожденией();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СформироватьСпособОтраженияРасхожденией()
РасхожденияСервер.СформироватьНадписьСпособаОтраженияРасхождений(ЭтотОбъект,
Объект.Товары,
Элементы.НадписьРасхождения,
Элементы.ОформитьДокументы,
ТипЗнч(Объект.Ссылка));
СобытияФорм.ПриСменеСтраницФормы(ЭтотОбъект, "ГруппаСтраницы");
КонецПроцедуры
&НаКлиенте
Процедура ВалютаПриИзменении(Элемент)
ВалютаДокумента = Объект.Валюта;
КонецПроцедуры
&НаКлиенте
Процедура СтатусПриИзменении(Элемент)
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтотОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура СпособОтраженияРасхожденийИзменениеДокументаПриИзменении(Элемент)
СпособОтраженияРасхождений = Объект.СпособОтраженияРасхождений;
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура СпособОтраженияРасхожденийКорректировкаИсправлениеПриИзменении(Элемент)
Если ТребуетсяОчисткаДействияВТЧ() Тогда
ЗадатьВопросОбОчисткеКолонкиДействие();
Иначе
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СпособОтраженияРасхожденийКорректировкаПоСогласованиюПриИзменении(Элемент)
Если ТребуетсяОчисткаДействияВТЧ() Тогда
ЗадатьВопросОбОчисткеКолонкиДействие();
Иначе
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СпособОтраженияРасхожденийКорректировкаНовыеПриИзменении(Элемент)
СпособОтраженияРасхождений = Объект.СпособОтраженияРасхождений;
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.Менеджер) Тогда
Объект.Подразделение = ПодразделениеМенеджера(Объект.Менеджер);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы.ДекорацияСостояниеОригинала);
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДСНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыТовары
&НаКлиенте
Процедура ТоварыСерияПриИзменении(Элемент)
ВыбранноеЗначение = НоменклатураКлиентСервер.ВыбраннаяСерия();
ВыбранноеЗначение.Значение = Элементы.Товары.ТекущиеДанные.Серия;
ВыбранноеЗначение.ИдентификаторТекущейСтроки = Элементы.Товары.ТекущиеДанные.ПолучитьИдентификатор();
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтаФорма, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСерияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьПодборСерий(Элемент.ТекстРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Тогда
Если (ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение))
Или (Не ИспользоватьСоглашенияСКлиентами И ИспользуетсяЦенообразование25) Тогда
СтруктураДействий.Вставить("ЗаполнитьУсловияПродаж", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияУсловийПродажВСтрокеТЧ(Объект));
Иначе
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
КонецЕсли;
КонецЕсли;
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеОтгрузки");
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ЭтаФорма.ИмяФормы, "Товары"));
СтруктураДействий.Вставить("ЗаполнитьПодразделениеВСтрокеТЧ", Новый Структура("Подразделение", Объект.Подразделение));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.Реализация) Тогда
СамообслуживаниеКлиентСервер.ЗаполнитьДокументОснованиеВСтроке(ТекущаяСтрока, ДокументыОснования, Истина);
КонецЕсли;
Если ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа")
Или ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
Если ТекущаяСтрока.Действие = ПредопределенноеЗначение("Перечисление.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ВозвратПерепоставленного") Тогда
ТекущаяСтрока.Действие = ПредопределенноеЗначение("Перечисление.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ПустаяСсылка");
КонецЕсли;
КонецЕсли;
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыХарактеристикаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Тогда
Если (ИспользоватьСоглашенияСКлиентами И ЗначениеЗаполнено(Объект.Соглашение))
Или (Не ИспользоватьСоглашенияСКлиентами И ИспользуетсяЦенообразование25) Тогда
СтруктураДействий.Вставить("ЗаполнитьУсловияПродаж", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияУсловийПродажВСтрокеТЧ(Объект));
Иначе
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
КонецЕсли;
КонецЕсли;
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ХарактеристикаПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ЭтаФорма.ИмяФормы, "Товары"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоУпаковокПриИзменении(Элемент)
РасхожденияКлиент.ТоварыКоличествоУпаковокПриИзменении(ЭтаФорма, КэшированныеЗначения);
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыУпаковкаПриИзменении(Элемент)
РасхожденияКлиент.ТоварыУпаковкаПриИзменении(ЭтаФорма, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыВидЦеныПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(Объект));
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
РасхожденияКлиент.ТоварыЦенаПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
РасхожденияКлиент.ТоварыСуммаПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаНДСПриИзменении(Элемент)
РасхожденияКлиент.ТоварыСуммаНДСПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
РасхожденияКлиент.ТоварыСтавкаНДСПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСкладПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЗаказКлиентаПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНазначениеПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Если Копирование Тогда
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элемент,КэшированныеЗначения,ПараметрыУказанияСерий, Копирование);
КонецЕсли;
РасхожденияКлиент.ТоварыПередНачаломДобавления(ЭтотОбъект, Элемент, Отказ, Копирование, КэшированныеЗначения);
Если Копирование Тогда
Если НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элемент,КэшированныеЗначения,ПараметрыУказанияСерий) Тогда
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Элементы.Товары.ТекущаяСтрока, КэшированныеЗначения);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий);
КонецЕсли;
КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элемент,КэшированныеЗначения,ПараметрыУказанияСерий, Копирование);
Если НоваяСтрока И Не Копирование Тогда
ТекущаяСтрока.Подразделение = Объект.Подразделение;
Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.Реализация) Тогда
СамообслуживаниеКлиентСервер.ЗаполнитьДокументОснованиеВСтроке(ТекущаяСтрока, ДокументыОснования, Истина);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.СтавкаНДС) Тогда
ТекущаяСтрока.СтавкаНДС = ПредопределенноеЗначение("Справочник.СтавкиНДС.БезНДС");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элемент,КэшированныеЗначения,ПараметрыУказанияСерий) Тогда
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Элементы.Товары.ТекущаяСтрока, КэшированныеЗначения);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПередУдалением(Элемент, Отказ)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
РасхожденияКлиент.ТоварыПередУдалением(ТекущиеДанные, Отказ, Истина);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПослеУдаления(Элемент)
Если НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий, Истина) Тогда
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Неопределено, КэшированныеЗначения);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);
КонецЕсли;
РасхожденияКлиент.ТоварыПослеУдаления(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СобытияФормКлиент.ПриВыбореЭлемента(ЭтотОбъект, Элемент, ТекущаяСтрока, Поле, СтандартнаяОбработка);
Если СтандартнаяОбработка
И ПравоНаРедактирование
И ТекущаяСтрока.ЗаполненоПоРеализации
И ТекущаяСтрока.КоличествоУпаковок = ТекущаяСтрока.КоличествоУпаковокПоДокументу
И (Поле <> Элементы.ТоварыКоличествоУпаковок И Поле <> Элементы.ТоварыДействие
И Поле <> Элементы.ТоварыНомерПаспорта
И Поле <> Элементы.ТоварыСклад) Тогда
Если Не (ТекущаяСтрока.ЕстьРасхождения И ТекущаяСтрока.Количество <> 0)
Или (Поле <> Элементы.ТоварыСумма И Поле <> Элементы.ТоварыСуммаНДС) Тогда
РасхожденияКлиент.ПоказатьПредупреждениеДляЗаполненныхНаОснованииСтрок();
Возврат;
КонецЕсли;
КонецЕсли;
Если Поле = Элементы.ТоварыЦена И ПравоНаРедактирование Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ВидЦены) Тогда
ОчиститьСообщения();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru='Для редактирования цены очистите вид цены'"),
Объект.Ссылка,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущаяСтрока.НомерСтроки, "ВидЦены"),);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыСуммаСНДС И ПравоНаРедактирование Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ВидЦены) Тогда
ОчиститьСообщения();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru='Для редактирования суммы с НДС очистите вид цены'"),
Объект.Ссылка,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущаяСтрока.НомерСтроки, "ВидЦены"),);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыЗаказКлиента Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ЗаказКлиента) И ТекущаяСтрока.ЗаполненоПоРеализации Тогда
ПоказатьЗначение(Неопределено, ТекущаяСтрока.ЗаказКлиента);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыДокументОснование Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.Реализация) И ТекущаяСтрока.ЗаполненоПоРеализации Тогда
ПоказатьЗначение(Неопределено, ТекущаяСтрока.Реализация);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыСтатусУказанияСерий
Или Поле = Элементы.ТоварыСерия
Или (Поле = Элементы.ТоварыКоличествоУпаковок
И НоменклатураКлиентСервер.ВЭтомСтатусеСерииУказываютсяВТЧСерии(ТекущаяСтрока.СтатусУказанияСерий, ПараметрыУказанияСерий))
И ПравоНаРедактирование Тогда
ОткрытьПодборСерий();
ИначеЕсли Поле = Элементы.ТоварыЕстьКомментарийМенеджера И ПравоНаРедактирование Тогда
КомментарийМенеджераНачалоВыбора();
ИначеЕсли Поле = Элементы.ТоварыЕстьКомментарийКлиента И ПравоНаРедактирование Тогда
КомментарийКлиентаНачалоВыбора();
ИначеЕсли Поле = Элементы.ТоварыДействие И ПравоНаРедактирование Тогда
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элементы.Товары, КэшированныеЗначения, ПараметрыУказанияСерий);
РасхожденияКлиент.ТоварыДействиеНачалоВыбора(
Элементы.Товары.ТекущиеДанные,
Объект,
ЭтотОбъект,
Объект.ТипОснованияАктаОРасхождении,
ПоказыватьПояснение);
ИначеЕсли Поле = Элементы.ТоварыСклад
И ПравоНаРедактирование
И Не ЗначениеЗаполнено(ТекущаяСтрока.Склад)
И ТекущаяСтрока.КодСтроки = 0
И Объект.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности") Тогда
ОткрытьФормуВыбораСклада();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)
СобытияФормКлиент.ПриАктивизацииСтроки(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыРеализацияПриИзменении(Элемент)
Перем НайденнаяСтрока;
СамообслуживаниеКлиент.ТоварыРеализацияПриИзменении(ЭтаФорма, НайденнаяСтрока);
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
РасхожденияКлиентСервер.ЗаполнитьРеквизитыМногооборотнойТарыВСтроке(ТекущаяСтрока, НайденнаяСтрока);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриАктивизацииЯчейки(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если Элемент.ТекущийЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
Если НЕ Элемент.ТекущийЭлемент.Имя = "ТоварыНомерПаспорта" Тогда
Элементы.ТоварыНомерПаспорта.ТолькоПросмотр = Истина;
КонецЕсли;
Если Элемент.ТекущийЭлемент.Имя = "ТоварыЗаказКлиента" Тогда
Если ТекущиеДанные.ЗаполненоПоРеализации Тогда
Возврат;
КонецЕсли;
Элементы.ТоварыЗаказКлиента.СписокВыбора.Очистить();
Если НЕ ЗначениеЗаполнено(ТекущиеДанные.Реализация) Тогда
Возврат;
КонецЕсли;
НайденныеСтроки = ДокументыОснования.НайтиСтроки(Новый Структура("Реализация", ТекущиеДанные.Реализация));
Если НайденныеСтроки.Количество() > 0 Тогда
Элементы.ТоварыЗаказКлиента.СписокВыбора.ЗагрузитьЗначения(
НайденныеСтроки[0].ЗаказыОснования.ВыгрузитьЗначения());
КонецЕсли;
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТоварыСклад" Тогда
Если ТекущиеДанные.ЗаполненоПоРеализации Тогда
Возврат;
КонецЕсли;
Элементы.ТоварыСклад.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
Если НЕ ЗначениеЗаполнено(ТекущиеДанные.Реализация) Тогда
Возврат;
КонецЕсли;
НайденныеСтроки = ДокументыОснования.НайтиСтроки(Новый Структура("Реализация", ТекущиеДанные.Реализация));
Если НайденныеСтроки.Количество() > 0 Тогда
Элементы.ТоварыСклад.СписокВыбора.ЗагрузитьЗначения(НайденныеСтроки[0].СкладыОснования.ВыгрузитьЗначения());
КонецЕсли;
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТоварыСумма" Тогда
Элементы.ТоварыСумма.ТолькоПросмотр = НЕ ТекущиеДанные.ЕстьРасхождения;
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТоварыСуммаНДС" Тогда
Элементы.ТоварыСуммаНДС.ТолькоПросмотр = НЕ ТекущиеДанные.ЕстьРасхождения;
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТоварыНомерПаспорта" Тогда
Элементы.ТоварыНомерПаспорта.ТолькоПросмотр = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКомментарийМенеджераПодвалПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущиеДанные.ЕстьКомментарийМенеджера = Не ПустаяСтрока(ТекущиеДанные.КомментарийМенеджера);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКомментарийМенеджераПодвалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
КомментарийМенеджераНачалоВыбора();
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКомментарийКлиентаПодвалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
КомментарийКлиентаНачалоВыбора();
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКомментарийКлиентаПодвалПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущиеДанные.ЕстьКомментарийКлиента = Не ПустаяСтрока(ТекущиеДанные.КомментарийКлиента);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоОснованиямВыполнить(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ТабличнаяЧасть = Объект.Товары;
Оповещение = Новый ОписаниеОповещения("ЗаполнитьПоРеализациямВыполнитьЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоРеализациямВыполнитьЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьПоОснованиям();
КонецПроцедуры
&НаКлиенте
Процедура РеквизитыПечати(Команда)
ОткрытьФорму("Обработка.РаботаСАктамиРасхождений.Форма.РеквизитыПечати",
Новый Структура("ДокументОбъект", Объект),
ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура УказатьСерии(Команда)
ОткрытьПодборСерий();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьДокументыОснования(Команда)
РасхожденияКлиент.ИзменитьДокументыОснования(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайла(Команда)
ПараметрыЗагрузки = РаботаСТабличнымиЧастямиКлиент.ПараметрыЗагрузкиНоменклатуры();
ПараметрыЗагрузки.Организация = Объект.Организация;
ПараметрыЗагрузки.Заголовок = РасхожденияКлиент.ТекстЗаголовкаЗагрузкиИзВнешнихФайлов();
ПараметрыЗагрузки.ДопПояснениеПриЗагрузке = РасхожденияКлиент.ТекстДопПоясненияПриЗагрузкеИзВнешнихФайлов();
ПараметрыЗагрузки.ЗагружатьЦены = Истина;
ПараметрыЗагрузки.ПересчитыватьСуммы = Ложь;
ПараметрыЗагрузки.ПараметрыОтбора.Вставить("ТипНоменклатуры",
НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре());
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи")
Или НЕ РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыЗагрузки.ПараметрыОтбора.Вставить("ТипНоменклатуры",
НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре(Ложь));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ЗагрузитьИзВнешнегоФайлаЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПоказатьФормуЗагрузкиНоменклатуры(ПараметрыЗагрузки, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайлаЗавершение(АдресЗагруженныхДанных, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(АдресЗагруженныхДанных) Тогда
ПолучитьЗагруженныеТоварыИзХранилища(АдресЗагруженныхДанных, КэшированныеЗначения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПодбор(Команда)
ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина,
"Документ.АктОРасхожденияхПослеОтгрузки.ФормаДокумента.Команда.ОткрытьПодбор");
РасхожденияКлиент.ОткрытьПодбор(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ТолькоРасхожденияВыполнить(Команда)
РасхожденияКлиент.ТолькоРасхожденияВыполнить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РазбитьСтроку(Команда)
ТаблицаФормы = Элементы.Товары;
ТекущиеДанные = ТаблицаФормы.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
ТекстСообщения = НСтр("ru='Выберите строку товаров, которую необходимо разбить.'");
ПоказатьПредупреждение(,ТекстСообщения);
Иначе
СписокДействий = Новый СписокЗначений;
СписокДействий.Добавить("ФактическоеКоличество", Нстр("ru = 'С разбиением фактического количества'"));
СписокДействий.Добавить("КоличествоПоДокументу", Нстр("ru = 'С разбиением количества по документу'"));
ПослеВыбораВариантаРазбиения = Новый ОписаниеОповещения("ПослеВыбораВариантаРазбиенияСтроки", ЭтотОбъект);
ПоказатьВыборИзМеню(ПослеВыбораВариантаРазбиения, СписокДействий, Элементы.ТоварыРазбитьСтроку);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораВариантаРазбиенияСтроки(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ТаблицаФормы = Элементы.Товары;
ДанныеТаблицы = Объект.Товары;
ТекущиеДанные = ТаблицаФормы.ТекущиеДанные;
Реквизиты = ?(РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении),
"Количество, Сумма",
"Количество, Сумма, СуммаНДС, СуммаСНДС");
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.СтруктураПересчетаСуммы(
Реквизиты,
"КоличествоУпаковок");
Если ТекущиеДанные <> Неопределено Тогда
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ЗаполнитьСтруктуруПересчетаСуммы(СтруктураПересчетаСуммы, ТаблицаФормы.ТекущиеДанные);
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("СтруктураПересчетаСуммы", СтруктураПересчетаСуммы);
ДополнительныеПараметры.Вставить("ВидРазбиения", Результат.Значение);
ПараметрыРазбиения = Неопределено;
Если Результат.Значение = "КоличествоПоДокументу" Тогда
ПараметрыРазбиения = РаботаСТабличнымиЧастямиКлиент.ПараметрыРазбиенияСтроки();
ПараметрыРазбиения.ИмяПоляКоличество = "КоличествоУпаковокПоДокументу";
ПараметрыРазбиения.РазрешитьНулевоеКоличество = Ложь;
ПараметрыРазбиения.Количество = ТекущиеДанные.КоличествоУпаковокПоДокументу - 1;
ИначеЕсли Результат.Значение = "ФактическоеКоличество" И ТекущиеДанные.КоличествоУпаковокПоДокументу <> 0
И НоменклатураКлиентСервер.ВЭтомСтатусеСерииУказываютсяВТЧСерии(ТекущиеДанные.СтатусУказанияСерий, ПараметрыУказанияСерий) Тогда
Дельта = ТекущиеДанные.КоличествоУпаковок - ТекущиеДанные.КоличествоУпаковокПоДокументу;
Дельта = ?(Дельта < 0, 0, Дельта);
Если Дельта = 0 Тогда
ТекстСообщения = НСтр("ru = 'Фактическое количество можно разбивать в строках с излишками.'");
ПоказатьПредупреждение(, ТекстСообщения);
Возврат;
КонецЕсли;
ПараметрыРазбиения = РаботаСТабличнымиЧастямиКлиент.ПараметрыРазбиенияСтроки();
ПараметрыРазбиения.РазрешитьНулевоеКоличество = Ложь;
ПараметрыРазбиения.Количество = Дельта;
ПараметрыРазбиения.МаксимальноДопустимоеЗначение = Дельта;
КонецЕсли;
РаботаСТабличнымиЧастямиКлиент.РазбитьСтроку(ДанныеТаблицы,
ТаблицаФормы,
Новый ОписаниеОповещения("РазбитьСтрокуЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ПараметрыРазбиения);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтавкуНДС(Команда)
Если Объект.Товары.Количество() = 0 Тогда
ТекстПредупреждения = НСтр("ru = 'В список ""Товары"" не введено ни одной строки.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ЗаполнитьСтавкуНДСЗавершение", ЭтотОбъект);
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ТипНалогообложенияНДС", Объект.НалогообложениеНДС);
ПараметрыФормы.Вставить("ДатаАктуальности", Объект.Дата);
ОткрытьФорму("Справочник.СтавкиНДС.ФормаВыбора", ПараметрыФормы,,,,, ОповещениеОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтавкуНДСЗавершение(СтавкаНДС, ДополнительныеПараметры) Экспорт
Если СтавкаНДС = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеОтгрузки");
ВыделенныеСтроки = РаботаСТабличнымиЧастямиКлиентСервер.ЭлементыКоллекции(
Объект.Товары, Элементы.Товары.ВыделенныеСтроки);
Для каждого СтрокаТабличнойЧасти Из ВыделенныеСтроки Цикл
СтрокаТабличнойЧасти.СтавкаНДС = СтавкаНДС;
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ВыделенныеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РазбитьСтрокуЗавершение(НоваяСтрока, ДополнительныеПараметры) Экспорт
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если НоваяСтрока <> Неопределено Тогда
Если ДополнительныеПараметры.ВидРазбиения = "ФактическоеКоличество" Тогда
НоваяСтрока.КодСтроки = 0;
НоваяСтрока.КоличествоПоДокументу = 0;
НоваяСтрока.КоличествоУпаковокПоДокументу = 0;
НоваяСтрока.КоличествоУпаковокРасхождения = 0;
НоваяСтрока.СуммаНДСПоДокументу = 0;
НоваяСтрока.СуммаНДСРасхождения = 0;
НоваяСтрока.СуммаПоДокументу = 0;
НоваяСтрока.СуммаРасхождения = 0;
НоваяСтрока.СуммаСНДСПоДокументу = 0;
НоваяСтрока.СуммаСНДСРасхождения = 0;
НоваяСтрока.ЕстьКомментарийМенеджера = Ложь;
НоваяСтрока.ЕстьКомментарийКлиента = Ложь;
НоваяСтрока.КомментарийКлиента = "";
НоваяСтрока.КомментарийМенеджера = "";
НоваяСтрока.ЗаполненоПоРеализации = Ложь;
НоваяСтрока.Назначение = ПредопределенноеЗначение("Справочник.Назначения.ПустаяСсылка");
НоваяСтрока.НазначениеОтправителя = ПредопределенноеЗначение("Справочник.Назначения.ПустаяСсылка");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеПриемки");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Действие = ТекущаяСтрока.Действие;
ТекущаяСтрока.Действие = НоваяСтрока.Действие;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения);
РасхожденияКлиент.ОбработатьСерииПриРазбитииСтрокиТовары(ЭтотОбъект, ТекущаяСтрока , НоваяСтрока);
ТекущаяСтрока.Действие = Действие;
Если ТекущаяСтрока.КоличествоПоДокументу = ТекущаяСтрока.Количество + НоваяСтрока.Количество Тогда
Если ТекущаяСтрока.СуммаНДСПоДокументу <> (ТекущаяСтрока.СуммаНДС + НоваяСтрока.СуммаНДС) Тогда
НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаНДС + (ТекущаяСтрока.СуммаНДСПоДокументу - (ТекущаяСтрока.СуммаНДС + НоваяСтрока.СуммаНДС));
КонецЕсли;
Если ТекущаяСтрока.СуммаПоДокументу <> (ТекущаяСтрока.Сумма + НоваяСтрока.Сумма) Тогда
НоваяСтрока.Сумма = НоваяСтрока.Сумма + (ТекущаяСтрока.СуммаПоДокументу - (ТекущаяСтрока.Сумма + НоваяСтрока.Сумма));
КонецЕсли;
Если ТекущаяСтрока.СуммаСНДСПоДокументу <> (ТекущаяСтрока.СуммаСНДС + НоваяСтрока.СуммаСНДС) Тогда
НоваяСтрока.СуммаСНДС = НоваяСтрока.СуммаСНДС + (ТекущаяСтрока.СуммаСНДСПоДокументу - (ТекущаяСтрока.СуммаСНДС + НоваяСтрока.СуммаСНДС));
КонецЕсли;
КонецЕсли;
СамообслуживаниеКлиентСервер.ЗаполнитьЗаказИСкладВСтроке(НоваяСтрока, ДокументыОснования, Истина);
Иначе
Если (ТекущаяСтрока.Количество > ТекущаяСтрока.КоличествоПоДокументу
И ТекущаяСтрока.КоличествоУпаковок <= ТекущаяСтрока.КоличествоУпаковокПоДокументу)
Или (ТекущаяСтрока.Количество < ТекущаяСтрока.КоличествоПоДокументу
И ТекущаяСтрока.КоличествоУпаковок >= ТекущаяСтрока.КоличествоУпаковокПоДокументу) Тогда
ТекущаяСтрока["Действие"] = ПредопределенноеЗначение("Перечисление.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ПустаяСсылка");
КонецЕсли;
НоваяСтрока.КодСтроки = 0;
НоваяСтрока.Количество = 0;
НоваяСтрока.КоличествоУпаковок = 0;
НоваяСтрока.КоличествоУпаковок = 0;
НоваяСтрока.СуммаНДС = 0;
НоваяСтрока.СуммаНДСРасхождения = 0;
НоваяСтрока.Сумма = 0;
НоваяСтрока.СуммаРасхождения = 0;
НоваяСтрока.СуммаСНДС = 0;
НоваяСтрока.СуммаСНДСРасхождения = 0;
НоваяСтрока["Действие"] = ПредопределенноеЗначение("Перечисление.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ПустаяСсылка");
НоваяСтрока.ЕстьКомментарийМенеджера = Ложь;
НоваяСтрока.ЕстьКомментарийКлиента = Ложь;
НоваяСтрока.КомментарийКлиента = "";
НоваяСтрока.КомментарийМенеджера = "";
НоваяСтрока.ЗаполненоПоРеализации = Истина;
ПараметрыРасчетаКоличестваЕдиниц = Новый Структура;
ПараметрыРасчетаКоличестваЕдиниц.Вставить("Суффикс", "ПоДокументу");
ПараметрыРасчетаСуммы = Новый Структура;
ПараметрыРасчетаСуммы.Вставить("Суффикс", "ПоДокументу");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиницСуффикс", "ПоДокументу");
СтруктураДействий.Вставить("ПересчитатьСуммуСуффикс", "ПоДокументу");
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураПересчетаСуммы.Вставить("Суффикс", "ПоДокументу");
СтруктураДействий.Вставить("ПересчитатьСуммуНДССуффикс", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДССуффикс", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеПриемки");
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецЕсли;
КонецЕсли;
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СвойстваВыполнитьОтложеннуюИнициализацию()
УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КомментарийМенеджераНачалоВыбора()
РасхожденияКлиент.КомментарийНачалоВыбора(ЭтотОбъект,
"КомментарийМенеджера",
"ЕстьКомментарийМенеджера",
"ТоварыКомментарийМенеджераПодвал");
КонецПроцедуры
&НаКлиенте
Процедура КомментарийКлиентаНачалоВыбора()
РасхожденияКлиент.КомментарийНачалоВыбора(ЭтотОбъект,
"КомментарийКлиента",
"ЕстьКомментарийКлиента",
"ТоварыКомментарийКлиентаПодвал");
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
РасхожденияСервер.АктОРасхожденияхУстановитьУсловноеОформлениеФормыДокумента(ЭтотОбъект);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыТекстовоеОписание.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Номенклатура");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыТекстовоеОписание.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<заполнено по основанию>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
ТипыОснованийАктаОРасхождении = Новый СписокЗначений;
ТипыОснованийАктаОРасхождении.Добавить(Перечисления.ТипыОснованияАктаОРасхождении.ВозвратПоставщику);
ТипыОснованийАктаОРасхождении.Добавить(Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровСХранения);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Соглашение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТипОснованияАктаОРасхождении");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = ТипыОснованийАктаОРасхождении;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Договор.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТипОснованияАктаОРасхождении");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратПоставщику;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ЗаказКлиента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КодСтроки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.РеализацияПоЗаказам");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КодСтроки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаказКлиента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<сверх заказа>'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументПоступления.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаказКлиента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументОснование.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Реализация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Реализация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Реализация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.РеализацияПоЗаказам");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<реализация не по заказу>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументОснование.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыАктаОРасхождениях.НеСогласовано;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Подразделение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = ПродажиСервер.ТипыНоменклатурыСАналитикойПодразделение();
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = НоменклатураСервер.СписокХозяйственныхОперацийИсключающихУслугиИРаботы();
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = ПродажиСервер.ТипыНоменклатурыСАналитикойПодразделение();
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = ПродажиСервер.ТипыНоменклатурыСАналитикойПодразделение();
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для работ>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыАктаОРасхождениях.НеСогласовано;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеВидовЦен(ЭтаФорма);
РасхожденияСервер.УстановитьУсловноеОформлениеСерий(ЭтаФорма, "СерииПриПланированииОтгрузкиУказываютсяВТЧТовары");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Сумма");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНоменклатура.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыХарактеристика.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтатусУказанияСерий.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыУпаковка.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНоменклатураЕдиницаИзмерения.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыВидЦены.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтавкаНДС.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСклад.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументОснование.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСерия.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
ПараметрыУстановки = МногооборотнаяТараСервер.ПараметрыУстановкиУсловногоОформленияДляСтрокСМногооборотнойТарой();
ПараметрыУстановки.Форма = ЭтаФорма;
ПараметрыУстановки.ЭтоПоступление = Истина;
ПараметрыУстановки.ПутьКПолюОтбораВернутьМногооборотнуюТару = "Объект.Товары.ВернутьМногооборотнуюТару";
ПараметрыУстановки.ПутьКПолюОтбораТребуетсяЗалогЗаТару = "Объект.Товары.ТребуетсяЗалогЗаТару";
МногооборотнаяТараСервер.УстановитьУсловноеОформлениеДляСтрокСМногооборотнойТарой(ПараметрыУстановки);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);
ГруппаОтбораИли = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИли.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбораИли.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбораИли.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВидЦены");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);
ГруппаОтбораИ = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Цена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
СписокОпераций = Новый СписокЗначений();
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
ОтборЭлемента = ГруппаОтбораИ.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = СписокОпераций;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличествоРасхождения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковокРасхождения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДокументыОснованиеПредставление.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоДокументовОснований");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаРасхождения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СуммаРасхождения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаНДСРасхождения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СуммаНДСРасхождения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаСНДСРасхождения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СуммаСНДСРасхождения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличествоУпаковокПоДокументу.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличествоУпаковок.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);
ГруппаОтбораИли = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИли.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбораИли.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаполненоПоРеализации");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
СписокОпераций = Новый СписокЗначений();
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи);
СписокОпераций.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
ОтборЭлемента = ГруппаОтбораИли.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = СписокОпераций;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюПродажи(ЭтаФорма);
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаНДС.Имя);
ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковокПоДокументу");
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);
ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковокПоДокументу");
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
УстановитьПредставлениеТоварыДействие();
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставлениеТоварыДействие()
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ДопоставкаНеТребуется;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяДопоставка;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту и допоставить'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяСписание;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяСписаниеДопоставка;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет и допоставить'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.НедостачаНеПризнана;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст",
НСтр("ru = 'Не признавать и не учитывать расхождения в реализации'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ПокупкаПерепоставленного;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ВозвратПерепоставленного;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту и вернуть'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяОприходование;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяОприходованиеВозврат;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы и вернуть'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ПерепоставленноеДарится;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст",
НСтр("ru = 'Не признавать и не учитывать расхождения в реализации'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.УменьшитьПереходПраваСобственности;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ДопоставкаНеТребуется;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяДопоставка;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.СпособОтраженияРасхождений");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы и допоставить'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяДопоставка;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.СпособОтраженияРасхождений");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности и допоставить'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяСписание;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяСписаниеДопоставка;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет и допоставить'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.УвеличитьПереходПраваСобственности;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ПокупкаПерепоставленного;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ВозвратПерепоставленного;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.СпособОтраженияРасхождений");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы и вернуть'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ВозвратПерепоставленного;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.СпособОтраженияРасхождений");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности и вернуть'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяОприходование;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Действие");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =
Перечисления.ВариантыДействийПоРасхождениямВАктеПослеОтгрузки.ТребуетсяОприходованиеВозврат;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы и вернуть'"));
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКомандыЗаполнитьСтавкуНДС()
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ТоварыЗаполнитьСтавкуНДС",
"Видимость",
ЗначениеЗаполнено(Объект.НалогообложениеНДС)
И Объект.НалогообложениеНДС <> Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС
И Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении));
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
РасхожденияСервер.УстановитьЗначенияКешируемыхРеквизитовФормыАкта(ЭтотОбъект);
Если РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении) Тогда
Обработчик = Документы.ПередачаТоваровХранителю.ОбработчикДействийПоТипуОснованияАкта(Объект.ТипОснованияАктаОРасхождении);
ИспользоватьСоглашенияСКлиентами = ИспользоватьСоглашенияСКлиентами И Обработчик.СоглашенияСКлиентамиПрименимы();
Объект.ХозяйственнаяОперация = Обработчик.ХозяйственнаяОперация();
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении) Тогда
КомиссионныеПродажи25 = Истина;
КонецЕсли;
ХозяйственнаяОперацияДоговора = ПолучитьХозяйственнуюОперациюДоговора(Объект.ХозяйственнаяОперация);
ИспользоватьКорректировкиРеализаций = ПолучитьФункциональнуюОпцию("ИспользоватьКорректировкиРеализаций");
ИспользоватьИсправлениеДокументов = ПолучитьФункциональнуюОпцию("ИспользоватьИсправлениеДокументов");
СпособОтраженияРасхождений = Объект.СпособОтраженияРасхождений;
УправлениеРеквизитамиФормыВЗависимостиОтТипаОснования();
ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.АктОРасхожденияхПослеОтгрузки));
УстановитьВидимостьЭлементовСерий();
ЗаполнитьСписокВыбораОпераций();
УстановитьВидимостьСпособыОтражения();
РасхожденияСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуре(Объект);
РасхожденияСервер.ФормированиеНадписиДокументыОснование(ЭтаФорма);
РасхожденияСервер.ОпределитьДоступныеСпособыОтработкиАктаВЗависимостиОтСостоянияДокументаЭДО(ЭтотОбъект);
РасхожденияСервер.УстановитьДоступностьДоговора(ЭтотОбъект);
РасхожденияСервер.УправлениеВидимостьюНДС(ЭтаФорма);
РасхожденияСервер.ЗаполнитьЗависимыеРеквизитыТоваровРасхожденияПослеОтгрузки(Объект);
УстановитьВидимостьЭлементовПоОперацииСервер();
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
РасхожденияСервер.СформироватьНадписьСпособаОтраженияРасхождений(ЭтотОбъект, Объект.Товары, Элементы.НадписьРасхождения,
Элементы.ОформитьДокументы, ТипЗнч(Объект.Ссылка));
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
Если ИспользоватьСоглашенияСКлиентами
И ЗначениеЗаполнено(Объект.Соглашение)
И (РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)) Тогда
СегментНоменклатуры = ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(
Объект.Соглашение,
"СегментНоменклатуры");
КонецЕсли;
ВалютаДокумента = Объект.Валюта;
Если РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровСХранения(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении) Тогда
ТипАкта = "Передача";
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении) Тогда
ТипАкта = "Реализация";
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
ТипАкта = "ОтгрузкаТоваровКлиенту";
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровСХранения(Объект.ТипОснованияАктаОРасхождении) Тогда
ТипАкта = "ОтветственноеХранение";
Иначе
ТипАкта = "Возврат";
КонецЕсли;
ВариантЗаполнения = "Вариант1";
ПоказыватьПояснение = ИспользоватьКорректировкиРеализаций
И РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении);
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыЗаполнения = Документы.АктОРасхожденияхПослеОтгрузки.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСПродажи(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияВозвратПоставщику(Объект.ТипОснованияАктаОРасхождении) Тогда
ПараметрыЗаполнения = Документы.АктОРасхожденияхПослеОтгрузки.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
Иначе
Элементы.ТоварыНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
СписокДоступныхТипов = Новый Массив();
СписокДоступныхТипов.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
СписокДоступныхТипов.Добавить(Перечисления.ТипыНоменклатуры.Товар);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.ТоварыНоменклатура, "ТипНоменклатуры", СписокДоступныхТипов);
КонецЕсли;
РасхожденияКлиентСервер.ЗаполнитьРеквизитыМногооборотнойТары(Объект, ДокументыОснования);
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
КонецПроцедуры
&НаСервере
Процедура УправлениеРеквизитамиФормыВЗависимостиОтТипаОснования()
Если Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратПоставщику Тогда
МассивПараметровВыбора = Новый Массив;
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Поставщик", Истина));
Элементы.Партнер.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровВыбора);
Элементы.Партнер.Заголовок = НСтр("ru = 'Поставщик'");
Элементы.ТоварыКомментарийКлиентаПодвал.Заголовок = НСтр("ru = 'Комментарии поставщика по расхождениям в строке'");
Элементы.ТоварыЕстьКомментарийКлиента.Заголовок = НСтр("ru = 'от поставщика'");
ОграничениеТипаСоглашения = Новый ОписаниеТипов("СправочникСсылка.СоглашенияСПоставщиками");
Если РасхожденияКлиентСервер.ТипОснованияВозвратПоставщику(Объект.ТипОснованияАктаОРасхождении) Тогда
ХозяйственныеОперации = Новый Массив;
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаКомиссию);
ПараметрыВыбораСоглашения = Новый Массив;
ПараметрыВыбораСоглашения.Добавить(Новый ПараметрВыбора("Отбор.ХозяйственнаяОперация", ХозяйственныеОперации));
Элементы.Соглашение.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораСоглашения);
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ВозвратТоваровПоставщику);
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьКомиссиюПриЗакупках") Тогда
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ВозвратТоваровКомитенту);
КонецЕсли;
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента = Элементы.СпособОтраженияРасхожденийИзменениеДокумента.СписокВыбора;
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Очистить();
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов,
НСтр("ru = 'Изменить возврат товаров поставщику'"));
Элементы.ТоварыДокументПоступления.Видимость = Истина;
Иначе
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(
Перечисления.ХозяйственныеОперации.ОтгрузкаПринятыхСПравомПродажиТоваровСХранения);
Элементы.ТоварыДокументПоступления.Видимость = Ложь;
КонецЕсли;
СвязиПараметровВыбораДоговор = Новый Массив;
Для Каждого Связь Из Элементы.Договор.СвязиПараметровВыбора Цикл
СвязьПараметровВыбора = Связь;
Если Не (СвязьПараметровВыбора.Имя = "Соглашение"
Или СвязьПараметровВыбора.Имя = "Отбор.ХозяйственнаяОперация") Тогда
СвязиПараметровВыбораДоговор.Добавить(СвязьПараметровВыбора);
ИначеЕсли СвязьПараметровВыбора.Имя = "Отбор.ХозяйственнаяОперация" Тогда
ПараметрВыбора = Новый СвязьПараметраВыбора("Отбор.ХозяйственнаяОперация", "ХозяйственнаяОперацияДоговора");
СвязиПараметровВыбораДоговор.Добавить(ПараметрВыбора);
КонецЕсли;
КонецЦикла;
Элементы.Договор.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораДоговор);
Элементы.ТоварыЗаполнитьПоОснованиям.Заголовок = НСтр("ru = 'По возвратам'");
Элементы.ТоварыВидЦены.Видимость = Ложь;
Элементы.ТоварыДокументОснование.Заголовок = НСтр("ru = 'Возврат поставщику'");
Элементы.ТоварыПодразделение.Видимость = Ложь;
РасхожденияВызовСервера.УстановитьДоступностьСоглашенийСПоставщиком(ЭтотОбъект);
Элементы.ПоРеализациямБезНДС.Заголовок = НСтр("ru = 'По возвратам'");
Элементы.ПоРеализациямСНДС.Заголовок = НСтр("ru = 'По возвратам'");
ИначеЕсли Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровСХранения Тогда
Элементы.ТоварыКомментарийКлиентаПодвал.Заголовок = НСтр("ru = 'Комментарии поклажедателя по расхождениям в строке'");
Элементы.ТоварыЕстьКомментарийКлиента.Заголовок = НСтр("ru = 'от поклажедателя'");
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала Тогда
МассивПараметровВыбора = Новый Массив;
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Клиент", Истина));
Элементы.Партнер.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровВыбора);
Элементы.Партнер.Заголовок = НСтр("ru = 'Поклажедатель'");
ОграничениеТипаСоглашения = Новый ОписаниеТипов("СправочникСсылка.СоглашенияСКлиентами");
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(
Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала);
Иначе
МассивПараметровВыбора = Новый Массив;
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Поставщик", Истина));
Элементы.Партнер.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровВыбора);
Элементы.Партнер.Заголовок = НСтр("ru = 'Поклажедатель'");
ОграничениеТипаСоглашения = Новый ОписаниеТипов("СправочникСсылка.СоглашенияСПоставщиками");
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(
Перечисления.ХозяйственныеОперации.ОтгрузкаПринятыхСПравомПродажиТоваровСХранения);
Элементы.ТоварыДокументПоступления.Видимость = Истина;
КонецЕсли;
СвязиПараметровВыбораДоговор = Новый Массив;
СвязиПараметровВыбора = Элементы.Договор.СвязиПараметровВыбора;
Для Каждого СвязьПараметровВыбора Из СвязиПараметровВыбора Цикл
Если Не (СвязьПараметровВыбора.Имя = "Соглашение"
Или СвязьПараметровВыбора.Имя = "Отбор.ХозяйственнаяОперация") Тогда
СвязиПараметровВыбораДоговор.Добавить(СвязьПараметровВыбора);
ИначеЕсли СвязьПараметровВыбора.Имя = "Отбор.ХозяйственнаяОперация" Тогда
ПараметрВыбора = Новый СвязьПараметраВыбора("Отбор.ХозяйственнаяОперация", "ХозяйственнаяОперацияДоговора");
СвязиПараметровВыбораДоговор.Добавить(ПараметрВыбора);
КонецЕсли;
КонецЦикла;
Элементы.Договор.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораДоговор);
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента = Элементы.СпособОтраженияРасхожденийИзменениеДокумента.СписокВыбора;
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Очистить();
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление = Элементы.СпособОтраженияРасхожденийКорректировкаИсправление.СписокВыбора;
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление.Очистить();
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов,
НСтр("ru = 'Изменить отгрузку товаров с хранения'"));
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ОформлениеКорректировкиКакИсправлениеПервичныхДокументов,
НСтр("ru = 'Оформить отгрузку товаров с хранения (исправление)'"));
Элементы.ТоварыЗаполнитьПоОснованиям.Заголовок = НСтр("ru = 'По отгрузке с ответственного хранения'");
Элементы.ТоварыВидЦены.Видимость = Ложь;
Элементы.ТоварыДокументОснование.Заголовок = НСтр("ru = 'Отгрузка с ответственного хранения'");
Элементы.ТоварыПодразделение.Видимость = Ложь;
РасхожденияВызовСервера.УстановитьДоступностьСоглашенийСПоставщиком(ЭтотОбъект);
Элементы.ПоРеализациямБезНДС.Заголовок = НСтр("ru = 'По отгрузке с ответственного хранения'");
Элементы.ПоРеализациямСНДС.Заголовок = НСтр("ru = 'По отгрузке с ответственного хранения'");
Элементы.НомерПоДаннымКлиента.Заголовок = НСтр("ru = 'Номер акта
|по данным поклажедателя'");
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении) Тогда
Обработчик = Документы.ПередачаТоваровХранителю.ОбработчикДействийПоТипуОснованияАкта(Объект.ТипОснованияАктаОРасхождении);
ОграничениеТипаСоглашения = Новый ОписаниеТипов("СправочникСсылка.СоглашенияСКлиентами");
Элементы.Соглашение.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.ТоварыДокументПоступления.Видимость = Ложь;
Обработчик.НастроитьПараметрыВыбораЭлементов(ЭтотОбъект, Объект);
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(Обработчик.ХозяйственнаяОперация());
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента = Элементы.СпособОтраженияРасхожденийИзменениеДокумента.СписокВыбора;
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Очистить();
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление = Элементы.СпособОтраженияРасхожденийКорректировкаИсправление.СписокВыбора;
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление.Очистить();
Если РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении) Тогда
Если Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПередачаТоваровХранителю Тогда
ТекстСпособаОбработкиИсправление = НСтр("ru = 'Изменить передачу товаров хранителю'");
ТекстСпособаОбработкиКорректировка = НСтр("ru = 'Оформить передачу товаров хранителю (исправление)'");
КонецЕсли;
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов,
ТекстСпособаОбработкиИсправление);
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ОформлениеКорректировкиКакИсправлениеПервичныхДокументов,
ТекстСпособаОбработкиКорректировка);
Иначе
СписокВыбораСпособОтраженияРасхожденийИзменениеДокумента.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов,
НСтр("ru = 'Изменить передачу на комиссию'"));
СписокВыбораСпособОтраженияРасхожденийКорректировкаИсправление.Добавить(
Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ОформлениеКорректировкиКакИсправлениеПервичныхДокументов,
НСтр("ru = 'Оформить передачу на комиссию (исправление)'"));
КонецЕсли;
Элементы.ТоварыЗаполнитьПоОснованиям.Заголовок = НСтр("ru = 'По передачам'");
Элементы.ТоварыДокументОснование.Заголовок = Обработчик.ЗаголовокДокументаОснованияАкта();
Элементы.ТоварыПодразделение.Видимость = Ложь;
Элементы.ПоРеализациямБезНДС.Заголовок = НСтр("ru = 'По передачам'");
Элементы.ПоРеализациямСНДС.Заголовок = НСтр("ru = 'По передачам'");
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
ОграничениеТипаСоглашения = Новый ОписаниеТипов("СправочникСсылка.СоглашенияСКлиентами");
Элементы.Соглашение.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.ЦенаВключаетНДС.Видимость = Ложь;
Элементы.ЦенаВключаетНДС.Видимость = Ложь;
Элементы.ТоварыСтавкаНДС.Видимость = Ложь;
Элементы.ТоварыГруппаНДС.Видимость = Ложь;
Элементы.ТоварыГруппаСуммаСНДС.Видимость = Ложь;
Элементы.ТоварыПодразделение.Видимость = Ложь;
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
Элементы.ТоварыЗаполнитьПоОснованиям.Заголовок = НСтр("ru = 'По отгрузке товаров клиенту'");
Элементы.ТоварыДокументОснование.Заголовок = НСтр("ru = 'Отгрузка товаров клиенту'");
Элементы.ПоРеализациямБезНДС.Заголовок = НСтр("ru = 'По отгрузке товаров клиенту'");
Элементы.ПоРеализациямСНДС.Заголовок = НСтр("ru = 'По отгрузке товаров клиенту'");
Элементы.ТоварыДокументПоступления.Видимость = Ложь;
Иначе
ОграничениеТипаСоглашения = Новый ОписаниеТипов("СправочникСсылка.СоглашенияСКлиентами");
Элементы.Соглашение.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.ТоварыЗаполнитьПоОснованиям.Заголовок = НСтр("ru = 'По реализациям'");
Элементы.ТоварыДокументПоступления.Видимость = Ложь;
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Очистить();
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту);
ОснованиеСоставления = "";
ОснованиеСоставления = ОбменСКонтрагентамиУТ.НаименованиеОснованияВходящийЭлектронныйДокумент();
Если Объект.ОснованиеДляСоставленияАкта = ОснованиеСоставления Тогда
СписокВыбораХозяйственныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ВозвратТоваровПоставщику);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ОтгрузкаПринятыхСПравомПродажиТоваровСХранения);
СписокВыбораХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи);
КонецЕсли;
КонецЕсли;
Элементы.Соглашение.ОграничениеТипа = ОграничениеТипаСоглашения;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДСНаСервере()
ЗаполнитьНалогообложениеНДС(Истина, Ложь);
ПриИзмененииНалогообложенияНДССервер();
КонецПроцедуры
#Область Серии
&НаСервере
Процедура УстановитьВидимостьЭлементовСерий()
Элементы.ТоварыСтатусУказанияСерий.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
Элементы.ТоварыУказатьСерии.Видимость = ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры;
Элементы.ТоварыСерия.Видимость = ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям;
КонецПроцедуры
&НаСервере
Функция ПараметрыФормыУказанияСерий(ТекущиеДанныеИдентификатор)
ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(ТекущиеДанныеИдентификатор);
ПараметрыФормыУказанияСерий = НоменклатураСервер.ПараметрыФормыУказанияСерий(Объект,
ПараметрыУказанияСерий,
ТекущиеДанныеИдентификатор,
ЭтаФорма);
Если ТекущиеДанные.ЗаполненоПоРеализации Тогда
ПараметрыФормыУказанияСерий.ТолькоРедактированиеКоличества = Истина;
КонецЕсли;
Возврат ПараметрыФормыУказанияСерий;
КонецФункции
&НаКлиенте
Процедура ОткрытьПодборСерий(Текст = "", ТекущиеДанные = Неопределено)
Если НоменклатураКлиент.ДляУказанияСерийНуженСерверныйВызов(ЭтаФорма,ПараметрыУказанияСерий,Текст, ТекущиеДанные) Тогда
Если ТекущиеДанные = Неопределено Тогда
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущиеДанныеИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
Иначе
ТекущиеДанныеИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
КонецЕсли;
Если ТекущиеДанные.ЗаполненоПоРеализации
И НоменклатураКлиентСервер.ВЭтомСтатусеСерииУказываютсяВТЧТовары(ТекущиеДанные.СтатусУказанияСерий,
ПараметрыУказанияСерий) Тогда
ПоказатьПредупреждение(,НСтр("ru = 'Серия в строке из документа-основания не редактируется, добавьте новую строку.'"));
Возврат;
КонецЕсли;
ПараметрыФормыУказанияСерий = ПараметрыФормыУказанияСерий(ТекущиеДанныеИдентификатор);
ОповещениеПодбораСерий = Новый ОписаниеОповещения("ОткрытьПодборСерийЗавершение",
ЭтотОбъект,
Новый Структура("ПараметрыФормыУказанияСерий", ПараметрыФормыУказанияСерий));
ОткрытьФорму(ПараметрыФормыУказанияСерий.ИмяФормы,
ПараметрыФормыУказанияСерий,
ЭтаФорма,
,
,
,
ОповещениеПодбораСерий,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПодборСерийЗавершение(Результат, ДополнительныеПараметры) Экспорт
ПараметрыФормыУказанияСерий = ДополнительныеПараметры.ПараметрыФормыУказанияСерий;
ЗначениеВозврата = Результат;
Если ЗначениеВозврата <> Неопределено Тогда
ОбработатьУказаниеСерийСервер(ПараметрыФормыУказанияСерий);
КонецЕсли;
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтотОбъект);
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбработатьУказаниеСерийСервер(ПараметрыФормыУказанияСерий)
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ОбновлятьКоличествоТоваровПриРегистрацииСерий", Истина);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеОтгрузки");
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСумму");
РасхожденияСервер.ОбработатьУказаниеСерий(ЭтаФорма, ПараметрыФормыУказанияСерий, СтруктураДействий);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(ТекущаяСтрокаИдентификатор, КэшированныеЗначения)
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Объект,
ПараметрыУказанияСерий, ТекущаяСтрокаИдентификатор, КэшированныеЗначения);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура ОбработкаВыбораПодборНаКлиенте(ВыбранноеЗначение)
ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение, КэшированныеЗначения)
РасхожденияСервер.ОбработкаВыбораПодборНаСервере(ЭтаФорма, КэшированныеЗначения, ВыбранноеЗначение, Истина);
КонецПроцедуры
&НаСервере
Процедура КлиентПриИзмененииНаСервере()
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении) Тогда
Если ИспользоватьСоглашенияСКлиентами Тогда
ЗаполнитьУсловияПродаж();
КонецЕсли;
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении) Тогда
Обработчик = Документы.ПередачаТоваровХранителю.ОбработчикДействийПоТипуОснованияАкта(Объект.ТипОснованияАктаОРасхождении);
Если ИспользоватьСоглашенияСКлиентами Или Не Обработчик.СоглашенияСКлиентамиПрименимы() Тогда
ЗаполнитьУсловияПродаж();
КонецЕсли;
Иначе
ЗаполнитьУсловияЗакупок();
РасхожденияВызовСервера.УстановитьДоступностьСоглашенийСПоставщиком(ЭтотОбъект);
КонецЕсли;
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
КонецПроцедуры
&НаСервере
Процедура КонтактноеЛицоПриИзмененииСервер()
ВладелецКонтактногоЛица = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.КонтактноеЛицо, "Владелец");
Если ВладелецКонтактногоЛица <> Объект.Партнер Тогда
Объект.Партнер = ВладелецКонтактногоЛица;
КлиентПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
ЗаполнитьНалогообложениеНДС(Ложь, Истина);
ПриИзмененииНалогообложенияНДССервер();
РасхожденияСервер.УстановитьДоступностьДоговора(ЭтотОбъект);
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
ПриИзмененииКлючевыхРеквизитовСостояниеЭДО();
КонецПроцедуры
&НаСервере
Процедура ЦенаВключаетНДСПриИзмененииСервер()
РасхожденияСервер.УправлениеВидимостьюНДС(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииНалогообложенияНДССервер()
СтруктураДействий = Новый Структура;
КэшированныеЗначения = Неопределено;
Если Не РасхожденияКлиентСервер.УчетНДСНеВедется(Объект.ТипОснованияАктаОРасхождении) Тогда
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьРасхожденияПослеОтгрузки");
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
РасхожденияСервер.УправлениеВидимостьюНДС(ЭтотОбъект);
УстановитьВидимостьКомандыЗаполнитьСтавкуНДС();
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
РасхожденияСервер.УстановитьДоступностьДоговора(ЭтотОбъект);
Если ЗначениеЗаполнено(Объект.Организация) Тогда
РасхожденияСервер.ЗаполнитьДоговорПоУмолчанию(Объект, ХозяйственнаяОперацияДоговора);
ЗаполнитьНалогообложениеНДС(Истина, Ложь);
ПриИзмененииНалогообложенияНДССервер();
КонецЕсли;
ПриИзмененииКлючевыхРеквизитовСостояниеЭДО();
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииСервер()
ЗаполнитьНалогообложениеНДС();
ПриИзмененииНалогообложенияНДССервер();
ПриИзмененииКлючевыхРеквизитовСостояниеЭДО();
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииСервер()
ЗаполнитьНалогообложениеНДС(Истина, Ложь);
ПриИзмененииНалогообложенияНДССервер();
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииХозяйственнойОперацииСервер()
Если Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровКлиенту
И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.РеализацияТоваровУслуг;
ТипАкта = "Реализация";
ИзменениеТипаАкта = Истина;
ИначеЕсли Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.РеализацияТоваровУслуг
И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту Тогда
Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровКлиенту;
ТипАкта = "ОтгрузкаТоваровКлиенту";
ИзменениеТипаАкта = Истина;
Иначе
ИзменениеТипаАкта = Ложь;
КонецЕсли;
Если ИзменениеТипаАкта Тогда
АвтоЗаголовок = Ложь;
СформироватьЗависимыеОтТипаОснованияЗаголовки(Не ЗначениеЗаполнено(Объект.Ссылка));
УправлениеРеквизитамиФормыВЗависимостиОтТипаОснования();
ЗаполнитьСписокВыбораОпераций();
УстановитьВидимостьСпособыОтражения();
РасхожденияСервер.ОпределитьДоступныеСпособыОтработкиАктаВЗависимостиОтСостоянияДокументаЭДО(ЭтотОбъект);
Иначе
ХозяйственнаяОперацияДоговора = ПолучитьХозяйственнуюОперациюДоговора(Объект.ХозяйственнаяОперация);
РасхожденияСервер.ЗаполнитьДоговорПоУмолчанию(Объект, ХозяйственнаяОперацияДоговора);
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
Объект.СпособОтраженияРасхождений = Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов;
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
Объект.ЦенаВключаетНДС = Ложь;
ЦенаВключаетНДСПриИзмененииСервер();
Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПередачаНаКомиссию;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи Тогда
Объект.ЦенаВключаетНДС = Ложь;
ЦенаВключаетНДСПриИзмененииСервер();
Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПередачаТоваровХранителю;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту Тогда
Объект.ЦенаВключаетНДС = Истина;
Объект.СпособОтраженияРасхождений = Перечисления.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов;
Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровКлиенту;
КонецЕсли;
ЗаполнитьНалогообложениеНДС();
ПриИзмененииНалогообложенияНДССервер();
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
УстановитьВидимостьЭлементовПоОперацииСервер();
РасхожденияСервер.УправлениеВидимостьюНДС(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииСоглашенияСервер()
Если Не ЗначениеЗаполнено(Объект.Соглашение) Тогда
Возврат;
КонецЕсли;
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении)
Тогда
ДокументПродажи = РеквизитФормыВЗначение("Объект");
ДокументПродажи.ЗаполнитьУсловияПродажПоСоглашению(СегментНоменклатуры);
ЗначениеВРеквизитФормы(ДокументПродажи, "Объект");
Если РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
КонецЕсли;
Иначе
ДокументЗакупки = РеквизитФормыВЗначение("Объект");
ДокументЗакупки.ЗаполнитьУсловияЗакупокПоСоглашению();
ЗначениеВРеквизитФормы(ДокументЗакупки, "Объект");
КонецЕсли;
ЗаполнитьСписокВыбораОпераций();
ПриИзмененииХозяйственнойОперацииСервер();
РасхожденияСервер.УстановитьДоступностьДоговора(ЭтотОбъект);
РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтаФорма);
ВалютаДокумента = Объект.Валюта;
ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьСпособыОтражения()
ОснованиеАктаОтгрузкаТоваровСХранения =
РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровСХранения(Объект.ТипОснованияАктаОРасхождении)
;
Элементы.ГруппаСпособОтражения.Видимость =
РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
ИЛИ РасхожденияКлиентСервер.ТипОснованияВозвратПоставщику(Объект.ТипОснованияАктаОРасхождении)
ИЛИ РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении)
ИЛИ РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
ИЛИ ОснованиеАктаОтгрузкаТоваровСХранения;
Элементы.СпособОтраженияРасхожденийКорректировкаИсправление.Видимость =
ИспользоватьКорректировкиРеализаций
И РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
И ПолучитьФункциональнуюОпцию("ИспользоватьИсправлениеДокументов")
ИЛИ (ИспользоватьИсправлениеДокументов
И (РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
ИЛИ РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении)))
ИЛИ (ИспользоватьИсправлениеДокументов
И ОснованиеАктаОтгрузкаТоваровСХранения);
Элементы.СпособОтраженияРасхожденийКорректировкаПоСогласованию.Видимость =
ИспользоватьКорректировкиРеализаций
И РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении);
Элементы.СпособОтраженияРасхожденийКорректировкаНовые.Видимость =
ИспользоватьКорректировкиРеализаций
И РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
И Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
Элементы.ГруппаИнформацияОДоступностиСпособаОтражения.Видимость =
Не РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокВыбораОпераций()
Если РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении) Тогда
Если Элементы.Найти("ХозяйственнаяОперация") <> Неопределено Тогда
Если Не ИспользоватьСоглашенияСКлиентами Тогда
ВозможнаРеализацияБезПереходаПраваСобственности = ИспользоватьОтгрузкуБезПереходаПраваСобственности;
ИначеЕсли НЕ ЗначениеЗаполнено(Объект.Соглашение) Тогда
ВозможнаРеализацияБезПереходаПраваСобственности = Истина;
Иначе
ВозможнаРеализацияБезПереходаПраваСобственности =
ОбщегоНазначенияУТ.ЗначениеРеквизитаОбъектаТипаБулево(Объект.Соглашение, "ВозможнаРеализацияБезПереходаПраваСобственности");
КонецЕсли;
ВозможнаРеализацияРегл = ПолучитьФункциональнуюОпцию("ИспользоватьУправленческуюОрганизацию");
ЭлементСписка = Элементы.ХозяйственнаяОперация.СписокВыбора.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
Если Не ВозможнаРеализацияБезПереходаПраваСобственности Тогда
Если ЭлементСписка <> Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
Иначе
Если ЭлементСписка = Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Добавить(
Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
КонецЕсли;
КонецЕсли;
ЭлементСписка = Элементы.ХозяйственнаяОперация.СписокВыбора.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
Если Не ВозможнаРеализацияБезПереходаПраваСобственности Тогда
Если ЭлементСписка <> Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
Иначе
Если ЭлементСписка = Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Добавить(
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
КонецЕсли;
КонецЕсли;
ЭлементСписка = Элементы.ХозяйственнаяОперация.СписокВыбора.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту);
Если Не ВозможнаРеализацияБезПереходаПраваСобственности Тогда
Если ЭлементСписка <> Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
Иначе
Если ЭлементСписка = Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Добавить(
Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту);
КонецЕсли;
КонецЕсли;
ЭлементСписка = Элементы.ХозяйственнаяОперация.СписокВыбора.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет);
Если Не ВозможнаРеализацияРегл Тогда
Если ЭлементСписка <> Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
Иначе
Если ЭлементСписка = Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Добавить(
Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
Если Элементы.Найти("ХозяйственнаяОперация") <> Неопределено Тогда
Если Не ИспользоватьСоглашенияСКлиентами Тогда
ВозможнаРеализацияБезПереходаПраваСобственности = ИспользоватьОтгрузкуБезПереходаПраваСобственности;
ИначеЕсли НЕ ЗначениеЗаполнено(Объект.Соглашение) Тогда
ВозможнаРеализацияБезПереходаПраваСобственности = Истина;
Иначе
ВозможнаРеализацияБезПереходаПраваСобственности =
ОбщегоНазначенияУТ.ЗначениеРеквизитаОбъектаТипаБулево(Объект.Соглашение, "ВозможнаРеализацияБезПереходаПраваСобственности");
КонецЕсли;
ЭлементСписка = Элементы.ХозяйственнаяОперация.СписокВыбора.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
Если Не ВозможнаРеализацияБезПереходаПраваСобственности Тогда
Если ЭлементСписка <> Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
Иначе
Если ЭлементСписка = Неопределено Тогда
Элементы.ХозяйственнаяОперация.СписокВыбора.Добавить(
Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияПродаж()
ДокументПродажи = РеквизитФормыВЗначение("Объект");
ДокументПродажи.ЗаполнитьУсловияПродажПоУмолчанию(СегментНоменклатуры);
ЗначениеВРеквизитФормы(ДокументПродажи, "Объект");
ЗаполнитьСписокВыбораОпераций();
ПриИзмененииХозяйственнойОперацииСервер();
РасхожденияСервер.УстановитьДоступностьДоговора(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияЗакупок()
ДокументПродажи = РеквизитФормыВЗначение("Объект");
ДокументПродажи.ЗаполнитьУсловияЗакупокПоУмолчанию();
ЗначениеВРеквизитФормы(ДокументПродажи, "Объект");
РасхожденияСервер.УстановитьДоступностьДоговора(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоОснованиям()
РасхожденияСервер.ЗаполнитьПоОснованиям(ЭтаФорма);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий);
РасхожденияКлиентСервер.ЗаполнитьРеквизитыМногооборотнойТары(Объект, ДокументыОснования);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьЭлементовПоОперацииСервер()
МассивПараметров = Новый Массив;
МассивТиповНоменклатуры = Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТаре(Ложь));
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ТипНоменклатуры", МассивТиповНоменклатуры));
Элементы.ТоварыНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
ЦеныБезНДС = РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаНаКомиссию(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении);
БезВыбораНалогообложения = (ЦеныБезНДС
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровСХранения(Объект.ТипОснованияАктаОРасхождении))
И Не РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "НалогообложениеНДС", "Видимость", Не БезВыбораНалогообложения);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ЦенаВключаетНДС", "Видимость", Не ЦеныБезНДС);
УстановитьПараметрыВыбораВидаЦены();
КонецПроцедуры
&НаСервере
Процедура СформироватьЗависимыеОтТипаОснованияЗаголовки(СозданиеНовогоДокумента)
Если Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.РеализацияТоваровУслуг Тогда
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности Тогда
Если СозданиеНовогоДокумента Тогда
Заголовок = НСтр("ru = 'Акт о расхождениях после отгрузки товаров клиенту и перехода права собственности (создание)'");
Иначе
ШаблонЗаголовка = НСтр("ru = 'Акт о расхождениях после отгрузки товаров клиенту и перехода права собственности %1 от %2'");
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка,
Объект.Номер,
Объект.Дата);
ОбщегоНазначенияУТКлиентСервер.ОбработкаПолученияПредставленияВходящегоДокумента(
Объект, Заголовок, Ложь, "АктОРасхожденияхПослеОтгрузки");
КонецЕсли;
Иначе
Если СозданиеНовогоДокумента Тогда
Заголовок = НСтр("ru = 'Акт о расхождениях после реализации (создание)'");
Иначе
ШаблонЗаголовка = НСтр("ru = 'Акт о расхождениях после реализации %1 от %2'");
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка,
Объект.Номер,
Объект.Дата);
ОбщегоНазначенияУТКлиентСервер.ОбработкаПолученияПредставленияВходящегоДокумента(
Объект, Заголовок, Ложь, "АктОРасхожденияхПослеОтгрузки");
КонецЕсли;
КонецЕсли;
Элементы.Договор.Подсказка = НСтр("ru = 'Договор, в рамках которого оформлена реализация'");
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении) Тогда
Если СозданиеНовогоДокумента Тогда
Заголовок = НСтр("ru = 'Акт о расхождениях после отгрузки товаров клиенту и до перехода права собственности (создание)'");
Иначе
ШаблонЗаголовка = НСтр("ru = 'Акт о расхождениях после отгрузки товаров клиенту и до перехода права собственности %1 от %2'");
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка,
Объект.Номер,
Объект.Дата);
ОбщегоНазначенияУТКлиентСервер.ОбработкаПолученияПредставленияВходящегоДокумента(
Объект, Заголовок, Ложь, "АктОРасхожденияхПослеОтгрузки");
КонецЕсли;
Элементы.Договор.Подсказка = НСтр("ru = 'Договор, в рамках которого оформлена отгрузка товаров клиенту'");
ИначеЕсли Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ВозвратПоставщику Тогда
Заголовок = НСтр("ru = 'Акт о расхождениях после возврата товаров поставщику (создание)'");
Элементы.Договор.Подсказка = НСтр("ru = 'Договор, в рамках которого оформлен возврат'");
ИначеЕсли Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровСХранения Тогда
Заголовок = НСтр("ru = 'Акт о расхождениях после отгрузки товаров с хранения (создание)'");
Элементы.Договор.Подсказка = НСтр("ru = 'Договор, в рамках которого оформлена отгрузка'");
ИначеЕсли Объект.ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ПередачаНаКомиссию Тогда
Заголовок = НСтр("ru = 'Акт о расхождениях после передачи на комиссию (создание)'");
Элементы.Договор.Подсказка = НСтр("ru = 'Договор, в рамках которого оформлена передача'");
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении) Тогда
Обработчик = Документы.ПередачаТоваровХранителю.ОбработчикДействийПоТипуОснованияАкта(Объект.ТипОснованияАктаОРасхождении);
Заголовок = Обработчик.ЗаголовокФормыСозданияАкта();
Элементы.Договор.Подсказка = Обработчик.ПодсказкаДоговораАкта();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораВидаЦены()
Если Не (РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияПередачаТоваровХранителю(Объект.ТипОснованияАктаОРасхождении)
) Тогда
Возврат;
КонецЕсли;
МассивПараметров = Новый Массив();
МассивПараметров.Добавить(Новый ПараметрВыбора("ВыводитьПроизвольныйВидЦен", Истина));
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ИспользоватьПриПродаже", Истина));
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.Статус", Перечисления.СтатусыДействияВидовЦен.Действует));
Элементы.ТоварыВидЦены.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецПроцедуры
&НаСервере
Процедура ПолучитьЗагруженныеТоварыИзХранилища(АдресТоваровВХранилище, КэшированныеЗначения)
СамообслуживаниеСервер.ПолучитьЗагруженныеТоварыИзХранилища(ЭтаФорма, КэшированныеЗначения ,АдресТоваровВХранилище, Истина);
КонецПроцедуры
&НаСервере
Процедура ОбработатьПодборДокументовОснований(МассивДокументовОснований, ПараметрВариантЗаполнения)
ВариантЗаполнения = ПараметрВариантЗаполнения;
РасхожденияСервер.СформироватьТаблицуДокументовОснований(ЭтаФорма, МассивДокументовОснований);
ЗаполнитьПоОснованиям();
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
РасхожденияСервер.ОпределитьДоступныеСпособыОтработкиАктаВЗависимостиОтСостоянияДокументаЭДО(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДС(НалогообложениеНДСПродажи = Истина, НалогообложениеНДСЗакупки = Истина)
Если (РасхожденияКлиентСервер.ТипОснованияРеализацияТоваровУслуг(Объект.ТипОснованияАктаОРасхождении)
Или РасхожденияКлиентСервер.ТипОснованияОтгрузкаТоваровКлиенту(Объект.ТипОснованияАктаОРасхождении))
И НалогообложениеНДСПродажи Тогда
ПараметрыЗаполнения = Документы.АктОРасхожденияхПослеОтгрузки.ПараметрыЗаполненияНалогообложенияНДСПродажи(Объект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСПродажи(Объект.НалогообложениеНДС, ПараметрыЗаполнения);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСПродажи(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
ИначеЕсли РасхожденияКлиентСервер.ТипОснованияВозвратПоставщику(Объект.ТипОснованияАктаОРасхождении) И НалогообложениеНДСЗакупки Тогда
ПараметрыЗаполнения = Документы.АктОРасхожденияхПослеОтгрузки.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСЗакупки(Объект.НалогообложениеНДС, ПараметрыЗаполнения);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииКлючевыхРеквизитовСостояниеЭДО()
ПараметрыПриИзменении = ОбменСКонтрагентами.ПараметрыПриИзмененииКлючевыхРеквизитовЭДО();
ПараметрыПриИзменении.Форма = ЭтотОбъект;
ПараметрыПриИзменении.ДокументСсылка = Объект.Ссылка;
ПараметрыПриИзменении.ДокументОбъект = РеквизитФормыВЗначение("Объект");
ПараметрыПриИзменении.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПриИзменении.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриИзмененииКлючевыхРеквизитовЭДО(ПараметрыПриИзменении);
КонецПроцедуры
&НаКлиенте
Функция ТребуетсяОчисткаДействияВТЧ()
Если СпособОтраженияРасхождений =
ПредопределенноеЗначение("Перечисление.СпособыОтраженияРасхожденийАктПриемкиКлиента.ИсправлениеПервичныхДокументов")
И Объект.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности") Тогда
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
Если ЗначениеЗаполнено(СтрокаТЧ.Действие) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаКлиенте
Процедура ЗадатьВопросОбОчисткеКолонкиДействие()
ТекстВопроса = НСтр("ru='Колонка ""Как отработать расхождение"" списка ""Товары"" будет очищена. Продолжить?'");
ОписаниеОповещения = Новый ОписаниеОповещения("СпособОтраженияРасхожденийПриИзмененииЗавершение", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура СпособОтраженияРасхожденийПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
СпособОтраженияРасхождений = Объект.СпособОтраженияРасхождений;
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.Действие = Неопределено;
КонецЦикла;
Для Каждого СтрокаТЧ Из Объект.Серии Цикл
СтрокаТЧ.Действие = Неопределено;
КонецЦикла;
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Нет Тогда
Объект.СпособОтраженияРасхождений = СпособОтраженияРасхождений;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораСклада()
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИдентификаторСтроки", ТекущаяСтрока.ПолучитьИдентификатор());
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьФормуВыбораСкладаЗавершение",
ЭтотОбъект,
ДополнительныеПараметры);
ОткрытьФорму(
"Справочник.Склады.ФормаВыбора",
СтруктураПараметров,
ЭтотОбъект,
,
,
,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораСкладаЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат;
КонецЕсли;
СтрокаТЧ = Объект.Товары.НайтиПоИдентификатору(ДополнительныеПараметры.ИдентификаторСтроки);
Если СтрокаТЧ = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТЧ.Склад = Результат;
ПроверитьСериюРассчитатьСтатус = Новый Структура;
ПроверитьСериюРассчитатьСтатус.Вставить("Склад", СтрокаТЧ.Склад);
ПроверитьСериюРассчитатьСтатус.Вставить("ПараметрыУказанияСерий", ПараметрыУказанияСерий);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПроверитьСериюРассчитатьСтатус);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(
СтрокаТЧ,
СтруктураДействий,
КэшированныеЗначения);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ВыборДействияЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(Результат) Тогда
Элементы.Товары.ТекущиеДанные.Действие = Результат;
Если НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элементы.Товары,КэшированныеЗначения,ПараметрыУказанияСерий) Тогда
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Элементы.Товары.ТекущаяСтрока, КэшированныеЗначения);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элементы.Товары, КэшированныеЗначения, ПараметрыУказанияСерий);
КонецЕсли;
КонецЕсли;
РасхожденияКлиентСервер.УправлениеДоступностью(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьДействие(Команда)
РасхожденияКлиент.ИзменитьДействиеВыделенныхСтрок(
Объект,
ЭтотОбъект,
Объект.ТипОснованияАктаОРасхождении,
ПоказыватьПояснение);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьДействиеВыделенныхСтрокЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
РезультатУстановки = РасхожденияКлиент.УстановитьВариантДействияВыделеннымСтрокам(ЭтаФорма, Результат);
Если РезультатУстановки.НуженСерверныйВызов Тогда
КоличествоИзмененныхСтрокСоответствие = РезультатУстановки.КоличествоИзмененныхСтрокСоответствие;
УстановитьВариантДействияВСтрокахСервер(Результат, КоличествоИзмененныхСтрокСоответствие);
РасхожденияКлиент.ОповеститьОбУстановкеДействия(КоличествоИзмененныхСтрокСоответствие);
КонецЕсли;
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура УстановитьВариантДействияВСтрокахСервер(Результат, КоличествоИзмененныхСтрокСоответствие)
РасхожденияСервер.УстановитьВариантДействияВСтроках(ЭтаФорма, Результат, КоличествоИзмененныхСтрокСоответствие);
КонецПроцедуры
&НаКлиенте
Процедура ОформитьДокументыНажатие(Элемент)
РасхожденияКлиент.ОформитьДокументыНажатие(ЭтотОбъект);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодразделениеМенеджера(Менеджер)
Возврат ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер);
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьХозяйственнуюОперациюДоговора(ХозяйственнаяОперация)
Если ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратТоваровПоставщику") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщика");
ИначеЕсли ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратТоваровКомитенту") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПриемНаКомиссию");
ИначеЕсли ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияКлиентуРеглУчет")
ИЛИ ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности")
ИЛИ ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности")
ИЛИ ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияКлиенту");
ИначеЕсли ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОтгрузкаПринятыхСПравомПродажиТоваровСХранения") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПриемНаХранениеСПравомПродажи");
ИначеЕсли ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоставкаПодПринципала") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоставкаПодПринципала");
ИначеЕсли ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию") Тогда
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию");
Иначе
Возврат ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПустаяСсылка");
КонецЕсли;
КонецФункции
#КонецОбласти