Номенклатура контрагентов / Модуль менеджера
файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
// Возвращает полное наименование номенклатуры контрагента.
//
// Параметры:
// Номенклатура - Строка - наименование номенклатуры.
// Характеристика - Строка - наименование характеристики.
// Упаковка - Строка - наименование упаковки или единицы измерения.
//
// Возвращаемое значение:
// Строка - полное наименование номенклатуры контрагента.
//
Функция ПолноеНаименованиеНоменклатурыКонтрагента(Знач Номенклатура, Знач Характеристика, Знач Упаковка) Экспорт
Возврат Номенклатура + ?(ЗначениеЗаполнено(Характеристика), " (" + Характеристика + ")", "")
+ ?(ЗначениеЗаполнено(Упаковка), ", " + Упаковка, "");
КонецФункции
// Возвращает идентификатор сформированный по наименованию данных номенклатуры контрагента.
//
// Параметры:
// Номенклатура - Строка - наименование номенклатуры.
// Характеристика - Строка - наименование характеристики.
// Упаковка - Строка - наименование упаковки или единицы измерения.
//
// Возвращаемое значение:
// Строка - идентификатор номенклатуры контрагента.
//
Функция ИдентификаторНоменклатурыКонтрагентаПоНаименованию(Знач Номенклатура, Знач Характеристика, Знач Упаковка) Экспорт
Возврат СопоставлениеНоменклатурыКонтрагентов.ИдентификаторТовараПоДаннымНоменклатуры(
Номенклатура, Характеристика, Упаковка);
КонецФункции
// Возвращает идентификатор номенклатуры контрагента.
//
// Параметры:
// Номенклатура - Строка - идентификатор номенклатуры.
// Характеристика - Строка - идентификатор характеристики.
// Упаковка - Строка - идентификатор упаковки или единицы измерения.
//
// Возвращаемое значение:
// Строка - идентификатор номенклатуры контрагента.
//
Функция ИдентификаторНоменклатурыКонтрагента(Знач Номенклатура, Знач Характеристика, Знач Упаковка) Экспорт
Возврат Номенклатура + "#" + Характеристика + "#" + Упаковка;
КонецФункции
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ПриЗаполненииОграниченияДоступа_НоменклатураКонтрагентов(Ограничение);
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
// СтандартныеПодсистемы.ВерсионированиеОбъектов
// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
// Настройки - Структура - настройки подсистемы.
//
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ПриОпределенииНастроекВерсионированияОбъектов_НоменклатураКонтрагентов(Настройки);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
// СтандартныеПодсистемы.ПоискИУдалениеДублей
// Вызывается для определения прикладных параметров поиска дублей.
//
// Параметры:
//
// ПараметрыПоиска - Структура - Предлагаемые параметры поиска. Содержит поля:
// * ПравилаПоиска - ТаблицаЗначений - предлагаемые правила сравнения для объектов, может быть изменена для установки новых вариантов:
// ** Реквизит - Строка - Имя реквизита для сравнения.
// ** Правило - Строка - Правило сравнения: "Равно" - сравнение по равенству, "Подобно" -подобие строк,
// "" - пустая строка - не сравнивать.
// * КомпоновщикОтбора - КомпоновщикНастроекКомпоновкиДанных - Инициализированный компоновщик для предварительного отбора.
// Может быть изменен, например, для усиления отборов.
// * ОграниченияСравнения - Массив - предназначен для заполнения описания прикладных правил-ограничений, должен быть дополнен структурами с полями:
// ** Представление - Строка - Описание правила-ограничения для пользователя.
// ** ДополнительныеПоля - Строка - Список дополнительных реквизитов запятую, необходимых для дополнительного анализа.
//
// * КоличествоЭлементовДляСравнения - Число - Количество кандидатов в дубли, передаваемых одним вызовом обработчику.
// ДополнительныеПараметры - Произвольный - Значение, переданное при вызове программного интерфейса ОбщегоНазначения.НайтиДублиЭлементов.
// При вызове пользователем из обработки "ПоискИЗаменаДублей" равно Неопределено.
//
Процедура ПараметрыПоискаДублей(ПараметрыПоиска, ДополнительныеПараметры = Неопределено) Экспорт
ПравилаПоиска = ПараметрыПоиска.ПравилаПоиска;
Для Каждого ПравилоПоиска Из ПравилаПоиска Цикл
Если ПравилоПоиска.Реквизит = "ВладелецНоменклатуры"
Или ПравилоПоиска.Реквизит = "Идентификатор" Тогда
ПравилоПоиска.Правило = "Равно";
Иначе
ПравилоПоиска.Правило = "";
КонецЕсли;
КонецЦикла;
НастройкиКомпоновщикОтбора = ПараметрыПоиска.КомпоновщикОтбора.Настройки;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
НастройкиКомпоновщикОтбора.Отбор,
"ПометкаУдаления",
Истина,
ВидСравненияКомпоновкиДанных.Равно,,
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
НастройкиКомпоновщикОтбора.Отбор,
"Недействителен",
Ложь,
ВидСравненияКомпоновкиДанных.Равно,,
Истина);
КонецПроцедуры
// Вызывается для определения дублей по прикладным правилам.
//
// Параметры:
// ТаблицаКандидатов - ТаблицаЗначений - описывает кандидатов в дубли. Содержит колонки:
// * Ссылка1 - ЛюбаяСсылка - ссылка на элемент первого кандидата.
// * Ссылка2 - ЛюбаяСсылка - ссылка на элемент второго кандидата.
// * ЭтоДубли - Булево - флаг того, что кандидаты действительно являются дублями. По умолчанию содержит
// значение Ложь, может быть изменено на Истина, если кандидаты - действительно дубли.
// * Поля1 - Структура - содержит поля Код, Наименование и дополнительные поля первого кандидата,
// указанные в ПараметрыПоискаДублей.
// * Поля2 - Структура - содержит поля Код, Наименование и дополнительные поля второго кандидата,
// указанные в ПараметрыПоискаДублей.
// ДополнительныеПараметры - Произвольный - значение, переданное при вызове программного интерфейса
// ОбщегоНазначения.НайтиДублиЭлементов.При вызове пользователем
// из обработки "ПоискИЗаменаДублей" равно Неопределено.
//
Процедура ПриПоискеДублей(ТаблицаКандидатов, ДополнительныеПараметры = Неопределено) Экспорт
Для Каждого Вариант Из ТаблицаКандидатов Цикл
Если Вариант.Поля1.ВладелецНоменклатуры = Вариант.Поля2.ВладелецНоменклатуры И Вариант.Поля1.Идентификатор = Вариант.Поля2.Идентификатор Тогда
Вариант.ЭтоДубли = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПоискИУдалениеДублей
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ОбработкаПолученияДанныхВыбора_НоменклатураКонтрагентов(
ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#КонецЕсли