Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Анатолий Ясень
Статус: Студент
Рейтинг: 34
∙ повысить рейтинг >>
Владимир Лазурко
Статус: Практикант
Рейтинг: 20
∙ повысить рейтинг >>
Астафьев Александр Николаевич
Статус: Студент
Рейтинг: 15
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 988
от 08.04.2009, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 417, Экспертов: 39
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 164048: Доброго времени суток. Я сделал запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаС по ДатаПО; |Обрабатывать НеПомеченныеНаУдаление; |ОбрабатыватьДокументы Проведенн...


Вопрос № 164.048
Доброго времени суток. Я сделал запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаС по ДатаПО;
|Обрабатывать НеПомеченныеНаУдаление;
|ОбрабатыватьДокументы Проведенные;
|Без итогов;
|Реализация = Документ.Реализация.ТекущийДокумент;
|Проект = Документ.Реализация.Проект;
|Номен = Документ.Реализация.Номенклатура.Наименование;
|НомДок = Документ.Реализация.НомерДок;
|ДатДок = Документ.Реализация.ДатаДок;
|КонтрДог = Документ.Реализация.Договор;
|КодНом = Документ.Реализация.Номенклатура.Код;
|ЦенаНом = Документ.Реализация.Цена;
|КолНом = Документ.Реализация.Количество;
|НомРодина = Документ.Реализация.Номенклатура.СтранаПроисхождения;
|НомГТД = Документ.Реализация.Номенклатура.НомерГТД;
|СтавкаНДС = Документ.Реализация.СтавкаНДС;
|Условие(Реализация.Контрагент = Контр);
|Группировка Реализация;
|Группировка СтрокаДокумента;";< br>

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Каким образом мне теперь отдельно пройтись по отобранным документам и табличным частям к ним. И как мне результаты запроса присвоить переменным?
Отправлен: 03.04.2009, 16:31
Вопрос задал: Netizen (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Владимир Лазурко
Здравствуйте, Netizen!

Если требуется просто вывести содержимое документов из запросов, то на мой взгляд, лучше вместо второго цикла (группировки запроса) использовать процедуру вывода табл. части. Тогда ресурсы системы меньше используются.
Но если стоит задача получить выборку выписанных товаров - используйте запрос, ибо запрос быстрее и рациональнее сделает такую выборку, чем перебор документов и заполнение таблицы значений,
Код:
Процедура ВывестиТовСостав(Документ, Таблица)
Таблица.ВывестиСекцию("ДокШапка");
Документ.ВыбратьСтроки();
Пока Документ.ПолучитьСтроку()=1 Цикл
Таблица.ВывестиСекцию("ДокСтрока");
КонецЦикла; //Документ.ПолучитьСтроку()=1
Таблица.Вывестисекцию("ДокДно");
КонецП роцедуры //ВывестиТовСостав

Пока Запрос.Группировка(1)=1 Цикл // первая группировка - Реализация. Можно Пока Запрос.Групировка("Реализация")=1 Цикл, будет то же самое
// цикл по документам Реализация
Таб.ВывестиСекцию("Документ");
ВывестиТовСостав(Запрос.Реализация, Таб);
КонецЦикла;


© Цитата:
как мне результаты запроса присвоить переменным?

Самый простой способ - сделать это в цикле запроса. Сложнее, но "красивше" - выгрузить запрос в таблицу значений.
Код:
Перем Проект, НаимТовара;
...

Пока Запрос.Группировка(1) Цикл
Проект = Запрос.Проект;
НаимТовара = Запрос.Номен;
КонецЦикла;


Я бы посоветовал изменить строку запроса
|Номен = Документ.Реализация.Номенклатура.Наименование;
на такую:
|Номен = Документ.Реализация.Номенклатура;

Тогда через переменную запроса Номен Вы будете иметь доступ непосредственно к элементам справочника Номенклатура, которые попадут в запрос. Соответсвенно и получать код товара и наименование, поэтому эти строки можно исключить из запроса - так будет оптимальнее. Кстати, наименование товара и так имеет представление в виде строки.

В Приложении примерный код того, как с помощью только запроса получить товарный состав (я взял только товары) и вывести документы и их товарный состав на печать. Во Вложении готовая обработка, где это уже реализовано. Думаю, по аналогии с моим пример ом Вы реализуете свой функционал.

Успехов!
С уважением, Владимир.

Приложение:

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
И как хотите, чтобы с вами поступали люди, так и вы поступайте с ними. (Евангелие от Луки, 6:31, совр. перевод)

Ответ отправил: Владимир Лазурко (статус: Практикант)
Ответ отправлен: 07.04.2009, 09:56

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 246977 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

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

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное