Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как правильно заполнить документ основание
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
meverikxp
Здравствуйте, есть обработка где в табличную часть заполняются данные по контрагентам. ТЧ имеет колонки "Контрагент" и "Сумма". Задача состоит в том чтобы пройтись по строкам и по каждому контрагенту создать Налоговую накладную (НН) с номенклатурой которую брал контрагент.

Навалял такой код:
//Контрагенты - ТЧ формы

Для каждого СтрТЧ из Контрагенты Цикл

Форма = Документы.НалоговаяНакладная.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |Ссылка.Контрагент,
    |Номенклатура,
    |СУММА (Количество) КАК Количество,
    |СУММА (Цена) КАК Цена,
    |СУММА (Сумма) КАК Сумма
    |ИЗ
    |Документ.РеализацияТоваровУслуг.Товары
    |ГДЕ
    |Ссылка.Контрагент = &Контрагент
    |СГРУППИРОВАТЬ ПО Номенклатура, Ссылка.Контрагент ";
    
    Запрос.УстановитьПараметр("Контрагент", СтрТЧ.Контрагент);
    Результат = Запрос.Выполнить().Выбрать();
            
Пока Результат.Следующий() Цикл
    
        
    Форма.ЭлементыФормы.Товары.ДобавитьСтроку();
    Стр = Форма.ЭлементыФормы.Товары.ТекущиеДанные;
        Стр.Номенклатура = Результат.Номенклатура;
    Стр.Количество =  Результат.Количество;
    Стр.Цена = Результат.Сумма/Результат.Цена;
    Стр.Сумма = Результат.Сумма;

    КонтрагентНН = Форма.ЭлементыФормы.Контрагент.Значение; //ничего не заполняется ????
    КонтрагентНН = СтрТЧ.Контрагент.Наименование;
КонецЦикла;
Конеццикла;


При таком способе заполнения в ТЧ товары в НН вбиваются значения, а можно ли как-то сделать чтобы они выбирались. То есть чтобы выполнялось действие при изменении (в НН). И еще поле контрагент в НН остается пустым. А также как сделать чтобы документ открывался фоновом режиме и при заполнении закрывался. Спасибо всем за ответы
logist
Не используйте "Форму", используйте
НН = Документы.НалоговаяНакладная.СоздатьДокумент();
meverikxp
Цитата(logist @ 19.05.11, 9:00) необходимо зарегистрироваться для просмотра ссылки
Не используйте "Форму", используйте
НН = Документы.НалоговаяНакладная.СоздатьДокумент();

а как заполнять данные ТЧ Товары НН.
logist
Как-то так
НН = Документы.НалоговаяНакладная.СоздатьДокумент();

НН.Контрагент = ТекСтрока.Контрагент;

Пока Результат.Следующий() Цикл
СтрокаТЧ = НН.Товары.Добавить();
СтрокаТЧ.Номенклатура = Результат.Номенклатура;
КонецЦикла;

НН.Записать(РежимЗаписиДокумента.Проведение);
meverikxp
Цитата(logist @ 19.05.11, 9:17) необходимо зарегистрироваться для просмотра ссылки
Как-то так
НН = Документы.НалоговаяНакладная.СоздатьДокумент();

НН.Контрагент = ТекСтрока.Контрагент;

Пока Результат.Следующий() Цикл
СтрокаТЧ = НН.Товары.Добавить();
СтрокаТЧ.Номенклатура = Результат.Номенклатура;
КонецЦикла;

НН.Записать(РежимЗаписиДокумента.Проведение);

Да, действительно получилось. Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена, ставка, ндс. Заполнялись значения единица номенклатуры, валюта, основной договор. Как это сделать чтобы явно не вбивать значения. а вызывать функцию ПриИзменении?
DartRomanius
Цитата(meverikxp @ 19.05.11, 10:40) необходимо зарегистрироваться для просмотра ссылки
Да, действительно получилось. Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена, ставка, ндс. Заполнялись значения единица номенклатуры, валюта, основной договор. Как это сделать чтобы явно не вбивать значения. а вызывать функцию ПриИзменении?


Писать код заполнения. это если в 2-х словах...
meverikxp
Цитата(DartRomanius @ 19.05.11, 9:43) необходимо зарегистрироваться для просмотра ссылки
Писать код заполнения. это если в 2-х словах...

Напишите пожалуйста кодом? Или нужно процедуру изменения полностью переписать?
logist
Цитата(meverikxp @ 19.05.11, 9:40) необходимо зарегистрироваться для просмотра ссылки
Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена

Поделите сумму на кол-во. Или возьмите из документов тем же запросом.

Цитата(meverikxp @ 19.05.11, 9:40) необходимо зарегистрироваться для просмотра ссылки
ставка, ндс.

Ставку ндс можно получить из номенклатуры, и соответственно сумму ндс рассчитать от суммы/цены которая у нас есть (см. выше).
Или опять же получить тем же запросом.

Цитата(meverikxp @ 19.05.11, 9:40) необходимо зарегистрироваться для просмотра ссылки
Заполнялись значения единица номенклатуры

Взять базовую из номенклатуры, или тем же запросом.

Цитата(meverikxp @ 19.05.11, 9:40) необходимо зарегистрироваться для просмотра ссылки
валюта, основной договор.

валюту взять из договора, а вот договор нужно указывать в начале как и контрагента, и соответственно делать запрос с отбором по договору в т.ч.
Vofka
Цитата
Осталось только одно,

Цитата
1. чтобы при заполнении суммы и количества рассчитывались:
1а. цена,
1б. ставка, ндс.
2. Заполнялись значения
2а. единица
2б. номенклатуры
2в. валюта
2г. основной договор


Осталось только одно... smile.gif
meverikxp
Цитата(logist @ 19.05.11, 9:51) необходимо зарегистрироваться для просмотра ссылки
Ставку ндс можно получить из номенклатуры, и соответственно сумму ндс рассчитать от суммы/цены которая у нас есть (см. выше).
Или опять же получить тем же запросом.


Взять базовую из номенклатуры, или тем же запросом.

В запросе будет что-то вроде этого
Номенклатура.СтавкаНДС

???

Цитата(Vofka @ 19.05.11, 9:58) необходимо зарегистрироваться для просмотра ссылки
Осталось только одно... smile.gif

Ну как бы одно... Заполнить 09000000.gif

и еще, если заполнять номенклатуру, то уже ели открыть созданный документ и попробовать выбрать номенклатуру выдает ошибку: Индекс находится за гранью массива ("Індекс знаходиться за межами масиву"), а тут в чем проблема?
logist
Вообще - посмотрите стандартную обработку заполнения налоговых, в бухгалтерии, УТП и УПП она точно есть, называется "Формирование налоговых накладных", может от туда что-то возьмете...
meverikxp
Цитата(logist @ 19.05.11, 11:06) необходимо зарегистрироваться для просмотра ссылки
Вообще - посмотрите стандартную обработку заполнения налоговых, в бухгалтерии, УТП и УПП она точно есть, называется "Формирование налоговых накладных", может от туда что-то возьмете...

Спасибо. уже немножко разобрался. Дело движется к завершению.
Все реквизиты: договор, валюта, курс, кратность, единица измерения беру из запроса Реализации
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.