Множественный выбор из справочника и замена существующего в тч

1. El_Ninio 22.04.21 04:20 Сейчас в теме
Как сделать так что при добавлении подбором заменить уже существующего элемента в тч или сообщить ошибку что такой элемент имеется уже в тч документа.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. dandykry 10 22.04.21 07:11 Сейчас в теме
(1)
Способов масса. Например так
Открытие формы подбора

&НаКлиенте
Процедура Подбор(Команда)
	
			ПараметрыФормы = Новый Структура;
			ПараметрыФормы.Вставить("РежимВыбора", Истина);
			ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Ложь);
			ПараметрыФормы.Вставить("МножественныйВыбор", Истина);

			СтруктураОтбор = Новый Структура;
			СтруктураОтбор.Вставить("Проведен", Истина);
			СтруктураОтбор.Вставить("Организация", ВладелецФормы.Объект.Организация);
			Если ЕстьРеквизитКонтрагент И ЗначениеЗаполнено(ВладелецФормы.Объект.Контрагент) Тогда				
				СтруктураОтбор.Вставить("Партнер", ОтборПартнер);
			КонецЕсли;
			ПараметрыФормы.Вставить("Отбор", СтруктураОтбор);
						
			ОписаниеОповещенияФормы = Новый ОписаниеОповещения("ПодборЗавершение", ЭтотОбъект);

			ОткрытьФорму(ТипДокументовОснования + ".ФормаВыбора", ПараметрыФормы, Элементы.ВыбранныеДокументы,,,,ОписаниеОповещенияФормы, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
			
	
КонецПроцедуры
Показать


Проверка дублей

&НаКлиенте
Процедура ПодборЗавершение(МассивДокументов, ДопПараметры) Экспорт
	
	Если Не ВыбранныеДокументы.Количество() = 0 Тогда
		ОписаниеОповещенияФормы = Новый ОписаниеОповещения("ПроверитьДублиЗавершение", ЭтотОбъект);
		ПоказатьВопрос(ОписаниеОповещенияФормы, "Проверить дубли выбранных документов?", РежимДиалогаВопрос.ДаНет);
	КонецЕсли;
		
КонецПроцедуры

&НаКлиенте
Процедура ПроверитьДублиЗавершение(Ответ, ДополнительныеПараметры) Экспорт
		
	Если Ответ = КодВозвратаДиалога.Да Тогда
		ПроверитьДублиНаСервере();	
	КонецЕсли;
		
КонецПроцедуры

&НаСервере
Процедура ПроверитьДублиНаСервере() 
	
	КоличествоДо = ВыбранныеДокументы.Количество();
	МассивВыбранныеДокументы = ВыбранныеДокументы.ВыгрузитьЗначения();
	МассивВыбранныеДокументы = ОбщегоНазначенияКлиентСервер.СвернутьМассив(МассивВыбранныеДокументы);
	ВыбранныеДокументы.ЗагрузитьЗначения(МассивВыбранныеДокументы);
	
	Если Не КоличествоДо = ВыбранныеДокументы.Количество() Тогда
		Сообщить("Удалено дублей: " + Строка(КоличествоДо - ВыбранныеДокументы.Количество()));
	Иначе
		Сообщить("Дублей не обнаружено");
	КонецЕсли;
	
КонецПроцедуры
Показать
El_Ninio; +1 Ответить
4. El_Ninio 22.04.21 09:16 Сейчас в теме
(2) Спасибо!
(3) Благодарю!
2. rule_2 47 22.04.21 04:57 Сейчас в теме
В обработчике выбора анализировать выбранные данные и искать такие же в ТЧ. Ну а дальше сами решайте, что делать: либо заменять значения, либо ошибку выдавать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот