Здравствуйте, есть обработка где в табличную часть заполняются данные по контрагентам. ТЧ имеет колонки "Контрагент" и "Сумма". Задача состоит в том чтобы пройтись по строкам и по каждому контрагенту создать Налоговую накладную (НН) с номенклатурой которую брал контрагент.
Навалял такой код:
//Контрагенты - ТЧ формыДлякаждого СтрТЧ из Контрагенты Цикл
Форма = Документы.НалоговаяНакладная.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|Ссылка.Контрагент,
|Номенклатура,
|СУММА (Количество) КАК Количество,
|СУММА (Цена) КАК Цена,
|СУММА (Сумма) КАК Сумма
|ИЗ
|Документ.РеализацияТоваровУслуг.Товары
|ГДЕ
|Ссылка.Контрагент = &Контрагент
|СГРУППИРОВАТЬ ПО Номенклатура, Ссылка.Контрагент ";
Запрос.УстановитьПараметр("Контрагент", СтрТЧ.Контрагент);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Форма.ЭлементыФормы.Товары.ДобавитьСтроку();
Стр = Форма.ЭлементыФормы.Товары.ТекущиеДанные;
Стр.Номенклатура = Результат.Номенклатура;
Стр.Количество = Результат.Количество;
Стр.Цена = Результат.Сумма/Результат.Цена;
Стр.Сумма = Результат.Сумма;
КонтрагентНН = Форма.ЭлементыФормы.Контрагент.Значение; //ничего не заполняется ????
КонтрагентНН = СтрТЧ.Контрагент.Наименование;
КонецЦикла;
Конеццикла;
При таком способе заполнения в ТЧ товары в НН вбиваются значения, а можно ли как-то сделать чтобы они выбирались. То есть чтобы выполнялось действие при изменении (в НН). И еще поле контрагент в НН остается пустым. А также как сделать чтобы документ открывался фоновом режиме и при заполнении закрывался. Спасибо всем за ответы
Сообщение отредактировал meverikxp - 19.05.11, 8:56
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...
НН = Документы.НалоговаяНакладная.СоздатьДокумент();
НН.Контрагент = ТекСтрока.Контрагент;
Пока Результат.Следующий() Цикл
СтрокаТЧ = НН.Товары.Добавить();
СтрокаТЧ.Номенклатура = Результат.Номенклатура;
КонецЦикла;
НН.Записать(РежимЗаписиДокумента.Проведение);
Да, действительно получилось. Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена, ставка, ндс. Заполнялись значения единица номенклатуры, валюта, основной договор. Как это сделать чтобы явно не вбивать значения. а вызывать функцию ПриИзменении?
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...
Да, действительно получилось. Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена, ставка, ндс. Заполнялись значения единица номенклатуры, валюта, основной договор. Как это сделать чтобы явно не вбивать значения. а вызывать функцию ПриИзменении?
Писать код заполнения. это если в 2-х словах...
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Цитата(meverikxp @ 19.05.11, 9:40)
Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена
Поделите сумму на кол-во. Или возьмите из документов тем же запросом.
Цитата(meverikxp @ 19.05.11, 9:40)
ставка, ндс.
Ставку ндс можно получить из номенклатуры, и соответственно сумму ндс рассчитать от суммы/цены которая у нас есть (см. выше). Или опять же получить тем же запросом.
Цитата(meverikxp @ 19.05.11, 9:40)
Заполнялись значения единица номенклатуры
Взять базовую из номенклатуры, или тем же запросом.
Цитата(meverikxp @ 19.05.11, 9:40)
валюта, основной договор.
валюту взять из договора, а вот договор нужно указывать в начале как и контрагента, и соответственно делать запрос с отбором по договору в т.ч.
Личные бесплатные консультации не даю, для этого есть форум!
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4613 раз
Рейтинг: 3750.1
Цитата
Осталось только одно,
Цитата
1. чтобы при заполнении суммы и количества рассчитывались: 1а. цена, 1б. ставка, ндс. 2. Заполнялись значения 2а. единица 2б. номенклатуры 2в. валюта 2г. основной договор
Ставку ндс можно получить из номенклатуры, и соответственно сумму ндс рассчитать от суммы/цены которая у нас есть (см. выше). Или опять же получить тем же запросом.
Взять базовую из номенклатуры, или тем же запросом.
В запросе будет что-то вроде этого
Номенклатура.СтавкаНДС
???
Цитата(Vofka @ 19.05.11, 9:58)
Осталось только одно...
Ну как бы одно... Заполнить
и еще, если заполнять номенклатуру, то уже ели открыть созданный документ и попробовать выбрать номенклатуру выдает ошибку: Индекс находится за гранью массива ("Індекс знаходиться за межами масиву"), а тут в чем проблема?
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Вообще - посмотрите стандартную обработку заполнения налоговых, в бухгалтерии, УТП и УПП она точно есть, называется "Формирование налоговых накладных", может от туда что-то возьмете...
Личные бесплатные консультации не даю, для этого есть форум!
Вообще - посмотрите стандартную обработку заполнения налоговых, в бухгалтерии, УТП и УПП она точно есть, называется "Формирование налоговых накладных", может от туда что-то возьмете...
Спасибо. уже немножко разобрался. Дело движется к завершению. Все реквизиты: договор, валюта, курс, кратность, единица измерения беру из запроса Реализации
Самая нелюбимая пословица сапёров: одна нога здесь, другая там...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!