Номенклатура контрагентов / Модуль менеджера

файл

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

// Возвращает полное наименование номенклатуры контрагента.
//
// Параметры:
//  Номенклатура   - Строка - наименование номенклатуры.
//  Характеристика - Строка - наименование характеристики.
//  Упаковка       - Строка - наименование упаковки или единицы измерения.
//
// Возвращаемое значение:
//  Строка - полное наименование номенклатуры контрагента.
//
Функция ПолноеНаименованиеНоменклатурыКонтрагента(Знач Номенклатура, Знач Характеристика, Знач Упаковка) Экспорт
	
	Возврат Номенклатура + ?(ЗначениеЗаполнено(Характеристика), " (" + Характеристика + ")", "")
		+ ?(ЗначениеЗаполнено(Упаковка), ", " + Упаковка, "");
	
КонецФункции

// Возвращает идентификатор сформированный по наименованию данных номенклатуры контрагента.
//
// Параметры:
//  Номенклатура   - Строка - наименование номенклатуры.
//  Характеристика - Строка - наименование характеристики.
//  Упаковка       - Строка - наименование упаковки или единицы измерения.
//
// Возвращаемое значение:
//  Строка - идентификатор номенклатуры контрагента.
//
Функция ИдентификаторНоменклатурыКонтрагентаПоНаименованию(Знач Номенклатура, Знач Характеристика, Знач Упаковка) Экспорт
	
	Возврат СопоставлениеНоменклатурыКонтрагентов.ИдентификаторТовараПоДаннымНоменклатуры(
						Номенклатура, Характеристика, Упаковка);
	
КонецФункции

// Возвращает идентификатор номенклатуры контрагента.
//
// Параметры:
//  Номенклатура   - Строка - идентификатор номенклатуры.
//  Характеристика - Строка - идентификатор характеристики.
//  Упаковка       - Строка - идентификатор упаковки или единицы измерения.
//
// Возвращаемое значение:
//  Строка - идентификатор номенклатуры контрагента.
//
Функция ИдентификаторНоменклатурыКонтрагента(Знач Номенклатура, Знач Характеристика, Знач Упаковка) Экспорт
	
	Возврат Номенклатура + "#" + Характеристика + "#" + Упаковка;
	
КонецФункции

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ПриЗаполненииОграниченияДоступа_НоменклатураКонтрагентов(Ограничение);

КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
//
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

	СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ПриОпределенииНастроекВерсионированияОбъектов_НоменклатураКонтрагентов(Настройки);
	
КонецПроцедуры

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// СтандартныеПодсистемы.ПоискИУдалениеДублей

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

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

// Конец СтандартныеПодсистемы.ПоискИУдалениеДублей

#КонецОбласти

#КонецОбласти

#Область ОбработчикиСобытий

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

	СопоставлениеНоменклатурыКонтрагентовПереопределяемый.ОбработкаПолученияДанныхВыбора_НоменклатураКонтрагентов(
		ДанныеВыбора, Параметры, СтандартнаяОбработка);
	
КонецПроцедуры

#КонецОбласти

#КонецЕсли


Связанные материалы