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

Хранилище

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

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



> Ссылка на Документ основание          
jojojoba2 Подменю пользователя
сообщение 26.06.19, 16:00
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 56
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!

В 8.3 УПП в документе РеализацияТоваровИУслуг необходимо скопировать данные из табличной части ТОВАРЫ документа основания Заказ Покупателя. Написал запрос но не знаю как в запросе сослатся на данные каторые есть в документе основании (на товары каторые есть в табличной части Заказ Покупателя).

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

            ДобавленКомплект                         = Истина;
        КонецЦикла;
КонецЕсли;


КонецПроцедуры



 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 30.06.19, 10:23

takefive Подменю пользователя
сообщение 26.06.19, 16:44
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 60
Из: Днепропетровск
Спасибо сказали: 22 раз
Рейтинг: 23.2

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


Signature
без свинга нет музыки...

jojojoba2 Подменю пользователя
сообщение 27.06.19, 8:28
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 56
Спасибо сказали: 0 раз
Рейтинг: 0

takefive @ Вчера, 17:44 * ,
Почему то выдает ошибку

Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{Документ.РеализацияТоваровУслуг.МодульОбъекта(5086)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
{(12, 19)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
Товары.Ссылка <<?>>= &Ссылка

pablo Подменю пользователя
сообщение 27.06.19, 8:38
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

В Вашем модуле доступен реквизит объекта с именем ЗаказПокупателя и типом неограниченная строка. исправьте имя параметра в описании процедуры и в ее тексте.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

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

Говорящий
***
Группа: Пользователи
Сообщений: 56
Спасибо сказали: 0 раз
Рейтинг: 0

pablo @ Сегодня, 9:38 * ,


Спасибо!
Получилось!

Выкладываю код.


Процедура СкопироватьТовары2(ТабличнаяЧасть,ДокументОснование) 

ДокументОснование = Сделка;
ДатаОстатков = ОбщегоНазначения.ПолучитьДатуОстатков(ЭтотОбъект);

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
Запрос.УстановитьПараметр("ПустойСклад", Справочники.Склады.ПустаяСсылка());
Запрос.УстановитьПараметр("ДатаОстатков", ДатаОстатков);

Запрос.Текст ="ВЫБРАТЬ
|    Товары.НомерСтроки,
|    Товары.Номенклатура,
|    Товары.Количество,
|    Товары.ЕдиницаИзмерения,
|    Товары.Коэффициент,
|    Товары.Цена,
|    Товары.ПроцентСкидкиНаценки,
|    Товары.Сумма
|ИЗ
|    Документ.ЗаказПокупателя.Товары КАК Товары
|ГДЕ
|    Товары.Ссылка = &ДокументОснование";

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



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

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


НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = Выборка.НомерСтроки;
НоваяСтрока.Номенклатура = Выборка.Номенклатура;
НоваяСтрока.Количество = Выборка.Количество;    
НоваяСтрока.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
НоваяСтрока.Коэффициент = Выборка.Коэффициент;
НоваяСтрока.Цена = Выборка.Цена;
НоваяСтрока.ПроцентСкидкиНаценки = Выборка.ПроцентСкидкиНаценки;    
НоваяСтрока.Сумма = Выборка.Сумма;

КонецЦикла;

КонецПроцедуры


Всем спасибо!


 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 30.06.19, 10:23

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


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

 

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