#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПредыдущиеРеквизитыСтроки;
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
ИспользоватьПартнеровКакКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
ПравоЧтенияПриобретения = ПравоДоступа("Чтение", Метаданные.Документы.ПриобретениеТоваровУслуг);
ПравоЧтенияУслугИПрочихАктивов = ПравоДоступа("Чтение", Метаданные.Документы.ПриобретениеУслугПрочихАктивов);
УстановитьЗаголовокСтатьяДоходовРасходов();
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
ДополнительныеПараметры.Вставить("ОтложеннаяИнициализация", Истина);
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
ПараметрыДляВыбора = НоВый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитик(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыДляВыбора = НоВый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчета(ПараметрыДляВыбора);
НастройкаСчетовУчетаСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыНастройки);
Справочники.Назначения.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект, "Объект.Товары.Назначение");
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
Элементы.ГруппаИтого.ЦветФона = Новый Цвет();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
УстановитьДоступностьКомандБуфераОбмена();
УстановитьВидимостьКоличестваРНПТ();
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтаФорма);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументССылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект);
ВариантОформленияДоговораЗакупок = ЗакупкиСервер.ПолучитьВариантОформленияДоговораЗакупок(Объект.Договор);
МассивЭлементовНомерГТД = Новый Массив;
МассивЭлементовНомерГТД.Добавить("ТоварыНомерГТД");
МассивЭлементовНомерГТД.Добавить("РасхожденияНомерГТД");
УчетПрослеживаемыхТоваровЛокализация.УстановитьЗаголовокНомерГТД(Элементы, МассивЭлементовНомерГТД, КорректировкаПриобретенияУслугПрочихАктивов);
УчетНДСУП.УстановитьВидимостьКомандыЗаполнитьСтавкуНДС(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитик(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыДляВыбора = НоВый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчета(ПараметрыДляВыбора);
НастройкаСчетовУчетаСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыНастройки);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
ПриЧтенииСозданииНаСервере();
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтаФорма);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаНавигационнойСсылки(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СобытияФормКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
ИспользуютсяРасхождения =
(Объект.ВидКорректировки <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно")
И Объект.ВидКорректировки <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно"));
Если ИспользуютсяРасхождения И Не РасхожденияАктуальны Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.Да, Нстр("ru='Перезаполнить'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена,Нстр("ru='Отмена'"));
ПоказатьВопрос(
Новый ОписаниеОповещения("ПередЗаписьюПоказатьВопросЗаполнитьРасхожденияЗавершение", ЭтотОбъект, ДополнительныеПараметры),
НСтр("ru='Табличная часть ""Товары"" была изменена. Перезаполнить расхождения?'"),
СписокКнопок,
,
КодВозвратаДиалога.Да);
Возврат;
ИначеЕсли ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Отказ = Истина;
ЗадатьВопросыПриПроведении(ПараметрыЗаписи);
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ЗадатьВопросыПриПроведении(ПараметрыЗаписи)
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи,,Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюПоказатьВопросЗаполнитьРасхожденияЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
Оповещение = Новый ОписаниеОповещения("ПередЗаписьюПроверитьВозможностьЗаполненияТабличнойЧастиЗавершение",
ЭтотОбъект, ДополнительныеПараметры);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюПроверитьВозможностьЗаполненияТабличнойЧастиЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат Тогда
ЗаполнитьРасхожденияСервер();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецЕсли;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаРасхождения;
ПараметрыЗаписи = ДополнительныеПараметры.ПараметрыЗаписи;
Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
ЗадатьВопросыПриПроведении(ПараметрыЗаписи);
Иначе
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи,,Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
ОбновитьГруппыЗатрат();
УстановитьДоступностьЭлементовПоСтатусуСервер();
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект.ДополнительныеСвойства);
СформироватьЗаголовокПоКорректировкеОтчетаПереработчику();
НастройкаСчетовУчетаСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Расхождения);
ОбновитьТекстДокументыНаОсновании();
РазблокироватьДанныеФормыДляРедактирования();
СобытияФорм.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "ИзмененРеквизитЗависящийОтСтатуса"
И Параметр.УникальныйИдентификатор = УникальныйИдентификатор Тогда
Если Объект.Согласован Тогда
Объект.Согласован = Ложь;
КонецЕсли;
ПодключитьОбработчикОжидания("Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса", 0.1, Истина);
КонецЕсли;
Если ИмяСобытия = "КопированиеСтрокВБуферОбмена" Тогда
УстановитьДоступностьКомандБуфераОбменаНаКлиенте();
КонецЕсли;
Если ИмяСобытия = "ОбновитьДокументИБПослеЗаполнения" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
ЭтаФорма.Прочитать();
КонецЕсли;
Если ПрослеживаемостьФормыКлиентПереопределяемый.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник) Тогда
ОбновитьТекстДокументыНаОсновании();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия,ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
Если ЗакупкиКлиент.ЭтоУказаниеНомераГТД(Источник) Тогда
Действия = Новый Структура;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина);
ЗакупкиКлиент.ОбработатьУказаниеНомераГТД(ЭтотОбъект, НовыйОбъект, , , Действия);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Документ.КорректировкаПриобретения.Форма.ФормаПодбораТоваровИзЗаказа" Тогда
ОбработкаПодбораТоваровИзЗаказа(ВыбранноеЗначение.АдресТоваровВХранилище);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.КорректировкаПриобретения.Форма.ФормаПодбораИсправляемогоДокумента" Тогда
ОбработкаПодбораИсправляемогоДокумента(ВыбранноеЗначение);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Обработка.ПодборТоваровВДокументЗакупки.Форма.Форма" Тогда
ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение);
ИначеЕсли УчетНДСУПКлиент.ЗаконченоРедактированиеСчетаФактурыПолученного(ВыбранноеЗначение, ИсточникВыбора) Тогда
ОбновитьТекстДокументыНаОсновании();
ИначеЕсли ПрослеживаемостьФормыКлиентПереопределяемый.ЗаконченоРедактированиеУведомленияОВвозеПрослеживаемыхТоваров(ИсточникВыбора) Тогда
ОбновитьТекстДокументыНаОсновании();
ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.КорректировкаПриобретения.Форма.ФормаПодбораДокументовПриобретения" Тогда
ДобавитьДокументПриобретенияВТаблицуКорректировкаЗадолженности(ВыбранноеЗначение);
ИначеЕсли ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг")
ИЛИ ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов")
ИЛИ ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.ОтчетПереработчика2_5")
Тогда
ОбработкаВыбораДокументаОснованияСервер(ВыбранноеЗначение);
ИначеЕсли НоменклатураКлиент.ЭтоУказаниеСерий(ИсточникВыбора) Тогда
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтаФорма, ПараметрыУказанияСерий, ВыбранноеЗначение);
ИначеЕсли ЗакупкиКлиент.ЭтоПодборНомераГТД(ИсточникВыбора) Тогда
ОбработатьПодборНомераГТД(ВыбранноеЗначение);
КонецЕсли;
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("ДокументОснование", Объект.ДокументОснование);
Оповестить("Запись_КорректировкаПриобретения", ПараметрыЗаписи, Объект.Ссылка);
ОбменСКонтрагентамиКлиент.ПослеЗаписи_ФормаДокумента(ЭтаФорма, ПараметрыЗаписи);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтаФорма, Объект, ПараметрыЗаписи);
СформироватьЗаголовокПоКорректировкеОтчетаПереработчику();
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
СобытияФормКлиент.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверкаКонтрагентов.ПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ПредыдущиеРеквизитыСтроки = Новый Структура(
"НоменклатураПартнера,
|Номенклатура,
|Характеристика,
|Назначение,
|Упаковка,
|Количество,
|КоличествоУпаковок,
|Склад,
|ТипНоменклатуры,
|ХарактеристикиИспользуются,
|ЗаказПоставщику,
|КодСтроки");
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница.Имя = "ГруппаОсновное" Тогда
ВзаиморасчетыКлиент.ОбновитьТекстГиперссылкиЭтапыОплаты(ЭтаФорма);
ВзаиморасчетыКлиентСервер.ОбновитьТекстГиперссылкиВалюты(ЭтаФорма);
КонецЕсли;
Если ТекущаяСтраница.Имя = "ГруппаДополнительно"
И Не ЭтотОбъект.ПараметрыСвойств.ВыполненаОтложеннаяИнициализация Тогда
СвойстваВыполнитьОтложеннуюИнициализацию();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Если Объект.Расхождения.Количество() = 0 Тогда
НастроитьУчетРНПТ();
Возврат;
КонецЕсли;
ПериодКорректировки = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ОбщегоНазначенияКлиент.ДатаСеанса());
ПериодПоступления = ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.ДокументОснование, "Дата");
НовоеЗначение = ПериодПоступления < НачалоМесяца(ПериодКорректировки);
Если КорректировкаПрошлогоПериода <> НовоеЗначение И ТипЗнч(Объект.ДокументОснование)= Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
Если КорректировкаПрошлогоПериода Тогда
ТекстВопроса = НСтр("ru='Корректировка перенесена в один месяц с документом-основанием. Перезаполнить расхождения?'");
Иначе
ТекстВопроса = НСтр("ru='Корректировка перенесена в месяц, отличный от документа-основания. Перезаполнить расхождения?'");
КонецЕсли;
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.ОК, Нстр("ru='Перезаполнить'"));
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, Нстр("ru='Отмена'"));
ПоказатьВопрос(Новый ОписаниеОповещения("ДатаПриИзмененииЗавершение", ЭтотОбъект, Новый Структура("НовоеЗначение", НовоеЗначение)), ТекстВопроса, СписокКнопок);
Иначе
ДатаПриИзмененииСервер();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Объект.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
НовоеЗначение = ДополнительныеПараметры.НовоеЗначение;
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.ОК Тогда
КорректировкаПрошлогоПериода = НовоеЗначение;
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
Оповещение = Новый ОписаниеОповещения("ДатаПриИзмененииПослеПроверки", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
ДатаПриИзмененииСервер();
ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда
Объект.Дата = ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Дата");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеДокументаОснованияНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ПоказатьЗначение(Неопределено, Объект.ДокументОснование);
Иначе
СписокТипов = Новый СписокЗначений;
ТипОснования = ТипЗнч(Объект.ДокументОснование);
Если ТипОснования = Тип("ДокументСсылка.ОтчетПереработчика2_5")Тогда
СписокТипов.Добавить(Тип("ДокументСсылка.ОтчетПереработчика2_5"));
Иначе
Если ПравоЧтенияПриобретения Тогда
СписокТипов.Добавить(Тип("ДокументСсылка.ПриобретениеТоваровУслуг"));
КонецЕсли;
Если ПравоЧтенияУслугИПрочихАктивов Тогда
СписокТипов.Добавить(Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов"));
КонецЕсли;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ПредставлениеДокументаОснованияНажатиеЗавершение", ЭтотОбъект);
ПоказатьВыборИзСписка(ОписаниеОповещения, СписокТипов, Элементы.ПредставлениеДокументаОснования);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеДокументаОснованияНажатиеЗавершение(ВыбранноеЗначение, Параметры) Экспорт
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
МассивХозОпераций = Новый Массив;
МассивХозОпераций.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщика"));
МассивХозОпераций.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаНеотфактурованнаяПоставка"));
МассивХозОпераций.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаПоступлениеИзТоваровВПути"));
МассивХозОпераций.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути"));
МассивХозОпераций.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки"));
СтруктураОтбор = Новый Структура;
СтруктураОтбор.Вставить("Проведен", Истина);
СтруктураОтбор.Вставить("ХозяйственнаяОперация", МассивХозОпераций);
Если ВыбранноеЗначение.Значение = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
ИмяФормыВыбора = "Документ.ПриобретениеТоваровУслуг.ФормаВыбора";
ИначеЕсли ВыбранноеЗначение.Значение = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов") Тогда
ИмяФормыВыбора = "Документ.ПриобретениеУслугПрочихАктивов.ФормаВыбора";
ИначеЕсли ВыбранноеЗначение.Значение = Тип("ДокументСсылка.ОтчетПереработчика2_5") Тогда
ИмяФормыВыбора = "Документ.ОтчетПереработчика2_5.ФормаВыбора";
СтруктураОтбор.Вставить("ХозяйственнаяОперация",ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПроизводствоУПереработчика2_5"));
КонецЕсли;
ОткрытьФорму(
ИмяФормыВыбора,
Новый Структура("Отбор", СтруктураОтбор),
ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
СтатьяРасходовПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура СтатьяРасходовПриИзмененииСервер()
ПараметрыДляДоступности = Новый Структура("ХозяйственнаяОперация, ДокументОснование", Объект.ВидКорректировки, Объект.ДокументОснование);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчета(ПараметрыДляДоступности);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяДоходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
СтатьяДоходовПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура СтатьяДоходовПриИзмененииСервер()
ПараметрыДляДоступности = Новый Структура("ХозяйственнаяОперация, ДокументОснование", Объект.ВидКорректировки, Объект.ДокументОснование);
ПараметрыНастройки = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчета(ПараметрыДляДоступности);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
НалогообложениеНДСПриИзмененииСервер(КэшированныеЗначения);
РасхожденияАктуальны = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения);
РасхожденияАктуальны = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеДокументаОснованияАктаОРасхожденияхНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(Объект.АктОРасхожденияхПослеПриемкиОснование) Тогда
ПоказатьЗначение(,Объект.АктОРасхожденияхПослеПриемкиОснование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьВалютыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьВалютыНажатиеЗавершение", ЭтотОбъект);
ВзаиморасчетыКлиент.ВалютыИКурсДокументаНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВалютыНажатиеЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда
ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
Если ИзмененныеРеквизиты.Количество() > 0 Тогда
НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия)
ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, ИзмененныеРеквизиты, Истина);
Если Объект.Валюта <> ТекущаяВалюта
ИЛИ Объект.ВалютаВзаиморасчетов <> ТекущаяВалютаВзаиморасчетов Тогда
ТекущаяВалюта = Объект.Валюта;
ТекущаяВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НадписьЭтапыОплатыНажатиеЗавершение", ЭтотОбъект);
ВзаиморасчетыКлиент.НадписьЭтапыОплатыНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура НадписьЭтапыОплатыНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ИзмененныеРеквизиты = Результат.СтарыеЗначенияИзмененныхРеквизитов;
ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТекстДокументыНаОснованииОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактурПолученныхСервер(Объект);
УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыПолученные(
ЭтаФорма,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ПараметрыРегистрации);
ПараметрыРегистрацииУведомленийОВвозе = ПараметрыРегистрацииУведомленийОВвозеПрослеживаемыхТоваровСервер(Объект);
ПрослеживаемостьФормыКлиентПереопределяемый.ОбработкаНавигационнойСсылкиУведомленияОВвозеПрослеживаемыхТоваров(
ЭтаФорма,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка,
ПараметрыРегистрацииУведомленийОВвозе);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПараметрыРегистрацииУведомленийОВвозеПрослеживаемыхТоваровСервер(Знач Объект)
Возврат Документы.КорректировкаПриобретения.ПараметрыРегистрацииУведомленийОВвозеПрослеживаемыхТоваров(Объект);
КонецФункции
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(
ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы.ДекорацияСостояниеОригинала);
КонецПроцедуры
&НаКлиенте
Процедура ОперацияПриИзменении(Элемент)
ОперацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
ПартнерПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ТекстНастроитьОтражениеВРеглУчетеАктивовНажатие(Элемент, СтандартнаяОбработка)
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТекстНастроитьОтражениеВРеглУчетеПассивовНажатие(Элемент, СтандартнаяОбработка)
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеИсправляемогоДокументаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(Объект.ИсправляемыйДокумент) Тогда
ПоказатьЗначение(, Объект.ИсправляемыйДокумент);
Иначе
ПодобратьИсправляемыйДокумент();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыТовары
&НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если Элементы.Товары.ТекущиеДанные <> Неопределено Тогда
Если Поле = Элементы.ТоварыЗаказПоставщику Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ЗаказПоставщику) Тогда
ПоказатьЗначение(, ТекущаяСтрока.ЗаказПоставщику);
КонецЕсли;
КонецЕсли;
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Поле, СтандартнаяОбработка);
НоменклатураПартнеровКлиент.ПриВыбореНоменклатурыПартнера(Объект, Поле, "ТоварыНоменклатураПартнера", НСтр("ru = 'Поставщик'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.Товары, ЭтотОбъект);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элемент,КэшированныеЗначения,ПараметрыУказанияСерий, Копирование);
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если НоваяСтрока И НЕ Копирование Тогда
Если Объект.ПоступлениеПоЗаказам Тогда
Заказ = Неопределено;
ПоступлениеПоНесколькимЗаказам = Ложь;
Для Каждого СтрокаТовары Из Объект.Товары Цикл
Если СтрокаТовары.НомерСтроки = ТекущаяСтрока.НомерСтроки Тогда
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Заказ) И СтрокаТовары.ЗаказПоставщику <> Заказ Тогда
ПоступлениеПоНесколькимЗаказам = Истина;
Прервать;
Иначе
Заказ = СтрокаТовары.ЗаказПоставщику;
КонецЕсли;
КонецЦикла;
Если НЕ ПоступлениеПоНесколькимЗаказам Тогда
ТекущаяСтрока.ЗаказПоставщику = Заказ;
КонецЕсли;
КонецЕсли;
Если НЕ СкладГруппа Тогда
ТекущаяСтрока.Склад = Объект.Склад;
КонецЕсли;
Если ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов") Тогда
ТекущаяСтрока.СписатьНаРасходы = Истина;
КонецЕсли;
Если КорректировкаОтчетаПереработчика Тогда
ТекущаяСтрока.Подразделение = ПодразделениеОснования;
ТекущаяСтрока.НаправлениеДеятельности = НаправлениеДеятельностиОснования;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "Объект.Товары");
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
КонецЕсли;
КонецЕсли;
Если НоваяСтрока И Копирование Тогда
НастройкаСчетовУчетаКлиент.ПриКопированииСтроки(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ТоварыПриОкончанииРедактированияНаСервере(ТекущиеДанные.ПолучитьИдентификатор(), КэшированныеЗначения);
Если Не ОтменаРедактирования Тогда
КэшСтроки = ?(НоваяСтрока, Неопределено, РаботаСТабличнымиЧастямиКлиентСервер.КэшСтроки(Элементы.Товары, ЭтотОбъект));
СкладыКлиент.ОбновитьТаблицуСкладов(ТаблицаСкладов, ТекущиеДанные, КэшСтроки, СкладГруппа, Ложь);
ВсегоСкладов = ТаблицаСкладов.Количество();
СкладыКлиентСервер.ОбновитьКартинкуГруппыСкладов(НадписьНесколькоСкладов, Элементы.КартинкаНесколькоСкладов, ВсегоСкладов);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ТоварыПриОкончанииРедактированияНаСервере(ТекущийИдентификатор, КэшированныеЗначения)
УстановитьНомерГруппыЗатратПоУмолчанию(ТекущийИдентификатор);
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(ТекущийИдентификатор, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПослеУдаления(Элемент)
НеобходимоОбновитьСтатусыСерий = НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(
Элемент, КэшированныеЗначения, ПараметрыУказанияСерий, Истина);
Если НеобходимоОбновитьСтатусыСерий Тогда
ТоварыПослеУдаленияСервер(КэшированныеЗначения);
КонецЕсли;
Если НеобходимоОбновитьСтатусыСерий Тогда
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элемент, КэшированныеЗначения, ПараметрыУказанияСерий);
КонецЕсли;
РасхожденияАктуальны = Ложь;
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
ПриИзмененииСкладаВТабличнойЧастиСервер();
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриАктивизацииЯчейки(Элемент)
Если Элемент.ТекущийЭлемент = Неопределено Тогда
Возврат
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТоварыНоменклатураПартнера" Тогда
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
НоменклатураПартнеровКлиент.ЗаполнитьСписокВыбораНоменклатурыПартнера(
Объект.Партнер, ТекущиеДанные, Элементы.ТоварыНоменклатураПартнера.СписокВыбора);
НоменклатураПартнеровКлиент.УстановитьПараметрыВыбораУпаковки(
Элементы.ТоварыНоменклатураПартнера.ПараметрыВыбора, ТекущиеДанные);
ИначеЕсли Элемент.ТекущийЭлемент.Имя = "ТоварыНомерГТД"
И Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗакупкиКлиент.ЗаполнитьСписокВыбораНомеровГТД(
Элементы.Товары.ТекущиеДанные,
Элементы.ТоварыНомерГТД.СписокВыбора);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыГруппаЗатратОчистка(Элемент, СтандартнаяОбработка)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущиеДанные.НомерГруппыЗатрат = 0;
ТекущиеДанные.ГруппаЗатрат = "";
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыГруппаЗатратОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыГруппаЗатратНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Элементы.Товары.ВыделенныеСтроки.Количество() = 0 Тогда
ТекстПредупреждения = НСтр("ru = 'Необходимо выбрать строки, для которых будет заполнена группа затрат.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстПредупреждения);
Возврат;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ГруппировкаЗатрат", ГруппировкаЗатратОснования);
ПараметрыФормы.Вставить("НомерГруппыЗатрат", Элементы.Товары.ТекущиеДанные.НомерГруппыЗатрат);
ПараметрыФормы.Вставить("АдресХранилищаГруппЗатрат", ПоместитьДанныеГруппЗатратВХранилище());
ПараметрыФормы.Вставить(
"ПоляГруппыЗатрат",
ПереработкаНаСторонеКлиентСервер.ПереченьПолейГруппыЗатратОтчетаПереработчика(ГруппировкаЗатратОснования));
ОписаниеОповещения = Новый ОписаниеОповещения("ТаблицаГруппаЗатратНачалоВыбораЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ВыборГруппыЗатратПриПередачеВПереработку", ПараметрыФормы,,,,, ОписаниеОповещения);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПартнераПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
НоменклатураПартнеровКлиент.УстановитьПараметрыВыбораУпаковки(Элемент.ПараметрыВыбора, ТекущаяСтрока);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПоНоменклатуреПартнера");
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ТекущаяСтрока", ТекущаяСтрока);
ДополнительныеПараметры.Вставить("СтруктураДействий", СтруктураДействий);
Если ТекущаяСтрока.КодСтроки <> 0 Тогда
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ДополнительныеПараметры.Вставить("ОчиститьСтруктуруДействий", Истина);
ВопросПользователюПриИзмененииРеквизитаСтроки(
Новый ОписаниеОповещения("ТоварыНоменклатураПартнераПриИзмененииВопросПользователюЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТекущаяСтрока);
Иначе
ТоварыНоменклатураПартнераПриИзмененииВопросПользователюЗавершение(Истина, ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПартнераПриИзмененииВопросПользователюЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если НЕ Результат Тогда
Возврат;
КонецЕсли;
ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
Если ДополнительныеПараметры.Свойство("ОчиститьСтруктуруДействий") Тогда
СтруктураДействий = Новый Структура;
Иначе
СтруктураДействий = ДополнительныеПараметры.СтруктураДействий;
КонецЕсли;
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.УказаннаяСтавкаНДС = УказаннаяСтавкаНДС;
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", ВернутьМногооборотнуюТару);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
Иначе
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьСтрануПроисхожденияНоменклатуры",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтраныПроисхождения());
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
ДоходыИРасходыКлиентСервер.ВставитьДействиеОчиститьСтатьюИАналитикуРасходов(
СтруктураДействий,
ЭтотОбъект);
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнениеНазначения = Новый Структура();
Если ТекущаяСтрока.Номенклатура <> ПредыдущиеРеквизитыСтроки.Номенклатура Тогда
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, ЗаполнениеНазначения);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, ЗаполнениеНазначения, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Функция ДополнительныеПараметрыОбработкиЗавершения()
Результат = Новый Структура;
Результат.Вставить("ТекущаяСтрока");
Результат.Вставить("ОписаниеОповещения");
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = ДополнительныеПараметрыОбработкиЗавершения();
ДополнительныеПараметры.ТекущаяСтрока = ТекущаяСтрока;
ВопросПользователюПриИзмененииРеквизитаСтроки(
Новый ОписаниеОповещения("ТоварыНоменклатураПриИзмененииВопросПользователюЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПриИзмененииВопросПользователюЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.УказаннаяСтавкаНДС = УказаннаяСтавкаНДС;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика);
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка);
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", ВернутьМногооборотнуюТару);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
Иначе
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьСтрануПроисхожденияНоменклатуры",
ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтраныПроисхождения());
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтаФорма, СтруктураДействий);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ЭтаФорма.ИмяФормы, "Товары"));
ДоходыИРасходыКлиентСервер.ВставитьДействиеОчиститьСтатьюИАналитикуРасходов(
СтруктураДействий,
ЭтотОбъект);
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ОперацииФактуровка = Новый Массив;
ОперацииФактуровка.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки"));
ОперацииФактуровка.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки"));
ХозОперацияОснования = ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.ДокументОснование, "ХозяйственнаяОперация");
НеотфактурованныеПоставкиУслугРабот = ОперацииФактуровка.Найти(ХозОперацияОснования) <> Неопределено
И ВариантОформленияДоговораЗакупок = ПредопределенноеЗначение("Перечисление.ВариантыОформленияЗакупок.НеотфактурованныеПоставкиТоваровИУслуг");
Если ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар") Или
ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара") Или
ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Набор")
ИЛИ НеотфактурованныеПоставкиУслугРабот
Или ТекущаяСтрока.ТипНазначения = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала") Тогда
ТекущаяСтрока.СписатьНаРасходы = Ложь;
ТекущаяСтрока.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
ИначеЕсли ТекущаяСтрока.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга") Тогда
ТекущаяСтрока.СписатьНаРасходы = Истина;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, ТекущаяСтрока, "Объект.Товары");
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыХарактеристикаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = ДополнительныеПараметрыОбработкиЗавершения();
ДополнительныеПараметры.ТекущаяСтрока = ТекущаяСтрока;
ВопросПользователюПриИзмененииРеквизитаСтроки(
Новый ОписаниеОповещения("ТоварыХарактеристикаПриИзмененииВопросПользователюЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыХарактеристикаПриИзмененииВопросПользователюЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтаФорма, СтруктураДействий);
СтруктураДействий.Вставить("ХарактеристикаПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
ЭтаФорма.ИмяФормы, "Товары"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыУпаковкаПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьНоменклатуруПартнераПоНоменклатуре", Объект.Партнер);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
Если ТекущаяСтрока.Количество > 0 Тогда
СтруктураДействий.Вставить("ПересчитатьЦенуЗаУпаковку", ТекущаяСтрока.Количество);
Иначе
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
КонецЕсли;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоУпаковокПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтаФорма);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
СтруктураДействий = Новый Структура;
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтаФорма);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуПоСумме", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока = Новый Структура;
ТекущаяСтрока.Вставить("Количество", ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
ТекущаяСтрока.Вставить("КоличествоУпаковок", ТекущиеДанные.КоличествоУпаковок);
ТекущаяСтрока.Вставить("Цена", ТекущиеДанные.Цена);
ТекущаяСтрока.Вставить("Сумма", ТекущиеДанные.Сумма);
ТекущаяСтрока.Вставить("СтавкаНДС", ТекущиеДанные.СтавкаНДС);
ТекущаяСтрока.Вставить("СуммаНДС", ТекущиеДанные.СуммаНДС);
ТекущаяСтрока.Вставить("СуммаСНДС", ТекущиеДанные.СуммаСНДС);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", ?(ИспользуетсяКоличествоУпаковок, "КоличествоУпаковок", "Количество"));
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
УказаннаяСтавкаНДС = ТекущаяСтрока.СтавкаНДС;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСкладПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = ДополнительныеПараметрыОбработкиЗавершения();
ДополнительныеПараметры.ТекущаяСтрока = ТекущаяСтрока;
ВопросПользователюПриИзмененииРеквизитаСтроки(
Новый ОписаниеОповещения("ТоварыСкладПриИзмененииВопросПользователюЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСкладПриИзмененииВопросПользователюЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока;
ПроверитьСериюРассчитатьСтатус = Новый Структура("Склад, ПараметрыУказанияСерий",
ТекущаяСтрока.Склад, ПараметрыУказанияСерий);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПроверитьСериюРассчитатьСтатус);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЗаказПоставщикуПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущаяСтрока.ЗаказПоставщику) Тогда
ТекущаяСтрока.Сделка = ПолучитьСделкуПоЗаказуПоставщику(ТекущаяСтрока.ЗаказПоставщику);
Иначе
ТекущаяСтрока.Сделка = ПредопределенноеЗначение("Справочник.СделкиСКлиентами.ПустаяСсылка");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСписатьНаРасходыПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, ТекущиеДанные, "Объект.Товары");
Если Не ТекущиеДанные.СписатьНаРасходы Тогда
Если (ТекущиеДанные.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар") Или
ТекущиеДанные.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара")) Тогда
ТекущиеДанные.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
Если Не СкладГруппа Тогда
ТекущиеДанные.Склад = Объект.Склад;
КонецЕсли;
ИначеЕсли ТекущиеДанные.ТипНазначения = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала") Тогда
ТекущиеДанные.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
КонецЕсли;
ИначеЕсли Не ЗначениеЗаполнено(ТекущиеДанные.Подразделение) Тогда
ТекущиеДанные.Подразделение = Объект.Подразделение;
ТекущиеДанные.Склад = ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока <> Неопределено
И Объект.ПоступлениеПоЗаказам И Объект.Товары.Количество()>0 Тогда
Если ТекущаяСтрока.КодСтроки = 0 Тогда
ТекущаяСтрока.РасхождениеЗаказ = 1;
Иначе
ТекущаяСтрока.РасхождениеЗаказ = 0;
КонецЕсли;
КонецЕсли;
РасхожденияАктуальны = Ложь;
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСерияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьПодборСерий(Элемент.ТекстРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСерияПриИзменении(Элемент)
ВыбранноеЗначение = НоменклатураКлиентСервер.ВыбраннаяСерия();
ВыбранноеЗначение.Значение = Элементы.Товары.ТекущиеДанные.Серия;
ВыбранноеЗначение.ИдентификаторТекущейСтроки = Элементы.Товары.ТекущиеДанные.ПолучитьИдентификатор();
НоменклатураКлиент.ОбработатьУказаниеСерии(ЭтаФорма, ПараметрыУказанияСерий, ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНомерГТДПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыЗаполнения = Новый Структура("НомерГТД", ТекущиеДанные.НомерГТД);
Действия = Новый Структура;
Действия.Вставить("ЗаполнитьТипНомераГТД", ПараметрыЗаполнения);
Действия.Вставить("ЗаполнитьСтрануПроисхожденияДляНомераГТД", ПараметрыЗаполнения);
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущиеДанные);
Иначе
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
Действия,
"Склад",
Истина);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущиеДанные, Действия, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНомерГТДСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = ЗакупкиКлиент.ДополнительныеПараметрыСозданияНомераГТД();
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, Объект);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект);
ДополнительныеПараметры.ВалютаДокумента = Объект.Валюта;
ПараметрыСоздания = ЗакупкиКлиент.ПараметрыСозданияНомераГТД(ТекущиеДанные,
Элемент.ТекстРедактирования,
ДополнительныеПараметры);
ЗакупкиКлиент.ОткрытьФормуСозданияНомераГТД(ЭтотОбъект, ПараметрыСоздания);
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущиеДанные);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПередУдалением(Элемент, Отказ)
Если Элементы.Товары.ТекущиеДанные <> Неопределено Тогда
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.Товары, ЭтотОбъект);
НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПередНачаломИзменения(Элемент, Отказ)
ЗаполнитьЗначенияСвойств(ПредыдущиеРеквизитыСтроки, Элементы.Товары.ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНазначениеПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ТекущаяСтрока", ТекущаяСтрока);
ВопросПользователюПриИзмененииРеквизитаСтроки(
Новый ОписаниеОповещения("ТоварыНазначениеПриИзмененииВопросПользователюЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНазначениеПриИзмененииВопросПользователюЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ();
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока;
Если ТекущаяСтрока.ТипНазначения = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала") Тогда
ТекущаяСтрока.Подразделение = ПредопределенноеЗначение("Справочник.СтруктураПредприятия.ПустаяСсылка");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПартнераНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЭлементФормы" , Элемент);
ДополнительныеПараметры.Вставить("ТекущаяСтрока", ТекущаяСтрока);
ОповещениеОЗакрытие = Новый ОписаниеОповещения("ОбработатьРезультатВыбораНоменклатурыПартнера", ЭтотОбъект, ДополнительныеПараметры);
НоменклатураПартнеровКлиент.ОткрытьФормуВыбораНоменклатурыПартнера(ЭтотОбъект, Объект.Партнер, ТекущаяСтрока, Элемент.Заголовок, ОповещениеОЗакрытие);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасхождения
&НаКлиенте
Процедура РасхожденияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущаяСтрока = Элементы.Расхождения.ТекущиеДанные;
Если Поле = Элементы.РасхожденияЗаказПоставщику Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ЗаказПоставщику) Тогда
ПоказатьЗначение(Неопределено, ТекущаяСтрока.ЗаказПоставщику);
КонецЕсли;
КонецЕсли;
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Поле, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияПриАктивизацииЯчейки(Элемент)
СтрокаТаблицы = Элементы.Расхождения.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
Если Элемент.ТекущийЭлемент <> Неопределено
И Элемент.ТекущийЭлемент = Элементы.РасхожденияВариантОтражения Тогда
СписокВыбора = Элементы.РасхожденияВариантОтражения.СписокВыбора;
СписокВыбора.Очистить();
ТипыНоменклатурыКорректировки = Новый Массив;
ТипыНоменклатурыКорректировки.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
ТипыНоменклатурыКорректировки.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
ЭтоТоварНеСписанныйНаРасходы = ТипыНоменклатурыКорректировки.Найти(СтрокаТаблицы.ТипНоменклатуры) <> Неопределено И НЕ СтрокаТаблицы.СписатьНаРасходы;
Если СтрокаТаблицы.КоличествоУпаковок > 0 Тогда
Если Не ОснованиеАктОРасхожденияхПослеПриемки И СтрокаТаблицы.СуммаСНДС <> 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.СписатьНаРасходы"));
КонецЕсли;
Если Не ЭтоТоварНеСписанныйНаРасходы Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьСтоимостьТовара"));
ИначеЕсли ИспользуетсяДокументПоступлениеТоваров
И ЭтоТоварНеСписанныйНаРасходы Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
ИначеЕсли СтрокаТаблицы.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУчестьПриИнвентаризации"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьСкладскиеОстатки"));
КонецЕсли;
ИначеЕсли СтрокаТаблицы.КоличествоУпаковок < 0 Тогда
Если Не ОснованиеАктОРасхожденияхПослеПриемки И СтрокаТаблицы.СуммаСНДС <> 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Если Не ЭтоТоварНеСписанныйНаРасходы Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьСтоимостьТовара"));
ИначеЕсли ИспользуетсяДокументПоступлениеТоваров
И ЭтоТоварНеСписанныйНаРасходы Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
ИначеЕсли СтрокаТаблицы.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУчестьПриИнвентаризации"));
Иначе
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьСкладскиеОстатки"));
КонецЕсли;
ИначеЕсли СтрокаТаблицы.КоличествоУпаковок = 0 И (СтрокаТаблицы.СуммаСНДС > 0
ИЛИ (СтрокаТаблицы.СуммаСНДС = 0 И СтрокаТаблицы.СуммаНДС > 0)) Тогда
Если Не ОснованиеАктОРасхожденияхПослеПриемки
И Не СтрокаТаблицы.СуммаСНДС = 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.СписатьНаРасходы"));
КонецЕсли;
Если Не ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьСтоимостьТовара"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
КонецЕсли;
ИначеЕсли СтрокаТаблицы.КоличествоУпаковок = 0 И (СтрокаТаблицы.СуммаСНДС < 0
ИЛИ (СтрокаТаблицы.СуммаСНДС = 0 И СтрокаТаблицы.СуммаНДС < 0)) Тогда
Если Не ОснованиеАктОРасхожденияхПослеПриемки
И Не СтрокаТаблицы.СуммаСНДС = 0 Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Если Не ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьСтоимостьТовара"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияВариантОтраженияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.Расхождения.ТекущиеДанные;
Если ТипЗнч(ВыбранноеЗначение) = Тип("ПеречислениеСсылка.ВариантыОтраженияКорректировокПоступлений") Тогда
ТекущаяСтрока.ВариантОтражения = ВыбранноеЗначение;
Иначе
ТекущаяСтрока.ВариантОтражения = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ПустаяСсылка");
КонецЕсли;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияСуммаВзаиморасчетовПриИзменении(Элемент)
ТекущиеДанные = Элементы.Расхождения.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ТекущиеДанные.СуммаНДСВзаиморасчетов = 0;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияСтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
РаботаСТабличнымиЧастямиКлиент.КэшироватьТекущуюСтроку(Элементы.Расхождения, ЭтотОбъект);
ТекущаяСтрока = Элементы.Расхождения.ТекущиеДанные;
Если НоваяСтрока И НЕ Копирование Тогда
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "Объект.Расхождения");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасхожденияСписатьНаРасходыПриИзменении(Элемент)
ТекущиеДанные = Элементы.Расхождения.ТекущиеДанные;
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, ТекущиеДанные, "Объект.Расхождения");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКорректировкаЗадолженности
&НаКлиенте
Процедура КорректировкаЗадолженностиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле = Элементы.КорректировкаЗадолженностиДокументПриобретения
ИЛИ Поле = Элементы.КорректировкаЗадолженностиОбъектРасчетов
ИЛИ Поле = Элементы.КорректировкаЗадолженностиСуммаСНДС Тогда
ПоказатьЗначение(, Элементы.КорректировкаЗадолженности.ТекущиеДанные.ДокументПриобретения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КорректировкаЗадолженностиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа, Параметр)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура КорректировкаЗадолженностиПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если Не ОтменаРедактирования Тогда
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КорректировкаЗадолженностиСуммаКорректировкиПриИзменении(Элемент)
ТекущаяСтрока = Элементы.КорректировкаЗадолженности.ТекущиеДанные;
ТекущаяСтрока.СуммаНДСКорректировки =
ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(
ТекущаяСтрока.СуммаКорректировки,
ТекущаяСтрока.СтавкаНДС,
Истина,
Объект.НалогообложениеНДС);
ТекущаяСтрока.СуммаВзаиморасчетов = 0;
КонецПроцедуры
&НаКлиенте
Процедура КорректировкаЗадолженностиСтавкаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.КорректировкаЗадолженности.ТекущиеДанные;
ТекущаяСтрока.СуммаНДС =
ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(
ТекущаяСтрока.СуммаСНДС,
ТекущаяСтрока.СтавкаНДС,
Истина,
Объект.НалогообложениеНДС);
ТекущаяСтрока.СуммаНДСКорректировки =
ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(
ТекущаяСтрока.СуммаКорректировки,
ТекущаяСтрока.СтавкаНДС,
Истина,
Объект.НалогообложениеНДС);
ТекущаяСтрока.СуммаВзаиморасчетов = 0;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоИсходнымДанным(Команда)
Если Не ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Поле ""Документ-основание"" не заполнено'"),
,
"ПредставлениеДокументаОснования");
Возврат;
КонецЕсли;
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
ПараметрыПроверки.ТабличнаяЧасть = Объект.Товары;
Оповещение = Новый ОписаниеОповещения("ЗаполнитьПоИсходнымДаннымЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоАктуОРасхождениях(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
ПараметрыПроверки.ТабличнаяЧасть = Объект.Товары;
Оповещение = Новый ОписаниеОповещения("ЗаполнитьПоАктуОРасхожденияхЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоАктуОРасхожденияхЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьПоАктуОРасхожденияхСервер();
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьТоварыИзЗаказа(Команда)
РеквизитыДокументаОснования = РеквизитыДокументаОснования(Объект.ДокументОснование);
МассивКодовСтрок = Новый Массив;
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
Если СтрокаТЧ.КодСтроки <> 0 И ЗначениеЗаполнено(СтрокаТЧ.ЗаказПоставщику) Тогда
МассивКодовСтрок.Добавить(Новый Структура("КодСтроки,ЗаказПоставщику", СтрокаТЧ.КодСтроки, СтрокаТЧ.ЗаказПоставщику));
КонецЕсли;
КонецЦикла;
ПараметрыПодбора = Новый Структура;
ПараметрыПодбора.Вставить("ВалютаДокумента", Объект.Валюта);
ПараметрыПодбора.Вставить("Документ", Объект.Ссылка);
ПараметрыПодбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыПодбора.Вставить("Склад", Объект.Склад);
ПараметрыПодбора.Вставить("МассивКодовСтрок", МассивКодовСтрок);
ПараметрыПодбора.Вставить("Партнер", Объект.Партнер);
ПараметрыПодбора.Вставить("Контрагент", Объект.Контрагент);
ПараметрыПодбора.Вставить("Договор", Объект.Договор);
ПараметрыПодбора.Вставить("Организация", Объект.Организация);
ПараметрыПодбора.Вставить("Соглашение", Объект.Соглашение);
ПараметрыПодбора.Вставить("ВалютаВзаиморасчетов", Объект.ВалютаВзаиморасчетов);
ПараметрыПодбора.Вставить("НалогообложениеНДС", РеквизитыДокументаОснования.НалогообложениеНДС);
ПараметрыПодбора.Вставить("ЦенаВключаетНДС", РеквизитыДокументаОснования.ЦенаВключаетНДС);
ПараметрыПодбора.Вставить("Дата", Объект.Дата);
ОткрытьФорму(
"Документ.КорректировкаПриобретения.Форма.ФормаПодбораТоваровИзЗаказа",
ПараметрыПодбора,
ЭтаФорма,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура РазбитьСтроку(Команда)
ТаблицаФормы = Элементы.Товары;
ДанныеТаблицы = Объект.Товары;
ПараметрыРазбиенияСтроки = РаботаСТабличнымиЧастямиКлиент.ПараметрыРазбиенияСтроки();
ПараметрыРазбиенияСтроки.ИмяПоляКоличество = ?(Не ИспользуетсяКоличествоУпаковок,"Количество","КоличествоУпаковок");
ДополнительныеПараметры = УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеПараметровРазбиенияСтрокиТабличнойЧасти(ТаблицаФормы.ТекущиеДанные);
Оповещение = Новый ОписаниеОповещения("РазбитьСтрокуЗавершение", ЭтотОбъект, ДополнительныеПараметры);
РаботаСТабличнымиЧастямиКлиент.РазбитьСтроку(ДанныеТаблицы, ТаблицаФормы, Оповещение, ПараметрыРазбиенияСтроки);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныПоСоглашению(Команда)
Если ЦеныПартнеровЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоСоглашению(Объект, "Товары", НСтр("ru='Товары'")) Тогда
ТекстОшибки = "";
ЦеныРассчитаны = ЗаполнитьЦеныПоСоглашениюСервер(ТекстОшибки);
ЗакупкиКлиент.ОповеститьОбОкончанииЗаполненияЦенПоСоглашению(ЦеныРассчитаны, ТекстОшибки);
РасхожденияАктуальны = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщика(Команда)
Если ЦеныПартнеровЗаполнениеКлиент.НеобходимоЗаполнениеЦенПоВидуЦенПоставщика(Объект, "Товары", НСтр("ru='Товары'")) Тогда
ЦеныПартнеровЗаполнениеКлиент.ВыбратьВидЦеныПоставщика(
Новый ОписаниеОповещения("ЗаполнитьЦеныВыделенныхСтрокВыборВидЦеныПоставщикаЗавершение", ЭтотОбъект),
Объект.Партнер,
Объект.ЦенаВключаетНДС);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЦеныВыделенныхСтрокВыборВидЦеныПоставщикаЗавершение(ВидЦеныПоставщика, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(ВидЦеныПоставщика) Тогда
ЦеныРассчитаны = ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщикаСервер(ВидЦеныПоставщика);
ЦеныПартнеровЗаполнениеКлиент.ОповеститьОбОкончанииЗаполненияЦенПоВидуЦеныПоставщика(ЦеныРассчитаны, ВидЦеныПоставщика);
РасхожденияАктуальны = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСкладВВыделенныхСтроках(Команда)
ВыделенныеСтроки = Элементы.Товары.ВыделенныеСтроки;
Если СкладыКлиент.ПроверитьВозможностьЗаполненияСкладовВТабличнойЧасти(Объект, Объект.Товары, НСтр("ru='Товары'"), ВыделенныеСтроки) Тогда
СтруктураОтбора = Новый Структура("ВыборГруппы,ЭтоГруппа", ПредопределенноеЗначение("Перечисление.ВыборГруппыСкладов.РазрешитьВЗаказахИНакладных"), Ложь);
СтруктураПараметров = Новый Структура("Отбор,ГруппаСкладов", СтруктураОтбора, Объект.Склад);
ДополнительныеПараметры = Новый Структура("ВыделенныеСтроки", ВыделенныеСтроки);
ОписаниеОповещения = Новый ОписаниеОповещения("ЗаполнитьСкладВВыделенныхСтрокахЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Справочник.Склады.ФормаВыбора",
СтруктураПараметров,
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСкладВВыделенныхСтрокахЗавершение(Результат, ДополнительныеПараметры) Экспорт
ВыделенныеСтроки = ДополнительныеПараметры.ВыделенныеСтроки;
ВыбранныйСклад = Результат;
Если ЗначениеЗаполнено(ВыбранныйСклад) Тогда
ЗаполненоСтрок = ЗаполнитьСкладВВыделенныхСтрокахНаСервере(ВыделенныеСтроки, ВыбранныйСклад);
СкладыКлиент.ПоказатьОповещениеОЗаполненииСкладаВТабличнойЧасти(ВыбранныйСклад, ЗаполненоСтрок, ВыделенныеСтроки.Количество());
РасхожденияАктуальны = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасхождения(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
ПараметрыПроверки.ТабличнаяЧасть = Объект.Расхождения;
Оповещение = Новый ОписаниеОповещения("ЗаполнитьРасхожденияЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьВариантыОтражения(Команда)
НастройкиВариантовОтражения = УправлениеВариантамиОтражения();
НастройкиВариантовОтражения.ВыборВариантаИнтерактивно = Истина;
ОпределитьГруппыВариантовОтраженияДляВыбора(Объект.Расхождения, НастройкиВариантовОтражения);
Если Не НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения Тогда
ПоказатьПредупреждение(Неопределено, НСтр("ru = 'Нет строк, в которых доступно изменение варианта отражения.'"));
Возврат;
КонецЕсли;
ЗаполнитьВариантыОтраженийДляГрупп(НастройкиВариантовОтражения);
ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийФрагмент(НастройкиВариантовОтражения);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьТовары(Команда)
ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина,
"Документ.КорректировкаПриобретения.ФормаДокумента.Команда.ПодобратьТовары");
Отказ = Ложь;
Если Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ОчиститьСообщения();
СообщитьОбОшибкахОткрытияПодбора(Отказ);
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Документ", Объект.Ссылка);
ПараметрыФормы.Вставить("Партнер", Объект.Партнер);
ПараметрыФормы.Вставить("Соглашение", Объект.Соглашение);
ПараметрыФормы.Вставить("ЦенаВключаетНДС", Объект.ЦенаВключаетНДС);
ПараметрыФормы.Вставить("Склад", Объект.Склад);
ПараметрыФормы.Вставить("Валюта", Объект.Валюта);
ПараметрыФормы.Вставить("Дата", Объект.Дата);
ПараметрыФормы.Вставить("РежимПодбораИспользоватьСкладыВТабличнойЧасти", Истина);
ПараметрыФормы.Вставить("РежимПодбораИсключитьГруппыДоступныеВЗаказах", Истина);
ПараметрыФормы.Вставить("СкрыватьРучныеСкидки", Истина);
ХозяйственныеОперацииРаздельнойЗакупки = ХозяйственныеОперацииРаздельнойЗакупки();
Если ХозяйственныеОперацииРаздельнойЗакупки.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ОтборПоТипуНоменклатуры = Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь));
ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", ОтборПоТипуНоменклатуры);
ИначеЕсли КорректировкаОтчетаПереработчика Тогда
ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", НоменклатураКлиентСервер.ОтборПоРаботе(Ложь));
ПараметрыФормы.Вставить("Подразделение", ПодразделениеОснования);
Иначе
ПараметрыФормы.Вставить("ОтборПоТипуНоменклатуры", Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь)));
КонецЕсли;
ОткрытьФорму("Обработка.ПодборТоваровВДокументЗакупки.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ВставитьСтроки(Команда)
КоличествоТоваровДоВставки = Объект.Товары.Количество();
ПолучитьСтрокиИзБуфераОбмена();
КоличествоВставленных = Объект.Товары.Количество()-КоличествоТоваровДоВставки;
РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОВставкеСтрок(КоличествоВставленных);
КонецПроцедуры
&НаКлиенте
Процедура СкопироватьСтроки(Команда)
Если РаботаСТабличнымиЧастямиКлиент.ВыбранаСтрокаДляВыполненияКоманды(Элементы.Товары) Тогда
СкопироватьСтрокиНаСервере();
РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОКопированииСтрок(Элементы.Товары.ВыделенныеСтроки.Количество());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНоменклатуруПоНоменклатуреПартнера(Команда)
Если Не ОбщегоНазначенияУТКлиент.ПроверитьНаличиеСтрокВСписке(Объект.Товары, "Товары") Тогда
Возврат;
КонецЕсли;
АдресТоваровВХранилище = ПоместитьТоварыВоВременноеХранилищеСервер("Товары");
ЗакупкиКлиент.ОткрытьФормуЗаполненияНоменклатурыПоставщика(
Новый ОписаниеОповещения("ЗаполнитьНоменклатуруПоНоменклатуреПартнераЗавершение", ЭтотОбъект),
АдресТоваровВХранилище,
ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНоменклатуруПоНоменклатуреПартнераЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ЗаполнитьТоварыИзВременногоХранилищаСервер(Результат);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьНоменклатуруПоставщика(Команда)
НоменклатураПартнеровКлиент.ПоказатьНоменклатуруПартнера(Объект.Партнер, Объект.Ссылка, Элементы.Товары.ТекущиеДанные, НСтр("ru = 'Поставщик'"));
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПроверитьВыполнениеЗаданияИС()
СоответствиеТребованиямГИСМТКлиент.ПроверитьВыполнениеЗадания(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПричинуКорректировкиЗадолженности(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВводПричиныКорректировкиЗадолженностиЗавершение", ЭтотОбъект);
ЗаголовокФормыВвода = НСтр("ru = 'Введите причину корректировки'");
ПоказатьВводСтроки(ОписаниеОповещения, , ЗаголовокФормыВвода, 500);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьДокументыДляКорректировкиЗадолженности(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Организация", Объект.Организация);
ПараметрыФормы.Вставить("Партнер", Объект.Партнер);
ПараметрыФормы.Вставить("Контрагент", Объект.Контрагент);
ПараметрыФормы.Вставить("Валюта", Объект.Валюта);
ПараметрыФормы.Вставить("ВалютаВзаиморасчетов", Объект.ВалютаВзаиморасчетов);
ВыбранныеДокументы = Новый Массив();
Для каждого СтрокаТаблицы Из Объект.КорректировкаЗадолженности Цикл
ВыбранныеДокументы.Добавить(СтрокаТаблицы.ДокументПриобретения);
КонецЦикла;
ПараметрыФормы.Вставить("ВыбранныеДокументы", ВыбранныеДокументы);
ОткрытьФорму("Документ.КорректировкаПриобретения.Форма.ФормаПодбораДокументовПриобретения", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РаспределитьОбщуюСуммуКорректировкиЗадолженностиНаДокументы(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВводСуммыКорректировкиЗадолженностиЗавершение", ЭтотОбъект);
ЗаголовокФормыВвода = НСтр("ru = 'Введите общую сумму корректировки'");
ПоказатьВводЧисла(ОписаниеОповещения, 0, ЗаголовокФормыВвода, 31, 2);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьСуммуКорректировкиЗадолженностиПоПроценту(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВводПроцентаКорректировкиЗадолженностиЗавершение", ЭтотОбъект);
ЗаголовокФормыВвода = НСтр("ru = 'Введите процент корректировки'");
ПоказатьВводЧисла(ОписаниеОповещения, 0, ЗаголовокФормыВвода, 5, 2);
КонецПроцедуры
&НаКлиенте
Процедура ВсеИсправления(Команда)
ИсправляемыйДокумент = ИсправляемыйДокумент();
ИсправлениеДокументовКлиент.ОткрытьСписокИсправлений(ИсправляемыйДокумент, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьИсправляемыйДокумент(Команда)
ПодобратьИсправляемыйДокумент();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтавкуНДС(Команда)
Если Объект.Товары.Количество() = 0 Тогда
ТекстПредупреждения = НСтр("ru = 'В список ""Товары"" не введено ни одной строки.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ЗаполнитьСтавкуНДСЗавершение", ЭтотОбъект);
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ТипНалогообложенияНДС", Объект.НалогообложениеНДС);
ОткрытьФорму("Справочник.СтавкиНДС.ФормаВыбора", ПараметрыФормы,,,,, ОповещениеОЗакрытии);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СвойстваВыполнитьОтложеннуюИнициализацию()
УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция ИсправляемыйДокумент()
ИсправляемыйДокумент = Неопределено;
Если ЗначениеЗаполнено(Объект.ИсправляемыйДокумент) Тогда
ИсправляемыйДокумент = Объект.ИсправляемыйДокумент;
ИначеЕсли Объект.Проведен Тогда
ИсправляемыйДокумент = ИсправлениеДокументовВызовСервера.ИсправляемыйДокумент(Объект.Ссылка);
Иначе
ИсправляемыйДокумент = Объект.ДокументОснование;
КонецЕсли;
Возврат ИсправляемыйДокумент;
КонецФункции
&НаСервере
Процедура УстановитьУсловноеОформлениеДляСтатейИАналитик()
ОперацииФактуровка = Новый СписокЗначений;
ОперацииФактуровка.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки);
ОперацииФактуровка.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСписатьНаРасходы.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияПодразделение.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСписатьНаРасходы.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаАктивовПассивов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаДоходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Операция");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ОтборЭлемента.ПравоеЗначение = ОперацииФактуровка;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВариантОформленияДоговораЗакупок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыОформленияЗакупок.НеотфактурованныеПоставкиТоваровИУслуг;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСписатьНаРасходы.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Операция");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = ОперацииФактуровка;
ГруппаОтбораИЛИ = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИЛИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбораИ1 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбораИ2 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбораИ2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ГруппаОтбораИ3 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбораИ3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВариантОформленияДоговораЗакупок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыОформленияЗакупок.ТоварыВПути;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"));
СписокЗначений.Добавить(ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров/услуг и работ без назначения>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при списании на расходы>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СтатьяРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.АналитикаРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<выберите статью расходов>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСписатьНаРасходы.Имя);
ГруппаОтбораИЛИ = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИЛИ.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбораИ1 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбораИ2 = ГруппаОтбораИЛИ.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбораИ2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбораИ2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = ГруппаОтбораИ2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров/услуг и работ без назначения>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при списании на расходы/активы>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.СтатьяРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.АналитикаРасходов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<выберите статью расходов>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСписатьНаРасходы.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаАктивовПассивов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаДоходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАналитикаРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСчетРеглУчетаРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСчетРеглУчетаАктивовПассивов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСписатьНаРасходы.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСтатьяРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаАктивовПассивов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаДоходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияАналитикаРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСчетРеглУчетаРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСчетРеглУчетаАктивовПассивов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаОтчетаПереработчика");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюЗакупки(ЭтаФорма);
УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюЗакупки(ЭтаФорма,
"РасхожденияСтавкаНДС",
"РасхожденияСуммаНДС",
"РасхожденияСуммаСНДС");
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтаФорма);
ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтаФорма, "РасхожденияСуммаСНДС");
НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтаФорма);
ПараметрыУсловногоОформления = НоменклатураСервер.НовыеПараметрыУсловногоОформленияЕдиницИзмерения();
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмерения = "РасхожденияНоменклатураЕдиницаИзмерения";
ПараметрыУсловногоОформления.ПутьКПолюУпаковка = "Объект.Расхождения.Упаковка";
НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтаФорма, ПараметрыУсловногоОформления);
НоменклатураСервер.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(ЭтаФорма);
СкладыСервер.УстановитьУсловноеОформлениеСкладаВТЧ(ЭтаФорма);
СкладыСервер.УстановитьУсловноеОформлениеСкладаВТЧ(ЭтаФорма, "РасхожденияСклад");
ПараметрыУсловногоОформления = НоменклатураСервер.ПараметрыУстановкиУсловногоОформленияНомераГТД();
ПараметрыУсловногоОформления.ПутьКПолюПризнакаКорректировкиПУиПА = "КорректировкаПриобретенияУслугПрочихАктивов";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "ТоварыНомерГТДСтранаПроисхождения";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "РасхожденияНомерГТД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоГТД = "Объект.Расхождения.ВедетсяУчетПоГТД";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "РасхожденияНомерГТДСтранаПроисхождения";
НоменклатураСервер.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияНомераГТД();
ПараметрыУсловногоОформления.ИмяПоляВводаСтранаПроисхождения = "ТоварыНомерГТДСтранаПроисхождения";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ПутьКПолюДатаДокумента = "Объект.Дата";
ПараметрыУсловногоОформления.ИмяПоляВводаНомераГТД = "РасхожденияНомерГТД";
ПараметрыУсловногоОформления.ИмяПоляВводаСтранаПроисхождения = "РасхожденияНомерГТДСтранаПроисхождения";
ПараметрыУсловногоОформления.ПутьКПолюНомерГТД = "Объект.Расхождения.НомерГТД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "Объект.Расхождения.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "Объект.Расхождения.ТипНоменклатуры";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеНомераГТД(ЭтотОбъект, ПараметрыУсловногоОформления);
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеВДокументеПриобретениеТоваровУслуг(ЭтотОбъект, Истина);
ПараметрыУсловногоОформления = УчетПрослеживаемыхТоваровЛокализация.ПараметрыУстановкиУсловногоОформленияКоличестваПоРНПТ();
ПараметрыУсловногоОформления.ПутьКПолюПризнакаКорректировкиПУиПА = "КорректировкаПриобретенияУслугПрочихАктивов";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект, ПараметрыУсловногоОформления);
ПараметрыУсловногоОформления.ИмяПоляВводаКоличествоПоРНПТ = "РасхожденияКоличествоПоРНПТ";
ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмеренияТНВЭД = "РасхожденияНоменклатураЕдиницаИзмеренияТНВЭД";
ПараметрыУсловногоОформления.ПутьКПолюВедетсяУчетПоРНПТ = "Объект.Расхождения.ВедетсяУчетПоРНПТ";
ПараметрыУсловногоОформления.ПутьКПолюТипНоменклатуры = "Объект.Расхождения.ТипНоменклатуры";
ПараметрыУсловногоОформления.ПутьКПолюТипНомераГТД = "Объект.Расхождения.ТипНомераГТД";
УчетПрослеживаемыхТоваровЛокализация.УстановитьУсловноеОформлениеКоличестваПоРНПТ(ЭтотОбъект, ПараметрыУсловногоОформления);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияНомерГТД.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияНомерГТДСтранаПроисхождения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ВедетсяУчетПоГТД");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<ГТД не используются>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСклад.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияНомерГТД.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияНомерГТДСтранаПроисхождения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для товаров>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказПоставщику.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияЗаказПоставщику.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияКодСтроки.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПоступлениеПоЗаказам");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказПоставщику.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСделка.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияЗаказПоставщику.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияКодСтроки.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСделка.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПоступлениеПоЗаказам");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказПоставщику.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьЗаказыВТабличнойЧасти");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КодСтроки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КодСтроки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаказПоставщику");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<сверх заказа>'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияКодСтроки.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.КодСтроки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 0;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ЗаказПоставщику");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<сверх заказа>'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтавкаНДС.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВернутьМногооборотнуюТару");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.МногооборотнаяТара;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
ПараметрыУстановки = МногооборотнаяТараСервер.ПараметрыУстановкиУсловногоОформленияДляСтрокСМногооборотнойТарой();
ПараметрыУстановки.Форма = ЭтаФорма;
ПараметрыУстановки.ЭтоПоступление = Истина;
ПараметрыУстановки.ПутьКПолюОтбораВернутьМногооборотнуюТару = "ВернутьМногооборотнуюТару";
ПараметрыУстановки.ПутьКПолюОтбораТребуетсяЗалогЗаТару = "ТребуетсяЗалогЗаТару";
МногооборотнаяТараСервер.УстановитьУсловноеОформлениеДляСтрокСМногооборотнойТарой(ПараметрыУстановки);
НоменклатураСервер.УстановитьУсловноеОформлениеСерийНоменклатуры(ЭтаФорма, Истина);
УстановитьУсловноеОформлениеДляСтатейИАналитик();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ГруппаОтбора0 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора0.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаНе;
ГруппаОтбора1 = ГруппаОтбора0.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Подразделение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ГруппаОтбора3 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ГруппаОтбора4 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора4.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора5 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора5.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНазначения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНазначений.ПоставкаПодПринципала;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Подразделение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ГруппаОтбора3 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ГруппаОтбора4 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора4.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора4.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Назначение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора5 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора5.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНоменклатуры.Работа;
ОтборЭлемента = ГруппаОтбора5.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНазначения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ТипыНазначений.ПоставкаПодПринципала;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСклад.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСклад.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Услуга);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияПодразделение.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при списании на расходы>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНазначения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ПредопределенноеЗначение("Перечисление.ТипыНазначений.ПоставкаПодПринципала");
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для закупки не под принципала>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНоменклатуры");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.МногооборотнаяТара);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.СписатьНаРасходы");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<при списании на расходы>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
НоменклатураСервер.УстановитьУсловноеОформлениеНазначенияНоменклатуры(ЭтаФорма,,,Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыГруппаЗатрат.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияГруппаЗатрат.Имя);
ГруппаИли = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаИли.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаИли.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаОтчетаПереработчика");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаИли.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоГруппЗатрат");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 1;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличество.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаОтчетаПереработчика");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНаправлениеДеятельности.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаОтчетаПереработчика");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаОтчетаПереработчика");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСтатьяКалькуляции.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияСтатьяКалькуляции.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаОтчетаПереработчика");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодТНВЭД.Имя);
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияКодТНВЭД.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодТНВЭД.Имя);
СписокТиповГТД = Новый СписокЗначений();
СписокТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТ);
СписокТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТКомплекта);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНомераГТД");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = СписокТиповГТД;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Для ГТД по РНПТ или комплектам по РНПТ'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасхожденияКодТНВЭД.Имя);
СписокТиповГТД = Новый СписокЗначений();
СписокТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТ);
СписокТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТКомплекта);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Расхождения.ТипНомераГТД");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента.ПравоеЗначение = СписокТиповГТД;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Для ГТД по РНПТ или комплектам по РНПТ'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНомерГТД.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КорректировкаПриобретенияУслугПрочихАктивов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
КонецПроцедуры
#Область ПриИзмененииРеквизитов
&НаСервере
Процедура НалогообложениеНДСПриИзмененииСервер(КэшированныеЗначения)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
ПараметрыЗаполненияСтакиНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект, Ложь, ВернутьМногооборотнуюТару);
ПараметрыЗаполненияСтакиНДС.Дата = ДатаОснования;
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", ПараметрыЗаполненияСтакиНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Расхождения, СтруктураДействий, КэшированныеЗначения);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
КэшированныеЗначения.ОбработанныеСтроки,
СтруктураДействий,
Объект.Расхождения,
КэшированныеЗначения);
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, Неопределено);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
ОбновитьТекстДокументыНаОсновании();
УчетНДСУП.УстановитьВидимостьКомандыЗаполнитьСтавкуНДС(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЦенаВключаетНДСПриИзмененииСервер(КэшированныеЗначения)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииСервер()
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Дата");
ЗаполнитьВидДеятельностиНДС();
НастроитьУчетРНПТ();
КонецПроцедуры
&НаСервере
Процедура ОперацияПриИзмененииСервер()
ОбновитьНадписиПоОперации();
УстановитьВидимостьПоОперации();
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
Если Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно
ИЛИ Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно Тогда
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
Объект.Соглашение = Неопределено;
Объект.Договор = Неопределено;
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ДобавитьДокументПриобретенияВТаблицуКорректировкаЗадолженности(Объект.ДокументОснование);
Объект.ДокументОснование = Неопределено;
КонецЕсли;
ИначеЕсли Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.ИсправлениеОшибок
ИЛИ Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПоСогласованиюСторон Тогда
Объект.КорректировкаЗадолженности.Очистить();
УстановитьПредставлениеДокументаОснования();
КонецЕсли;
Если Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.ИсправлениеОшибок Тогда
Объект.ИсправляемыйДокумент = Неопределено;
КонецЕсли;
ПараметрыДляВыбора = НоВый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитик(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
УстановитьПредставлениеДокументаОснования();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаСервере
Процедура ТоварыПослеУдаленияСервер(КэшированныеЗначения)
ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Неопределено, КэшированныеЗначения);
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
Если Объект.Организация = ТекущаяОрганизация Тогда
Возврат;
КонецЕсли;
ТекущаяОрганизация = Объект.Организация;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЗаполнитьНалогообложениеНДСЗакупки();
НалогообложениеНДСПриИзмененииСервер(Неопределено);
ЗаполнитьВидДеятельностиНДС();
КонецЕсли;
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
ОтветственныеЛицаСервер.ЗаполнитьСписокВыбораМенеджера(Элементы.Менеджер, Объект);
ОтветственныеЛицаСервер.УстановитьМенеджера(Объект, Объект.ДокументОснование);
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Организация");
КонецПроцедуры
&НаСервере
Процедура ПартнерПриИзмененииСервер()
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
Если Объект.Партнер = ТекущийПартнер Тогда
Возврат;
КонецЕсли;
ТекущийПартнер = Объект.Партнер;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("Партнер");
МассивРеквизитов.Добавить("Контрагент");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, МассивРеквизитов);
ОтветственныеЛицаСервер.ЗаполнитьСписокВыбораМенеджера(Элементы.Менеджер, Объект);
ОтветственныеЛицаСервер.УстановитьМенеджера(Объект, Объект.ДокументОснование);
ОбновитьТекстДокументыНаОсновании();
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
Если Объект.Контрагент = ТекущийКонтрагент Тогда
Возврат;
КонецЕсли;
ТекущийКонтрагент = Объект.Контрагент;
ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки();
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить("Контрагент");
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, МассивРеквизитов);
КонецПроцедуры
&НаСервере
Процедура ОчиститьТабличныеЧастиДокументаПриИзмененииКлючевыхРеквизитовШапки()
Объект.ДокументОснование = Неопределено;
Объект.Товары.Очистить();
Объект.Расхождения.Очистить();
Объект.ШтрихкодыУпаковок.Очистить();
Объект.КорректировкаЗадолженности.Очистить();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
#КонецОбласти
#Область Заполнение
&НаСервере
Процедура ЗаполнитьПоИсходнымДаннымСервер()
Документы.КорректировкаПриобретения.ЗаполнитьТоварыПоИсходнымДанным(
Объект.ДокументОснование,
Объект.Товары,
Объект.Ссылка);
Для Каждого СтрокаТовары Из Объект.Товары Цикл
СтрокаТовары.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.КопияНастройкиСчетовУчета(СтрокаТовары.НастройкаСчетовУчета, ЭтотОбъект);
КонецЦикла;
ПослеЗаполненияПоИсходнымДанным();
КонецПроцедуры
&НаСервере
Функция ЗаполнитьЦеныПоСоглашениюСервер(ТекстОшибки = "")
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Соглашение, "ЦенаВключаетНДС") <> Объект.ЦенаВключаетНДС Тогда
ТекстОшибки =
НСтр("ru = 'Установленные значения полей ""Цена включает НДС"" в документе и соглашении разные.'");
Возврат Ложь;
КонецЕсли;
МассивСтрок = Новый Массив;
Для Каждого Строка Из Элементы.Товары.ВыделенныеСтроки Цикл
МассивСтрок.Добавить(Объект.Товары.НайтиПоИдентификатору(Строка));
КонецЦикла;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполненияЦены = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
ПараметрыЗаполненияЦены.Вставить("ПоляЗаполнения", "Цена, ВидЦеныПоставщика");
ПараметрыЗаполненияЦены.Вставить("Дата", Объект.Дата);
ПараметрыЗаполненияЦены.Вставить("Организация", Объект.Организация);
ПараметрыЗаполненияЦены.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполненияЦены.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполненияЦены.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ЦеныРассчитаны = ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(
Объект.Товары,
МассивСтрок,
ПараметрыЗаполненияЦены,
СтруктураДействий);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщикаСервер(ВидЦеныПоставщика)
МассивСтрок = Новый Массив;
Для Каждого Строка Из Элементы.Товары.ВыделенныеСтроки Цикл
МассивСтрок.Добавить(Объект.Товары.НайтиПоИдентификатору(Строка));
КонецЦикла;
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполненияЦены = ЦеныПартнеровЗаполнениеСервер.НовыйПараметрыЗаполненияЗаполнитьЦены();
ПараметрыЗаполненияЦены.Вставить("ПоляЗаполнения", "Цена, ВидЦеныПоставщика");
ПараметрыЗаполненияЦены.Вставить("Дата", Объект.Дата);
ПараметрыЗаполненияЦены.Вставить("Организация", Объект.Организация);
ПараметрыЗаполненияЦены.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполненияЦены.Вставить("ВидЦеныПоставщика", ВидЦеныПоставщика);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСумму", "КоличествоУпаковок");
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ЦеныРассчитаны = ЦеныПартнеровЗаполнениеСервер.ЗаполнитьЦены(
Объект.Товары,
МассивСтрок,
ПараметрыЗаполненияЦены,
СтруктураДействий);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
Возврат ЦеныРассчитаны;
КонецФункции
&НаСервере
Функция ЗаполнитьСкладВВыделенныхСтрокахНаСервере(Знач МассивВыделенныхСтрок, Склад)
ЗаполненоСтрок = СкладыСервер.ЗаполнитьСкладыВВыделенныхСтроках(Объект.Товары, МассивВыделенныхСтрок, Склад, Истина);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий);
ПриИзмененииСкладаВТабличнойЧастиСервер();
Возврат ЗаполненоСтрок;
КонецФункции
&НаСервере
Процедура ЗаполнитьРасхожденияСервер()
Если Не ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Поле ""Документ-основание"" не заполнено'"),
,
"ПредставлениеДокументаОснования");
Возврат;
КонецЕсли;
ПараметрыДляВыбора = НоВый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ДатаДокумента", Объект.Дата);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитик(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
НоменклатураСервер.ОкруглитьКоличествоШтучныхТоваров(Объект);
ДокументОбъект = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.КорректировкаПриобретения"));
НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ДокументОбъект);
НастройкаСчетовУчетаСервер.ЗаписатьНастройкиСчетовУчетаФормы(ЭтотОбъект);
ДокументОбъект.ЗаполнитьРасхождения(ИспользуетсяДокументПоступлениеТоваров);
Объект.Расхождения.Загрузить(ДокументОбъект.Расхождения.Выгрузить());
ПараметрыУказанияСерий.ИмяТЧТовары = "Расхождения";
ПараметрыУказанияСерий.ИмяТЧСерии = "Расхождения";
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий);
ПараметрыУказанияСерий.ИмяТЧТовары = "Товары";
ПараметрыУказанияСерий.ИмяТЧСерии = "Товары";
Если КорректировкаОтчетаПереработчика Тогда
Для Каждого ТекущиеДанные Из Объект.Расхождения Цикл
СтруктураПоиска = Новый Структура("НомерГруппыЗатрат", ТекущиеДанные.НомерГруппыЗатрат);
НайденныеСтроки = ГруппыЗатрат.НайтиСтроки(СтруктураПоиска);
Если Не НайденныеСтроки.Количество() = 0 Тогда
ТекущиеДанные.ГруппаЗатрат = НайденныеСтроки[0].ГруппаЗатрат;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ОбновитьСлужебныеРеквизитыТабличнойЧастиРасхождения();
НастройкаСчетовУчетаСервер.ОбновитьПредставлениеНастройки(ЭтотОбъект, "Объект.Расхождения");
РасхожденияАктуальны = Истина;
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоАктуОРасхожденияхСервер()
ДокументОбъект = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.КорректировкаПриобретения"));
Документы.КорректировкаПриобретения.ЗаполнитьТоварыПоАктуОРасхождениях(ДокументОбъект);
ЗначениеВДанныеФормы(ДокументОбъект, Объект);
ПослеЗаполненияПоИсходнымДанным();
КонецПроцедуры
&НаСервере
Процедура ПослеЗаполненияПоИсходнымДанным()
ДействияДляЗаполнения = Новый Структура;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
Для Каждого СтрокаТовар Из Объект.Товары Цикл
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(СтрокаТовар);
КонецЦикла;
Иначе
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(ДействияДляЗаполнения);
КонецЕсли;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, ДействияДляЗаполнения);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ();
ДоходыИРасходыСервер.ОбновитьСлужебныеРеквизиты(ЭтотОбъект);
РасхожденияАктуальны = (Объект.Расхождения.Количество() = 0);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДСЗакупки()
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
УчетНДСУП.ЗаполнитьНалогообложениеНДСЗакупки(Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(Элементы.НалогообложениеНДС, Объект.НалогообложениеНДС, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВидДеятельностиНДС()
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияВидаДеятельностиНДС(Объект);
УчетНДСУП.ЗаполнитьВидДеятельностиНДС(Объект.ЗакупкаПодДеятельность, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
УчетНДСУП.ЗаполнитьСписокВыбораВидаДеятельностиНДС(Элементы.ЗакупкаПодДеятельность, Объект.ЗакупкаПодДеятельность, ПараметрыЗаполнения, УчетНДСКэшированныеЗначенияПараметров);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущиеДанные, ЭтоРасхождение = Ложь)
Если ТекущиеДанные <> Неопределено Тогда
Если ТипЗнч(ТекущиеДанные.АналитикаРасходов) = Тип("СправочникСсылка.ОбъектыЭксплуатации") Тогда
УказанНомерГТД = ЗначениеЗаполнено(ТекущиеДанные.НомерГТД);
ТекущиеДанные.ВедетсяУчетПоГТД = ?(ЭтоРасхождение, УказанНомерГТД, Истина);
ТекущиеДанные.ВедетсяУчетПоРНПТ = ТоварПрослеживается(ТекущиеДанные.НомерГТД);
Если Не УказанНомерГТД Тогда
Если ЗначениеЗаполнено(ТекущиеДанные.КодТНВЭД) Тогда
ТекущиеДанные.КодТНВЭД = Неопределено;
КонецЕсли;
ТекущиеДанные.СтранаПроисхождения = Неопределено;
КонецЕсли;
Иначе
ТекущиеДанные.ВедетсяУчетПоГТД = Ложь;
ТекущиеДанные.ВедетсяУчетПоРНПТ = Ложь;
Если ЗначениеЗаполнено(ТекущиеДанные.КодТНВЭД) Тогда
ТекущиеДанные.КодТНВЭД = Неопределено;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Если Открыта() Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтоговыеПоказателиПоступления(Форма)
ОтображатьИтогСуммыНДС = УчетНДСУПКлиентСервер.ОтображатьНДСВИтогахДокументаПродажи(Форма.Объект.НалогообложениеНДС);
Если ОтображатьИтогСуммыНДС Тогда
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоСНДС;
Иначе
Форма.Элементы.ГруппаСтраницыВсего.ТекущаяСтраница = Форма.Элементы.СтраницаВсегоБезНДС;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ИспользоватьРеглУчет = ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет");
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ИспользоватьНаправленияДеятельности = ПолучитьФункциональнуюОпцию("ИспользоватьУчетЗатратПоНаправлениямДеятельности");
ИспользоватьУчетПрослеживаемыхИмпортныхТоваров = УчетПрослеживаемыхТоваровЛокализация.ИспользоватьУчетПрослеживаемыхИмпортныхТоваров(
Объект.Дата);
КорректировкаОтчетаПереработчика = Ложь;
КорректировкаОтчетаПереработчика = (ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ОтчетПереработчика2_5"));
Если КорректировкаОтчетаПереработчика Тогда
РеквизитыДокументаОснования = РеквизитыДокументаОснования(Объект.ДокументОснование);
ПодразделениеОснования = РеквизитыДокументаОснования.Подразделение;
НаправлениеДеятельностиОснования = РеквизитыДокументаОснования.НаправлениеДеятельности;
ГруппировкаЗатратОснования = РеквизитыДокументаОснования.ГруппировкаЗатрат;
КонецЕсли;
СформироватьЗаголовокПоКорректировкеОтчетаПереработчику();
Операция = ХозяйственнаяОперацияДокументаОснования(Объект.ДокументОснование);
УстановитьХозяйственнуюОперациюДокумента(Объект.ДокументОснование);
УстановитьПредставлениеДокументаОснования();
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьОперацииСводнойКорректировкиЗадолженностиПоПриобретению") Тогда
СписокВыбораОпераций = Элементы.Операция.СписокВыбора;
УвеличениеЗадолженности = СписокВыбораОпераций.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно);
Если УвеличениеЗадолженности <> Неопределено
И Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно Тогда
СписокВыбораОпераций.Удалить(УвеличениеЗадолженности);
КонецЕсли;
УменьшениеЗадолженности = СписокВыбораОпераций.НайтиПоЗначению(
Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно);
Если УменьшениеЗадолженности <> Неопределено
И Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно Тогда
СписокВыбораОпераций.Удалить(УменьшениеЗадолженности);
КонецЕсли;
КонецЕсли;
УстановитьВидимостьЭлементовПоОснованию();
УстановитьДоступностьЭлементовПоСтатусуСервер();
УстановитьВидимостьПоЗаказам();
СкладГруппа = Справочники.Склады.ЭтоГруппаИСкладыИспользуютсяВТЧДокументовЗакупки(Объект.Склад);
Элементы.ГруппаКартинкаИНадписьНесколькоСкладов.Видимость = СкладГруппа;
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.КорректировкаПриобретения);
Элементы.ТоварыСерия.Видимость = ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям;
Элементы.РасхожденияСерия.Видимость = ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям;
ЗакупкиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.ГруппаДоговор.Видимость);
НастроитьОтображениеЭлементовПоИтогамРасхождений();
ПриИзмененииСкладаВТабличнойЧастиСервер();
Элементы.ТоварыЗаполнитьСкладВВыделенныхСтроках.Доступность = СкладГруппа;
КорректировкаПриобретенияУслугПрочихАктивов = (ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов"));
ОснованиеАктОРасхожденияхПослеПриемки = ЗначениеЗаполнено(Объект.АктОРасхожденияхПослеПриемкиОснование);
УстановитьПараметрыВыбораТоварыСклад();
УстановитьПараметрыВыбораНоменклатуры();
УстановитьПараметрыВыбораНомераГТДИКодаТНВЭД();
ЗакупкиСервер.УстановитьДоступностьДоговора(Объект, Элементы.Договор.Доступность, Элементы.ГруппаДоговор.Видимость);
ОтветственныеЛицаСервер.ЗаполнитьСписокВыбораМенеджера(Элементы.Менеджер, Объект);
ИспользоватьЗаказыВТабличнойЧасти = ПолучитьФункциональнуюОпцию("ИспользоватьПоступлениеПоНесколькимЗаказам");
ЗапретитьПоступлениеТоваровБезНомеровГТД = ПолучитьФункциональнуюОпцию("ЗапретитьПоступлениеТоваровБезНомеровГТД");
ОбновитьСлужебныеРеквизитыТабличныхЧастей();
ОбновитьТекстДокументыНаОсновании();
ОбновитьГруппыЗатрат();
УстановитьПараметрыВыбораЗаказаПоставщику();
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ПериодКорректировки = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
УстановитьПривилегированныйРежим(Истина);
ДатаОснования = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДокументОснование, "Дата");
УстановитьПривилегированныйРежим(Ложь);
КорректировкаПрошлогоПериода = ДатаОснования < НачалоМесяца(ПериодКорректировки);
Иначе
ДатаОснования = Объект.Дата;
КонецЕсли;
РасхожденияАктуальны = Истина;
ОбновитьОтклоненияОтЗаказа();
ВернутьМногооборотнуюТару = Ложь;
ТребуетсяЗалогЗаТару = Ложь;
Если ЗначениеЗаполнено(Объект.ДокументОснование)
И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
УстановитьПривилегированныйРежим(Истина);
ИменаСвойств = "ВернутьМногооборотнуюТару, ТребуетсяЗалогЗаТару, ХозяйственнаяОперация";
ЗначенияРеквизитовОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ДокументОснование, ИменаСвойств);
ВернутьМногооборотнуюТару = ЗначенияРеквизитовОбъекта.ВернутьМногооборотнуюТару;
ТребуетсяЗалогЗаТару = ЗначенияРеквизитовОбъекта.ТребуетсяЗалогЗаТару;
ХозяйственнаяОперацияДокументаОснования = ЗначенияРеквизитовОбъекта.ХозяйственнаяОперация;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
РаботаСТабличнымиЧастями.ИнициализироватьКэшСтрок(Элементы.Товары);
РаботаСТабличнымиЧастями.ИнициализироватьКэшСтрок(Элементы.Расхождения);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ОбновитьНадписиПоОперации();
УстановитьВидимостьПоОперации();
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
НаправленияДеятельностиСервер.ПриЧтенииСозданииНаСервере(ЭтотОбъект);
ЗаполнитьПризнакИспользуетсяДокументПоступлениеТоваров();
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(
Элементы.НалогообложениеНДС,
Объект.НалогообложениеНДС,
ПараметрыЗаполнения,
УчетНДСКэшированныеЗначенияПараметров);
ПараметрыЗаполнения = Документы.КорректировкаПриобретения.ПараметрыЗаполненияВидаДеятельностиНДС(Объект);
УчетНДСУП.ЗаполнитьСписокВыбораВидаДеятельностиНДС(
Элементы.ЗакупкаПодДеятельность,
Объект.ЗакупкаПодДеятельность,
ПараметрыЗаполнения,
УчетНДСКэшированныеЗначенияПараметров);
ТекущаяОрганизация = Объект.Организация;
ТекущаяВалюта = Объект.Валюта;
ТекущаяВалютаВзаиморасчетов = Объект.ВалютаВзаиморасчетов;
ТекущийКонтрагент = Объект.Контрагент;
ТекущийПартнер = Объект.Партнер;
ЗакупкиСервер.ЗаполнитьСписокВыбораНаименованиеВходящегоДокумента(ЭтотОбъект, Объект.Контрагент);
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставлениеДокументаОснования()
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
Если ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
ПредставлениеДокументаОснования = Строка(Объект.ДокументОснование) + " (" + Операция + ")";
Иначе
ПредставлениеДокументаОснования = Объект.ДокументОснование;
КонецЕсли;
Элементы.ПредставлениеДокументаОснования.ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
ИначеЕсли ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
ПредставлениеДокументаОснования = НСтр("ru='Приобретение товаров и услуг <не выбран>'");
Элементы.ПредставлениеДокументаОснования.ЦветТекста = ЦветаСтиля.ЦветОсобогоТекста;
ИначеЕсли ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов") Тогда
ПредставлениеДокументаОснования = НСтр("ru='Приобретение услуг и прочих активов <не выбран>'");
Элементы.ПредставлениеДокументаОснования.ЦветТекста = ЦветаСтиля.ЦветОсобогоТекста;
ИначеЕсли ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ОтчетПереработчика2_5") Тогда
ПредставлениеДокументаОснования = НСтр("ru='Отчет переработчика <не выбран>'");
Элементы.ПредставлениеДокументаОснования.ЦветТекста = ЦветаСтиля.ЦветОсобогоТекста;
Иначе
ПредставлениеДокументаОснования = НСтр("ru='Выберите документ-основание'");
Элементы.ПредставлениеДокументаОснования.ЦветТекста = ЦветаСтиля.ЦветОсобогоТекста;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.АктОРасхожденияхПослеПриемкиОснование) Тогда
ПредставлениеДокументаОснованияАктаОРасхождениях = Объект.АктОРасхожденияхПослеПриемкиОснование;
Элементы.ПредставлениеДокументаОснованияАктаОРасхождениях.ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
Иначе
Элементы.ТоварыЗаполнитьПоАктуОРасхождениях.Видимость = Ложь;
Элементы.ГруппаОснованияАктаОРасхождениях.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьЭлементовПоОснованию()
Перем МассивВсехРеквизитов;
Перем МассивРеквизитовОперации;
Документы.КорректировкаПриобретения.ЗаполнитьИменаРеквизитовПоОснованию(
Объект.ДокументОснование,
МассивВсехРеквизитов,
МассивРеквизитовОперации);
ДенежныеСредстваСервер.УстановитьВидимостьЭлементовПоМассиву(
Элементы,
МассивВсехРеквизитов,
МассивРеквизитовОперации);
ИспользуетсяКоличествоУпаковок = Элементы.ТоварыКоличествоУпаковок.Видимость;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыКоличество", "Видимость", НЕ ИспользуетсяКоличествоУпаковок);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыНазначение", "Видимость", НЕ КорректировкаОтчетаПереработчика);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыНоменклатураЕдиницаИзмерения", "Видимость", Элементы.ТоварыНоменклатура.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыПодобратьТовары", "Видимость", Элементы.ТоварыНоменклатура.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыЗаполнитьЦеныПоСоглашению", "Видимость", Элементы.ТоварыНоменклатура.Видимость И НЕ КорректировкаОтчетаПереработчика);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "РасхожденияКоличество", "Видимость", НЕ ИспользуетсяКоличествоУпаковок);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "РасхожденияНоменклатураЕдиницаИзмерения", "Видимость", Элементы.РасхожденияНоменклатура.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыЗаполнитьНоменклатуруПоНоменклатуреПартнера", "Видимость", Элементы.ТоварыНоменклатура.Видимость И НЕ КорректировкаОтчетаПереработчика);
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("КартинкаНесколькоСкладов");
МассивИменЭлементов.Добавить("НадписьНесколькоСкладов");
МассивИменЭлементов.Добавить("ТоварыЗаполнитьСкладВВыделенныхСтроках");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Элементы.ТоварыСклад.Видимость);
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("СуммаНаПрочиеРасходы");
МассивИменЭлементов.Добавить("ВалютаНаПрочиеРасходы");
МассивИменЭлементов.Добавить("ОтступНаПрочиеРасходы");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Элементы.СтатьяРасходов.Видимость);
МассивИменЭлементов = Новый Массив;
МассивИменЭлементов.Добавить("СуммаНаПрочиеДоходы");
МассивИменЭлементов.Добавить("ВалютаНаПрочиеДоходы");
МассивИменЭлементов.Добавить("ОтступНаПрочиеДоходы");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивИменЭлементов, "Видимость", Элементы.СтатьяДоходов.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыНомерГТДСтранаПроисхождения", "Видимость", Элементы.ТоварыНомерГТД.Видимость);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "РасхожденияНомерГТДСтранаПроисхождения", "Видимость", Элементы.РасхожденияНомерГТД.Видимость);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьЭлементовПоСтатусуСервер()
УстановитьПодписку = Объект.Согласован;
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("Дата");
МассивЭлементов.Добавить("Операция");
МассивЭлементов.Добавить("НалогообложениеНДС");
МассивЭлементов.Добавить("ЦенаВключаетНДС");
МассивЭлементов.Добавить("Товары;ПередНачаломДобавления,ПередУдалением,ПередНачаломИзменения");
МассивЭлементов.Добавить("Расхождения");
МассивЭлементов.Добавить("ТоварыОтвязатьОтЗаказа");
МассивЭлементов.Добавить("ТоварыКонтекстноеМенюОтвязатьОтЗаказа");
МассивЭлементов.Добавить("ТоварыЗаполнитьПоИсходнымДанным");
МассивЭлементов.Добавить("ТоварыПодобратьТовары");
МассивЭлементов.Добавить("ТоварыПодобратьТоварыИзЗаказа");
МассивЭлементов.Добавить("ТоварыРазбитьСтроку");
МассивЭлементов.Добавить("ТоварыЗаполнитьЦеныПоСоглашению");
МассивЭлементов.Добавить("ТоварыЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщика");
МассивЭлементов.Добавить("ТоварыЗаполнитьСкладВВыделенныхСтроках");
МассивЭлементов.Добавить("РасхожденияЗаполнитьРасхождения");
МассивЭлементов.Добавить("РасхожденияУстановитьВариантыОтражения");
ОбщегоНазначенияУТ.УстановитьПодпискуНаСобытияИзмененияЭлементовФормы(ЭтаФорма, МассивЭлементов, УстановитьПодписку);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыОтвязатьОтЗаказа", "Видимость", Объект.ПоступлениеПоЗаказам);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыКонтекстноеМенюОтвязатьОтЗаказа", "Видимость", Объект.ПоступлениеПоЗаказам);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПоЗаказам()
Если Объект.ПоступлениеПоЗаказам Тогда
Элементы.ТоварыДобавить.Заголовок = НСтр("ru='Добавить товары сверх заказа'");
Иначе
Элементы.ТоварыДобавить.Заголовок = НСтр("ru='Добавить'");
КонецЕсли;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ТоварыПодобратьТоварыИзЗаказа", "Видимость", Объект.ПоступлениеПоЗаказам И НЕ КорректировкаОтчетаПереработчика);
КонецПроцедуры
&НаСервере
Процедура НастроитьОтображениеЭлементовПоИтогамРасхождений()
СуммаНаПрочиеДоходы = 0;
СуммаНаПрочиеРасходы = 0;
ИтогСуммаСНДСУвеличение = 0;
ИтогСуммаСНДСУменьшение = 0;
ИтогСуммаНДСУвеличение = 0;
ИтогСуммаНДСУменьшение = 0;
СписатьНаРасходы = Ложь;
ОтразитьНаПрочихДоходах = Ложь;
Если Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно Тогда
РассчитатьИтоговыеСуммыПоТаблицеКорректировкаЗадолженности();
СписатьНаРасходы = Истина;
ОтразитьНаПрочихДоходах = Ложь;
ИначеЕсли Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно Тогда
РассчитатьИтоговыеСуммыПоТаблицеКорректировкаЗадолженности();
СписатьНаРасходы = Ложь;
ОтразитьНаПрочихДоходах = Истина;
Иначе
РассчитатьИтоговыеСуммыПоТаблицеРасхождения();
ОтразитьНаПрочихДоходах = (СуммаНаПрочиеДоходы > 0);
СписатьНаРасходы = (СуммаНаПрочиеРасходы > 0);
КонецЕсли;
ПараметрыДляВыбора = Новый Структура;
ПараметрыДляВыбора.Вставить("ХозяйственнаяОперация", Объект.ВидКорректировки);
ПараметрыДляВыбора.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыДляВыбора.Вставить("ОтразитьНаПрочихДоходах", ОтразитьНаПрочихДоходах);
ПараметрыДляВыбора.Вставить("СписатьНаРасходы", СписатьНаРасходы);
ПараметрыВыбораСтатейИАналитик = Документы.КорректировкаПриобретения.ПараметрыВыбораСтатейИАналитик(ПараметрыДляВыбора);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыВыбораСчетов = Документы.КорректировкаПриобретения.ПараметрыНастройкиСчетовУчета(ПараметрыДляВыбора);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыВыбораСчетов);
ТекстСуммаНаПрочиеРасходыАктивы = Элементы.ТекстСуммаНаПрочиеРасходыАктивы.Заголовок
+ " " + Строка(СуммаНаПрочиеРасходы) + " " + Строка(Объект.Валюта);
ТекстСуммаНаПрочиеДоходыПассивы = Элементы.ТекстСуммаНаПрочиеДоходыПассивы.Заголовок
+ " " + Строка(СуммаНаПрочиеДоходы) + " " + Строка(Объект.Валюта);
Элементы.ТекстСуммаНаПрочиеРасходыАктивы.Доступность = ЗначениеЗаполнено(СуммаНаПрочиеРасходы);
Элементы.ТекстСуммаНаПрочиеДоходыПассивы.Доступность = ЗначениеЗаполнено(СуммаНаПрочиеДоходы);
Элементы.УменьшитьСуммуНДСКВычету.Видимость = Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПоСогласованиюСторон
И (ИтогСуммаНДСУменьшение > 0 И ИтогСуммаНДСУвеличение = 0)
И Объект.ЗакупкаПодДеятельность <> Перечисления.ТипыНалогообложенияНДС.ПроизводствоСДЦ
И Объект.ЗакупкаПодДеятельность <> Перечисления.ТипыНалогообложенияНДС.Космос
И Объект.ЗакупкаПодДеятельность <> Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС
И Объект.ЗакупкаПодДеятельность <> Перечисления.ТипыНалогообложенияНДС.ПродажаПоПатенту;
КонецПроцедуры
&НаСервере
Процедура РассчитатьИтоговыеСуммыПоТаблицеРасхождения()
Для Каждого СтрокаРасхождений Из Объект.Расхождения Цикл
ИтогСуммаСНДСУвеличение = ИтогСуммаСНДСУвеличение + ?(СтрокаРасхождений.СуммаСНДС > 0, СтрокаРасхождений.СуммаСНДС, 0);
ИтогСуммаСНДСУменьшение = ИтогСуммаСНДСУменьшение + ?(СтрокаРасхождений.СуммаСНДС < 0, -СтрокаРасхождений.СуммаСНДС, 0);
ИтогСуммаНДСУвеличение = ИтогСуммаНДСУвеличение + ?(СтрокаРасхождений.СуммаНДС > 0, СтрокаРасхождений.СуммаНДС, 0);
ИтогСуммаНДСУменьшение = ИтогСуммаНДСУменьшение + ?(СтрокаРасхождений.СуммаНДС < 0, -СтрокаРасхождений.СуммаНДС, 0);
Если СтрокаРасхождений.ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах Тогда
СуммаНаПрочиеДоходы = СуммаНаПрочиеДоходы + ?(СтрокаРасхождений.СуммаСНДС<0, -СтрокаРасхождений.СуммаСНДС, СтрокаРасхождений.СуммаСНДС);
ИначеЕсли СтрокаРасхождений.ВариантОтражения = Перечисления.ВариантыОтраженияКорректировокПоступлений.СписатьНаРасходы
И Не СтрокаРасхождений.СписатьНаРасходы Тогда
СуммаНаПрочиеРасходы = СуммаНаПрочиеРасходы + ?(СтрокаРасхождений.СуммаСНДС<0, -СтрокаРасхождений.СуммаСНДС, СтрокаРасхождений.СуммаСНДС);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура РассчитатьИтоговыеСуммыПоТаблицеКорректировкаЗадолженности()
Для Каждого СтрокаТЧ Из Объект.КорректировкаЗадолженности Цикл
Если Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно Тогда
ИтогСуммаСНДСУменьшение = ИтогСуммаСНДСУменьшение + СтрокаТЧ.СуммаКорректировки;
ИтогСуммаНДСУменьшение = ИтогСуммаНДСУменьшение + СтрокаТЧ.СуммаНДСКорректировки;
СуммаНаПрочиеДоходы = СуммаНаПрочиеДоходы + СтрокаТЧ.СуммаКорректировки - СтрокаТЧ.СуммаНДСКорректировки;
ИначеЕсли Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно Тогда
ИтогСуммаСНДСУвеличение = ИтогСуммаСНДСУвеличение + СтрокаТЧ.СуммаКорректировки;
ИтогСуммаНДСУвеличение = ИтогСуммаНДСУвеличение + СтрокаТЧ.СуммаНДСКорректировки;
СуммаНаПрочиеРасходы = СуммаНаПрочиеРасходы + СтрокаТЧ.СуммаКорректировки - СтрокаТЧ.СуммаНДСКорректировки;
КонецЕсли
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьТекстДокументыНаОсновании()
ТекстыПоляДокументыНаОсновании.Очистить();
ПараметрыРегистрации = Документы.КорректировкаПриобретения.ПараметрыРегистрацииСчетовФактурПолученных(Объект);
СчетаФактурыПолученныеНаОсновании = УчетНДСУП.СчетаФактурыПолученныеНаОсновании(ПараметрыРегистрации);
ТекстСчетаФактурыПолученные = СчетаФактурыПолученныеНаОсновании.Представление;
ТекстыПоляДокументыНаОсновании.Добавить(ТекстСчетаФактурыПолученные);
ПараметрыРегистрацииУведомленийОВвозе = Документы.КорректировкаПриобретения.ПараметрыРегистрацииУведомленийОВвозеПрослеживаемыхТоваров(Объект);
УведомленияОВвозеНаОсновании = УчетПрослеживаемыхТоваровЛокализация.УведомленияОВвозеПрослеживаемыхТоваровПоДокументуПоступления(ПараметрыРегистрацииУведомленийОВвозе);
ТекстыПоляДокументыНаОсновании.Добавить(УведомленияОВвозеНаОсновании.ПредставлениеРаспоряженияКОформлению);
ТекстыПоляДокументыНаОсновании.Добавить(УведомленияОВвозеНаОсновании.ПредставлениеУведомленияОВвозе);
ОбщегоНазначенияУТКлиентСервер.ОбновитьТекстДокументыНаОсновании(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииСкладаВТабличнойЧастиСервер()
СкладыСервер.ПриИзмененииСкладаВТабличнойЧасти(Объект.Товары, ТаблицаСкладов, СкладГруппа, Ложь);
ВсегоСкладов = ТаблицаСкладов.Количество();
СкладыКлиентСервер.ОбновитьКартинкуГруппыСкладов(НадписьНесколькоСкладов, Элементы.КартинкаНесколькоСкладов, ВсегоСкладов);
КонецПроцедуры
&НаСервере
Процедура ОбновитьСлужебныеРеквизитыТабличныхЧастей()
ДействияДляЗаполнения = Новый Структура;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
Для Каждого СтрокаТовара Из Объект.Товары Цикл
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(СтрокаТовара);
КонецЦикла;
Иначе
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(ДействияДляЗаполнения);
КонецЕсли;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, ДействияДляЗаполнения);
ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ();
ОбновитьСлужебныеРеквизитыТабличнойЧастиРасхождения();
ОбновитьОтклоненияОтЗаказа();
КонецПроцедуры
&НаСервере
Процедура ОбновитьСлужебныеРеквизитыТабличнойЧастиРасхождения()
ДействияДляЗаполнения = Новый Структура;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(ДействияДляЗаполнения);
КонецЕсли;
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Расхождения, ДействияДляЗаполнения);
ДанныеСкладов = ПолучитьДанныеПоСкладам();
Для Каждого СтрокаРасхождений Из Объект.Расхождения Цикл
ДанныеСклада = ДанныеСкладов.Найти(СтрокаРасхождений.Склад);
Если ДанныеСклада <> Неопределено Тогда
СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = ДанныеСклада.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач;
КонецЕсли;
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(СтрокаРасхождений, Истина);
КонецЕсли;
КонецЦикла;
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Расхождения);
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораЗаказаПоставщику()
РеквизитыДокументаОснования = РеквизитыДокументаОснования(Объект.ДокументОснование);
МассивПараметров = Новый Массив;
УстановленЦенаВключаетНДС = Ложь;
УстановленНалогообложениеНДС = Ложь;
Для Каждого Параметр Из Элементы.ТоварыЗаказПоставщику.ПараметрыВыбора Цикл
Если Параметр.Имя = "Отбор.ЦенаВключаетНДС"
И Параметр.Значение <> РеквизитыДокументаОснования.ЦенаВключаетНДС Тогда
НовыйПараметр = Новый ПараметрВыбора(Параметр.Имя, РеквизитыДокументаОснования.ЦенаВключаетНДС);
МассивПараметров.Добавить(НовыйПараметр);
УстановленЦенаВключаетНДС = Истина;
ИначеЕсли Параметр.Имя = "Отбор.НалогообложениеНДС"
И Параметр.Значение <> РеквизитыДокументаОснования.НалогообложениеНДС Тогда
НовыйПараметр = Новый ПараметрВыбора(Параметр.Имя, РеквизитыДокументаОснования.НалогообложениеНДС);
МассивПараметров.Добавить(НовыйПараметр);
УстановленНалогообложениеНДС = Истина;
Иначе
МассивПараметров.Добавить(Параметр);
КонецЕсли;
КонецЦикла;
Если НЕ УстановленЦенаВключаетНДС Тогда
Параметр = Новый ПараметрВыбора("ЦенаВключаетНДС", РеквизитыДокументаОснования.ЦенаВключаетНДС);
МассивПараметров.Добавить(Параметр);
КонецЕсли;
Если НЕ УстановленНалогообложениеНДС Тогда
Параметр = Новый ПараметрВыбора("НалогообложениеНДС", РеквизитыДокументаОснования.НалогообложениеНДС);
МассивПараметров.Добавить(Параметр);
КонецЕсли;
Элементы.ТоварыЗаказПоставщику.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораДокументаОснованияСервер(ВыбранноеЗначение)
Модифицированность = Истина;
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(ВыбранноеЗначение);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
Объект.ДокументОснование = ВыбранноеЗначение;
ПриЧтенииСозданииНаСервере();
УстановитьВидимостьКоличестваРНПТ();
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПодбораТоваровИзЗаказа(АдресТоваровВХранилище)
ТоварыИзХранилища = ПолучитьИзВременногоХранилища(АдресТоваровВХранилище);
СтруктураПоискаТоваров = Новый Структура("КодСтроки,ЗаказПоставщику");
Для Каждого СтрокаТоваров Из ТоварыИзХранилища Цикл
СтруктураПоискаТоваров.КодСтроки = СтрокаТоваров.КодСтроки;
СтруктураПоискаТоваров.ЗаказПоставщику = СтрокаТоваров.ЗаказПоставщику;
МассивСтрокТЧТовары = Объект.Товары.НайтиСтроки(СтруктураПоискаТоваров);
Если МассивСтрокТЧТовары.Количество() = 0 Тогда
СтрокаТЧТовары = Объект.Товары.Добавить();
ИначеЕсли МассивСтрокТЧТовары.Количество() = 1 Тогда
СтрокаТЧТовары = МассивСтрокТЧТовары[0];
ИначеЕсли МассивСтрокТЧТовары.Количество() > 1 Тогда
Для Каждого СтрокаКУдалению Из МассивСтрокТЧТовары Цикл
Объект.Товары.Удалить(СтрокаКУдалению);
КонецЦикла;
СтрокаТЧТовары = Объект.Товары.Добавить();
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаТЧТовары, СтрокаТоваров);
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаТЧТовары, "Объект.Товары");
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(СтрокаТоваров);
КонецЕсли;
КонецЦикла;
ДействияДляЗаполнения = Новый Структура;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(ДействияДляЗаполнения);
КонецЕсли;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, ДействияДляЗаполнения);
ЗаполнитьПризнакСписанияНаРасходыДляУслуг();
ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ();
ПриИзмененииСкладаВТабличнойЧастиСервер();
РасхожденияАктуальны = Ложь;
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСделкуПоЗаказуПоставщику(ЗаказПоставщику)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗаказПоставщику, "Сделка");
КонецФункции
&НаСервереБезКонтекста
Функция РеквизитыДокументаОснования(ДокументОснование)
РеквизитыОснования = Новый Структура;
РеквизитыОснования.Вставить("ЦенаВключаетНДС");
РеквизитыОснования.Вставить("НалогообложениеНДС");
Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ОтчетПереработчика2_5") Тогда
РеквизитыОснования.Вставить("Подразделение");
РеквизитыОснования.Вставить("НаправлениеДеятельности");
РеквизитыОснования.Вставить("ГруппировкаЗатрат");
КонецЕсли;
Если ЗначениеЗаполнено(ДокументОснование)
И ТипЗнч(ДокументОснование) <> Тип("ДокументСсылка.ПервичныйДокумент") Тогда
РеквизитыОснования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументОснование, РеквизитыОснования);
КонецЕсли;
Возврат РеквизитыОснования;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, Форма)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму", "Количество");
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, Форма)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Форма.Объект,
СтруктураДействий,
"Склад",
Истина);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПроверитьНаличиеКорректировок(Ссылка, Основание, ЕстьКорректировки)
ЗакупкиСервер.ПроверитьНаличиеКорректировокИСчетовФактур(Ссылка, Основание, ЕстьКорректировки, Неопределено);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьНаличиеИсправленийПослеДатыДокумента(Документ)
ИменаРеквизитов = "Дата, ВидКорректировки, ДокументОснование, ИсправляемыйДокумент";
РеквизитыДокумента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Документ, ИменаРеквизитов);
ПараметрыПроверки = РегистрыСведений.ИсправленияДокументов.ПараметрыПроверкиИсправленияДокументов();
ПараметрыПроверки.Ссылка = Документ;
ПараметрыПроверки.Дата = РеквизитыДокумента.Дата;
ПараметрыПроверки.ИсправляемыйДокумент = Документы.КорректировкаПриобретения.ИсправляемыйДокумент(РеквизитыДокумента);
УстановитьПривилегированныйРежим(Истина);
Исправление = ИсправлениеДокументов.ИсправлениеПослеДатыДокумента(ПараметрыПроверки);
Исправление = ?(ЗначениеЗаполнено(Исправление), Строка(Исправление), "");
Возврат Исправление;
КонецФункции
&НаКлиенте
Процедура СообщитьОбОшибкахОткрытияПодбора(Отказ)
Если Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Валюта"" не заполнено'"), Объект.Ссылка, "Объект.Валюта",,Отказ);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
Заказ = Неопределено;
РасхождениеЗаказ = 0;
Если Объект.ПоступлениеПоЗаказам Тогда
РасхождениеЗаказ = 1;
КонецЕсли;
Если Объект.ПоступлениеПоЗаказам
Или КорректировкаПриобретенияУслугПрочихАктивов Тогда
Для Каждого ТекущаяСтрока Из Объект.Товары Цикл
Если Объект.ПоступлениеПоЗаказам Тогда
Если ЗначениеЗаполнено(Заказ)
И Не ТекущаяСтрока.ЗаказПоставщику = Заказ Тогда
Заказ = Неопределено;
Прервать;
Иначе
Заказ = ТекущаяСтрока.ЗаказПоставщику;
КонецЕсли;
КонецЕсли;
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
КонецЕсли;
КонецЦикла;
КонецЕсли;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
ПараметрыЗаполненияСтавкиНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполненияСтавкиНДС.УказаннаяСтавкаНДС = УказаннаяСтавкаНДС;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполненияСтавкиНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", ВернутьМногооборотнуюТару);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтотОбъект);
ОбрабатываемыеСтроки = Новый Массив();
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
ТекущаяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(
ТекущаяСтрока,
СтрокаТовара,
"НоменклатураПартнера, Номенклатура, Характеристика, Упаковка, Склад, Цена, КоличествоУпаковок");
Если ЗначениеЗаполнено(Заказ)
И Не ЗначениеЗаполнено(ТекущаяСтрока.ЗаказПоставщику) Тогда
ТекущаяСтрока.ЗаказПоставщику = Заказ;
КонецЕсли;
ТекущаяСтрока.РасхождениеЗаказ = РасхождениеЗаказ;
Если КорректировкаОтчетаПереработчика Тогда
ТекущаяСтрока.Подразделение = ПодразделениеОснования;
ТекущаяСтрока.НаправлениеДеятельности = НаправлениеДеятельностиОснования;
КонецЕсли;
УстановитьНомерГруппыЗатратПоУмолчанию(ТекущаяСтрока.ПолучитьИдентификатор());
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары);
Для каждого ТекущаяСтрока Из ОбрабатываемыеСтроки Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "Объект.Товары");
КонецЦикла;
ЗаполнитьПризнакСписанияНаРасходыДляУслуг();
ПриИзмененииСкладаВТабличнойЧастиСервер();
РасхожденияАктуальны = Ложь;
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
КонецПроцедуры
&НаСервере
Процедура ОбновитьОтклоненияОтЗаказа()
Для Каждого ТекСтрока Из Объект.Товары Цикл
ОбновитьОтклоненияОтЗаказаВСтроке(ТекСтрока, Объект.ПоступлениеПоЗаказам);
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьОтклоненияОтЗаказаВСтроке(ТекущаяСтрока, ПоступлениеПоЗаказам)
Если ПоступлениеПоЗаказам Тогда
Если ТекущаяСтрока.КодСтроки = 0 Тогда
ТекущаяСтрока.РасхождениеЗаказ = 1;
Иначе
ТекущаяСтрока.РасхождениеЗаказ = 0;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтвязатьОтЗаказа(Команда)
ВыделенныеСтроки = Элементы.Товары.ВыделенныеСтроки;
Если ВыделенныеСтроки.Количество()>0 Тогда
Для каждого ТекСтрока Из ВыделенныеСтроки Цикл
СтрокаТаблицы = Объект.Товары.НайтиПоИдентификатору(ТекСтрока);
СтрокаТаблицы.КодСтроки = 0;
СтрокаТаблицы.РасхождениеЗаказ = 1;
КонецЦикла;
ОповеститьОбОкончанииОтвязкиСтрок(ВыделенныеСтроки.Количество());
Иначе
ТекстПредупреждения = НСтр("ru='Выберите строки, которые необходимо отвязать от заказа.'");
ПоказатьПредупреждение(Неопределено, ТекстПредупреждения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПользователюПриИзмененииРеквизитаСтроки(ОписаниеОповещения, ТекущаяСтрока)
Если ТекущаяСтрока.КодСтроки = 0 Тогда
ВыполнитьОбработкуОповещения(ОписаниеОповещения, Истина);
Возврат;
КонецЕсли;
Если ТекущаяСтрока.Номенклатура = ПредыдущиеРеквизитыСтроки.Номенклатура
И ТекущаяСтрока.Характеристика = ПредыдущиеРеквизитыСтроки.Характеристика
И ТекущаяСтрока.Назначение = ПредыдущиеРеквизитыСтроки.Назначение
И ТекущаяСтрока.Склад = ПредыдущиеРеквизитыСтроки.Склад Тогда
ВыполнитьОбработкуОповещения(ОписаниеОповещения, Истина);
Возврат;
КонецЕсли;
ДополнительныеПараметры = ДополнительныеПараметрыОбработкиЗавершения();
ДополнительныеПараметры.ТекущаяСтрока = ТекущаяСтрока;
ДополнительныеПараметры.ОписаниеОповещения = ОписаниеОповещения;
ТекстВопроса = НСтр("ru='Редактируемая строка перестанет быть связанной со строкой заказа. Продолжить?'");
ПоказатьВопрос(
Новый ОписаниеОповещения("ВопросПользователюПриИзмененииРеквизитаСтрокиВопросЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТекстВопроса,
РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ВопросПользователюПриИзмененииРеквизитаСтрокиВопросЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ = КодВозвратаДиалога.Да Тогда
ДополнительныеПараметры.ТекущаяСтрока.КодСтроки = 0;
ОбновитьОтклоненияОтЗаказаВСтроке(ДополнительныеПараметры.ТекущаяСтрока, Объект.ПоступлениеПоЗаказам);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОписаниеОповещения, Истина);
Иначе
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры.ТекущаяСтрока, ПредыдущиеРеквизитыСтроки);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОписаниеОповещения, Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОповеститьОбОкончанииОтвязкиСтрок(КоличествоОтработанныхСтрок, СтрокиОтвязаны = Истина)
Если СтрокиОтвязаны Тогда
ТекстОповещения = НСтр("ru='В документе от заказов отвязано строк (%%Количество%%).'");
ТекстОповещения = СтрЗаменить(ТекстОповещения, "%%Количество%%", КоличествоОтработанныхСтрок);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Строки отвязаны'"),
,
ТекстОповещения,
БиблиотекаКартинок.Информация32);
Иначе
ПоказатьОповещениеПользователя(
НСтр("ru = 'Строки не отвязаны'"),
,
НСтр("ru='Ни одна строка не была отвязана.'"),
БиблиотекаКартинок.Информация32);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьДанныеПоСкладам()
СкладыРасхождений = Объект.Расхождения.Выгрузить(,"Склад");
СкладыРасхождений.Свернуть("Склад");
СкладыРасхождений.Колонки.Добавить("ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач",
Новый ОписаниеТипов("Булево"));
Для Каждого Стр Из СкладыРасхождений Цикл
Если ЗначениеЗаполнено(Стр.Склад) Тогда
Стр.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач = СкладыСервер.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач(Стр.Склад, Объект.Дата);
КонецЕсли;
КонецЦикла;
Возврат СкладыРасхождений;
КонецФункции
&НаСервере
Функция ПоместитьТоварыВоВременноеХранилищеСервер(ИмяКоллекции)
Возврат ЗакупкиСервер.ПоместитьТоварыВоВременноеХранилище(Объект[ИмяКоллекции]);
КонецФункции
&НаСервере
Процедура ЗаполнитьТоварыИзВременногоХранилищаСервер(АдресВоВременномХранилище)
ТаблицаТоваров = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище);
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.УказаннаяСтавкаНДС = УказаннаяСтавкаНДС;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
СтруктураДействий.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(СтруктураДействий);
КонецЕсли;
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", ВернутьМногооборотнуюТару);
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьЦенуЗакупки", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныЗакупкиВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ОбрабатываемыеСтроки = Новый Массив();
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтотОбъект, СтруктураДействий);
Для каждого ТекСтрока Из ТаблицаТоваров Цикл
МассивСтрокКоллекции = Объект.Товары.НайтиСтроки(Новый Структура("НомерСтроки", ТекСтрока.НомерСтроки));
Если МассивСтрокКоллекции.Количество() <> 1 Тогда
Продолжить;
Иначе
СтрокаКоллекции = МассивСтрокКоллекции[0];
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаКоллекции, ТекСтрока, "Номенклатура, Характеристика, Упаковка");
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекСтрока);
КонецЕсли;
ОбрабатываемыеСтроки.Добавить(СтрокаКоллекции);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
ПриИзмененииСкладаВТабличнойЧастиСервер();
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПризнакСписанияНаРасходыДляУслуг()
КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
СтруктураДействий = Новый Структура;
ОбрабатываемыеСтроки = Новый Массив();
ДоходыИРасходыКлиентСервер.ВставитьДействиеЗаполнитьСтатьюАналитикуРасходовНоменклатуры(
СтруктураДействий,
ЭтотОбъект,
Объект.ВидКорректировки,
Объект.Организация,
Объект.Подразделение);
СтруктураОтбора = Новый Структура("ТипНоменклатуры", Перечисления.ТипыНоменклатуры.Услуга);
НайденныеСтроки = Объект.Товары.НайтиСтроки(СтруктураОтбора);
Для Каждого Строка Из НайденныеСтроки Цикл
Строка.СписатьНаРасходы = Истина;
ОбрабатываемыеСтроки.Добавить(Строка);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
Для Каждого Строка Из НайденныеСтроки Цикл
ДоходыИРасходыКлиентСервер.ПриИзмененииРеквизитаДоступностиСтатьиВСтроке(ЭтотОбъект, Строка, "Объект.Товары");
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СформироватьЗаголовокПоКорректировкеОтчетаПереработчику()
Если КорректировкаОтчетаПереработчика Тогда
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
АвтоЗаголовок = Ложь;
Заголовок = НСтр("ru = 'Корректировка отчета переработчика (создание)'");
Иначе
Заголовок = "";
АвтоЗаголовок = Истина;
КонецЕсли;
Элементы.Партнер.Заголовок = НСтр("ru = 'Переработчик'");
Элементы.Склад.Видимость = Ложь;
Элементы.Соглашение.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьРезультатВыбораНоменклатурыПартнера(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры.ТекущаяСтрока.НоменклатураПартнера = ВыбранноеЗначение;
ТоварыНоменклатураПартнераПриИзменении(ДополнительныеПараметры.ЭлементФормы);
КонецПроцедуры
&НаСервере
Процедура ОбновитьНадписиПоОперации()
Если Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно Тогда
Элементы.ГруппаКорректировкаЗадолженности.Заголовок = НСтр("ru='Уменьшение задолженности'");
Элементы.КорректировкаЗадолженностиСуммаКорректировки.Заголовок = НСтр("ru='Сумма уменьшения'");
Элементы.КорректировкаЗадолженностиСуммаНДСКорректировки.Заголовок = НСтр("ru='Сумма НДС уменьшения'");
ИначеЕсли Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно Тогда
Элементы.ГруппаКорректировкаЗадолженности.Заголовок = НСтр("ru='Увеличение задолженности'");
Элементы.КорректировкаЗадолженностиСуммаКорректировки.Заголовок = НСтр("ru='Сумма увеличения'");
Элементы.КорректировкаЗадолженностиСуммаНДСКорректировки.Заголовок = НСтр("ru='Сумма НДС увеличения'");
Иначе
Элементы.ГруппаКорректировкаЗадолженности.Заголовок = НСтр("ru='Корректировка задолженности'");
Элементы.КорректировкаЗадолженностиСуммаКорректировки.Заголовок = НСтр("ru='Сумма корректировки'");
Элементы.КорректировкаЗадолженностиСуммаНДСКорректировки.Заголовок = НСтр("ru='Сумма НДС корректировки'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПоОперации()
ВидимостьТовары =
Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно
И Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно;
Элементы.ГруппаТовары.Видимость = ВидимостьТовары;
ВидимостьЭлементов =
Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно
И Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно;
Элементы.ГруппаРасхождения.Видимость = ВидимостьЭлементов;
ЕстьИтоговыеСуммыРасхожденийУвеличение =
Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно;
ЕстьИтоговыеСуммыРасхожденийУменьшение =
Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно;
Элементы.ИтогСуммаСНДСУвеличение.Видимость = ЕстьИтоговыеСуммыРасхожденийУвеличение;
Элементы.ИтогСуммаСНДСУменьшение.Видимость = ЕстьИтоговыеСуммыРасхожденийУменьшение;
Элементы.ИтогСуммаВсегоУвеличениеБезНДС.Видимость = ЕстьИтоговыеСуммыРасхожденийУвеличение;
Элементы.ИтогСуммаВсегоУменьшениеБезНДС.Видимость = ЕстьИтоговыеСуммыРасхожденийУменьшение;
Элементы.ИтогСуммаНДСУвеличение.Видимость = ЕстьИтоговыеСуммыРасхожденийУвеличение;
Элементы.ИтогСуммаНДСУменьшение.Видимость = ЕстьИтоговыеСуммыРасхожденийУменьшение;
ЕстьИтоговыеСумма =
Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно
И Объект.ВидКорректировки <> Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно;
Элементы.СуммаВсегоСНДС.Видимость = ЕстьИтоговыеСумма;
Элементы.ГруппаСуммаВсегоНДС.Видимость = ЕстьИтоговыеСумма;
Элементы.ГруппаСуммаВсегоБезНДС.Видимость = ЕстьИтоговыеСумма;
ЭтоКорректировкаЗадолженности =
Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно
ИЛИ Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно;
Элементы.ГруппаКорректировкаЗадолженности.Видимость = ЭтоКорректировкаЗадолженности;
Элементы.Партнер.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.Контрагент.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.Организация.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.Договор.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.НалогообложениеНДС.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.ЗакупкаПодДеятельность.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.Подразделение.ТолькоПросмотр = Не ЭтоКорректировкаЗадолженности;
Элементы.Склад.Видимость = Не ЭтоКорректировкаЗадолженности;
Элементы.ПредставлениеДокументаОснования.Видимость = Не ЭтоКорректировкаЗадолженности;
Элементы.ЦенаВключаетНДС.Видимость = Не ЭтоКорректировкаЗадолженности;
Элементы.Соглашение.Видимость = Не ЭтоКорректировкаЗадолженности;
Элементы.Договор.Видимость = Не ЭтоКорректировкаЗадолженности;
ЭтоУвеличениеЗадолженности =
Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУвеличениеЗадолженностиСводно;
Элементы.ГруппаПрочиеРасходыАктивыКорректировкаЗадолженности.Видимость = ЭтоУвеличениеЗадолженности;
ЭтоУменьшениеЗадолженности =
Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.КорректировкаПриобретенияУменьшениеЗадолженностиСводно;
Элементы.ГруппаПрочиеДоходыПассивыКорректировкаЗадолженности.Видимость = ЭтоУменьшениеЗадолженности;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаИсправляемыйДокумент",
"Видимость", ЗначениеЗаполнено(ОБъект.ДокументОснование) И Объект.ВидКорректировки = Перечисления.ХозяйственныеОперации.ИсправлениеОшибок);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция УправлениеВариантамиОтражения()
НастройкиВариантовОтражения = Новый Структура();
НастройкиВариантовОтражения.Вставить("ИмяТЧ", "Расхождения");
НастройкиВариантовОтражения.Вставить("СписокВариантовДляВыбора", Новый Массив);
НастройкиВариантовОтражения.Вставить("ИмяСвойстваДляРезультатаВыбора", Неопределено);
НастройкиВариантовОтражения.Вставить("ЕстьСтрокиДляИзменения", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьВариантИзмененияОтражения", Ложь);
НастройкиВариантовОтражения.Вставить("ВыборВариантаИнтерактивно", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеКоличестваПоОрдерномуСкладу", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеКоличестваБезИнвентаризации", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеКоличестваПоОрдерномуСкладу", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеКоличестваБезИнвентаризации", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеТолькоКоличестваПоОрдерномуСкладу", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеТолькоКоличестваБезИнвентаризации", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеТолькоКоличестваПоОрдерномуСкладу", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеТолькоКоличестваБезИнвентаризации", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеСуммы", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеСуммы", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеТолькоКоличества", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеТолькоКоличества", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУвеличениеСуммыТовараТары", Ложь);
НастройкиВариантовОтражения.Вставить("ЕстьУменьшениеСуммыТовараТары", Ложь);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУвеличениеКоличестваПоОрдерномуСкладу", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУвеличениеКоличестваБезИнвентаризации", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУменьшениеКоличестваПоОрдерномуСкладу", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУменьшениеКоличестваБезИнвентаризации", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУвеличениеТолькоКоличестваПоОрдерномуСкладу", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУвеличениеТолькоКоличестваБезИнвентаризации", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУменьшениеТолькоКоличестваПоОрдерномуСкладу", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУменьшениеТолькоКоличестваБезИнвентаризации", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУменьшениеСуммы", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУвеличениеСуммы", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУменьшениеТолькоКоличества", Неопределено);
НастройкиВариантовОтражения.Вставить("ВариантОтраженияУвеличениеТолькоКоличества", Неопределено);
Возврат НастройкиВариантовОтражения;
КонецФункции
&НаКлиенте
Процедура ОпределитьГруппыВариантовОтраженияДляВыбора(ТаблицаРасхождений, НастройкиВариантовОтражения)
Для Каждого СтрокаРасхождений Из ТаблицаРасхождений Цикл
Если (СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))
И НЕ СтрокаРасхождений.СписатьНаРасходы Тогда
Если СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС <> 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеКоличестваПоОрдерномуСкладу = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС <> 0
И НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеКоличестваБезИнвентаризации = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС <> 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеКоличестваПоОрдерномуСкладу = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС <> 0
И НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеКоличестваБезИнвентаризации = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС = 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеТолькоКоличестваПоОрдерномуСкладу = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС = 0
И НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеТолькоКоличестваБезИнвентаризации = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС = 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеТолькоКоличестваПоОрдерномуСкладу = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС = 0
И НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеТолькоКоличестваБезИнвентаризации = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок = 0 И СтрокаРасхождений.СуммаСНДС < 0 Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеСуммы = Истина;
НастройкиВариантовОтражения.ЕстьУменьшениеСуммыТовараТары = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок = 0 И СтрокаРасхождений.СуммаСНДС > 0 Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеСуммы = Истина;
НастройкиВариантовОтражения.ЕстьУвеличениеСуммыТовараТары = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
КонецЕсли;
КонецЕсли;
Если (СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.ПустаяСсылка"))
Или (СтрокаРасхождений.СписатьНаРасходы И
(СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))) Тогда
Если СтрокаРасхождений.СуммаСНДС < 0 Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеСуммы = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.СуммаСНДС > 0 Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеСуммы = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 Тогда
НастройкиВариантовОтражения.ЕстьУменьшениеТолькоКоличества = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 Тогда
НастройкиВариантовОтражения.ЕстьУвеличениеТолькоКоличества = Истина;
НастройкиВариантовОтражения.ЕстьСтрокиДляИзменения = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьВариантыОтраженийДляГрупп(НастройкиВариантовОтражения)
Если НастройкиВариантовОтражения.ЕстьУвеличениеКоличестваПоОрдерномуСкладу Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если Не ОснованиеАктОРасхожденияхПослеПриемки Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.СписатьНаРасходы"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУчестьПриИнвентаризации"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУвеличениеКоличестваПоОрдерномуСкладу", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУвеличениеКоличестваБезИнвентаризации Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если Не ОснованиеАктОРасхожденияхПослеПриемки Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.СписатьНаРасходы"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьСкладскиеОстатки"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУвеличениеКоличестваБезИнвентаризации", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУменьшениеКоличестваПоОрдерномуСкладу Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если Не ОснованиеАктОРасхожденияхПослеПриемки Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУчестьПриИнвентаризации"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУменьшениеКоличестваПоОрдерномуСкладу", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУменьшениеКоличестваБезИнвентаризации Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если Не ОснованиеАктОРасхожденияхПослеПриемки Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьСкладскиеОстатки"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУменьшениеКоличестваБезИнвентаризации", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУвеличениеТолькоКоличестваПоОрдерномуСкладу Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУчестьПриИнвентаризации"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУвеличениеТолькоКоличестваПоОрдерномуСкладу", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУвеличениеТолькоКоличестваБезИнвентаризации Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьСкладскиеОстатки"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУвеличениеТолькоКоличестваБезИнвентаризации", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУменьшениеТолькоКоличестваПоОрдерномуСкладу Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУчестьПриИнвентаризации"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУменьшениеТолькоКоличестваПоОрдерномуСкладу", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУменьшениеТолькоКоличестваБезИнвентаризации Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если ИспользуетсяДокументПоступлениеТоваров Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьСкладскиеОстатки"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУменьшениеТолькоКоличестваБезИнвентаризации", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУменьшениеСуммы Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если Не ОснованиеАктОРасхожденияхПослеПриемки Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.ОтразитьНаПрочихДоходах"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров
И НастройкиВариантовОтражения.ЕстьУменьшениеСуммыТовараТары Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьЗакупкуУменьшитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьСтоимостьТовара"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУменьшениеСуммы", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУвеличениеСуммы Тогда
СписокВариантовОтражения = Новый СписокЗначений;
Если Не ОснованиеАктОРасхожденияхПослеПриемки Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.СписатьНаРасходы"));
КонецЕсли;
Если ИспользуетсяДокументПоступлениеТоваров
И НастройкиВариантовОтражения.ЕстьУвеличениеСуммыТовараТары Тогда
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьЗакупкуУвеличитьТоварыУПартнеров"));
Иначе
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьСтоимостьТовара"));
КонецЕсли;
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУвеличениеСуммы", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУменьшениеТолькоКоличества Тогда
СписокВариантовОтражения = Новый СписокЗначений;
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УменьшитьСтоимостьТовара"));
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУменьшениеТолькоКоличества", СписокВариантовОтражения));
КонецЕсли;
Если НастройкиВариантовОтражения.ЕстьУвеличениеТолькоКоличества Тогда
СписокВариантовОтражения = Новый СписокЗначений;
СписокВариантовОтражения.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОтраженияКорректировокПоступлений.УвеличитьСтоимостьТовара"));
НастройкиВариантовОтражения.СписокВариантовДляВыбора.Добавить(Новый Структура("ИмяСвойстваДляРезультатаВыбора, СписокВариантовОтражения", "ВариантОтраженияУвеличениеТолькоКоличества", СписокВариантовОтражения));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийФрагмент(ДополнительныеПараметры);
Если ДополнительныеПараметры.СписокВариантовДляВыбора.Количество() > 0 Тогда
СписокВариантовОтражения = ДополнительныеПараметры.СписокВариантовДляВыбора[0].СписокВариантовОтражения;
СтруктураОтбор = Новый Структура("Ссылка", СписокВариантовОтражения);
ДополнительныеПараметры.ИмяСвойстваДляРезультатаВыбора = ДополнительныеПараметры.СписокВариантовДляВыбора[0].ИмяСвойстваДляРезультатаВыбора;
ДополнительныеПараметры.СписокВариантовДляВыбора.Удалить(0);
Если СписокВариантовОтражения.Количество() > 1 Тогда
Если ДополнительныеПараметры.ВыборВариантаИнтерактивно Тогда
ОткрытьФорму(
"Перечисление.ВариантыОтраженияКорректировокПоступлений.ФормаВыбора",
Новый Структура("Отбор, ИмяСвойстваДляРезультатаВыбора", СтруктураОтбор, ДополнительныеПараметры.ИмяСвойстваДляРезультатаВыбора),,,,,
Новый ОписаниеОповещения("ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийЗавершение", ЭтотОбъект, ДополнительныеПараметры), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Возврат;
Иначе
ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийЗавершение(Неопределено, ДополнительныеПараметры);
КонецЕсли;
Иначе
ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийЗавершение(СписокВариантовОтражения[0].Значение, ДополнительныеПараметры);
КонецЕсли;
Иначе
УстановитьВариантыОтраженияЗавершение(ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийЗавершение(ВариантОтражения, ДополнительныеПараметры) Экспорт
ИмяСвойстваДляРезультатаВыбора = Неопределено;
Если ДополнительныеПараметры.Свойство("ИмяСвойстваДляРезультатаВыбора", ИмяСвойстваДляРезультатаВыбора) Тогда
ДополнительныеПараметры[ИмяСвойстваДляРезультатаВыбора] = ВариантОтражения;
ДополнительныеПараметры.ЕстьВариантИзмененияОтражения = Истина;
КонецЕсли;
ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийФрагмент(ДополнительныеПараметры);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьВариантыОтраженияЗавершение(НастройкиВариантовОтражения)
Если НастройкиВариантовОтражения.ЕстьВариантИзмененияОтражения Тогда
Для Каждого СтрокаРасхождений Из Объект.Расхождения Цикл
Если (СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))
И Не СтрокаРасхождений.СписатьНаРасходы Тогда
Если СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС <> 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеКоличестваПоОрдерномуСкладу) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеКоличестваПоОрдерномуСкладу;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС <> 0
И (НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач)
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеКоличестваБезИнвентаризации) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеКоличестваБезИнвентаризации;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС <> 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеКоличестваПоОрдерномуСкладу) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеКоличестваПоОрдерномуСкладу;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС <> 0
И (НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач)
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеКоличестваБезИнвентаризации) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеКоличестваБезИнвентаризации;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС = 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеТолькоКоличестваПоОрдерномуСкладу) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеТолькоКоличестваПоОрдерномуСкладу;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0 И СтрокаРасхождений.СуммаСНДС = 0
И (НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач)
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеТолькоКоличестваБезИнвентаризации) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеТолькоКоличестваБезИнвентаризации;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС = 0
И СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеТолькоКоличестваПоОрдерномуСкладу) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеТолькоКоличестваПоОрдерномуСкладу;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0 И СтрокаРасхождений.СуммаСНДС = 0
И (НЕ СтрокаРасхождений.ИспользоватьОрдернуюСхемуПриОтраженииИзлишковНедостач)
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеТолькоКоличестваБезИнвентаризации) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеТолькоКоличестваБезИнвентаризации;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок = 0
И СтрокаРасхождений.СуммаСНДС < 0
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеСуммы) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеСуммы;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок = 0
И СтрокаРасхождений.СуммаСНДС > 0
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеСуммы) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеСуммы;
КонецЕсли;
КонецЕсли;
Если (СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Услуга")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Работа")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.ПустаяСсылка"))
Или (СтрокаРасхождений.СписатьНаРасходы И
(СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар")
Или СтрокаРасхождений.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.МногооборотнаяТара"))) Тогда
Если СтрокаРасхождений.СуммаСНДС < 0
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеСуммы) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеСуммы;
ИначеЕсли СтрокаРасхождений.СуммаСНДС > 0
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеСуммы) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеСуммы;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок < 0
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУменьшениеТолькоКоличества) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУменьшениеТолькоКоличества;
ИначеЕсли СтрокаРасхождений.КоличествоУпаковок > 0
И ЗначениеЗаполнено(НастройкиВариантовОтражения.ВариантОтраженияУвеличениеТолькоКоличества) Тогда
СтрокаРасхождений.ВариантОтражения = НастройкиВариантовОтражения.ВариантОтраженияУвеличениеТолькоКоличества;
КонецЕсли;
КонецЕсли;
КонецЦикла;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НастроитьЭлементыИсправляемогоДокумента()
ОтображаетсяИсправляемыйДокумент = Элементы.ГруппаИсправляемыйДокумент.Видимость;
Если НЕ ОтображаетсяИсправляемыйДокумент Тогда
Возврат;
КонецЕсли;
ЗаполненИсправляемыйДокумент = ЗначениеЗаполнено(Объект.ИсправляемыйДокумент);
ШиринаЭлементаИсправляемыйДокумент = 0;
ЦветТекстаИзменитьИсправляемыйДокумент = Новый Цвет;
Если ЗаполненИсправляемыйДокумент Тогда
ШиринаЭлементаИсправляемыйДокумент = 15;
Иначе
ШиринаЭлементаИсправляемыйДокумент = 22;
ЦветТекстаИзменитьИсправляемыйДокумент = ЦветаСтиля.ЦветОсобогоТекста;
КонецЕсли;
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПредставлениеИсправляемогоДокумента",
"Ширина", ШиринаЭлементаИсправляемыйДокумент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПредставлениеИсправляемогоДокумента",
"ЦветТекста", ЦветТекстаИзменитьИсправляемыйДокумент);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ИзменитьИсправляемыйДокумент",
"Видимость", ЗаполненИсправляемыйДокумент);
КонецПроцедуры
&НаСервере
Процедура ОбновитьПредставлениеЭлементыИсправляемогоДокумента()
ПредставлениеИсправляемогоДокумента = ИсправлениеДокументов.ПредставлениеИсправляемогоДокумента(Объект.ИсправляемыйДокумент);
Если НЕ ЗначениеЗаполнено(ПредставлениеИсправляемогоДокумента) Тогда
ПредставлениеИсправляемогоДокумента = Нстр("ru='Выберите исправляемый документ'");
КонецЕсли;
НастроитьЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПодбораИсправляемогоДокумента(Знач ВыбранноеЗначение)
Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
Объект.ИсправляемыйДокумент = ВыбранноеЗначение;
КонецЕсли;
ОбновитьПредставлениеЭлементыИсправляемогоДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИсправляемыйДокумент()
ДатаИсправления = Объект.Дата;
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
ДатаИсправления = Неопределено;
КонецЕсли;
ПараметрыСписка = Новый Структура;
ПараметрыСписка.Вставить("ДокументОснование", Объект.ДокументОснование);
ПараметрыСписка.Вставить("ДатаИсправления", ДатаИсправления);
ОткрытьФорму("Документ.КорректировкаПриобретения.Форма.ФормаПодбораИсправляемогоДокумента", ПараметрыСписка, ЭтотОбъект);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ТоварПрослеживается(НомерГТД)
Возврат ПриобретениеУслугПрочихАктивовЛокализация.ТоварПрослеживается(НомерГТД);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ХозяйственныеОперацииРаздельнойЗакупки(ИспользоватьТоварыВПути = Истина,
ИспользоватьНеотфактурованныеПоставки = Истина)
ХозяйственныеОперацииРаздельнойЗакупки = Новый Массив;
Если ИспользоватьТоварыВПути Тогда
ХозяйственныеОперацииРаздельнойЗакупки.Добавить(
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути"));
ХозяйственныеОперацииРаздельнойЗакупки.Добавить(
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути"));
ХозяйственныеОперацииРаздельнойЗакупки.Добавить(
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути"));
КонецЕсли;
Если ИспользоватьНеотфактурованныеПоставки Тогда
ХозяйственныеОперацииРаздельнойЗакупки.Добавить(
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки"));
ХозяйственныеОперацииРаздельнойЗакупки.Добавить(
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки"));
КонецЕсли;
Возврат ХозяйственныеОперацииРаздельнойЗакупки;
КонецФункции
#КонецОбласти
#Область КонтрольНесогласованныхИзменений
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент)
Если Элемент.Имя = "Дата" Тогда
ДатаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "Операция" Тогда
ОперацияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "НалогообложениеНДС" Тогда
НалогообложениеНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ЦенаВключаетНДС" Тогда
ЦенаВключаетНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыНоменклатураПартнера" Тогда
ТоварыНоменклатураПартнераПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыНоменклатура" Тогда
ТоварыНоменклатураПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыХарактеристика" Тогда
ТоварыХарактеристикаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыСерия" Тогда
ТоварыСерияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыКоличествоУпаковок" Тогда
ТоварыКоличествоУпаковокПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыУпаковка" Тогда
ТоварыУпаковкаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыКоличество" Тогда
ТоварыКоличествоПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыЦена" Тогда
ТоварыЦенаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыСумма" Тогда
ТоварыСуммаПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "РасхожденияСуммаВзаиморасчетов" Тогда
РасхожденияСуммаВзаиморасчетовПриИзменении(Элемент)
ИначеЕсли Элемент.Имя = "ТоварыСтавкаНДС" Тогда
ТоварыСтавкаНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыСуммаНДС" Тогда
ТоварыСуммаНДСПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыСклад" Тогда
ТоварыСкладПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыЗаказПоставщику" Тогда
ТоварыЗаказПоставщикуПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыПодразделение" Тогда
ИначеЕсли Элемент.Имя = "ТоварыСписатьНаРасходы" Тогда
ТоварыСписатьНаРасходыПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыСтатьяРасходов" Тогда
ТоварыСтатьяРасходовПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ТоварыНазначение" Тогда
ТоварыНазначениеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = Элементы.ТоварыНомерГТД.Имя Тогда
ТоварыНомерГТДПриИзменении(Элемент);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда)
Если Команда.Имя = "ОтвязатьОтЗаказа" Тогда
ОтвязатьОтЗаказа(Команда);
ИначеЕсли Команда.Имя = "ЗаполнитьПоИсходнымДанным" Тогда
ЗаполнитьПоИсходнымДанным(Команда);
ИначеЕсли Команда.Имя = "ПодобратьТовары" Тогда
ПодобратьТовары(Команда);
ИначеЕсли Команда.Имя = "ПодобратьТоварыИзЗаказа" Тогда
ПодобратьТоварыИзЗаказа(Команда);
ИначеЕсли Команда.Имя = "РазбитьСтроку" Тогда
РазбитьСтроку(Команда);
ИначеЕсли Команда.Имя = "ЗаполнитьЦеныПоСоглашению" Тогда
ЗаполнитьЦеныПоСоглашению(Команда);
ИначеЕсли Команда.Имя = "ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщика" Тогда
ЗаполнитьЦеныВыделенныхСтрокПоВидуЦенПоставщика(Команда);
ИначеЕсли Команда.Имя = "ЗаполнитьСкладВВыделенныхСтроках" Тогда
ЗаполнитьСкладВВыделенныхСтроках(Команда);
ИначеЕсли Команда.Имя = "ЗаполнитьРасхождения" Тогда
ЗаполнитьРасхождения(Команда);
ИначеЕсли Команда.Имя = "УстановитьВариантыОтражения" Тогда
УстановитьВариантыОтражения(Команда);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеНажатие(Элемент)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ)
Если Элемент.Имя = "Товары" Тогда
ТоварыПередНачаломИзменения(Элемент, Отказ);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ)
Если Элемент.Имя = "Товары" Тогда
ТоварыПередУдалением(Элемент, Отказ);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецПроцедуры
&НаКлиенте
Функция ВыполнитьПроверкиПередИзменениемСтатуса()
Перем ЕстьКорректировки;
Перем ИсправлениеПослеДатыДокумента;
РеквизитМожноИзменить = Ложь;
ДополнительныеПараметры = Новый Структура;
Оповещение = Новый ОписаниеОповещения(
"РезультатВопросаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
Если СтруктураДействийКонтрольНеСогласованныхИзменений = Неопределено
Или СтруктураДействийКонтрольНеСогласованныхИзменений.ОжидаетсяОповещение Тогда
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
ОчиститьСообщения();
ПроверитьНаличиеКорректировок(Объект.Ссылка, Объект.ДокументОснование, ЕстьКорректировки);
ИсправлениеПослеДатыДокумента = ПроверитьНаличиеИсправленийПослеДатыДокумента(Объект.Ссылка);
Если ЕстьКорректировки Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить("ВвестиКорректировку", Нстр("ru='Ввести корректировку'"));
СписокКнопок.Добавить("ОтменитьИзменения", Нстр("ru='Отмена'"));
ПоказатьВопрос(
Оповещение,
НСтр("ru='На основании документа введена корректировка приобретения.
|Изменение исходного документа запрещено.'"),
СписокКнопок,
,
"ВвестиКорректировку");
ИначеЕсли ЗначениеЗаполнено(ИсправлениеПослеДатыДокумента) Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить("ВвестиКорректировку", Нстр("ru='Ввести корректировку'"));
СписокКнопок.Добавить("ОтменитьИзменения", Нстр("ru='Отмена'"));
ПоказатьВопрос(
Оповещение,
НСтр("ru='Есть исправление позднее даты текущего документа.
|Изменение документа запрещено.'"),
СписокКнопок,
,
"ВвестиКорректировку");
Иначе
ВыполнитьОбработкуОповещения(Оповещение, "ИзменитьРеквизит");
РеквизитМожноИзменить = Истина;
КонецЕсли;
Возврат РеквизитМожноИзменить;
КонецФункции
&НаКлиенте
Процедура РезультатВопросаЗавершение(КодОтвета, ДополнительныеПараметры) Экспорт
Если КодОтвета = "ВвестиКорректировку" Тогда
ОткрытьФорму("Документ.КорректировкаПриобретения.ФормаОбъекта", Новый Структура("Основание", Объект.ДокументОснование));
КонецЕсли;
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзменении_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
ОбщегоНазначенияУТКлиент.ВернутьПредыдущееЗначениеРеквизита(ЭтаФорма, Элемент);
Возврат;
Иначе
ОбщегоНазначенияУТКлиент.СохранитьЗначениеРеквизита(ЭтаФорма, Элемент);
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПриИзменении.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Нажатие_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Нажатие.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеНажатие(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Команда_УстановитьДоступностьЭлементовПоСтатусуСервер(Команда)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Команды.Свойство(Команда.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломИзменения_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если СтруктураДействийКонтрольНеСогласованныхИзменений = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтруктураДействийКонтрольНеСогласованныхИзменений.ЗначенияРеквизитов[Элемент.Имя], Элемент.ТекущиеДанные);
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломИзменения.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередУдалением_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередУдалением.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломДобавления_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ, Копирование, Родитель, Группа)
Если Не ВыполнитьПроверкиПередИзменениемСтатуса() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломДобавления.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса()
УстановитьДоступностьЭлементовПоСтатусуСервер();
ОбщегоНазначенияУТКлиент.ПослеИзмененияРеквизитаЗависящегоОтСтатуса(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область РаботаСБуферомОбмена
&НаСервере
Процедура СкопироватьСтрокиНаСервере()
РаботаСТабличнымиЧастями.СкопироватьСтрокиВБуферОбмена(Объект.Товары, Элементы.Товары.ВыделенныеСтроки);
КонецПроцедуры
&НаСервере
Процедура ПолучитьСтрокиИзБуфераОбмена()
Колонки = "Номенклатура,Характеристика,Содержание,Упаковка,КоличествоУпаковок,Количество,Цена,НомерГТД,Склад,
|Подразделение,НаправлениеДеятельности,ТипНоменклатуры";
ТаблицаТоваров = РаботаСТабличнымиЧастями.СтрокиИзБуфераОбмена(, Колонки);
Если Не ЗначениеЗаполнено(ТаблицаТоваров) Тогда
Возврат;
КонецЕсли;
Если ТаблицаТоваров.Колонки.Найти("ТипНоменклатуры") = Неопределено Тогда
ТаблицаТоваров.Колонки.Добавить("ТипНоменклатуры", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыНоменклатуры"));
КонецЕсли;
ПараметрыЗаполнитьСтавкуНДС = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект);
ПараметрыЗаполнитьСтавкуНДС.Дата = ДатаОснования;
ПараметрыЗаполнитьСтавкуНДС.УказаннаяСтавкаНДС = УказаннаяСтавкаНДС;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПараметрыЗаполнитьСтавкуНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", ВернутьМногооборотнуюТару);
СтруктураДействий.Вставить("ПроверитьЗаполнитьСклад", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияСкладаВСтрокеТЧ(Объект, СкладГруппа));
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтаФорма, СтруктураДействий);
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(
СтруктураДействий);
КонецЕсли;
Если ИспользуетсяКоличествоУпаковок Тогда
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтаФорма);
Иначе
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтаФорма);
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
СтруктураДействий,
"Склад",
Истина);
КонецЕсли;
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ХозяйственныеОперацииРаздельнойЗакупки = ХозяйственныеОперацииРаздельнойЗакупки();
Если ХозяйственныеОперацииРаздельнойЗакупки.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ОтборПоТипамНоменклатуры = НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь);
ИначеЕсли КорректировкаОтчетаПереработчика Тогда
ОтборПоТипамНоменклатуры = НоменклатураКлиентСервер.ОтборПоРаботе(Ложь);
Иначе
ОтборПоТипамНоменклатуры = НоменклатураКлиентСервер.ОтборПоТоваруМногооборотнойТареУслугеРаботе(Ложь);
КонецЕсли;
КонецЕсли;
ОбрабатываемыеСтроки = Новый Массив();
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
Если ОтборПоТипамНоменклатуры.Найти(СтрокаТовара.ТипНоменклатуры) = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ТекущаяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара);
ОбрабатываемыеСтроки.Добавить(ТекущаяСтрока);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ОбрабатываемыеСтроки,
СтруктураДействий,
Объект.Товары);
Для каждого ТекущаяСтрока Из ОбрабатываемыеСтроки Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, ТекущаяСтрока, "Объект.Товары");
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
ЗаполнитьСлужебныеРеквизитыПрослеживаемостиВСтрокеТоваров(ТекущаяСтрока);
КонецЕсли;
КонецЦикла;
ДействияДляЗаполнения = Новый Структура;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
Если Не КорректировкаПриобретенияУслугПрочихАктивов Тогда
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакВедетсяУчетПоГТД", Новый Структура("Номенклатура", "ВедетсяУчетПоГТД"));
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекЗаполненияСлужебныхРеквизитовТабличнойЧасти(ДействияДляЗаполнения);
КонецЕсли;
ДействияДляЗаполнения.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, ДействияДляЗаполнения);
ЗакупкиСервер.ЗаполнитьСлужебныеРеквизитыНомераГТД(Объект.Товары);
ЗаполнитьПризнакСписанияНаРасходыДляУслуг();
ПриИзмененииСкладаВТабличнойЧастиСервер();
РасхожденияАктуальны = Ложь;
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект,ПараметрыУказанияСерий);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьКомандБуфераОбмена()
МассивЭлементов = Новый Массив();
МассивЭлементов.Добавить("ТоварыВставитьСтроки");
МассивЭлементов.Добавить("ТоварыКонтекстноеМенюВставитьСтроки");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность",
РаботаСТабличнымиЧастями.ЕстьСтрокиВБуфереОбмена());
КонецПроцедуры
&НаКлиенте
Процедура УстановитьДоступностьКомандБуфераОбменаНаКлиенте()
МассивЭлементов = Новый Массив();
МассивЭлементов.Добавить("ТоварыВставитьСтроки");
МассивЭлементов.Добавить("ТоварыКонтекстноеМенюВставитьСтроки");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность", Истина);
КонецПроцедуры
#КонецОбласти
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область Серии
&НаКлиенте
Процедура ОткрытьПодборСерий(Текст = "")
Если НоменклатураКлиент.ДляУказанияСерийНуженСерверныйВызов(ЭтаФорма,ПараметрыУказанияСерий,Текст)Тогда
ТекстИсключения = НСтр("ru = 'Ошибка при попытке указать серии - в этом документе для указания серий не нужен серверный вызов.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(ТекущаяСтрокаИдентификатор, КэшированныеЗначения)
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Объект,
ПараметрыУказанияСерий, ТекущаяСтрокаИдентификатор, КэшированныеЗначения);
КонецПроцедуры
#КонецОбласти
#Область НомераГТД
&НаКлиенте
Процедура ОбработатьПодборНомераГТД(РезультатПодбора)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ИдентификаторСтроки = ТекущиеДанные.ПолучитьИдентификатор();
Если ИдентификаторСтроки = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполненыНомераГТД = Ложь;
НомерГТД = Неопределено;
ОбработатьУказаниеНомераГТДСервер(ИдентификаторСтроки, РезультатПодбора, ЗаполненыНомераГТД, НомерГТД);
ЗакупкиКлиент.ОповеститьОЗаполненииНомеровГТДВТабличнойЧасти(ЗаполненыНомераГТД, НомерГТД);
КонецПроцедуры
&НаСервере
Процедура ОбработатьУказаниеНомераГТДСервер(ИдентификаторСтроки,
РезультатПодбора,
ЗаполненыНомераГТД,
НомерГТД)
ДанныеПодбора = ПолучитьИзВременногоХранилища(РезультатПодбора.АдресВоВременномХранилище);
НомерГТД = ?(ДанныеПодбора.ОстаточныйНомерГТД <> Неопределено,
НомерГТД,
ДанныеПодбора.ОсновнойНомерГТД);
ДействияОбработки = Новый Структура;
Если ДанныеПодбора.ОстаточныйНомерГТД <> Неопределено Тогда
Если ИспользуетсяКоличествоУпаковок Тогда
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(ДействияОбработки, ЭтотОбъект);
Иначе
ДобавитьВСтруктуруДействияПриИзмененииКоличества(ДействияОбработки, ЭтотОбъект);
КонецЕсли;
Иначе
Если ИспользуетсяКоличествоУпаковок Тогда
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ДополнитьОписаниеНастроекПересчетаРеквизитовТабличнойЧасти(
Объект,
ДействияОбработки,
"Склад",
Истина);
КонецЕсли;
КонецЕсли;
ЗакупкиСервер.ОбработатьУказаниеНомераГТД(ЭтотОбъект,
ИдентификаторСтроки,
ДанныеПодбора,
ЗаполненыНомераГТД,
Неопределено,
ДействияОбработки);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
РасхожденияАктуальны = Ложь;
КонецПроцедуры
#КонецОбласти
#Область ГруппыЗатрат
&НаСервере
Процедура УстановитьНомерГруппыЗатратПоУмолчанию(ТекущийИдентификатор)
ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(ТекущийИдентификатор);
Если Не ТекущиеДанные = Неопределено
И ТекущиеДанные.НомерГруппыЗатрат = 0
И КоличествоГруппЗатрат = 1 Тогда
ТекущиеДанные.ГруппаЗатрат = ГруппыЗатрат[0].ГруппаЗатрат;
ТекущиеДанные.НомерГруппыЗатрат = ГруппыЗатрат[0].НомерГруппыЗатрат;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПоместитьДанныеГруппЗатратВХранилище()
Таблица = ГруппыЗатрат.Выгрузить();
Возврат ПоместитьВоВременноеХранилище(Таблица, УникальныйИдентификатор);
КонецФункции
&НаКлиенте
Процедура ТаблицаГруппаЗатратНачалоВыбораЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ТаблицаГруппаЗатратНачалоВыбораЗавершениеНаСервере(Результат, Элементы.Товары.ВыделенныеСтроки);
КонецПроцедуры
&НаСервере
Процедура ТаблицаГруппаЗатратНачалоВыбораЗавершениеНаСервере(Результат, Знач ВыделенныеСтроки)
Для Каждого ИдентификаторСтроки Из ВыделенныеСтроки Цикл
ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(ИдентификаторСтроки);
ТекущиеДанные.НомерГруппыЗатрат = Результат.НомерГруппыЗатрат;
ТекущиеДанные.ГруппаЗатрат = Результат.ГруппаЗатрат;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьГруппыЗатрат()
Если Не КорректировкаОтчетаПереработчика
Или Не ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
Возврат;
КонецЕсли;
РеквизитыДокумента =
ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Объект.ДокументОснование,
"ГруппировкаЗатрат, ПоЗаказам, ЗаказПереработчику, МаксимальныйНомерГруппыЗатрат, ВыходныеИзделия");
Документы.ОтчетПереработчика2_5.ОбновитьГруппыЗатрат(РеквизитыДокумента, ГруппыЗатрат, КоличествоГруппЗатрат);
ОбновитьПредставлениеГруппЗатрат();
КонецПроцедуры
&НаСервере
Процедура ОбновитьПредставлениеГруппЗатрат()
Если Не КорректировкаОтчетаПереработчика Тогда
Возврат;
КонецЕсли;
СтруктураОтбора = Новый Структура("НомерГруппыЗатрат");
Для Каждого ТекГруппа Из ГруппыЗатрат Цикл
ТекГруппа.ГруппаЗатрат = ПредставлениеГруппыЗатрат(ТекГруппа);
ЗаполнитьЗначенияСвойств(СтруктураОтбора, ТекГруппа);
Строки = Объект.Товары.НайтиСтроки(СтруктураОтбора);
Для Каждого ТекСтрока Из Строки Цикл
ТекСтрока.ГруппаЗатрат = ТекГруппа.ГруппаЗатрат;
КонецЦикла;
Строки = Объект.Расхождения.НайтиСтроки(СтруктураОтбора);
Для Каждого ТекСтрока Из Строки Цикл
ТекСтрока.ГруппаЗатрат = ТекГруппа.ГруппаЗатрат;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПредставлениеГруппыЗатрат(Группа)
Возврат ПереработкаНаСторонеКлиентСервер.ПредставлениеГруппыЗатрат(
Группа,
ПереработкаНаСторонеКлиентСервер.ПереченьПолейГруппыЗатратОтчетаПереработчика(ГруппировкаЗатратОснования));
КонецФункции
#КонецОбласти
&НаКлиенте
Процедура ДатаПриИзмененииПослеПроверки(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьРасхожденияСервер();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоИсходнымДаннымЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьПоИсходнымДаннымСервер();
КонецПроцедуры
&НаКлиенте
Процедура РазбитьСтрокуЗавершение(НоваяСтрока, ДополнительныеПараметры) Экспорт
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если НоваяСтрока <> Неопределено Тогда
СтруктураДействий = Новый Структура;
Если ИспользуетсяКоличествоУпаковок Тогда
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, ЭтаФорма);
Иначе
ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтаФорма);
КонецЕсли;
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(ЭтаФорма, СтруктураДействий);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения);
РасхожденияАктуальны = Ложь;
КонецЕсли;
УчетПрослеживаемыхТоваровКлиентСерверЛокализация.РазбитьСтрокуЗавершение(НоваяСтрока, ДополнительныеПараметры);
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасхожденияЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьРасхожденияЗавершениеНаСервере();
НастройкиВариантовОтражения = УправлениеВариантамиОтражения();
НастройкиВариантовОтражения.ВыборВариантаИнтерактивно = Ложь;
ОпределитьГруппыВариантовОтраженияДляВыбора(Объект.Расхождения, НастройкиВариантовОтражения);
ЗаполнитьВариантыОтраженийДляГрупп(НастройкиВариантовОтражения);
ВыбратьИнтерактивноВариантыОтраженияКорректировокРеализацийФрагмент(НастройкиВариантовОтражения);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасхожденияЗавершениеНаСервере()
ЗаполнитьРасхожденияСервер();
НастроитьОтображениеЭлементовПоИтогамРасхождений();
РассчитатьИтоговыеПоказателиПоступления(ЭтаФорма);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеВыбораСкладов(Склад)
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Склады.Ссылка КАК Ссылка
|ИЗ
| Справочник.Склады КАК Склады
|ГДЕ
| Склады.Ссылка В ИЕРАРХИИ(&ГруппаСкладов)
| И Склады.ЭтоГруппа = ЛОЖЬ
| И Склады.ВыборГруппы <> ЗНАЧЕНИЕ(Перечисление.ВыборГруппыСкладов.Запретить)");
Запрос.УстановитьПараметр("ГруппаСкладов", Склад);
МассивСкладов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Возврат МассивСкладов;
КонецФункции
&НаСервере
Процедура УстановитьПараметрыВыбораТоварыСклад()
Элементы.ТоварыСклад.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
Элементы.РасхожденияСклад.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
ДанныеВыбораСкладов = ДанныеВыбораСкладов(Объект.Склад);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.ТоварыСклад, "Ссылка", ДанныеВыбораСкладов);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.РасхожденияСклад, "Ссылка", ДанныеВыбораСкладов);
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораНоменклатуры()
Если КорректировкаОтчетаПереработчика Тогда
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(
Новый ПараметрВыбора(
"Отбор.ТипНоменклатуры",
Новый ФиксированныйМассив(НоменклатураКлиентСервер.ОтборПоРаботе(Ложь))));
Элементы.ТоварыНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
Элементы.РасхожденияНоменклатура.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
Иначе
НоменклатураСервер.УстановитьПараметрыВыбораНоменклатуры(Объект.ХозяйственнаяОперация, Элементы.ТоварыНоменклатура);
НоменклатураСервер.УстановитьПараметрыВыбораНоменклатуры(Объект.ХозяйственнаяОперация, Элементы.ТоварыНоменклатураПартнера);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораНомераГТДИКодаТНВЭД()
МассивПараметровНомераГТД = Новый Массив;
МассивПараметровКодаТНВЭД = Новый Массив;
МассивТиповГТД = Новый СписокЗначений;
МассивТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТ);
МассивТиповГТД.Добавить(Перечисления.ТипыНомеровГТД.НомерРНПТКомплекта);
Если КорректировкаПриобретенияУслугПрочихАктивов Тогда
МассивПараметровНомераГТД.Добавить(
Новый ПараметрВыбора(
"СписокТиповГТД",
МассивТиповГТД));
МассивПараметровКодаТНВЭД.Добавить(
Новый ПараметрВыбора(
"Отбор.ПрослеживаемыйТовар",
Истина));
КонецЕсли;
Элементы.ТоварыНомерГТД.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровНомераГТД);
Элементы.ТоварыКодТНВЭД.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровКодаТНВЭД);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
Элементы.ТоварыСтатьяРасходов.Заголовок = НСтр("ru = 'Списать на расходы'");
Элементы.РасхожденияСписатьНаРасходы.Заголовок = НСтр("ru = 'Списать на расходы'");
Элементы.ТекстСуммаНаПрочиеРасходыАктивы.Заголовок = НСтр("ru = 'На расходы:'");
Элементы.ТекстСуммаНаПрочиеДоходыПассивы.Заголовок = НСтр("ru = 'На доходы:'");
Элементы.СтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
Элементы.СтатьяДоходов.Заголовок = НСтр("ru = 'Статья доходов'");
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ХозяйственнаяОперацияДокументаОснования(ДокументОснование)
Операция = Перечисления.ХозяйственныеОперации.ПустаяСсылка();
Если ЗначениеЗаполнено(ДокументОснование)
И ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") Тогда
Операция = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОснование, "ХозяйственнаяОперация");
ИначеЕсли ЗначениеЗаполнено(ДокументОснование)
И ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ОтчетПереработчика2_5") Тогда
Операция = Перечисления.ХозяйственныеОперации.КорректировкаОтчетаПереработчика;
КонецЕсли;
Возврат Операция;
КонецФункции
&НаСервере
Процедура УстановитьХозяйственнуюОперациюДокумента(ДокументОснование)
ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ОтчетПереработчика2_5") Тогда
ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КорректировкаОтчетаПереработчика;
КонецЕсли;
Если Объект.ХозяйственнаяОперация <> ХозяйственнаяОперация Тогда
Объект.ХозяйственнаяОперация = ХозяйственнаяОперация;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПризнакИспользуетсяДокументПоступлениеТоваров()
Если ЗначениеЗаполнено(Операция) Тогда
ОперацииРаздельнойЗакупки = Новый Массив;
ОперацииРаздельнойЗакупки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути);
ОперацииРаздельнойЗакупки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки);
ОперацииРаздельнойЗакупки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути);
ОперацииРаздельнойЗакупки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки);
ОперацииРаздельнойЗакупки.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути);
ИспользуетсяДокументПоступлениеТоваров = ОперацииРаздельнойЗакупки.Найти(Операция) <> Неопределено;
Иначе
ИспользуетсяДокументПоступлениеТоваров = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтавкуНДСЗавершение(СтавкаНДС, ДополнительныеПараметры) Экспорт
Если СтавкаНДС = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения);
РасхожденияАктуальны = Ложь;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения)
СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
ВыделенныеСтроки = РаботаСТабличнымиЧастямиКлиентСервер.ЭлементыКоллекции(
Объект.Товары, Элементы.Товары.ВыделенныеСтроки);
СтрокиНаУдаление = Новый Массив;
Для каждого СтрокаТабличнойЧасти Из ВыделенныеСтроки Цикл
Если ВернутьМногооборотнуюТару
И СтрокаТабличнойЧасти.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.МногооборотнаяТара Тогда
СтрокиНаУдаление.Добавить(СтрокаТабличнойЧасти);
Продолжить;
КонецЕсли;
СтрокаТабличнойЧасти.СтавкаНДС = СтавкаНДС;
КонецЦикла;
Для каждого СтрокаНаУдаление Из СтрокиНаУдаление Цикл
ВыделенныеСтроки.Удалить(ВыделенныеСтроки.Найти(СтрокаНаУдаление));
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
ВыделенныеСтроки,
СтруктураДействий,
Объект.Товары,
КэшированныеЗначения);
РассчитатьИтоговыеПоказателиПоступления(ЭтотОбъект);
ОбновитьТекстДокументыНаОсновании();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПараметрыРегистрацииСчетовФактурПолученныхСервер(Знач Объект)
Возврат Документы.КорректировкаПриобретения.ПараметрыРегистрацииСчетовФактурПолученных(Объект);
КонецФункции
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаСервере
Процедура НастроитьУчетРНПТ()
УстановитьВидимостьКоличестваРНПТ();
Если Не Элементы.ТоварыГруппаКоличествоПоРНПТ.Видимость Тогда
ПараметрыПолученияКоэффициентаРНПТ = УчетПрослеживаемыхТоваровКлиентСерверЛокализация.ПараметрыПолученияКоэффициентаРНПТ(
Объект,
"Склад",
Истина);
УчетПрослеживаемыхТоваровЛокализация.ЗаполнитьКоличествоПоРНПТВТабличнойЧасти(ПараметрыПолученияКоэффициентаРНПТ,
Объект.Товары);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКоличестваРНПТ()
ОснованиеПриобретениеУслугПрочихАктивов = ЗначениеЗаполнено(Объект.ДокументОснование)
И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ПриобретениеУслугПрочихАктивов");
УчетПрослеживаемыхТоваровЛокализация.УстановитьВидимостьКоличестваРНПТ(ЭтаФорма,
Объект.Дата,,
ОснованиеПриобретениеУслугПрочихАктивов);
УчетПрослеживаемыхТоваровЛокализация.УстановитьВидимостьКоличестваРНПТ(ЭтаФорма,
Объект.Дата,
"РасхожденияГруппаКоличествоПоРНПТ",
ОснованиеПриобретениеУслугПрочихАктивов);
КонецПроцедуры
&НаСервере
Процедура ДобавитьДокументПриобретенияВТаблицуКорректировкаЗадолженности(ДокументПриобретения)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СуммыДокументовВВалютахУчета.Регистратор КАК ДокументПриобретения,
| СуммыДокументовВВалютахУчета.СтавкаНДС КАК СтавкаНДС,
| СуммыДокументовВВалютахУчета.ОбъектРасчетов КАК ОбъектРасчетов,
| СУММА(СуммыДокументовВВалютахУчета.СуммаНДС) КАК СуммаНДС,
| СУММА(СуммыДокументовВВалютахУчета.СуммаБезНДС + СуммыДокументовВВалютахУчета.СуммаНДС) КАК СуммаСНДС
|ИЗ
| РегистрСведений.СуммыДокументовВВалютахУчета КАК СуммыДокументовВВалютахУчета
|ГДЕ
| СуммыДокументовВВалютахУчета.Регистратор В (&Регистратор)
| И СуммыДокументовВВалютахУчета.ТипРасчетов = &ТипРасчетов
|СГРУППИРОВАТЬ ПО
| СуммыДокументовВВалютахУчета.Регистратор,
| СуммыДокументовВВалютахУчета.СтавкаНДС,
| СуммыДокументовВВалютахУчета.ОбъектРасчетов
|";
Запрос.УстановитьПараметр("Регистратор", ДокументПриобретения);
Запрос.УстановитьПараметр("ТипРасчетов", Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком);
УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Ложь);
Пока Выборка.Следующий() Цикл
Отбор = Новый Структура();
Отбор.Вставить("ДокументПриобретения", Выборка.ДокументПриобретения);
Отбор.Вставить("ОбъектРасчетов", Выборка.ОбъектРасчетов);
Отбор.Вставить("СтавкаНДС", Выборка.СтавкаНДС);
РезультатПоиска = Объект.КорректировкаЗадолженности.НайтиСтроки(Отбор);
Если РезультатПоиска.Количество() > 0 Тогда
СтрокаТаблицы = РезультатПоиска[0];
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Выборка);
Иначе
НоваяСтрока = Объект.КорректировкаЗадолженности.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВводПричиныКорректировкиЗадолженностиЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат;
КонецЕсли;
Для каждого ВыделеннаяСтрока Из Элементы.КорректировкаЗадолженности.ВыделенныеСтроки Цикл
ТекущаяСтрока = Объект.КорректировкаЗадолженности.НайтиПоИдентификатору(ВыделеннаяСтрока);
ТекущаяСтрока.ПричинаКорректировки = Результат;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВводСуммыКорректировкиЗадолженностиЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат;
КонецЕсли;
МассивКоэффициентов = Новый Массив;
Для каждого ТекущаяСтрока Из Объект.КорректировкаЗадолженности Цикл
МассивКоэффициентов.Добавить(ТекущаяСтрока.СуммаСНДС);
КонецЦикла;
РезультатРаспределения = ОбщегоНазначенияКлиентСервер.РаспределитьСуммуПропорциональноКоэффициентам(Результат, МассивКоэффициентов);
Индекс = 0;
Для каждого ТекущаяСтрока Из Объект.КорректировкаЗадолженности Цикл
ТекущаяСтрока.СуммаКорректировки = РезультатРаспределения[Индекс];
ТекущаяСтрока.СуммаНДСКорректировки =
ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(
ТекущаяСтрока.СуммаКорректировки,
ТекущаяСтрока.СтавкаНДС,
Истина,
Объект.НалогообложениеНДС);
ТекущаяСтрока.СуммаВзаиморасчетов = 0;
Индекс = Индекс + 1;
КонецЦикла;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаКлиенте
Процедура ВводПроцентаКорректировкиЗадолженностиЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Для каждого ИдентификаторСтроки Из Элементы.КорректировкаЗадолженности.ВыделенныеСтроки Цикл
ТекущаяСтрока = Объект.КорректировкаЗадолженности.НайтиПоИдентификатору(ИдентификаторСтроки);
ТекущаяСтрока.СуммаКорректировки = ТекущаяСтрока.СуммаСНДС * Результат / 100;
ТекущаяСтрока.СуммаНДСКорректировки =
ЦенообразованиеКлиентСервер.РассчитатьСуммуНДС(
ТекущаяСтрока.СуммаКорректировки,
ТекущаяСтрока.СтавкаНДС,
Истина,
Объект.НалогообложениеНДС);
ТекущаяСтрока.СуммаВзаиморасчетов = 0;
КонецЦикла;
НастроитьОтображениеЭлементовПоИтогамРасхождений();
КонецПроцедуры
&НаСервере
Процедура ОтразитьИзмененияПравилОплаты(ИзмененныеРеквизиты)
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, ИзмененныеРеквизиты, Истина);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСлужебныеРеквизитыПоНазначениюВТЧ()
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьСлужебныеРеквизитыПоНазначению", Новый Структура("ТолькоТипНазначения", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Товары, СтруктураДействий, Неопределено);
КонецПроцедуры
#КонецОбласти