Передача данных контекста через массив объектов

Понадобилось передавать заданные пользователем параметры вглубь обработки «Печать ценников».

К сожалению, болезнь 1С — обрезание контекста. Часто нужные данные сложно передать.

Вот и тут, стек выглядел так:

И вставить дополнительные данные можно было только в МассивОбъектов.

Процедура УстановитьДанныеПлощадки(МассивОбъектов, ВыбПлощадка, ВыбКонтрагент) Экспорт
	//Только не на первое место вставляем, там основной документ!!!!
	//Осипов 25.08.1901
	

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

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

Можно было использовать один элемент списка с типом «Структура», но я как-то в одном месте запутался и использовал Вставить вместо Добавить в список значений. Получал ошибку типов и подумал, что структуру нельзя помещать в список. Потом разобрался, но код уже оставил такой.

В общем, 1С надо что-то делать с этим обрезанием контекста, иначе доработки становятся сложными…

Среда: УНФ 3.0.12.114 Объем: 1 час.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментария 2

  1. rzd:

    Судя по описанию и картинкам это что-то сильно самописное.
    Но так постараться усложнить себе жизнь, это надо уметь, тут я не поспорю

    • Увы, такая убогая архитектура в самой что ни на есть типовой прогрессивной УНФ 3.0, обработка печати ценников. Которая не перестает меня удивлять степенью своего маразма.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *