Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как правильно заполнить документ основание          
meverikxp Подменю пользователя
сообщение 19.05.11, 8:52
Сообщение #1

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Здравствуйте, есть обработка где в табличную часть заполняются данные по контрагентам. ТЧ имеет колонки "Контрагент" и "Сумма". Задача состоит в том чтобы пройтись по строкам и по каждому контрагенту создать Налоговую накладную (НН) с номенклатурой которую брал контрагент.

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

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

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

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


При таком способе заполнения в ТЧ товары в НН вбиваются значения, а можно ли как-то сделать чтобы они выбирались. То есть чтобы выполнялось действие при изменении (в НН). И еще поле контрагент в НН остается пустым. А также как сделать чтобы документ открывался фоновом режиме и при заполнении закрывался. Спасибо всем за ответы

Сообщение отредактировал meverikxp - 19.05.11, 8:56


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

logist Подменю пользователя
сообщение 19.05.11, 9:00
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Не используйте "Форму", используйте
НН = Документы.НалоговаяНакладная.СоздатьДокумент();


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: meverikxp,

meverikxp Подменю пользователя
сообщение 19.05.11, 9:08
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(logist @ 19.05.11, 9:00) *
Не используйте "Форму", используйте
НН = Документы.НалоговаяНакладная.СоздатьДокумент();

а как заполнять данные ТЧ Товары НН.


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

logist Подменю пользователя
сообщение 19.05.11, 9:17
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

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

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

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

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

meverikxp Подменю пользователя
сообщение 19.05.11, 9:40
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

Цитата(logist @ 19.05.11, 9:17) *
Как-то так
НН = Документы.НалоговаяНакладная.СоздатьДокумент();

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

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

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

Да, действительно получилось. Осталось только одно, как сделать чтобы при заполнении суммы и количества рассчитывались: цена, ставка, ндс. Заполнялись значения единица номенклатуры, валюта, основной договор. Как это сделать чтобы явно не вбивать значения. а вызывать функцию ПриИзменении?


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

DartRomanius Подменю пользователя
сообщение 19.05.11, 9:43
Сообщение #6

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

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


Писать код заполнения. это если в 2-х словах...


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

meverikxp Подменю пользователя
сообщение 19.05.11, 9:46
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

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

Напишите пожалуйста кодом? Или нужно процедуру изменения полностью переписать?


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

logist Подменю пользователя
сообщение 19.05.11, 9:51
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 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) *
валюта, основной договор.

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 19.05.11, 9:58
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Осталось только одно,

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


Осталось только одно... smile.gif

meverikxp Подменю пользователя
сообщение 19.05.11, 10:19
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

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


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

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

???

Цитата(Vofka @ 19.05.11, 9:58) *
Осталось только одно... smile.gif

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

и еще, если заполнять номенклатуру, то уже ели открыть созданный документ и попробовать выбрать номенклатуру выдает ошибку: Индекс находится за гранью массива ("Індекс знаходиться за межами масиву"), а тут в чем проблема?


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

logist Подменю пользователя
сообщение 19.05.11, 11:06
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Вообще - посмотрите стандартную обработку заполнения налоговых, в бухгалтерии, УТП и УПП она точно есть, называется "Формирование налоговых накладных", может от туда что-то возьмете...


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: meverikxp,

meverikxp Подменю пользователя
сообщение 19.05.11, 11:51
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 334
Из: Ровно
Спасибо сказали: 10 раз
Рейтинг: 0

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

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


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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 0:08
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!