Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 19:27

Написание запроса

Автор Alex_Us, 11 апр 2013, 18:08

0 Пользователей и 1 гость просматривают эту тему.

Alex_Us

нужно написать обработку , которая соберет всю реализацию товаров и услуг по отбору: месяц начисления и контрагенты в группе торговые точки. и затем поместить все это в документ счет - фактура выданный табличная часть основания. написала вот такой запрос. а как дальше быть не знаю... и не знаю как заполнить табличную часть основания.
Процедура ЗаполнитьРеализациюНажатие(Элемент)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|РеализацияТоваровУслуг.Ссылка,
|РеализацияТоваровУслуг.Дата,
|РеализацияТоваровУслуг.Контрагент
|ИЗ
|Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг";
РезультатЗапроса = Запрос.Выполнить();
КонецПроцедуры

Besart

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

Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

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

SlazZy

У меня есть подозрение что мужики пишут в женском роде чтобы им быстрее отвечали :bleh:
Besart,позволю не согласиться. Судя по всему нужна процедура, вызываемая из самой счет-фактуры, чтобы заполнить табличную часть ДокументыОснования. Поэтому ваш код надо чуточку исправить :)
пишу вручную, поэтому мне лень редактировать...

//создание запроса
Запрос.Текст = "
|выбрать
|Документ.Ссылка
|из Документ.РеализацияТоваровУслуг
|Где
|Документ.Дата Между НачалоПериода(&Дата,Месяц) И КонецПериода(&Дата,Месяц)
|И Документ.Контрагент В ИЕРАРХИИ(&СсылкаНаГруппу)";
Запрос.УстановитьПараметр("Дата",Дата);
Запрос.УстановитьПараметр("СсылкаНаГруппу",....);

ДокументыОснование.Загрузить(Запрос.Выполнить.Выгрузить());


Надеюсь ни где не ошибся :)

Dethmontt

Цитата: Besart от 11 апр 2013, 22:11примерно так, важно - выбрать в запросе все поля необходимые для постановки в СчетФактуру
Для типовой конфы можно и не выбирать все поля.

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПоступлениеТоваровУслуг.Ссылка
        |
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ
        |    ПоступлениеТоваровУслуг.Проведен
        |    И ПоступлениеТоваровУслуг.Дата <= &КонецПериода
        |    И ПоступлениеТоваровУслуг.Дата >= &НачалоПериода";

    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        НовыйСчетФактура = Документы.СчетФактураВыданный.СоздатьДокумент();
        НовыйСчетФактура.Заполнить(ВыборкаДетальныеЗаписи.Ссылка);
        НовыйСчетФактура.Записать();
    КонецЦикла;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Alex_Us

спасибо всем! но он ругается что переменная не определена Начало и Конец периода! как быть? не знаю как объявлять в 1с переменные =((

Besart

созадайте на форме два реквизита КонецПериода НачалоПериода с типом дата

для спасибы есть кнопка Сказать спасибо

Alex_Us

создала кнопку в счет-фактура выданный , по ее нажатию должна заполниться табличная часть основания,пробовала вставить ваши запросы, но не заполняет ни в какую.... что же не так делаю???

Besart

и еще в этой строке запроса |    И ПоступлениеТоваровУслуг.Дата <= &КонецПериода замените на ...КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), чтобы брались документы до конца дня
Добавлено: 12 апр 2013, 18:53


Цитата: Alex_Us от 12 апр 2013, 18:43
создала кнопку в счет-фактура выданный , по ее нажатию должна заполниться табличная часть основания,пробовала вставить ваши запросы, но не заполняет ни в какую.... что же не так делаю???
так вы хотите затолкать всю реализацию в одну счет-фактуру? из вашего первого сообщения я понял что вы хотите создать обработку для создания нескольких счет-фактур разом за месяц

Alex_Us

все равно при нажатие ничего не происходит.... =((( пустота и все... не заполняет он табличную часть основания((
Добавлено: 12 апр 2013, 18:55


нет, хочу в одну счет фактуру затолкать, чтоб при нажатии кнопки заполнялось за месяц, и по контрагентам из группы торговые точки ... но вот как то не получается что-то....=((
Добавлено: 12 апр 2013, 19:07


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

Besart

Цитата: Alex_Us от 12 апр 2013, 18:53нет, хочу в одну счет фактуру затолкать, чтоб при нажатии кнопки заполнялось за месяц, и по контрагентам из группы торговые точки ... но вот как то не получается что-то....=((
как вы это себе представляете, во первых на форме можно указать только одного контрагента, во вторых есть правила - НК и Постановления правительства где оговариваются порядок оформления счет-фактур, в третьих - практической пользы от документа не вижу, если вам необходимо собрать данные по всем счет-фактурам за месяц, то для этого существуют отчеты и регистры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск