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