Счет-фактура полученный (аванс) / Форма рабочее место / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	УстановитьЗначенияПоУмолчанию();
	УстановитьЗначенияПоПараметрамФормы(Параметры);
	ОбновитьДанныеФормы();
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	МассивМенеджеровСмТакжеРабочегоМеста = Новый Массив();
	СчетФактураПолученныйАвансЛокализация.ЗаполнитьМенеджерыСмТакжеРабочегоМеста(МассивМенеджеровСмТакжеРабочегоМеста);
	Если МассивМенеджеровСмТакжеРабочегоМеста.Количество() = 0 Тогда
		МассивМенеджеровСмТакжеРабочегоМеста.Добавить(Метаданные.Документы.СчетФактураПолученныйАванс.ПолноеИмя());
	КонецЕсли;
	СмТакжеВРаботе = ОбщегоНазначенияУТ.СформироватьГиперссылкуСмТакжеВРаботе(МассивМенеджеровСмТакжеРабочегоМеста, Неопределено);
	
	ИспользоватьНесколькоОрганизаций = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций");

	УчетНДСУПСлужебный.НастроитьСовместныйВыборКонтрагентовОрганизаций(Элементы.ОтборПоставщик, ОтборПоставщик);
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	
	УстановитьВидимостьКоманд();
	УстановитьУсловноеОформление();
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура НачалоПериодаПриИзменении(Элемент)
	
	ОбновитьДанныеФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура КонецПериодаПриИзменении(Элемент)
	
	ОбновитьДанныеФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	ОрганизацияПриИзмененииНаСервере();
	ОбновитьДанныеФормы();
	
КонецПроцедуры

&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
	
	ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
	
КонецПроцедуры

&НаКлиенте
Процедура СмТакжеВРаботеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	// &ЗамерПроизводительности
	ИмяКлючевойОперации = СтрШаблон("Обработка.СчетФактураПолученныйАванс.Форма.ФормаРабочееМесто.СмТакже.%1",
									НавигационнаяСсылкаФорматированнойСтроки);
	ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина, ИмяКлючевойОперации);
	
	СтандартнаяОбработка = Ложь;
	
	ПараметрыФормы = Новый Структура;
	СтруктураБыстрогоОтбора = Новый Структура;
	
	Если ЗначениеЗаполнено(Организация) Тогда
		СтруктураБыстрогоОтбора.Вставить("Организация", Организация);
		ПараметрыФормы.Вставить("Организация", Организация);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ОтборПоставщик) Тогда
		СтруктураБыстрогоОтбора.Вставить("Контрагент", ОтборПоставщик);
	КонецЕсли;
	
	ТекущаяДата = ОбщегоНазначенияКлиент.ДатаСеанса();
	Период = Новый СтандартныйПериод;
	Период.ДатаНачала = НачалоПериода;
	Период.ДатаОкончания = КонецПериода;
	СтруктураБыстрогоОтбора.Вставить("Период", Период);
	СтруктураБыстрогоОтбора.Вставить("НачалоПериода", ?(ЗначениеЗаполнено(Период.ДатаНачала), Период.ДатаНачала, НачалоКвартала(ТекущаяДата)));
	ПараметрыФормы.Вставить("НачалоПериода", СтруктураБыстрогоОтбора.НачалоПериода);
	СтруктураБыстрогоОтбора.Вставить("КонецПериода", ?(ЗначениеЗаполнено(Период.ДатаОкончания), Период.ДатаОкончания, КонецКвартала(ТекущаяДата)));
	ПараметрыФормы.Вставить("КонецПериода", СтруктураБыстрогоОтбора.КонецПериода);
	
	ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", СтруктураБыстрогоОтбора);
	
	ОткрытьФорму(НавигационнаяСсылкаФорматированнойСтроки, ПараметрыФормы,ЭтаФорма, ЭтаФорма.УникальныйИдентификатор);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыВыданныеАвансы

&НаКлиенте
Процедура ОтборСостояниеПриИзменении(Элемент)
	
	УстановитьОтборСостояния(Элементы.ТаблицаВыданныеАвансы, ОтборСостояние, ОтборПоставщик);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтборПоставщикПриИзменении(Элемент)
	
	Если ОтборПоставщик = Неопределено Тогда
		ОтборПоставщик = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.Контрагенты.ПустаяСсылка");
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(ОтборПоставщик) Тогда
		Элементы.ТаблицаВыданныеАвансы.ОтборСтрок = Неопределено
	Иначе	
		Элементы.ТаблицаВыданныеАвансы.ОтборСтрок = Новый ФиксированнаяСтруктура("Поставщик",ОтборПоставщик);
		ОтборСостояние = "ВсеВыплаченныеАвансы";
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ВыданныеАвансыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Если Поле.Родитель = Элементы.ГруппаРеквизитыПлатежногоДокумента Тогда
		ОткрытьПлатежныйДокументАванс();
	Иначе
		ВвестиСчетФактуруПолученныйАванс();
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ВыбратьПериод(Команда)
	
	ПараметрыВыбора = Новый Структура("НачалоПериода,КонецПериода", НачалоПериода, КонецПериода);
	ОписаниеОповещения = Новый ОписаниеОповещения("ВыбратьПериодЗавершение", ЭтотОбъект);
	ОткрытьФорму("ОбщаяФорма.ВыборСтандартногоПериода", ПараметрыВыбора, Элементы.ВыбратьПериод, , , , ОписаниеОповещения);
	
КонецПроцедуры

&НаКлиенте
Процедура ВвестиСчетФактуруПолученныйАвансВыполнить(Команда)
	
	ВвестиСчетФактуруПолученныйАванс();
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПлатежныйДокументАвансВыполнить(Команда)
	
	ОткрытьПлатежныйДокументАванс();
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьАвансы(Команда)
	
	ОбновитьДанныеФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура АктуализироватьРасчеты(Команда)
	
	ОписаниеОповещения = Новый ОписаниеОповещения("АктуализироватьРасчетыЗавершение", ЭтотОбъект);
	ПоказатьВопрос(
		ОписаниеОповещения, 
		НСтр("ru = 'Актуализировать расчеты с поставщиками?'"), 
		РежимДиалогаВопрос.ДаНет);
	
КонецПроцедуры

&НаКлиенте
Процедура АктуализироватьРасчетыЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	КодОтвета = РезультатВопроса;
	Если КодОтвета = КодВозвратаДиалога.Да Тогда
		
		АктуализироватьРасчетыСервер();
		ПоказатьОповещениеПользователя(
			НСтр("ru = 'Расчеты актуализированы'"),
			, // НавигационнаяСсылка
			НСтр("ru = 'Расчеты с поставщиками актуализированы'"));
			
		АктуальностьГраницыРасчетов = Истина;
		Элементы.ГруппаАктуальностьРасчетов.Видимость = Ложь;
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.ТаблицаВыданныеАвансы);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.ТаблицаВыданныеАвансы, Результат);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.ТаблицаВыданныеАвансы);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область ПолучениеДанныхФормы

&НаСервере
Процедура ЗаполнитьВыданныеАвансы()
	
	Результат = Документы.СчетФактураПолученныйАванс.ПолучитьВыданныеАвансы(Организация, НачалоПериода, КонецПериода,,,,Истина);
	
	ВыданныеАвансы.Загрузить(Результат);
	
	Для Каждого Строка Из ВыданныеАвансы Цикл
		Если Строка.СчетФактура <> Документы.СчетФактураПолученныйАванс.ПустаяСсылка()
				И Строка.СуммаАвансаРегл <> Строка.СуммаСчетаФактуры Тогда
			Строка.ОшибкаСумм = Истина;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

#КонецОбласти

#Область АвансыВыданные

&НаСервере
Процедура ОбновитьДанныеСтрокиВыданныхАвансов(ДокументОснование, Поставщик)
	
	РеквизитыСчетФактуры = Новый Структура;
	РеквизитыСчетФактуры.Вставить("НомерСчетаФактуры", "");
	РеквизитыСчетФактуры.Вставить("ДатаСчетаФактуры",  '00010101');
	РеквизитыСчетФактуры.Вставить("СуммаСчетаФактуры", 0);
	РеквизитыСчетФактуры.Вставить("СчетФактура",       Неопределено);
	
	// Получим данные счета-фактуры
	Запрос = Новый Запрос;
	
	ТекстЗапроса = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	СчетФактураПолученныйАванс.Ссылка          КАК СчетФактура,
	|	СчетФактураПолученныйАванс.Номер           КАК НомерСчетаФактуры,
	|	СчетФактураПолученныйАванс.ДатаСоставления КАК ДатаСчетаФактуры,
	|	СчетФактураПолученныйАванс.Сумма           КАК СуммаСчетаФактуры
	|ИЗ
	|	Документ.СчетФактураПолученныйАванс КАК СчетФактураПолученныйАванс
	|	ЛЕВОЕ СОЕДИНЕНИЕ 
	|		Документ.СчетФактураПолученныйАванс КАК СчетФактураПолученныйИсправление
	|	ПО 
	|		СчетФактураПолученныйАванс.ДокументОснование = СчетФактураПолученныйИсправление.ДокументОснование
	|		И (ВЫБОР
	|				КОГДА ТИПЗНАЧЕНИЯ(СчетФактураПолученныйАванс.ДокументОснование) = ТИП(Документ.ВводОстатков) ТОГДА
	|					СчетФактураПолученныйАванс.Контрагент= СчетФактураПолученныйИсправление.Контрагент
	|				ИНАЧЕ ИСТИНА
	|			КОНЕЦ)
	|		И СчетФактураПолученныйАванс.Ссылка = СчетФактураПолученныйИсправление.СчетФактураОснование
	|		И СчетФактураПолученныйИсправление.Исправление
	|		И СчетФактураПолученныйИсправление.Проведен
	|ГДЕ
	|	СчетФактураПолученныйАванс.ДокументОснование = &ДокументОснование
	|	И (ВЫБОР
	|			КОГДА ТИПЗНАЧЕНИЯ(СчетФактураПолученныйАванс.ДокументОснование) = ТИП(Документ.ВводОстатков)
	|				ТОГДА СчетФактураПолученныйАванс.Контрагент = &Поставщик
	|			ИНАЧЕ ИСТИНА
	|		КОНЕЦ)
	|	И НЕ СчетФактураПолученныйАванс.Исправление
	|	И СчетФактураПолученныйАванс.Проведен
	|	И СчетФактураПолученныйИсправление.Ссылка ЕСТЬ NULL";
	 
	Запрос.Текст = ТекстЗапроса;
	Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
	Запрос.УстановитьПараметр("Поставщик",        Поставщик);
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();
	
	Если Выборка.Следующий() Тогда
		ЗаполнитьЗначенияСвойств(РеквизитыСчетФактуры, Выборка);
	КонецЕсли; 
	
	// Аванс может быть в разных валютах, в этом случае будет несколько строк
	СписокАвансов = ВыданныеАвансы.НайтиСтроки(Новый Структура("ДокументОснование, Поставщик", ДокументОснование, Поставщик));
	Для каждого ЭлКоллекции Из СписокАвансов Цикл
		ЗаполнитьЗначенияСвойств(ЭлКоллекции, РеквизитыСчетФактуры);
	КонецЦикла; 
	
КонецПроцедуры

&НаКлиенте
Процедура ВвестиСчетФактуруПолученныйАванс()

	ТекущиеДанные = Элементы.ТаблицаВыданныеАвансы.ТекущиеДанные;
	Если ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если ТекущиеДанные.СчетФактура.Пустая() Тогда
		
		ОчиститьСообщения();
	
		Если Не ЗначениеЗаполнено(Организация) И ИспользоватьНесколькоОрганизаций Тогда
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Выберите организацию'"), , "Организация");
			Возврат;
		КонецЕсли;
		
		СтруктураОснования = Новый Структура;
		СтруктураОснования.Вставить("Организация",       Организация);
		СтруктураОснования.Вставить("ДокументОснование", ТекущиеДанные.ДокументОснование);
		СтруктураОснования.Вставить("НалогообложениеНДС", ТекущиеДанные.НалогообложениеНДС);
		СтруктураОснования.Вставить("Контрагент",        ТекущиеДанные.Поставщик);
		СтруктураОснования.Вставить("Валюта",            ВалютаРеглУчета);
		СтруктураОснования.Вставить("Дата",              ТекущиеДанные.Дата);
		СтруктураОснования.Вставить("Сумма",             ТекущиеДанные.СуммаАвансаРегл);
		
		ПараметрыФормы = Новый Структура("Основание", СтруктураОснования);
	Иначе
		ПараметрыФормы = Новый Структура("Ключ", ТекущиеДанные.СчетФактура);
	КонецЕсли; 
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ВвестиСчетФактуруПолученныйАвансЗавершение", ЭтотОбъект, Новый Структура("ТекущиеДанные", ТекущиеДанные));
	ОткрытьФорму("Документ.СчетФактураПолученныйАванс.ФормаОбъекта", ПараметрыФормы,,,,, ОписаниеОповещения);
	
КонецПроцедуры

&НаКлиенте
Процедура ВвестиСчетФактуруПолученныйАвансЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные;
	ОбновитьДанныеСтрокиВыданныхАвансов(ТекущиеДанные.ДокументОснование, ТекущиеДанные.Поставщик);
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьПлатежныйДокументАванс()

	ТекущиеДанные = Элементы.ТаблицаВыданныеАвансы.ТекущиеДанные;
	Если ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ИмяТаблицы = ИмяТаблицыПоСсылке(ТекущиеДанные.ДокументОснование);
	
	ОткрытьФорму(ИмяТаблицы + ".ФормаОбъекта", Новый Структура("Ключ", ТекущиеДанные.ДокументОснование));
	
КонецПроцедуры

#КонецОбласти

#Область Прочее

&НаКлиенте
Процедура ВыбратьПериодЗавершение(РезультатВыбора, ДопПараметры) Экспорт
	
	Если РезультатВыбора = Неопределено Тогда
		Возврат;
	КонецЕсли;
	ЗаполнитьЗначенияСвойств(ЭтаФорма, РезультатВыбора, "НачалоПериода,КонецПериода");
	
	ОбновитьДанныеФормы();
	
КонецПроцедуры

&НаСервере
Функция ИмяТаблицыПоСсылке(Ссылка)
	
	Возврат ОбщегоНазначения.ИмяТаблицыПоСсылке(Ссылка);
	
КонецФункции

&НаСервере
Процедура УстановитьЗначенияПоУмолчанию()

	Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
	ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
	НачалоПериода = НачалоКвартала(ТекущаяДатаСеанса());
	КонецПериода = КонецКвартала(ТекущаяДатаСеанса());
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьДанныеФормы()
	
	УстановитьАктуальностьГраницыРасчетов();
	
	ЗаполнитьВыданныеАвансы();
	
	УстановитьОтборСостояния(Элементы.ТаблицаВыданныеАвансы, ОтборСостояние, ОтборПоставщик);

	Если ЗначениеЗаполнено(ВалютаРеглУчета) Тогда 
		Элементы.ТаблицаВыданныеАвансыСуммаАвансаРегл.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сумма аванса (%1)'"), ВалютаРеглУчета);
	Иначе
		Элементы.ТаблицаВыданныеАвансыСуммаАвансаРегл.Заголовок = НСтр("ru = 'Сумма аванса (регл.)'");
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура УстановитьАктуальностьГраницыРасчетов()
	
	ПериодРасчета = КонецМесяца(КонецПериода);
	
	ПоляОтбора = Новый Структура("Организация, Партнер, Контрагент, Договор");
	ПоляОтбора.Организация = Организация;
	АналитикиРасчета = РаспределениеВзаиморасчетовВызовСервера.АналитикиРасчета();
	АналитикиРасчета.АналитикиУчетаПоПартнерам = РаспределениеВзаиморасчетовВызовСервера.МассивКлючейПартнеровПоОтбору(ПоляОтбора);
	
	Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Тогда
		УстановитьПривилегированныйРежим(Истина);
		НачалоРасчета = РегистрыСведений.ЗаданияКРаспределениюВзаиморасчетов.АктуальныйПериодРассчитанныхДанныхПоВзаиморасчетам(
			АналитикиРасчета.АналитикиУчетаПоПартнерам, , ПериодРасчета);
		УстановитьПривилегированныйРежим(Ложь);
		
		Если НачалоРасчета = Неопределено ИЛИ НачалоРасчета > ПериодРасчета Тогда
			АктуальностьГраницыРасчетов = Истина;
		Иначе
			АктуальностьГраницыРасчетов = Ложь;
		КонецЕсли;
		Элементы.КнопкаАктуализироватьРасчетыСКлиентами.Видимость = Ложь;
		Элементы.ГруппаАктуальностьРасчетов.Видимость = НЕ АктуальностьГраницыРасчетов;
	Иначе
		УстановитьПривилегированныйРежим(Истина);
		НачалоРасчета = РаспределениеВзаиморасчетовВызовСервера.НачалоРасчетов(ПериодРасчета, АналитикиРасчета, "РасчетыСПоставщиками");
		УстановитьПривилегированныйРежим(Ложь);
		
		Если НЕ ЗначениеЗаполнено(НачалоРасчета) ИЛИ НачалоРасчета > ПериодРасчета Тогда
			АктуальностьГраницыРасчетов = Истина;
		Иначе
			АктуальностьГраницыРасчетов = Ложь;
		КонецЕсли;
		Элементы.ГруппаАктуальностьРасчетов.Видимость = НЕ АктуальностьГраницыРасчетов;
	КонецЕсли
КонецПроцедуры

&НаСервере
Процедура АктуализироватьРасчетыСервер()
	
	АналитикиРасчета = РаспределениеВзаиморасчетовВызовСервера.АналитикиРасчета();
	РаспределениеВзаиморасчетовВызовСервера.РаспределитьВсеРасчетыСПоставщиками(КонецМесяца(КонецПериода) + 1, АналитикиРасчета);
	ЗаполнитьВыданныеАвансы();
	
КонецПроцедуры

&НаСервере
Процедура УстановитьЗначенияПоПараметрамФормы(Параметры)

	СтруктураБыстрогоОтбора = Неопределено;
	Параметры.Свойство("СтруктураБыстрогоОтбора", СтруктураБыстрогоОтбора);
	
	Если СтруктураБыстрогоОтбора <> Неопределено Тогда
		СтруктураБыстрогоОтбора.Свойство("Организация", Организация);
		СтруктураБыстрогоОтбора.Свойство("НачалоПериода", НачалоПериода);
		СтруктураБыстрогоОтбора.Свойство("КонецПериода", КонецПериода);
		СтруктураБыстрогоОтбора.Свойство("ОтборСостояние", ОтборСостояние);
		ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьКоманд()
	
	Если РольДоступна("ДобавлениеИзменениеСчетовФактурПолученныхНаАванс") Или
		 РольДоступна("ПолныеПрава") Тогда
		 	Элементы.КоманднаяПанельВвестиСчетФактуру.Видимость = Истина;
	Иначе
		Элементы.КоманднаяПанельВвестиСчетФактуру.Видимость = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция УстановитьОтборСостояния(ТаблицаВыданныеАвансы, ОтборСостояние, ОтборПоставщик)

	Если ОтборСостояние = "ТребуетсяРегистрацияСчетаФактуры" Тогда
		ТаблицаВыданныеАвансы.ОтборСтрок = Новый ФиксированнаяСтруктура("СчетФактура",ПредопределенноеЗначение("Документ.СчетФактураПолученныйАванс.ПустаяСсылка"));
		ОтборПоставщик = Неопределено;
	ИначеЕсли ОтборСостояние = "РазличаютсяСуммыАвансаИ_СФ" Тогда
		ТаблицаВыданныеАвансы.ОтборСтрок = Новый ФиксированнаяСтруктура("ОшибкаСумм", Истина);
		ОтборПоставщик = Неопределено;
	Иначе
		ТаблицаВыданныеАвансы.ОтборСтрок = Неопределено;
	КонецЕсли;

КонецФункции

&НаСервере
Процедура УстановитьУсловноеОформление()

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаВыданныеАвансы.Имя);

	ОтборЭлемента = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВыданныеАвансы.ОшибкаСумм");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Истина;

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 200, 200));

КонецПроцедуры


#КонецОбласти

#КонецОбласти

Связанные материалы