Передача данных контекста через массив объектов
Понадобилось передавать заданные пользователем параметры вглубь обработки «Печать ценников».
К сожалению, болезнь 1С — обрезание контекста. Часто нужные данные сложно передать.
Вот и тут, стек выглядел так:

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




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