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

Загрузка из документа (Внешняя обработка)

Автор Vladimir19901, 16 окт 2014, 15:39

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

Vladimir19901

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

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

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

дфтын

Дак загружайте в таблицу через загрузить,а то что нужно загружать через выгрузить

cska-fanat-kz

Vladimir19901, код отформатируйте, в одну строку - ваще жесть! (((
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

дфтын

А я через taptalk смотрю у меня тут вообще по другому)

Yura063

Цитата: Vladimir19901 от 16 окт 2014, 15:39
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл         
    Ссылка = ВыборкаДетальныеЗаписи.Ссылка;       
    Для Каждого Ссылка Из ВыборкаДетальныеЗаписи Цикл 
    .................
    КонецЦикла;
КонецЦикла;
Вы тут сами не запутались?
Два цикла по одному запросу!!!
Притом первый цикл, для работы с выборкой, правильный, второй цикл используется для табличных частей (Для Каждого Х Из Табл Цикл) - он вам не нужен.
если хотите оставить второй цикл, то запрос.Выполнить().Выгрузить() - выгружается таблица значений;
В общем перемудри!!!
Добавлено: 17 окт 2014, 09:00


Ошибка из-за того, с запроса вы получили Выборку, а второй цикл для ТаблициЗначений
Помогли, отблагодари!

Теги:

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

Рейтинг@Mail.ru

Поиск