Получение Значения из таблицы значения [v7.7 Конфигурация-Бухгалтерский учёт,редакция 4.5]

Новая тема
"Доброго времени суток.

Собственно не могу понять, как преодолеть сие трудность:
Есть самописная выгрузка. Пытаюсь её дописать.

Что требуется:
Получить значение КодДвижения из таблицы значений ТЗ1, и на основании этого назначить переменной ВО :см. ниже

Примерно так:
ВО=?(КодДвижения=2,"1",0); //[Как есть сейчас- не работает, так как ]



ВО уже использую в личных целях. Там всё работает."
"1. Если
> Получить значение КодДвижения из таблицы значений ТЗ1
То где ТЗ1 в
> ВО=?(КодДвижения=2,"1",0); //[Как есть сейчас- не работает, так как ]
Может надо так:
ВО=?(ТЗ1.КодДвижения=2,"1",0);
Учитывая, что приведен только кусочек не ясно как сделан перебор ТЗ1 через ВыбратьСтроки или циклом по индексам, а может вообще не сделан.
2.
> ВО уже использую в личных целях. Там всё работает.
Что бы это значило? Не боитесь переназначить переменную в самый неподходящий момент? Или просто констатация факта, что "ВО" используется правильно?"
"1. При добавлении ТЗ1.КодДвижения не находит переменную ТЗ1.
ТЗ1 не переменная а таблица.

2. ТЗ1:

// Перебор таблиц прихода

Если  ТипОтчета=1 тогда
//Возвраты поставщикам
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с НачДата по КонДата;
|ТекДок = Документ.СчетФактура.ТекущийДокумент;
|Контрагент = Документ.СчетФактура.Контрагент;
|Номенклатура = Документ.СчетФактура.Товар;
|НомерДок        = Документ.СчетФактура.НомерДок;
|ДатаДок         = Документ.СчетФактура.ДатаДок;
|Количество = Документ.СчетФактура.Количество;
|ВидОтгрузки        = Документ.СчетФактура.ВидОтгрузки;
|Условие (ВидОтгрузки = 2);
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Номенклатура без групп;
|Группировка Контрагент;
|Группировка ТекДок;
|"//}}ЗАПРОС
;
Иначе
//Возвраты покупателей
ТекстЗапроса=
"//{{ЗАПРОС(Сформировать)
|Период с (НачДата-10) по (КонДата+10);
|ОбрабатыватьДокументы Проведенные;
|ТекДок = Документ.ПоступлениеТоваров.ТекущийДокумент;
|Контрагент = Документ.ПоступлениеТоваров.Контрагент;
|Номенклатура = Документ.ПоступлениеТоваров.Товар;
|ТипМестаХранения = Документ.ПоступлениеТоваров.МестоХранения.ТипСклада;
|НомерДок = Документ.ПоступлениеТоваров.НомерДокВходящий;
|ДатаДок = Документ.ПоступлениеТоваров.ДатаДокВходящий;
|Количество = Документ.ПоступлениеТоваров.Количество;  
|ВидПоступления = Документ.ПоступлениеТоваров.ВидПоступления;  
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Номенклатура без групп;
|Группировка Контрагент без групп;
|Группировка ТекДок;
|Условие((ДатаДок<=КонДата) и (ДатаДок>=НачДата));
|Условие(ТипМестаХранения = ОптовыйСклад);
|Условие((ВидПоступления = 4) или (ВидПоступления = 13));
|"//}}ЗАПРОС ;
;      
КонецЕсли;
 
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;      

Сч=0;
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
Пока Запрос.Группировка(3) = 1 Цикл

Сч=Сч+1;    
Если Окр(Сч/100)=Сч/100 тогда
Состояние("Выгрузка запроса "+Сч);
КонецЕсли;                            

Если ТипЗначенияСтр(Запрос.Номенклатура)<>"Справочник" тогда
Продолжить;
КонецЕсли;

Если Запрос.Номенклатура.Вид()<>"Номенклатура" тогда
Продолжить;
КонецЕсли;

Группа=Запрос.Номенклатура.Родитель;
Код=Число(Прав(Группа.Код,СтрДлина(Группа.Код)-2));
Если (Код>199) и (Код<500) тогда                                            
ТЗ1.НоваяСтрока();
ТЗ1.ВидДвижения="Возвраты";

ТЗ1.КодДвижения =2;
ТЗ1.КодВ =Код;  
ТЗ1.ГруппаВ     =Группа;
ТЗ1.Опт =СокрЛП(Запрос.Контрагент.ТипКонтрагента);
ТЗ1.Опт =?(ТЗ1.Опт="Производитель"," "+ТЗ1.Опт,ТЗ1.Опт);
ТЗ1.Контрагент =Запрос.Контрагент;
ТЗ1.Количество =Запрос.КоличествоСумма*Запрос.Номенклатура.Емкость/10000;
ТЗ1.ТекДок =Запрос.ТекДок;
ТЗ1.НомерДок =Запрос.НомерДок;
ТЗ1.ДатаДок =Запрос.ДатаДок;

// Разделяем по типу...
Адрес=РазобратьАдрес(Запрос.Контрагент.ЮридическийАдрес);    

Если СокрЛП(Адрес.ПолучитьЗначение(2))<>"Воронежская обл." Тогда
ТЗ1.Район="Другие регионы";
ТЗ1.ГР=3
Иначе
ТЗ1.Район="Воронежский регион";
ТЗ1.ГР=1
КонецЕсли;

//Если Розница - убираем детализацию
Если ТЗ1.Опт="Розница" Тогда
ТЗ1.Район     ="Розница";
ТЗ1.ГР =4;
КонецЕсли;
         
КонецЕсли;                                
КонецЦикла;
КонецЦикла;
КонецЦикла;

3. Констатация факта, что ВО используется правильно и только."
"> ТЗ1 не переменная а таблица.
???? И что из того, что таблица?

> 1. При добавлении ТЗ1.КодДвижения не находит переменную ТЗ1.
А здесь значит находит:
> 2. ТЗ1:
> ТЗ1.НоваяСтрока();
> ТЗ1.ВидДвижения="Возвраты";
> ТЗ1.КодДвижения =2;
?
"
Читают тему
(гостей: 1)

Быстрый переход