Установить вид отгрузки в расходной накладной

  • Автор темы AlexeyP
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

AlexeyP

Гость
#1
Создаю обработкой документ РасходнаяНакладная.
Все реквизиты заполняю без проблем, кроме одного - надо выбрать какой-нибудь вид отгрузки из списка "СписокВидовОтгрузки".
Как это сделать программно?

Процедура Сформировать()
Отгрузка=СоздатьОбъект("Документ.РасходнаяНакладная");
Отгрузка.Новый();
// ...
Отгрузка.СписокВидовОтгрузки.ТекущаяСтрока(1);



Т.е. я хотел сделать в списке первую строку текущей.
1С выдает ошибку:
Отгрузка.СписокВидовОтгрузки.ТекущаяСтрока(1);
Поле агрегатного объекта не обнаружено (СписокВидовОтгрузки)

Если я эту строку вообще уберу, то будет другая ошибка:
Если ВидОтгрузки <> СписокВидовОтгрузки.ПолучитьЗначение(СписокВидовОтгрузки.ТекущаяСтрока()) Тогда
{Документ.РасходнаяНакладная.Форма.Модуль(1167)}: Индекс не входит в границы списка значений.
ВидОтгрузки = СписокВидовОтгрузки.ПолучитьЗначение(СписокВидовОтгрузки.ТекущаяСтрока());
{Документ.РасходнаяНакладная.Форма.Модуль(1168)}: Индекс не входит в границы списка значений.
Подскажите, каким образом сделать выбранным элемент в списке?
 

SeverBap

Well-Known Member
18.09.2007
451
0
34
г. Брянск
#2
очень интересный подход!!! а для чего тебе надо со списком то ковырятся (который к тому же предназначен для удобства пользователя ... ) тебе же нужно переменная "ВидОтгрузки" посмотри как заполняется списокзначений в документе и устанавливай соответствующие значения для себя :blink:
 
I

Isabela

Гость
#3
СписокВидовОтгрузки НЕ ЯВЛЯЕТСЯ реквизитом расходной накладной. Отсюда и ошибка Отгрузка.СписокВидовОтгрузки.
А в шапке накладной есть реквизит ВидОтгрузки. Ему и надо присваивать значение (Отгрузка.ВидОтгрузки =11, например). Если же необходимо при создании накладной интерактивно выбирать это значение - надо создать СписокВидовОтгрузки, заполнить его аналогично тому, как это сделано в форме документа, и использовать метод "ВыбратьЗначение"
 
A

AlexeyP

Гость
#4
Штаны через голову надевал, ага :blink:
Это я уже от отчаяния :wacko:
Я сначала и так и сяк пробовал...
Отгрузка.ВидОтгрузки = Отгрузка.СписокВидовОтгрузки.ПолучитьЗначение(1);
и т.п.

А оказалось что можно было обойтись строкой:
Отгрузка.ВидОтгрузки = 11;

Ну тогда пусть другим останется.

Isabela, спасибо и Вам за ответ.
Теперь почитав ваши ответы и код модуля формы мне стало все более-менее понятно.

Не хочу показаться надоедливым, но возник еще вопрос по данному документу.
Вроде и темы плодить не хочется, но и решение проблемы очень хотелось бы узнать.

После того, как я записал в базу созданный документ, я вижу, что не заполнены колонки НДС и ВСЕГО.
Этого и следовало ожидать, так как я заполняю в таблице документа только товар, кол-во и сумму. А как же сделать, чтобы рассчитывались все колонки?

мой код:
Отгрузка.ВариантРасчетаНалогов=ВариантРасчетаНалогов;
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Отгрузка.НоваяСтрока();
Отгрузка.Товар=ТЗ.Товар;
Отгрузка.Количество=ТЗ.Количество;
Отгрузка.Цена=ТЗ.Сумма/ТЗ.Количество;
Отгрузка.Сумма=ТЗ.Сумма;
КонецЦикла;


В документе за пересчет отвечает соответствующая процедура (Пересчет). Но я же не могу ее вызвать из своей обработки.
 
I

Isabela

Гость
#5
Можно примерно так :
Отгрузка.НДС = глПоказательДокумента(Отгрузка, "НДС");
Отгрузка.Всего = глПоказательДокумента(Отгрузка, "СуммаСНалогами");
 
A

AlexeyP

Гость
#6
Дааа, мне еще учиться и учиться...
Isabela, спасибо вам большое! Вы мне очень помогли.
 
I

Isabela

Гость
#7
мы все учились понемногу - чему-нибудь и как-нибудь
 
Статус
Закрыто для дальнейших ответов.