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