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