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