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

Хранилище

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

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



> Цена (склад получатель)          
bereznoy Подменю пользователя
сообщение 24.09.12, 21:54
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Делаю внешнюю печ форму документа Внутр перемещение, мне необходимо получить в печ форму цену склада получателя, как правильно это сделать?

ЗапросПоТоварам = Новый Запрос;
    ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    ЗапросПоТоварам.Текст =
    "ВЫБРАТЬ
    |    Номенклатура,
    |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Артикул КАК Артикул,
    |    Количество,
    |    ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    Цена,
    |   НомерСтроки,
    |    1 КАК ID
    |ИЗ
    |    (ВЫБРАТЬ
    |        Номенклатура         КАК Номенклатура,
    |        ЕдиницаИзмерения     КАК ЕдиницаИзмерения,
    |        ЦенаВРознице         КАК Цена,
    |        СУММА(Количество)    КАК Количество,
    |        МИНИМУМ(НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваров
    |    ГДЕ
    |        ПеремещениеТоваров.Ссылка = &ТекущийДокумент
    |    СГРУППИРОВАТЬ ПО
    |        Номенклатура,
    |        ЕдиницаИзмерения,
    |        ЦенаВРознице
    |    ) КАК ВложенныйЗапросПоТоварам
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    Номенклатура,
    |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Артикул КАК Артикул,
    |    Количество,
    |    ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |    Цена,
    |   НомерСтроки,
    |    2 КАК ID
    |ИЗ
    |    (ВЫБРАТЬ
    |        Номенклатура         КАК Номенклатура,
    |        ЕдиницаИзмерения     КАК ЕдиницаИзмерения,
    |        Цена                 КАК Цена,
    |        СУММА(Количество)    КАК Количество,
    |        МИНИМУМ(НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.ПеремещениеТоваров.ТоварыНаКомиссии КАК ПеремещениеТоваров
    |    ГДЕ
    |        ПеремещениеТоваров.Ссылка = &ТекущийДокумент
    |    СГРУППИРОВАТЬ ПО
    |        Номенклатура,
    |        ЕдиницаИзмерения,
    |        Цена
    |    ) КАК ВложенныйЗапросПоТоварам
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    Номенклатура,
    |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)),
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Артикул КАК Артикул,
    |    Количество,
    |    Номенклатура.БазоваяЕдиницаИзмерения,
    |    0,
    |    НомерСтроки,
    |    3
    |    
    |ИЗ
    |    Документ.ПеремещениеТоваров.ВозвратнаяТара КАК ПеремещениеТоваров
    |
    |ГДЕ
    |    ПеремещениеТоваров.Ссылка = &ТекущийДокумент
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    Номенклатура,
    |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)),
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Артикул КАК Артикул,
    |    Количество,
    |    ЕдиницаИзмерения,
    |    0,
    |    НомерСтроки,
    |    4
    |    
    |ИЗ
    |    Документ.ПеремещениеТоваров.БланкиСтрогогоУчета КАК ПеремещениеТоваров
    |
    |ГДЕ
    |    ПеремещениеТоваров.Ссылка = &ТекущийДокумент
    
    |
    |УПОРЯДОЧИТЬ ПО
    |    ID,
    |    НомерСтроки";
    
    ВыборкаСтрокТовары = ЗапросПоТоварам.Выполнить().Выбрать();


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

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

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

Цитата(bereznoy @ 24.09.12, 22:54) *
как правильно это сделать?

В чем собственно проблема? к чему приведен данный запрос? Конфигурация?


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

bereznoy Подменю пользователя
сообщение 24.09.12, 22:30
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

Цитата(logist @ 24.09.12, 23:06) *
В чем собственно проблема? к чему приведен данный запрос? Конфигурация?

Проблема в создании правильного запроса, что б тип цены брался из склада получателя, соотвественно цена. Запрос приведен как исходник, вот что
уже из него получается (часть), конф УПП

перед запросом параметр добавил такой

ЗапросПоТоварам.УстановитьПараметр("ТипЦенПолучатель", СсылкаНаОбъект.СкладПолучатель.ТипЦенРозничнойТорговли.Ссылка);


и сам запрос:

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



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


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

bereznoy Подменю пользователя
сообщение 25.09.12, 1:24
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 329
Из: Simferopol
Спасибо сказали: 9 раз
Рейтинг: 0

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

Пока ВыборкаСтрокТовары.Следующий() Цикл

        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьНомера.Параметры.НомерСтроки = НС;
        ТабДокумент.Вывести(ОбластьНомера);

        Если ВыводитьКоды Тогда
            Если Колонка = "Артикул" Тогда
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
            Иначе
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;
        
        ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
        
ЗапросПоЦенам = Новый Запрос;
ЗапросПоЦенам.УстановитьПараметр("ТекущийДокументЦена", СсылкаНаОбъект);
ЗапросПоЦенам.УстановитьПараметр("ТоварЦена", ВыборкаСтрокТовары.Товар);

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

            
            
            
        ОбластьДанных.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар);
        ТабДокумент.Присоединить(ОбластьДанных);
        
    //    Если ЕстьЦена Тогда
    
    ТабДокумент.Присоединить(ОбластьЦены);
            
            ТабДокумент.Присоединить(ОбластьСуммы);

    //    КонецЕсли;

        НС = НС + 1;
    КонецЦикла;


В цикле получается получать цену но ровно столько раз сколько у меня строк в документе, попытался условием сделать, но почему то оно не выполняется

ЗапросПоЦенам = Новый Запрос;
ЗапросПоЦенам.УстановитьПараметр("ТекущийДокументЦена", СсылкаНаОбъект);
ЗапросПоЦенам.УстановитьПараметр("ТоварЦена", ВыборкаСтрокТовары.Товар);

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


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

kivals Подменю пользователя
сообщение 28.09.12, 12:56
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 105
Из: Киев
Спасибо сказали: 27 раз
Рейтинг: 0

Попробуйте вместо
Документ.ПеремещениеТоваров КАК ПеремещениеТоваров

использовать
Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары

Ну и соответсвенно подровнять запрос...

Второй момент:
Реквизит ТипЦенРозничнойТорговли в складе-получателе - заполнен?

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


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

 

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