Версия для печати темы (https://pro1c.org.ua/index.php?s=688cb2e7dc3dff18caa7cc3910310c30&showtopic=20278)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Загрузка из документа

Автор: Volodimir19901 16.10.14, 13:35

Создал внешнюю Обработку которая проверяет все документы Заказы Покупателям и выводит нужный мне список.
Хочу в эти документы табличную часть(Товары) заполнить в этом же документе в табличную часть (Исходный заказ) грубо говоря продублировать.
Вот собственно код:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Ссылка = Документы.ЗаказПокупателя.ПолучитьСсылку();
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ЗаказПокупателя.Ссылка,
        |    ЗаказПокупателяТовары.НомерСтроки,
        |    ЗаказПокупателяТовары.ЕдиницаИзмерения,
        |    ЗаказПокупателяТовары.ЕдиницаИзмеренияМест,
        |    ЗаказПокупателяТовары.Количество,
        |    ЗаказПокупателяТовары.КоличествоМест,
        |    ЗаказПокупателяТовары.Коэффициент,
        |    ЗаказПокупателяТовары.Номенклатура,
        |    ЗаказПокупателяТовары.СтавкаНДС,
        |    ЗаказПокупателяТовары.Сумма,
        |    ЗаказПокупателяТовары.СуммаНДС,
        |    ЗаказПокупателяТовары.ХарактеристикаНоменклатуры,
        |    ЗаказПокупателяТовары.Цена,
        |    ЗаказПокупателяТовары.ПроцентАвтоматическихСкидок,
        |    ЗаказПокупателяТовары.УсловиеАвтоматическойСкидки,
        |    ЗаказПокупателяТовары.ЗначениеУсловияАвтоматическойСкидки,
        |    ЗаказПокупателяТовары.Спецификация,
        |    ЗаказПокупателяТовары.СерияНоменклатуры
        |ИЗ
        |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ИсходныйЗаказ КАК ЗаказПокупателяИсходныйЗаказ
        |        ПО ЗаказПокупателя.Ссылка <> ЗаказПокупателяИсходныйЗаказ.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
        |        ПО ЗаказПокупателя.Ссылка = ЗаказПокупателяТовары.Ссылка
        |ГДЕ
        |    ЗаказПокупателя.Дата МЕЖДУ &ДатаC И &ДатаПо";

    Запрос.УстановитьПараметр("ДатаC", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаПо", ДатаОкончания);
                            
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Ссылка = ВыборкаДетальныеЗаписи.Ссылка;
        Для Каждого Ссылка Из ВыборкаДетальныеЗаписи Цикл
                НоваяСтрока                                      = Ссылка.ИсходныйЗаказ.Добавить();
                НоваяСтрока.НомерСтроки                          = ВыборкаДетальныеЗаписи.НомерСтроки;
                НоваяСтрока.ЕдиницаИзмерения                     = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
                НоваяСтрока.ЕдиницаИзмеренияМест                 = ВыборкаДетальныеЗаписи.ЕдиницаИзмеренияМест;
                НоваяСтрока.Количество                            = ВыборкаДетальныеЗаписи.Количество;
                НоваяСтрока.КоличествоМест                        = ВыборкаДетальныеЗаписи.КоличествоМест;
                НоваяСтрока.Коэффициент                             = ВыборкаДетальныеЗаписи.Коэффициент;
                НоваяСтрока.Номенклатура                         = ВыборкаДетальныеЗаписи.Номенклатура;
                НоваяСтрока.СтавкаНДС                            = ВыборкаДетальныеЗаписи.СтавкаНДС;
                НоваяСтрока.Сумма                                 = ВыборкаДетальныеЗаписи.Сумма;
                НоваяСтрока.СуммаНДС                            = ВыборкаДетальныеЗаписи.СуммаНДС;
                НоваяСтрока.ХарактеристикаНоменклатуры          = ВыборкаДетальныеЗаписи.ХарактеристикаНоменклатуры;
                НоваяСтрока.Цена                                  = ВыборкаДетальныеЗаписи.Цена;
                НоваяСтрока.ПроцентАвтоматическихСкидок          = ВыборкаДетальныеЗаписи.ПроцентАвтоматическихСкидок;
                НоваяСтрока.УсловиеАвтоматическойСкидки          = ВыборкаДетальныеЗаписи.УсловиеАвтоматическойСкидки;
                НоваяСтрока.ЗначениеУсловияАвтоматическойСкидки = ВыборкаДетальныеЗаписи.ЗначениеУсловияАвтоматическойСкидки;
                НоваяСтрока.Спецификация                         = ВыборкаДетальныеЗаписи.Спецификация;
                НоваяСтрока.СерияНоменклатуры                    = ВыборкаДетальныеЗаписи.СерияНоменклатуры;
            КонецЦикла;    
    КонецЦикла;
    
КонецПроцедуры

Выдает ошибку на
Для Каждого Ссылка Из ВыборкаДетальныеЗаписи Цикл
Прошу подсказать как лучше продублировать данные?

Автор: alex040269 16.10.14, 14:02

Цитата(Volodimir19901 @ 16.10.14, 14:35) http://pro1c.org.ua/index.php?act=findpost&pid=92237
Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();


Цитата(Volodimir19901 @ 16.10.14, 14:35) http://pro1c.org.ua/index.php?act=findpost&pid=92237
НоваяСтрока = Ссылка.ИсходныйЗаказ.Добавить();

заменить на
Цитата(Volodimir19901 @ 16.10.14, 14:35) http://pro1c.org.ua/index.php?act=findpost&pid=92237
КонецЦикла;

удалить.

Автор: TipsyKID 16.10.14, 14:27

Если типовая то :

ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаИсточник, ТаблицаПриемник);

Если нет :

    // Заполним значения в совпадающих колонках.
    Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл

        СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриемника, СтрокаТаблицыИсточника);

    КонецЦикла;



Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua