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