#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ПрочитатьФО();
УстановитьНастройкиПоФО();
ПереопределитьСвойстваДинамическихСписков();
УстановитьУсловноеОформление();
ИнициализироватьДинамическиеСписки();
Элементы.Список.ИзменятьСоставСтрок = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВидовЦен");
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
Если Элементы.Найти("НастройкаПорядкаЭлементов") <> Неопределено Тогда
Элементы["НастройкаПорядкаЭлементов"].Видимость = ПравоДоступа("Изменение", Метаданные.Справочники.ВидыЦен);
КонецЕсли;
Элементы.НастроитьДиапазоныДопустимыхЦен.Видимость =
ПравоДоступа("Чтение", Метаданные.Константы.ВидМаксимальноДопустимыхЦенЗакупки)
И ПравоДоступа("Чтение", Метаданные.Константы.ВидМаксимальноДопустимыхЦенПродажи)
И ПравоДоступа("Чтение", Метаданные.Константы.ВидМинимальноДопустимыхЦенПродажи);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ЗаполнениеКомандногоМенюВЗакладках();
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВариантОтображенияВидовЦенПриИзменении(Элемент)
СопоставлениеЗакладок = ПолучитьСопостовлениеЗакладок();
Если СопоставлениеЗакладок = Неопределено Тогда
Возврат;
КонецЕсли;
ВариантОтображенияВидовЦен = ЭтотОбъект[СопоставлениеЗакладок.ИмяВариантОтображенияВидовЦен];
ИзменениеФильтраДинамическогоСписка(СопоставлениеЗакладок);
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьДинамическиеСписки()
ДинамическиеСписки = Новый Массив;
Если ИспользоватьСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
ДинамическиеСписки.Добавить(ИспользованиеНаСкладах);
КонецЕсли;
Если ИспользоватьФорматыМагазинов Тогда
ДинамическиеСписки.Добавить(ИспользованиеВФорматахМагазинов);
КонецЕсли;
Если ИспользоватьПартнеров Тогда
ДинамическиеСписки.Добавить(ИспользованиеВПартнерах);
КонецЕсли;
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"ВидЦен",
Неопределено,
Истина);
КонецЦикла;
Если ИспользоватьНесколькоСкладов Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеНаСкладах,
"Статус",
Перечисления.СтатусыДействияВидовЦен.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ВариантОтображенияВидовЦен <> "Все");
КонецЕсли;
Если ИспользоватьФорматыМагазинов Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВФорматахМагазинов,
"Статус",
Перечисления.СтатусыДействияВидовЦен.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ВариантОтображенияВидовЦен <> "Все");
КонецЕсли;
Если ИспользоватьПартнеров Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВПартнерах,
"Статус",
Перечисления.СтатусыДействияВидовЦен.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ВариантОтображенияВидовЦен <> "Все");
КонецЕсли;
Если ИспользоватьСоглашенияСКлиентами Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ИспользованиеВСоглашенияхСКлиентами,
"Статус",
Перечисления.СтатусыДействияВидовЦен.Действует,
ВидСравненияКомпоновкиДанных.Равно,
,
ВариантОтображенияВидовЦен <> "Все");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Статус", СтатусОтбор, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(СтатусОтбор));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Назначение", НазначениеОтбор, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(НазначениеОтбор));
ИзменитьОтборПоИспользованию();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
ПараметрыСписка = Настройки.ПараметрыДанных.Элементы;
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапросаДинамическогоСписка(ПараметрыСписка);
Запрос.УстановитьПараметр("МассивСсылок", Строки.ПолучитьКлючи());
СтрокаСпискаДанные = Неопределено;
РеквизитыДляЗаполнения = Новый Массив();
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьНесколькоСкладов");
Если ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение) Тогда
РеквизитыДляЗаполнения.Добавить("КоличествоСкладовВсего");
КоличествоСкладов = "КоличествоСкладов";
Иначе
КоличествоСкладов = "";
КонецЕсли;
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьФорматыМагазинов");
Если ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение) Тогда
РеквизитыДляЗаполнения.Добавить("КоличествоФорматовМагазиновВсего");
КоличествоФорматовМагазинов = "КоличествоФорматовМагазинов";
Иначе
КоличествоФорматовМагазинов = "";
КонецЕсли;
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьПартнеров");
Если ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение) Тогда
РеквизитыДляЗаполнения.Добавить("КоличествоПартнеровВсего");
КоличествоПартнеров = "КоличествоПартнеров";
Иначе
КоличествоПартнеров = "";
КонецЕсли;
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьСоглашенияСКлиентами");
Если ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение) Тогда
РеквизитыДляЗаполнения.Добавить("КоличествоСоглашенийВсего");
КоличествоСоглашений = "КоличествоСоглашений";
Иначе
КоличествоСоглашений = "";
КонецЕсли;
ПроверенВыводРеквизитовВСписок = Ложь;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтрокаСпискаДанные = Строки[Выборка.ВидЦены].Данные;
Если Не ПроверенВыводРеквизитовВСписок Тогда
Если Не ПустаяСтрока(КоличествоСкладов)
И СтрокаСпискаДанные.Свойство(КоличествоСкладов) Тогда
РеквизитыДляЗаполнения.Добавить(КоличествоСкладов);
КонецЕсли;
Если Не ПустаяСтрока(КоличествоФорматовМагазинов)
И СтрокаСпискаДанные.Свойство(КоличествоФорматовМагазинов) Тогда
РеквизитыДляЗаполнения.Добавить(КоличествоФорматовМагазинов);
КонецЕсли;
Если Не ПустаяСтрока(КоличествоПартнеров)
И СтрокаСпискаДанные.Свойство(КоличествоПартнеров) Тогда
РеквизитыДляЗаполнения.Добавить(КоличествоПартнеров);
КонецЕсли;
Если Не ПустаяСтрока(КоличествоСоглашений)
И СтрокаСпискаДанные.Свойство(КоличествоСоглашений) Тогда
РеквизитыДляЗаполнения.Добавить(КоличествоСоглашений);
КонецЕсли;
СтрокаРеквизитыДляЗаполнения = СтрСоединить(РеквизитыДляЗаполнения, ", ");
ПроверенВыводРеквизитовВСписок = Истина;
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаСпискаДанные, Выборка, СтрокаРеквизитыДляЗаполнения);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура НастроитьДиапазоныДопустимыхЦенВыполнить()
ОткрытьФорму("Справочник.ВидыЦен.Форма.ФормаНастройкиДиапазонаДопустимыхЦен",,,,);
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
Если Элемент.ТекущийЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ИдетОбновлениеПриСписокПриАктивизацииСтроки Тогда
ИдетОбновлениеПриСписокПриАктивизацииСтроки = Истина;
ПодключитьОбработчикОжидания("Подключаемый_СписокПриАктивизацииСтроки", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииЯчейки(Элемент)
Если ИдетПереключениеЗакладок Или Элемент.ТекущийЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
ПереключениеИспользованияВидовЦенНажатие(Элемент.ТекущийЭлемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура НастроитьРасписаниеАвтообновленияЦен(Команда)
ОткрытьФорму("Справочник.ВидыЦен.Форма.ФормаНастройкиРасписанияАвтообновленияЦен",,,,);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура СтатусОтборПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Статус", СтатусОтбор, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(СтатусОтбор));
КонецПроцедуры
&НаКлиенте
Процедура ТипВидаЦенОтборПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Назначение", НазначениеОтбор, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(НазначениеОтбор));
КонецПроцедуры
&НаКлиенте
Процедура ИспользованиеОтборПриИзменении(Элемент)
ИзменитьОтборПоИспользованию();
КонецПроцедуры
&НаСервере
Процедура ИзменитьОтборПоИспользованию()
Для Каждого Элемент Из Элементы.ИспользованиеОтбор.СписокВыбора Цикл
ФлагЗначения = (ИспользованиеОтбор = Элемент.Значение);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, Элемент.Значение, ФлагЗначения, ВидСравненияКомпоновкиДанных.Равно,, ФлагЗначения);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СписокПриАктивизацииСтроки()
ДанныеПоВидуЦен = ДанныеПоТекущемуВидуЦен();
Если Не ДанныеПоВидуЦен.ВидЦен.Пустая()
И ДанныеПоВидуЦен.ВидЦен <> АктивизированныйВидЦен Тогда
ДоступностьФорматовМагазинов = (ЗначениеЗаполнено(ДанныеПоВидуЦен.ВидЦен) И ДанныеПоВидуЦен.ИспользоватьПриРозничнойПродаже);
Элементы.ГруппаФорматыМагазинов.Доступность = ДоступностьФорматовМагазинов;
Элементы.КомандаВФорматахМагазинов1.Доступность = ДоступностьФорматовМагазинов;
Элементы.НадписьКоличествоВФорматахМагазинов.Доступность = ДоступностьФорматовМагазинов;
Элементы.КомандаВФорматахМагазинов3.Доступность = ДоступностьФорматовМагазинов;
Элементы.КомандаВФорматахМагазинов4.Доступность = ДоступностьФорматовМагазинов;
ВидЦенВыбран = НЕ ДанныеПоВидуЦен.ВидЦен.Пустая();
Элементы.ГруппаИспользованияТекущейЦены.Доступность = ВидЦенВыбран;
Если ДанныеПоВидуЦен.Назначение = ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.Общий") Тогда
Элементы.ГруппаПанелиУправления.Доступность = ВидЦенВыбран;
Элементы.ИспользованиеНаСкладахШапка.Доступность = Истина;
Элементы.ИспользованиеВФорматахШапка.Доступность = Истина;
Элементы.ИспользованиеВПартнерахШапка.Доступность = Истина;
Элементы.ИспользованиеВСоглашенияхШапка.Доступность = Истина;
Иначе
Элементы.ИспользованиеНаСкладахШапка.Доступность = Ложь;
Элементы.ИспользованиеВФорматахШапка.Доступность = Ложь;
Элементы.ИспользованиеВПартнерахШапка.Доступность = Ложь;
Элементы.ИспользованиеВСоглашенияхШапка.Доступность = Ложь;
КонецЕсли;
СписокПриАктивизацииСтрокиНаСервере(ДанныеПоВидуЦен);
КонецЕсли;
АктивизированныйВидЦен = ДанныеПоВидуЦен.ВидЦен;
ИдетОбновлениеПриСписокПриАктивизацииСтроки = Ложь;
КонецПроцедуры
&НаКлиенте
Функция ДанныеПоТекущемуВидуЦен()
ДанныеПоВидуЦен = ИнициализацияСтруктурыДанныхПоВидуЦен();
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если НЕ (ТекущиеДанные = Неопределено
Или ТекущиеДанные.ЭтоГруппа
ИЛИ Элементы.Список.ВыделенныеСтроки.Количество() <> 1) Тогда
ДанныеПоВидуЦен.ВидЦен = ТекущиеДанные.Ссылка;
ЗаполнитьЗначенияСвойств(ДанныеПоВидуЦен, ТекущиеДанные);
КонецЕсли;
Возврат ДанныеПоВидуЦен;
КонецФункции
&НаКлиенте
Процедура НадписьНаСкладахНажатие(Элемент)
ПереключениеИспользованияВидовЦенНажатие(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВФорматахМагазиновНажатие(Элемент)
ПереключениеИспользованияВидовЦенНажатие(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВПартнерахНажатие(Элемент)
ПереключениеИспользованияВидовЦенНажатие(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура НадписьВСоглашенияхНажатие(Элемент)
ПереключениеИспользованияВидовЦенНажатие(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ПереключениеИспользованияВидовЦенНажатие(ИмяЭлемента)
ИдетПереключениеЗакладок = Истина;
СопоставлениеЗакладок = ПолучитьСопостовлениеЗакладок("ОбластьДействия" , ИмяЭлемента);
Если СопоставлениеЗакладок = Неопределено Тогда
ИдетПереключениеЗакладок = Ложь;
Возврат;
КонецЕсли;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы[СопоставлениеЗакладок.ИмяЗакладки];
Элементы.ГруппаПанелиУправления.ТекущаяСтраница = Элементы[СопоставлениеЗакладок.ИмяПанельУправления];
Элементы.Список.ТекущийЭлемент = Элементы[СопоставлениеЗакладок.ОбластьДействия];
ЭтотОбъект[СопоставлениеЗакладок.ИмяВариантОтображенияВидовЦен] = ВариантОтображенияВидовЦен;
ИзменениеФильтраДинамическогоСписка(СопоставлениеЗакладок);
ИдетПереключениеЗакладок = Ложь;
КонецПроцедуры
&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере(ДанныеПоВидуЦен)
ДинамическиеСписки = Новый Массив;
Если ИспользоватьСоглашенияСКлиентами Тогда
ДинамическиеСписки.Добавить(ИспользованиеВСоглашенияхСКлиентами);
КонецЕсли;
Если ИспользоватьНесколькоСкладов Тогда
ДинамическиеСписки.Добавить(ИспользованиеНаСкладах);
КонецЕсли;
Если ИспользоватьФорматыМагазинов Тогда
ДинамическиеСписки.Добавить(ИспользованиеВФорматахМагазинов);
КонецЕсли;
Если ИспользоватьПартнеров Тогда
ДинамическиеСписки.Добавить(ИспользованиеВПартнерах);
КонецЕсли;
ВидЦенВыбран = НЕ ДанныеПоВидуЦен.ВидЦен.Пустая();
Для Каждого ДинамическийСписок Из ДинамическиеСписки Цикл
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
ДинамическийСписок,
"ВидЦен",
?(ВидЦенВыбран, ДанныеПоВидуЦен.ВидЦен, Неопределено),
Истина);
КонецЦикла;
СформироватьИнформациюОКоличествеИспользуемыхВидовЦен(ДанныеПоВидуЦен);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
СписокИспользованиеВСоглашенияхСКлиентамиУсловноеОформление = ИспользованиеВСоглашенияхСКлиентами.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеВСоглашенияхСКлиентамиУсловноеОформление.Элементы.Очистить();
СписокИспользованиеНаСкладахУсловноеОформление = ИспользованиеНаСкладах.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеНаСкладахУсловноеОформление.Элементы.Очистить();
СписокИспользованиеВФорматахМагазиновУсловноеОформление = ИспользованиеВФорматахМагазинов.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеВФорматахМагазиновУсловноеОформление.Элементы.Очистить();
СписокИспользованиеВПартнерахУсловноеОформление = ИспользованиеВПартнерах.КомпоновщикНастроек.Настройки.УсловноеОформление;
СписокИспользованиеВПартнерахУсловноеОформление.Элементы.Очистить();
Если ИспользоватьНесколькоСкладов Тогда
Элемент = СписокИспользованиеНаСкладахУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияВидовЦен.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Если ИспользоватьФорматыМагазинов Тогда
Элемент = СписокИспользованиеВФорматахМагазиновУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияВидовЦен.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Если ИспользоватьПартнеров Тогда
Элемент = СписокИспользованиеВПартнерахУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияВидовЦен.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
Если ИспользоватьСоглашенияСКлиентами Тогда
Элемент = СписокИспользованиеВСоглашенияхСКлиентамиУсловноеОформление.Элементы.Добавить();
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.СтатусыДействияВидовЦен.НеДействует;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаСверткиРазвертки(Команда)
Элементы.ГруппаИспользованияТекущейЦены.Видимость = Не Элементы.ГруппаИспользованияТекущейЦены.Видимость;
Элементы.ГруппаПанелиУправления.Видимость = Элементы.ГруппаИспользованияТекущейЦены.Видимость;
Если Элементы.ГруппаИспользованияТекущейЦены.Видимость Тогда
Элементы.КомандаСверткиРазвертки.Заголовок = НСтр("ru = 'Свернуть>>'");
иначе
Элементы.КомандаСверткиРазвертки.Заголовок = НСтр("ru = '<<Развернуть'");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусДействуетРозничный(Команда)
ГрупповоеИзменениеСтатуса(Истина,"Розничный");
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусНеДействуетРозничный(Команда)
ГрупповоеИзменениеСтатуса(Ложь,"Розничный");
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусДействуетУчетный(Команда)
ГрупповоеИзменениеСтатуса(Истина,"Учетный");
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусНеДействуетУчетный(Команда)
ГрупповоеИзменениеСтатуса(Ложь,"Учетный");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область УстановкаСнятиеСтатусов
&НаКлиенте
Процедура ГрупповоеИзменениеСтатуса(Знач ЭтоУстановка = Ложь,Знач ВидЦены)
ОчиститьСообщения();
АктивнаяСтраница = Элементы.ГруппаСтраницы.ТекущаяСтраница;
Если АктивнаяСтраница = Неопределено Тогда
СообщениеПользователю = НСтр("ru = 'Ошибка: не определена категория объектов для изменения вида цен'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СообщениеПользователю);
Возврат;
КонецЕсли;
ГрупповоеИзменениеСтатусаСервер(АктивнаяСтраница.Имя,ЭтоУстановка,ВидЦены);
СопоставлениеЗакладок = ПолучитьСопостовлениеЗакладок();
Если СопоставлениеЗакладок <> Неопределено Тогда
ЭлементИспользованияЦены = Элементы[СопоставлениеЗакладок.ИмяСписка];
ЭлементИспользованияЦены.Обновить();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГрупповоеИзменениеСтатусаСервер(Знач ИмяКоллекции, Знач ЭтоУстановка = Ложь,Знач ВидЦены)
Отбор = Новый Структура("ИмяЗакладки", ИмяКоллекции);
НайденныеЭлементы = СопоставлениеЗакладокСоСписками.НайтиСтроки(Отбор);
Если НайденныеЭлементы.количество() > 0 Тогда
СопоставлениеЗакладок = Новый Структура("ИмяЗакладки, ИмяСписка, ОбластьДействия");
ЗаполнитьЗначенияСвойств(СопоставлениеЗакладок, НайденныеЭлементы[0]);
Иначе
Возврат;
КонецЕсли;
Если СопоставлениеЗакладок = Неопределено Тогда
СообщениеПользователю = НСтр("ru = 'Для категирии ""%1"" не определен источник данных'");
СообщениеПользователю = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеПользователю,ИмяКоллекции);
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
КонецЕсли;
СписокЦен = Элементы.Список;
ЭлементИспользованияЦены = Элементы[СопоставлениеЗакладок.ИмяСписка];
Если СписокЦен.ВыделенныеСтроки.Количество() = 1 Тогда
ТекущийВидЦен = СписокЦен.ВыделенныеСтроки[0];
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийВидЦен,"ЭтоГруппа") Тогда
СообщениеПользователю = НСтр("ru = 'Действие допустимо только для элементов видов цен'");
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
Возврат;
КонецЕсли;
ИначеЕсли СписокЦен.ВыделенныеСтроки.Количество() = 0 Тогда
СообщениеПользователю = НСтр("ru = 'Не указан вид цен'");
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
Возврат;
ИначеЕсли СписокЦен.ВыделенныеСтроки.Количество() > 1 Тогда
СообщениеПользователю = НСтр("ru = 'Указание более одного элемента вида цен недопустимо'");
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
Возврат;
ИначеЕсли ЭлементИспользованияЦены.ВыделенныеСтроки.Количество() = 0 Тогда
СообщениеПользователю = НСтр("ru = 'Не указаны данные для установки видов цен'");
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
Возврат;
КонецЕсли;
Если ЭлементИспользованияЦены.ВыделенныеСтроки.Количество() = 0 Тогда
СообщениеПользователю = НСтр("ru = 'Не указаны данные для установки/снятия видов цен'");
ОбщегоНазначения.СообщитьПользователю(СообщениеПользователю);
Возврат;
КонецЕсли;
Справочники.ВидыЦен.УстановитьВидЦеныВОбъектах(
СписокЦен.ВыделенныеСтроки[0],ЭтоУстановка,ЭлементИспользованияЦены.ВыделенныеСтроки,ВидЦены);
КонецПроцедуры
&НаСервере
Процедура ЗаполнениеКомандногоМенюВЗакладках()
ПереченьЗакладокДляВстраивания();
Для каждого Элемент Из СопоставлениеЗакладокСоСписками Цикл
ГруппаФормы = Элементы.Найти(Элемент.ИмяГруппыИзменениеСтатуса);
Если ГруппаФормы = Неопределено Тогда
Продолжить;
КонецЕсли;
Если ГруппаФормы.ПодчиненныеЭлементы.Количество() = 0 Тогда
ВставкаПеред = Неопределено;
Иначе
ВставкаПеред = ГруппаФормы.ПодчиненныеЭлементы[0];
КонецЕсли;
ГруппаФормы.ОтображатьЗаголовок = Ложь;
СопоставлениеЗакладок = ПолучитьСопостовлениеЗакладокСервер("ОбластьДействия", Элемент.ОбластьДействия);
ИмяРеквизитаФормы = СопоставлениеЗакладок.ИмяВариантОтображенияВидовЦен;
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1ВариантОтображенияВидовЦен",Элемент.ИмяЗакладки);
ЭлементФормы = Элементы.Вставить(ИмяЭлемента, Тип("ПолеФормы"),ГруппаФормы,ВставкаПеред);
ЭлементФормы.Вид = ВидПоляФормы.ПолеПереключателя;
ЭлементФормы.ПутьКДанным = ИмяРеквизитаФормы;
ЭлементФормы.КоличествоКолонок = 2;
ЭлементФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ЭлементФормы.СписокВыбора.Очистить();
ЭлементФормы.СписокВыбора.Добавить("Все", НСтр("ru = 'Все'"));
ЭлементФормы.СписокВыбора.Добавить("", НСтр("ru = 'Где действует'"));
ЭлементФормы.УстановитьДействие("ПриИзменении","ВариантОтображенияВидовЦенПриИзменении");
Если ВставкаПеред = Неопределено Тогда
ТипЭлемента = "ГруппаФормы";
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1ПанельИспользование",Элемент.ИмяЗакладки);
ЭлементКоманднаяПанель = Элементы.Вставить(ИмяЭлемента, Тип(ТипЭлемента),ГруппаФормы,ВставкаПеред);
ЭлементКоманднаяПанель.Вид = ВидГруппыФормы.КоманднаяПанель;
Иначе
ЭлементКоманднаяПанель = ВставкаПеред;
КонецЕсли;
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1УстановитьСтатус",Элемент.ИмяЗакладки);
ЭлементПодменюУстановить = Элементы.Вставить(ИмяЭлемента, Тип("ГруппаФормы"),ЭлементКоманднаяПанель);
ЭлементПодменюУстановить.Вид = ВидГруппыФормы.Подменю;
ЭлементПодменюУстановить.Заголовок = НСтр("ru = 'Изменить'");
Если Не Элемент.ПравоИзменения Тогда
Продолжить;
КонецЕсли;
Если Элемент.ИмяЗакладки = Элементы.ГруппаСклады.Имя Тогда
КомандаВидЦены = "Розничный";
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1%2",Элемент.ИмяЗакладки,КомандаВидЦены);
ЭлементПодменюВидЦены = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"),ЭлементПодменюУстановить);
ЭлементПодменюВидЦены.Вид = ВидГруппыФормы.Подменю;
ЭлементПодменюВидЦены.Заголовок = НСтр("ru = 'Розничные'");
ИменаКомандУстановкиСтатуса = ИменаКомандУстановкиСтатуса(КомандаВидЦены, Элемент.ОбластьДействия);
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1%2УстановитьСтатусДействует",Элемент.ИмяЗакладки,КомандаВидЦены);
ЭлементПодменюДействует = Элементы.Добавить(ИмяЭлемента, Тип("КнопкаФормы"),ЭлементПодменюВидЦены);
ЭлементПодменюДействует.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
ЭлементПодменюДействует.Заголовок = НСтр("ru = 'Установить'");
ЭлементПодменюДействует.ИмяКоманды = ИменаКомандУстановкиСтатуса.Действует;
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1%2УстановитьСтатусНеДействует",Элемент.ИмяЗакладки,КомандаВидЦены);
ЭлементПодменюНеДействует = Элементы.Добавить(ИмяЭлемента, Тип("КнопкаФормы"),ЭлементПодменюВидЦены);
ЭлементПодменюНеДействует.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
ЭлементПодменюНеДействует.Заголовок = НСтр("ru = 'Очистить'");
ЭлементПодменюНеДействует.ИмяКоманды = ИменаКомандУстановкиСтатуса.НеДействует;
КомандаВидЦены = "Учетный";
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1%2",Элемент.ИмяЗакладки,КомандаВидЦены);
ЭлементПодменюВидЦены = Элементы.Добавить(ИмяЭлемента, Тип("ГруппаФормы"),ЭлементПодменюУстановить);
ЭлементПодменюВидЦены.Вид = ВидГруппыФормы.Подменю;
ЭлементПодменюВидЦены.Заголовок = НСтр("ru = 'Учетные'");
ИменаКомандУстановкиСтатуса = ИменаКомандУстановкиСтатуса(КомандаВидЦены, Элемент.ОбластьДействия);
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1%2УстановитьСтатусДействует",Элемент.ИмяЗакладки,КомандаВидЦены);
ЭлементПодменюДействует = Элементы.Добавить(ИмяЭлемента, Тип("КнопкаФормы"),ЭлементПодменюВидЦены);
ЭлементПодменюДействует.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
ЭлементПодменюДействует.Заголовок = НСтр("ru = 'Установить'");
ЭлементПодменюДействует.ИмяКоманды = ИменаКомандУстановкиСтатуса.Действует;
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1%2УстановитьСтатусНеДействует",Элемент.ИмяЗакладки,КомандаВидЦены);
ЭлементПодменюНеДействует = Элементы.Добавить(ИмяЭлемента, Тип("КнопкаФормы"),ЭлементПодменюВидЦены);
ЭлементПодменюНеДействует.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
ЭлементПодменюНеДействует.Заголовок = НСтр("ru = 'Очистить'");
ЭлементПодменюНеДействует.ИмяКоманды = ИменаКомандУстановкиСтатуса.НеДействует;
Иначе
Если Элемент.ИмяЗакладки = Элементы.ГруппаФорматыМагазинов.Имя Тогда
КомандаВидЦены = "Розничный";
Иначе
КомандаВидЦены = "Учетный";
КонецЕсли;
ИменаКомандУстановкиСтатуса = ИменаКомандУстановкиСтатуса(КомандаВидЦены, Элемент.ОбластьДействия);
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1УстановитьСтатусДействует",Элемент.ИмяЗакладки);
ЭлементПодменюДействует = Элементы.Добавить(ИмяЭлемента, Тип("КнопкаФормы"),ЭлементПодменюУстановить);
ЭлементПодменюДействует.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
ЭлементПодменюДействует.Заголовок = НСтр("ru = 'Установить'");
ЭлементПодменюДействует.ИмяКоманды = ИменаКомандУстановкиСтатуса.Действует;
Если Элемент.ИмяЗакладки <> Элементы.ГруппаФорматыМагазинов.Имя Тогда
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1УстановитьСтатусНеДействует",Элемент.ИмяЗакладки);
ЭлементПодменюНеДействует = Элементы.Добавить(ИмяЭлемента, Тип("КнопкаФормы"),ЭлементПодменюУстановить);
ЭлементПодменюНеДействует.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
ЭлементПодменюНеДействует.Заголовок = НСтр("ru = 'Очистить'");
ЭлементПодменюНеДействует.ИмяКоманды = ИменаКомандУстановкиСтатуса.НеДействует;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПереченьЗакладокДляВстраивания()
СопоставлениеЗакладокСоСписками.Очистить();
СопоставлениеЗакладокСоСпискамиДобавить(
Элементы.ГруппаСклады.Имя,
Элементы.ИспользованиеНаСкладах.Имя,
"НаСкладах",
ПравоДоступа("Изменение", Метаданные.Справочники.Склады),
Элементы.ПанельУправленияГруппаСклады.Имя,
"ВариантОтображенияВидовЦенНаСкладах",
Элементы.ГруппаСкладыИзменениеСтатуса.Имя);
СопоставлениеЗакладокСоСпискамиДобавить(
Элементы.ГруппаФорматыМагазинов.Имя,
Элементы.ИспользованиеВФорматахМагазинов.Имя,
"ВФорматахМагазинов",
ПравоДоступа("Изменение", Метаданные.Справочники.ФорматыМагазинов),
Элементы.ПанельУправленияГруппаФорматыМагазинов.Имя,
"ВариантОтображенияВидовЦенВФорматахМагазинов",
Элементы.ГруппаФорматыМагазиновИзменениеСтатуса.Имя);
СопоставлениеЗакладокСоСпискамиДобавить(
Элементы.ГруппаПартнеры.Имя,
Элементы.ИспользованиеВПартнерах.Имя,
"ВПартнерах",
ПравоДоступа("Изменение", Метаданные.Справочники.Партнеры),
Элементы.ПанельУправленияГруппаПартнеры.Имя,
"ВариантОтображенияВидовЦенВПартнерах",
Элементы.ГруппаПартнерыИзменениеСтатуса.Имя);
СопоставлениеЗакладокСоСпискамиДобавить(
Элементы.ГруппаСоглашения.Имя,
Элементы.ИспользованиеВСоглашенияхСКлиентами.Имя,
"ВСоглашениях",
ПравоДоступа("Изменение", Метаданные.Справочники.СоглашенияСКлиентами),
Элементы.ПанельУправленияГруппаСоглашения.Имя,
"ВариантОтображенияВидовЦенВСоглашениях",
Элементы.ГруппаСоглашенияИзменениеСтатуса.Имя);
КонецПроцедуры
&НаСервере
Процедура СопоставлениеЗакладокСоСпискамиДобавить(ИмяЗакладки, ИмяСписка, ОбластьДействия, ПравоИзменения, ИмяПанельУправления, ИмяВариантОтображенияВидовЦен, ИмяГруппыИзменениеСтатуса);
НоваяСтрока = СопоставлениеЗакладокСоСписками.Добавить();
НоваяСтрока.ИмяЗакладки = ИмяЗакладки;
НоваяСтрока.ИмяСписка = ИмяСписка;
НоваяСтрока.ОбластьДействия = ОбластьДействия;
НоваяСтрока.ПравоИзменения = ПравоИзменения;
НоваяСтрока.ИмяПанельУправления = ИмяПанельУправления;
НоваяСтрока.ИмяВариантОтображенияВидовЦен = ИмяВариантОтображенияВидовЦен;
НоваяСтрока.ИмяГруппыИзменениеСтатуса = ИмяГруппыИзменениеСтатуса;
КонецПроцедуры
&НаКлиенте
Процедура ИзменениеФильтраДинамическогоСписка(СопоставлениеЗакладок)
Если СопоставлениеЗакладок = Неопределено Тогда
Возврат;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ЭтотОбъект[СопоставлениеЗакладок.ИмяСписка],
"Статус",
ПредопределенноеЗначение("Перечисление.СтатусыДействияВидовЦен.Действует"),
ВидСравненияКомпоновкиДанных.Равно,
,
ВариантОтображенияВидовЦен <> "Все");
КонецПроцедуры
&НаКлиенте
Функция ПолучитьСопостовлениеЗакладок(Знач КолонкаПоиска = "ИмяЗакладки", Знач ЗначениеПоиска = "")
СопоставлениеЗакладок = Неопределено;
Если ЗначениеПоиска = "" Тогда
Если КолонкаПоиска = "ИмяЗакладки" Тогда
ТекущаяСтраница = Элементы.ГруппаСтраницы.ТекущаяСтраница;
Если ТекущаяСтраница <> Неопределено Тогда
ЗначениеПоиска = ТекущаяСтраница.Имя;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеПоиска <> Неопределено Тогда
Отбор = Новый Структура(КолонкаПоиска, ЗначениеПоиска);
НайденныеЭлементы = СопоставлениеЗакладокСоСписками.НайтиСтроки(Отбор);
Если НайденныеЭлементы.количество() > 0 Тогда
СопоставлениеЗакладок = Новый Структура("ИмяЗакладки, ИмяСписка, ОбластьДействия, ИмяПанельУправления, ИмяВариантОтображенияВидовЦен");
ЗаполнитьЗначенияСвойств(СопоставлениеЗакладок, НайденныеЭлементы[0]);
КонецЕсли;
КонецЕсли;
Возврат СопоставлениеЗакладок
КонецФункции
&НаСервере
Функция ПолучитьСопостовлениеЗакладокСервер(Знач КолонкаПоиска = "ИмяЗакладки", Знач ЗначениеПоиска)
СопоставлениеЗакладок = Неопределено;
Если ЗначениеПоиска <> Неопределено Тогда
Отбор = Новый Структура(КолонкаПоиска, ЗначениеПоиска);
НайденныеЭлементы = СопоставлениеЗакладокСоСписками.НайтиСтроки(Отбор);
Если НайденныеЭлементы.количество() > 0 Тогда
СопоставлениеЗакладок = Новый Структура("ИмяЗакладки, ИмяСписка, ОбластьДействия, ИмяПанельУправления, ИмяВариантОтображенияВидовЦен");
ЗаполнитьЗначенияСвойств(СопоставлениеЗакладок, НайденныеЭлементы[0]);
КонецЕсли;
КонецЕсли;
Возврат СопоставлениеЗакладок
КонецФункции
&НаСервере
Функция ИменаКомандУстановкиСтатуса(ИмяВидаЦен, ОбластьДействия)
Результат = Новый Структура();
Результат.Вставить("Действует");
Результат.Вставить("НеДействует");
Если ИмяВидаЦен = "Розничный" Тогда
Если ОбластьДействия = "НаСкладах" Тогда
Результат.Действует = Команды.УстановитьСтатусДействуетРозничныйНаСкладах.Имя;
Результат.НеДействует = Команды.УстановитьСтатусНеДействуетРозничныйНаСкладах.Имя;
ИначеЕсли ОбластьДействия = "ВФорматахМагазинов" Тогда
Результат.Действует = Команды.УстановитьСтатусДействуетРозничныйВФорматахМагазинов.Имя;
Результат.НеДействует = Команды.УстановитьСтатусНеДействуетРозничныйВФорматахМагазинов.Имя;
КонецЕсли;
ИначеЕсли ИмяВидаЦен = "Учетный" Тогда
Если ОбластьДействия = "НаСкладах" Тогда
Результат.Действует = Команды.УстановитьСтатусДействуетУчетныйНаСкладах.Имя;
Результат.НеДействует = Команды.УстановитьСтатусНеДействуетУчетныйНаСкладах.Имя;
ИначеЕсли ОбластьДействия = "ВСоглашениях" Тогда
Результат.Действует = Команды.УстановитьСтатусДействуетУчетныйВСоглашениях.Имя;
Результат.НеДействует = Команды.УстановитьСтатусНеДействуетУчетныйВСоглашениях.Имя;
ИначеЕсли ОбластьДействия = "ВПартнерах" Тогда
Результат.Действует = Команды.УстановитьСтатусДействуетУчетныйВПартнерах.Имя;
Результат.НеДействует = Команды.УстановитьСтатусНеДействуетУчетныйВПартнерах.Имя;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область ФормированиеТекстовЗапросовПереопределяемыхСписков
&НаСервереБезКонтекста
Функция ТекстЗапросаДинамическогоСписка(ПараметрыСписка)
ЗапросТекст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Ссылка) КАК КоличествоУстановлено,
| Т.ВидЦен КАК ВидЦены
|ПОМЕСТИТЬ ИспользованиеНаСкладах
|ИЗ
| (ВЫБРАТЬ
| Т.Ссылка КАК Ссылка,
| Т.РозничныйВидЦены КАК ВидЦен
| ИЗ
| Справочник.Склады КАК Т
| ГДЕ
| Т.РозничныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Т.Ссылка,
| Т.УчетныйВидЦены
| ИЗ
| Справочник.Склады КАК Т
| ГДЕ
| Т.УчетныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Т.Ссылка,
| Т.ИндивидуальныйВидЦены
| ИЗ
| Справочник.Склады КАК Т
| ГДЕ
| Т.ИндивидуальныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)) КАК Т
|СГРУППИРОВАТЬ ПО
| Т.ВидЦен
|;
|ВЫБРАТЬ * ИЗ &ФорматыМагазиновТаблица;
|ВЫБРАТЬ * ИЗ &ПартнерыТаблица;
|ВЫБРАТЬ * ИЗ &СоглашенияТаблица;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| МАКСИМУМ(Т.КоличествоСкладовВсего) КАК КоличествоСкладовВсего,
| МАКСИМУМ(Т.КоличествоФорматовМагазиновВсего) КАК КоличествоФорматовМагазиновВсего,
| МАКСИМУМ(Т.КоличествоПартнеровВсего) КАК КоличествоПартнеровВсего,
| МАКСИМУМ(Т.КоличествоСоглашенийВсего) КАК КоличествоСоглашенийВсего
|ПОМЕСТИТЬ ВсегоОбъектов
|ИЗ
| (ВЫБРАТЬ
| КОЛИЧЕСТВО(Т.Ссылка) КАК КоличествоСкладовВсего,
| 0 КАК КоличествоФорматовМагазиновВсего,
| 0 КАК КоличествоПартнеровВсего,
| 0 КАК КоличествоСоглашенийВсего
| ИЗ
| Справочник.Склады КАК Т
| ГДЕ
| НЕ Т.ПометкаУдаления
| И НЕ Т.ЭтоГруппа
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| 0,
| КОЛИЧЕСТВО(Т.Ссылка),
| 0,
| 0
| ИЗ
| Справочник.ФорматыМагазинов КАК Т
| ГДЕ
| НЕ Т.ПометкаУдаления
| И НЕ Т.ЭтоГруппа
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| 0,
| 0,
| КОЛИЧЕСТВО(Т.Ссылка),
| 0
| ИЗ
| Справочник.Партнеры КАК Т
| ГДЕ
| НЕ Т.ПометкаУдаления
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| 0,
| 0,
| 0,
| &КоличествоСоглашенияСКлиентами
| ИЗ
| Справочник.СоглашенияСКлиентами КАК Т
| ГДЕ
| НЕ Т.ПометкаУдаления
|) КАК Т
|;
|
|
|ВЫБРАТЬ
| СправочникВидыЦен.Ссылка КАК ВидЦены,
| ЕСТЬNULL(ИспользованиеНаСкладах.КоличествоУстановлено, 0) КАК КоличествоСкладов,
| ЕСТЬNULL(ВсегоОбъектов.КоличествоСкладовВсего, 0) КАК КоличествоСкладовВсего,
| &ФорматыМагазиновПоля,
| &ПартнерыПоля,
| &СоглашенияПоля,
| СправочникВидыЦен.ЭтоГруппа КАК ЭтоГруппа,
| СправочникВидыЦен.Родитель КАК Родитель
|ИЗ
| Справочник.ВидыЦен КАК СправочникВидыЦен
| ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеНаСкладах КАК ИспользованиеНаСкладах
| ПО СправочникВидыЦен.Ссылка = ИспользованиеНаСкладах.ВидЦены
| {ЛЕВОЕ СОЕДИНЕНИЕ ВсегоОбъектов КАК ВсегоОбъектов
| ПО (ИСТИНА)}
| ЛЕВОЕ СОЕДИНЕНИЕ &ФорматыМагазиновСоединение ПО ИСТИНА
| ЛЕВОЕ СОЕДИНЕНИЕ &ПартнерыСоединение ПО ИСТИНА
| ЛЕВОЕ СОЕДИНЕНИЕ &СоглашенияСоединение ПО ИСТИНА
|ГДЕ
| СправочникВидыЦен.Ссылка В (&МассивСсылок)
|";
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьФорматыМагазинов");
ФлагИспользования = ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение);
ДобавитьВЗапросТекстИнформациюПоФорматамМагазинов(ЗапросТекст, ФлагИспользования);
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьПартнеров");
ФлагИспользования = ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение);
ДобавитьВЗапросТекстИнформациюПоПартнерам(ЗапросТекст, ФлагИспользования);
НайденныйПараметр = ПараметрыСписка.Найти("ИспользоватьСоглашенияСКлиентами");
ФлагИспользования = ?(НайденныйПараметр = Неопределено, Ложь, НайденныйПараметр.Значение);
ДобавитьВЗапросТекстИнформациюПоСоглашениям(ЗапросТекст, ФлагИспользования);
Возврат ЗапросТекст;
КонецФункции
&НаСервереБезКонтекста
Процедура ДобавитьВЗапросТекстИнформациюПоФорматамМагазинов(ЗапросТекст, ФлагИспользования)
Если ФлагИспользования Тогда
ФорматыМагазиновТаблица = "
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Ссылка) КАК КоличествоУстановлено,
| Т.ВидЦены КАК ВидЦены
|ПОМЕСТИТЬ ИспользованиеВФорматахМагазинов
|ИЗ
| (ВЫБРАТЬ
| Т.Ссылка КАК Ссылка,
| Т.РозничныйВидЦены КАК ВидЦены
| ИЗ
| Справочник.ФорматыМагазинов КАК Т
| ГДЕ
| Т.РозничныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Т.Ссылка,
| Т.ИндивидуальныйВидЦены
| ИЗ
| Справочник.ФорматыМагазинов КАК Т
| ГДЕ
| Т.ИндивидуальныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)) КАК Т
|СГРУППИРОВАТЬ ПО
| Т.ВидЦены
|;
|";
ФорматыМагазиновПоля = "
| ЕСТЬNULL(ИспользованиеВФорматахМагазинов.КоличествоУстановлено, 0) КАК КоличествоФорматовМагазинов,
| ЕСТЬNULL(ВсегоОбъектов.КоличествоФорматовМагазиновВсего, 0) КАК КоличествоФорматовМагазиновВсего,";
ФорматыМагазиновСоединение = "
| ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеВФорматахМагазинов КАК ИспользованиеВФорматахМагазинов
| ПО СправочникВидыЦен.Ссылка = ИспользованиеВФорматахМагазинов.ВидЦены";
Иначе
ФорматыМагазиновТаблица = "";
ФорматыМагазиновСоединение = "";
ФорматыМагазиновПоля = "
| 0 КАК КоличествоФорматовМагазинов,
| 0 КАК КоличествоФорматовМагазиновВсего,
|";
КонецЕсли;
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&ФорматыМагазиновПоля,", ФорматыМагазиновПоля);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ВЫБРАТЬ * ИЗ &ФорматыМагазиновТаблица;", ФорматыМагазиновТаблица);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ЛЕВОЕ СОЕДИНЕНИЕ &ФорматыМагазиновСоединение ПО ИСТИНА", ФорматыМагазиновСоединение);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ДобавитьВЗапросТекстИнформациюПоПартнерам(ЗапросТекст, ФлагИспользования)
Если ФлагИспользования Тогда
ПартнерыТаблица = "
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Ссылка) КАК КоличествоУстановлено,
| Т.ВидЦены КАК ВидЦены
|ПОМЕСТИТЬ ИспользованиеВПартнерах
|ИЗ
| (ВЫБРАТЬ
| Т.Ссылка КАК Ссылка,
| Т.ВидЦен КАК ВидЦены
| ИЗ
| Справочник.Партнеры КАК Т
| ГДЕ
| Т.ВидЦен <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Т.Ссылка,
| Т.ИндивидуальныйВидЦены
| ИЗ
| Справочник.Партнеры КАК Т
| ГДЕ
| Т.ИндивидуальныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)) КАК Т
|СГРУППИРОВАТЬ ПО
| Т.ВидЦены
|;
|";
ПартнерыПоля = "
| ЕСТЬNULL(ИспользованиеВПартнерах.КоличествоУстановлено, 0) КАК КоличествоПартнеров,
| ЕСТЬNULL(ВсегоОбъектов.КоличествоПартнеровВсего, 0) КАК КоличествоПартнеровВсего,";
ПартнерыСоединение = "
| ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеВПартнерах КАК ИспользованиеВПартнерах
| ПО СправочникВидыЦен.Ссылка = ИспользованиеВПартнерах.ВидЦены";
Иначе
ПартнерыТаблица = "";
ПартнерыСоединение = "";
ПартнерыПоля = "
| 0 КАК КоличествоПартнеров,
| 0 КАК КоличествоПартнеровВсего,
|";
КонецЕсли;
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&ПартнерыПоля,", ПартнерыПоля);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ВЫБРАТЬ * ИЗ &ПартнерыТаблица;", ПартнерыТаблица);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ЛЕВОЕ СОЕДИНЕНИЕ &ПартнерыСоединение ПО ИСТИНА", ПартнерыСоединение);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ДобавитьВЗапросТекстИнформациюПоСоглашениям(ЗапросТекст, ФлагИспользования)
Если ФлагИспользования Тогда
КоличествоСоглашенияСКлиентами = "КОЛИЧЕСТВО(Т.Ссылка)";
СоглашенияТаблица = "
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Ссылка) КАК КоличествоУстановлено,
| Т.ВидЦены КАК ВидЦены
|ПОМЕСТИТЬ ИспользованиеВСоглашенияхКлиентов
|ИЗ
| (ВЫБРАТЬ
| Т.Ссылка КАК Ссылка,
| Т.ВидЦен КАК ВидЦены
| ИЗ
| Справочник.СоглашенияСКлиентами КАК Т
| ГДЕ
| Т.ВидЦен <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Т.Ссылка,
| Т.ИндивидуальныйВидЦены
| ИЗ
| Справочник.СоглашенияСКлиентами КАК Т
| ГДЕ
| Т.ИндивидуальныйВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)) КАК Т
|СГРУППИРОВАТЬ ПО
| Т.ВидЦены
|;
|";
СоглашенияПоля = "
| ЕСТЬNULL(ИспользованиеВСоглашенияхКлиентов.КоличествоУстановлено, 0) КАК КоличествоСоглашений,
| ЕСТЬNULL(ВсегоОбъектов.КоличествоСоглашенийВсего, 0) КАК КоличествоСоглашенийВсего,";
СоглашенияСоединение = "
| ЛЕВОЕ СОЕДИНЕНИЕ ИспользованиеВСоглашенияхКлиентов КАК ИспользованиеВСоглашенияхКлиентов
| ПО СправочникВидыЦен.Ссылка = ИспользованиеВСоглашенияхКлиентов.ВидЦены";
Иначе
КоличествоСоглашенияСКлиентами = "0";
СоглашенияТаблица = "";
СоглашенияСоединение = "";
СоглашенияПоля = "
| 0 КАК КоличествоСоглашений,
| 0 КАК КоличествоСоглашенийВсего,
|";
КонецЕсли;
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&КоличествоСоглашенияСКлиентами", КоличествоСоглашенияСКлиентами);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "&СоглашенияПоля,", СоглашенияПоля);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ВЫБРАТЬ * ИЗ &СоглашенияТаблица;", СоглашенияТаблица);
ЗапросТекст = СтрЗаменить(ЗапросТекст, "ЛЕВОЕ СОЕДИНЕНИЕ &СоглашенияСоединение ПО ИСТИНА", СоглашенияСоединение);
КонецПроцедуры
&НаСервере
Функция ТекстЗапросаДинамическогоСпискаИспользованиеВСоглашенияхСКлиентами()
ТекстЗапроса =
"ВЫБРАТЬ
| СоглашенияСКлиентами.Ссылка КАК Соглашение,
| СоглашенияСКлиентами.Статус КАК СтатусСоглашения,
| СоглашенияСКлиентами.Партнер КАК Партнер,
| ЕСТЬNULL(СоглашенияСКлиентамиДействия.Статус, ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.НеДействует)) КАК Статус,
| ВЫБОР
| КОГДА СоглашенияСКлиентами.ИндивидуальныйВидЦены = ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьИндивидуальныйВидЦен,
| СоглашенияСКлиентами.ВидЦен,
| ВЫБОР
| КОГДА СоглашенияСКлиентами.Типовое
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ КАК ИндексКартинкиТиповое,
| СоглашенияСКлиентами.Организация КАК Организация,
| СоглашенияСКлиентами.Контрагент КАК Контрагент,
| СоглашенияСКлиентами.СегментПартнеров КАК СегментПартнеров
|ИЗ
| Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СоглашенияСКлиентамиДействия.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА СоглашенияСКлиентамиДействия.ВидЦен = ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
| И СоглашенияСКлиентамиДействия.ИндивидуальныйВидЦены = ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.НеДействует)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует)
| КОНЕЦ КАК Статус
| ИЗ
| Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентамиДействия
| ГДЕ
| СоглашенияСКлиентамиДействия.ВидЦен = &ВидЦен
| ИЛИ СоглашенияСКлиентамиДействия.ИндивидуальныйВидЦены = &ВидЦен) КАК СоглашенияСКлиентамиДействия
| ПО СоглашенияСКлиентами.Ссылка = СоглашенияСКлиентамиДействия.Ссылка";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#Область ПереопределениеДинамическихСписков
&НаСервере
Процедура ПереопределитьСвойстваДинамическихСписков()
ПереопределитьСвойстваСпискаИспользованиеВСоглашенияхСКлиентами();
ПереопределитьСвойстваОсновногоСписка();
КонецПроцедуры
&НаСервере
Процедура ПереопределитьСвойстваСпискаИспользованиеВСоглашенияхСКлиентами()
Если ИспользоватьСоглашенияСКлиентами Тогда
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
СвойстваСписка.ТекстЗапроса = ТекстЗапросаДинамическогоСпискаИспользованиеВСоглашенияхСКлиентами();
СвойстваСписка.ОсновнаяТаблица = "Справочник.СоглашенияСКлиентами";
СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.ИспользованиеВСоглашенияхСКлиентами, СвойстваСписка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПереопределитьСвойстваОсновногоСписка()
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список,
"ИспользоватьНесколькоСкладов",
ИспользоватьНесколькоСкладов);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список,
"ИспользоватьФорматыМагазинов",
ИспользоватьФорматыМагазинов);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список,
"ИспользоватьПартнеров",
ИспользоватьПартнеров);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список,
"ИспользоватьСоглашенияСКлиентами",
ИспользоватьСоглашенияСКлиентами);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Процедура УстановитьНастройкиПоФО()
Элементы.ГруппаСоглашения.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.ВСоглашениях.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.ПанельУправленияГруппаСоглашения.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.ГруппаСклады.Видимость = ИспользоватьНесколькоСкладов;
Элементы.НаСкладах.Видимость = ИспользоватьНесколькоСкладов;
Элементы.ПанельУправленияГруппаСклады.Видимость = ИспользоватьНесколькоСкладов;
Элементы.Группа1.Видимость = ИспользоватьНесколькоСкладов;
Элементы.ГруппаФорматыМагазинов.Видимость = ИспользоватьФорматыМагазинов;
Элементы.ВФорматахМагазинов.Видимость = ИспользоватьФорматыМагазинов;
Элементы.ПанельУправленияГруппаФорматыМагазинов.Видимость = ИспользоватьФорматыМагазинов;
Элементы.Группа8.Видимость = ИспользоватьФорматыМагазинов;
Элементы.ГруппаПартнеры.Видимость = ИспользоватьПартнеров;
Элементы.ВПартнерах.Видимость = ИспользоватьПартнеров;
Элементы.ПанельУправленияГруппаПартнеры.Видимость = ИспользоватьПартнеров;
Элементы.Группа7.Видимость = ИспользоватьПартнеров;
Элементы.НадписьВПартнерах.Видимость = ИспользоватьПартнеров;
Элементы.КомандаВПартнерах1.Видимость = ИспользоватьПартнеров;
Элементы.КомандаВПартнерах2.Видимость = ИспользоватьПартнеров;
Элементы.КомандаВПартнерах4.Видимость = ИспользоватьПартнеров;
Элементы.КомандаВСоглашениях1.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.НадписьВСоглашениях.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.КомандаВСоглашениях2.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.КомандаВСоглашениях3.Видимость = ИспользоватьСоглашенияСКлиентами;
Элементы.Группа9.Видимость = ИспользоватьСоглашенияСКлиентами;
СписокВыбораНазначение = Элементы.НазначениеОтбор.СписокВыбора;
СписокВыбораНазначение.Очистить();
СписокВыбораНазначение.Добавить(ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.Общий"), НСтр("ru = 'всех'"));
Если ИспользоватьНесколькоСкладов Тогда
СписокВыбораНазначение.Добавить(ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.ИндивидуальныйДляСклада"), НСтр("ru = 'склада'"));
КонецЕсли;
Если ИспользоватьФорматыМагазинов Тогда
СписокВыбораНазначение.Добавить(ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.ИндивидуальныйДляФорматаМагазинов"), НСтр("ru = 'формата магазинов'"));
КонецЕсли;
Если ИспользоватьПартнеров Тогда
СписокВыбораНазначение.Добавить(ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.ИндивидуальныйДляПартнера"), НСтр("ru = 'партнера'"));
КонецЕсли;
Если ИспользоватьСоглашенияСКлиентами Тогда
СписокВыбораНазначение.Добавить(ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.ИндивидуальныйДляСоглашения"), НСтр("ru = 'соглашения'"));
КонецЕсли;
СписокВыбораИспользование = Элементы.ИспользованиеОтбор.СписокВыбора;
СписокВыбораИспользование.Очистить();
СписокВыбораИспользование.Добавить("ИспользоватьПриПродаже", НСтр("ru = 'всех продажах'"));
СписокВыбораИспользование.Добавить("ИспользоватьПриОптовойПродаже", НСтр("ru = 'оптовой продаже'"));
СписокВыбораИспользование.Добавить("ИспользоватьПриРозничнойПродаже", НСтр("ru = 'розничной продаже'"));
Если ИспользоватьПриПередачеМеждуОрганизациями Тогда
СписокВыбораИспользование.Добавить("ИспользоватьПриПередачеМеждуОрганизациями", НСтр("ru = 'передаче между организациями'"));
КонецЕсли;
Если ИспользоватьПроизводство Тогда
СписокВыбораИспользование.Добавить("ИспользоватьПриВыпускеПродукции", НСтр("ru = 'выпуске продукции'"));
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьФО()
ИспользоватьНесколькоСкладов = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоСкладов")
И ПравоДоступа("Чтение", Метаданные.Справочники.Склады);
ИспользоватьФорматыМагазинов = ПолучитьФункциональнуюОпцию("ИспользоватьФорматыМагазинов")
И ПравоДоступа("Чтение", Метаданные.Справочники.ФорматыМагазинов);
ИспользоватьСоглашенияСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСКлиентами")
И ПравоДоступа("Чтение", Метаданные.Справочники.СоглашенияСКлиентами);
ИспользоватьПартнеров = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов")
И ПравоДоступа("Чтение", Метаданные.Справочники.Партнеры)
И Не ИспользоватьСоглашенияСКлиентами;
ИспользоватьПриПередачеМеждуОрганизациями = ПолучитьФункциональнуюОпцию("ИспользоватьПередачиТоваровМеждуОрганизациями");
ИспользоватьПриПередачеПродукцииДавальцу = Ложь;
ИспользоватьПроизводство = ПолучитьФункциональнуюОпцию("ИспользоватьПроизводство");
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_НаборКонстант" Тогда
Если Источник = "ИспользоватьФорматыМагазинов"
Или Источник = "ИспользоватьНесколькоСкладов"
Или Источник = "ИспользоватьПартнеровИКонтрагентов"
Или Источник = "ИспользоватьСоглашенияСКлиентами"
Или Источник = "ИспользоватьПроизводство"
Или Источник = "ИспользоватьПередачиТоваровМеждуОрганизациями"
Или Источник = "ИспользоватьПроизводствоИзДавальческогоСырья"
Или Источник = "ИспользоватьПроизводствоИзДавальческогоСырья2_5" Тогда
ПрочитатьФО();
УстановитьНастройкиПоФО();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ИнициализацияСтруктурыДанныхПоВидуЦен()
Результат = Новый Структура;
Результат.Вставить("ВидЦен", ПредопределенноеЗначение("Справочник.ВидыЦен.ПустаяСсылка"));
Результат.Вставить("Назначение", ПредопределенноеЗначение("Перечисление.НазначенияВидовЦен.Общий"));
Результат.Вставить("ИспользоватьПриРозничнойПродаже", Ложь);
Результат.Вставить("КоличествоСкладов", 0);
Результат.Вставить("КоличествоСкладовВсего", 0);
Результат.Вставить("КоличествоФорматовМагазинов", 0);
Результат.Вставить("КоличествоФорматовМагазиновВсего", 0);
Результат.Вставить("КоличествоПартнеров", 0);
Результат.Вставить("КоличествоПартнеровВсего", 0);
Результат.Вставить("КоличествоСоглашений", 0);
Результат.Вставить("КоличествоСоглашенийВсего", 0);
Возврат Результат;
КонецФункции
&НаСервере
Процедура СформироватьИнформациюОКоличествеИспользуемыхВидовЦен(ДанныеПоВидуЦен)
ШаблонЗаголовка = НСтр("ru = '(%1 из %2)'");
Если Не ДанныеПоВидуЦен = Неопределено Тогда
Если ДанныеПоВидуЦен.КоличествоСкладовВсего > 0 Тогда
НадписьКоличествоНаСкладах = СтрШаблон(ШаблонЗаголовка,
ДанныеПоВидуЦен.КоличествоСкладов,
ДанныеПоВидуЦен.КоличествоСкладовВсего);
КонецЕсли;
Если ДанныеПоВидуЦен.КоличествоФорматовМагазиновВсего > 0 Тогда
НадписьКоличествоВФорматахМагазинов = СтрШаблон(ШаблонЗаголовка,
ДанныеПоВидуЦен.КоличествоФорматовМагазинов,
ДанныеПоВидуЦен.КоличествоФорматовМагазиновВсего);
КонецЕсли;
Если ДанныеПоВидуЦен.КоличествоПартнеровВсего > 0 Тогда
НадписьКоличествоВПартнерах = СтрШаблон(ШаблонЗаголовка,
ДанныеПоВидуЦен.КоличествоПартнеров,
ДанныеПоВидуЦен.КоличествоПартнеровВсего);
КонецЕсли;
Если ДанныеПоВидуЦен.КоличествоСоглашенийВсего > 0 Тогда
НадписьКоличествоВСоглашениях = СтрШаблон(ШаблонЗаголовка,
ДанныеПоВидуЦен.КоличествоСоглашений,
ДанныеПоВидуЦен.КоличествоСоглашенийВсего);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти