#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ВалютаУправленческогоУчета = Константы.ВалютаУправленческогоУчета.Получить();
ИспользоватьНесколькоВалют = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют");
Элементы.ГруппаПрефикс.Видимость =
(Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВводОстатковРасчетовМеждуОрганизациямиПоАвансам);
Элементы.ГруппаВводОстатковПо.Видимость = Ложь;
Элементы.ОтражатьВБУиНУ.Видимость = Ложь;
Элементы.ОтражатьВУУ.Видимость = Ложь;
ЗаполнитьСпискиВыбораТипаРасчетов();
УстановитьЗаголовок();
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриСозданииЧтенииНаСервере();
КонецЕсли;
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПриСозданииЧтенииНаСервере();
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
ЗаполнитьТипОбъектаРасчетов();
УстановитьЗаголовок();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
Оповестить("Запись_ВводОстатков", ПараметрыЗаписи, Объект.Ссылка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
ИсправлениеДокументовКлиент.ПослеЗаписи(Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДополнятьНомераПриИзменении(Элемент)
Элементы.Префикс.Доступность = Объект.ДополнятьНомера;
Если НЕ ЗначениеЗаполнено(Объект.Префикс) И Объект.ДополнятьНомера Тогда
Объект.Префикс = СформироватьПрефикс(Объект.Организация);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПродавецПриИзменении(Элемент)
Объект.Префикс = СформироватьПрефикс(Объект.Организация);
МассивПараметров = ПолучитьПараметрыВыбораОрганизацииПолучателя(Объект.ОрганизацияПолучатель);
Элементы.Покупатель.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
ПродавецПриИзмененииНаСервере();
ПроверитьИОчиститьОрганизациюПолучатель(Объект.Организация, Объект.ОрганизацияПолучатель);
КонецПроцедуры
&НаСервере
Процедура ПродавецПриИзмененииНаСервере()
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
КонецПроцедуры
&НаКлиенте
Процедура ОтражатьВОперативномУчетеПриИзменении(Элемент)
УстановитьВидимость();
КонецПроцедуры
&НаКлиенте
Процедура ОтражатьВБУиНУПриИзменении(Элемент)
УстановитьВидимость();
КонецПроцедуры
&НаКлиенте
Процедура ОтражатьВУУПриИзменении(Элемент)
УстановитьВидимость();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовПодвалаФормы
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
Элемент.ТекстРедактирования,
ЭтотОбъект,
"Объект.Комментарий");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасчетыПоРеализациям
&НаКлиенте
Процедура РасчетыПоРеализацииТипРасчетовПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоРеализации.ТекущиеДанные;
НомерДатаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииТипРасчетовОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.РасчетыПоРеализации.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.ОбъектРасчетов) Тогда
ПоказатьЗначение(Неопределено, ТекущиеДанные.ОбъектРасчетов);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтрокаТаблицы = Элементы.РасчетыПоРеализации.ТекущиеДанные;
СтандартнаяОбработка = Ложь;
ТипРасчетовОбработкаВыбора(Элемент, СтрокаТаблицы, ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииНомерРасчетногоДокументаПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоРеализации.ТекущиеДанные;
НомерДатаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииДатаРасчетногоДокументаПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоРеализации.ТекущиеДанные;
НомерДатаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииСуммаПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоРеализации.ТекущиеДанные;
СуммаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииВалютаВзаиморасчетовПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоРеализации.ТекущиеДанные;
ВалютаВзаиморасчетовПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоРеализацииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗаполнитьВалютуВзаиморасчетовВСтроке(Элементы.РасчетыПоРеализации.ТекущиеДанные);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасчетыПоАвансам
&НаКлиенте
Процедура РасчетыПоАвансамТипРасчетовОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.РасчетыПоАвансам.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.ОбъектРасчетов) Тогда
ПоказатьЗначение(Неопределено, ТекущиеДанные.ОбъектРасчетов);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоАвансамТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтрокаТаблицы = Элементы.РасчетыПоАвансам.ТекущиеДанные;
СтандартнаяОбработка = Ложь;
ТипРасчетовОбработкаВыбора(Элемент, СтрокаТаблицы, ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоАвансамНомерРасчетногоДокументаПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоАвансам.ТекущиеДанные;
НомерДатаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоАвансамДатаРасчетногоДокументаПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоАвансам.ТекущиеДанные;
НомерДатаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоАвансамСуммаПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоАвансам.ТекущиеДанные;
СуммаПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоАвансамВалютаВзаиморасчетовПриИзменении(Элемент)
ТекущиеДанные = Элементы.РасчетыПоАвансам.ТекущиеДанные;
ВалютаВзаиморасчетовПриИзменении(ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура РасчетыПоАвансамПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗаполнитьВалютуВзаиморасчетовВСтроке(Элементы.РасчетыПоАвансам.ТекущиеДанные);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоОстаткам(Команда)
Возврат;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.РасчетыПоРеализацииНомерРасчетногоДокумента.Имя);
КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.РасчетыПоРеализацииДатаРасчетногоДокумента.Имя);
КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.РасчетыПоАвансамНомерРасчетногоДокумента.Имя);
КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.РасчетыПоАвансамДатаРасчетногоДокумента.Имя);
ГруппаОтбора = КомпоновкаДанныхКлиентСервер.ДобавитьГруппуОтбора(Элемент.Отбор.Элементы, ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);
КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(ГруппаОтбора, "Объект.РасчетыМеждуОрганизациями.ОбъектРасчетов", Неопределено);
КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(ГруппаОтбора, "Объект.РасчетыМеждуОрганизациями.ТипРасчетов", НСтр("ru = 'Договор с контрагентом'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.РасчетыПоРеализацииТипРасчетов.Имя);
КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.РасчетыПоАвансамТипРасчетов.Имя);
КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(Элемент.Отбор, "Объект.РасчетыМеждуОрганизациями.ОбъектРасчетов", Неопределено);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Не указан'"));
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасчетыПоРеализацииРасчетныйДокумент.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасчетыМеждуОрганизациями.ТипРасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(НСтр("ru = 'Договор купли-продажи'"));
СписокЗначений.Добавить(НСтр("ru = 'Договор комиссии'"));
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для документов>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
КонецПроцедуры
#Область ОбщиеОбработчикиСобытийТабличныхЧастейРасчетыПоРеализациямИРасчетыПоАвансам
&НаКлиенте
Процедура ТипРасчетовОбработкаВыбора(Элемент, СтрокаТаблицы, ВыбранноеЗначение)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
СтрокаТаблицы.ТипРасчетов = Строка(ТипЗнч(ВыбранноеЗначение.Заказ));
СтрокаТаблицы.ДатаРасчетногоДокумента = ВыбранноеЗначение.Дата;
СтрокаТаблицы.НомерРасчетногоДокумента = ВыбранноеЗначение.Номер;
СтрокаТаблицы.ОбъектРасчетов = ВыбранноеЗначение.Заказ;
СтрокаТаблицы.ВалютаВзаиморасчетов = ВыбранноеЗначение.ВалютаВзаиморасчетов;
Иначе
Если ТипЗнч(СтрокаТаблицы.ОбъектРасчетов) <> ТипЗнч(ВыбранноеЗначение) Тогда
СтрокаТаблицы.ОбъектРасчетов = ВыбранноеЗначение;
Если ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ТипыДоговоровМеждуОрганизациями.КупляПродажа") Тогда
СтрокаТаблицы.ТипРасчетов = НСтр("ru = 'Договор купли-продажи'");
ИначеЕсли ВыбранноеЗначение = ПредопределенноеЗначение("Перечисление.ТипыДоговоровМеждуОрганизациями.Комиссионный") Тогда
СтрокаТаблицы.ТипРасчетов = НСтр("ru = 'Договор комиссии'");
Иначе
СтрокаТаблицы.ТипРасчетов = Строка(ТипЗнч(ВыбранноеЗначение));
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НомерДатаПриИзменении(ТекущиеДанные)
ДополнитьНомер(ТекущиеДанные.НомерРасчетногоДокумента);
Если Не (ЗначениеЗаполнено(ТекущиеДанные.НомерРасчетногоДокумента)
И ЗначениеЗаполнено(ТекущиеДанные.ДатаРасчетногоДокумента)) Тогда
Возврат;
КонецЕсли;
ТекущаяСтрокаИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
ПодобратьДокументРасчетовСервер(ТекущаяСтрокаИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура СуммаПриИзменении(СтрокаТаблицы)
Суммы = РассчитатьСуммы(
СтрокаТаблицы.Сумма,
СтрокаТаблицы.ВалютаВзаиморасчетов,
ВалютаРегламентированногоУчета,
ВалютаУправленческогоУчета,
Объект.Дата);
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Суммы, "СуммаРегл, СуммаУпр");
КонецПроцедуры
&НаКлиенте
Процедура ВалютаВзаиморасчетовПриИзменении(СтрокаТаблицы)
Если СтрокаТаблицы.Сумма <> 0 Тогда
СуммаПриИзменении(СтрокаТаблицы);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Процедура ПриСозданииЧтенииНаСервере()
УстановитьВидимость();
МассивПараметров = Новый Массив;
Если ЗначениеЗаполнено(Объект.ОрганизацияПолучатель)
И ФОИспользоватьОбособленныеПодразделенияВыделенныеНаБаланс Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("РежимВыбораВзаимосвязанныхОрганизаций", "ТолькоНеВзаимосвязанные"));
КонецЕсли;
Элементы.Покупатель.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
Элементы.Префикс.Доступность = Объект.ДополнятьНомера;
ЗаполнитьТипОбъектаРасчетов();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимость()
Элементы.ГруппаРасчетыПоРеализации.Видимость = Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковРасчетовМеждуОрганизациямиПоРеализациям;
Элементы.ГруппаРасчетыПоАвансам.Видимость = Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковРасчетовМеждуОрганизациямиПоАвансам;
ЗаполнениеПоОстаткам = НЕ Объект.ОтражатьВОперативномУчете И (Объект.ОтражатьВБУиНУ ИЛИ Объект.ОтражатьВУУ);
Элементы.РасчетыПоРеализацииЗаполнитьПоОстаткам.Видимость = ЗаполнениеПоОстаткам;
Элементы.РасчетыПоАвансамЗаполнитьПоОстаткам.Видимость = ЗаполнениеПоОстаткам;
Элементы.РасчетыПоРеализацииСуммаРегл.Видимость = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьВБУиНУ;
Элементы.РасчетыПоРеализацииСуммаУпр.Видимость = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьВУУ;
Элементы.РасчетыПоАвансамСуммаРегл.Видимость = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьВБУиНУ;
Элементы.РасчетыПоАвансамСуммаУпр.Видимость = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьВУУ;
Элементы.РасчетыПоРеализацииОтложенныйДоходНУ.Видимость = Ложь;
Элементы.РасчетыПоРеализацииОтложенныйРасходНУ.Видимость = Ложь;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовок()
АвтоЗаголовок = Ложь;
Заголовок = Документы.ВводОстатков.ЗаголовокДокументаПоТипуОперации(Объект.Ссылка,
Объект.Номер,
Объект.Дата,
Объект.ХозяйственнаяОперация);
КонецПроцедуры
&НаСервереБезКонтекста
Функция СформироватьПрефикс(Организация)
Возврат Документы.ВводОстатков.УстановитьПрефикс(Организация);
КонецФункции
&НаКлиенте
Процедура ДополнитьНомер(Номер)
Если Не Объект.ДополнятьНомера
Или Не ЗначениеЗаполнено(Номер) Тогда
Возврат;
КонецЕсли;
Результат = СокрЛП(Номер);
Разделитель = ?(ПустаяСтрока(Объект.Префикс), "", "-");
Начало = СокрЛП(Объект.Префикс) + Разделитель;
Пока СтрДлина(Результат) < 11 - СтрДлина(Начало) Цикл
Результат = "0" + Результат;
КонецЦикла;
Если СтрДлина(Результат) <= 11 - СтрДлина(Начало) Тогда
Результат = Начало + Результат;
КонецЕсли;
Номер = Результат;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСпискиВыбораТипаРасчетов()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковРасчетовМеждуОрганизациямиПоРеализациям Тогда
СписокВыбора = Элементы.РасчетыПоРеализацииТипРасчетов.СписокВыбора;
СписокВыбора.Очистить();
СписокВыбора.Добавить(Документы.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка(), НСтр("ru = 'Передача товаров'"));
СписокВыбора.Добавить(Документы.ОтчетПоКомиссииМеждуОрганизациями.ПустаяСсылка(), НСтр("ru = 'Отчет по комиссии между организациями'"));
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковРасчетовМеждуОрганизациямиПоАвансам Тогда
СписокВыбора = Элементы.РасчетыПоАвансамТипРасчетов.СписокВыбора;
СписокВыбора.Очистить();
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыМеждуОрганизациями") Тогда
СписокВыбора.Добавить(Перечисления.ТипыДоговоровМеждуОрганизациями.КупляПродажа, НСтр("ru = 'Договор купли-продажи'"));
СписокВыбора.Добавить(Перечисления.ТипыДоговоровМеждуОрганизациями.Комиссионный, НСтр("ru = 'Договор комиссии'"));
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьТипОбъектаРасчетов()
Для Каждого СтрокаТаблицы Из Объект.РасчетыМеждуОрганизациями Цикл
Если СтрокаТаблицы.ОбъектРасчетов = Перечисления.ТипыДоговоровМеждуОрганизациями.КупляПродажа Тогда
СтрокаТаблицы.ТипРасчетов = НСтр("ru = 'Договор купли-продажи'");
ИначеЕсли СтрокаТаблицы.ОбъектРасчетов = Перечисления.ТипыДоговоровМеждуОрганизациями.Комиссионный Тогда
СтрокаТаблицы.ТипРасчетов = НСтр("ru = 'Договор комиссии'");
Иначе
СтрокаТаблицы.ТипРасчетов = Строка(ТипЗнч(СтрокаТаблицы.ОбъектРасчетов));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьПараметрыВыбораОрганизацииПолучателя(ОрганизацияПокупатель)
МассивПараметров = Новый Массив;
Если ЗначениеЗаполнено(ОрганизацияПокупатель)
И ФОИспользоватьОбособленныеПодразделенияВыделенныеНаБаланс Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("РежимВыбораВзаимосвязанныхОрганизаций", "ТолькоНеВзаимосвязанные"));
КонецЕсли;
Возврат МассивПараметров;
КонецФункции
&НаСервереБезКонтекста
Процедура ПроверитьИОчиститьОрганизациюПолучатель(Организация, ОрганизацияПолучатель)
Если ЗначениеЗаполнено(Организация)
И ЗначениеЗаполнено(ОрганизацияПолучатель)
И ПолучитьФункциональнуюОпцию("ИспользоватьОбособленныеПодразделенияВыделенныеНаБаланс")
И Справочники.Организации.ОрганизацииВзаимосвязаныПоОрганизационнойСтруктуре(Организация, ОрганизацияПолучатель) Тогда
ОрганизацияПолучатель = Неопределено;
КонецЕсли
КонецПроцедуры
&НаСервере
Процедура ПодобратьДокументРасчетовСервер(ТекущаяСтрокаИдентификатор)
ИмяТЧ = Документы.ВводОстатков.ИмяТабличнойЧастиРасчетовПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);
ТекущиеДанные = Объект[ИмяТЧ].НайтиПоИдентификатору(ТекущаяСтрокаИдентификатор);
Документы.ВводОстатков.ПодобратьДокументРасчетов(Объект, ТекущиеДанные);
КонецПроцедуры
&НаСервереБезКонтекста
Функция РассчитатьСуммы(Сумма, Валюта, ВалютаРегл, ВалютаУпр, ДатаДокумента)
Если Валюта = ВалютаРегл Тогда
СуммаРегл = Сумма;
Иначе
КоэффициентПересчета = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(Валюта, ВалютаРегл, ДатаДокумента);
СуммаРегл = Окр(Сумма * КоэффициентПересчета, 2, 1);
КонецЕсли;
Если Валюта = ВалютаУпр Тогда
СуммаУпр = Сумма;
Иначе
КоэффициентПересчета = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(Валюта, ВалютаУпр, ДатаДокумента);
СуммаУпр = Окр(Сумма * КоэффициентПересчета, 2, 1);
КонецЕсли;
Возврат Новый Структура("СуммаРегл, СуммаУпр", СуммаРегл, СуммаУпр);
КонецФункции
&НаКлиенте
Процедура ЗаполнитьВалютуВзаиморасчетовВСтроке(Строка)
Если Не ЗначениеЗаполнено(Строка.ВалютаВзаиморасчетов) И Не ИспользоватьНесколькоВалют Тогда
Строка.ВалютаВзаиморасчетов = ВалютаРегламентированногоУчета;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти