Имя: Пароль:
1C
1С v8
Как выполнить результат запроса, добавив новую строку в документ?
0 stg008
 
17.07.18
13:25
Процедура ПолучитьНеОбработанныхКонтрагентовНаСервере()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    СведенияОбОбзвоне.Период КАК Период,
        |    СведенияОбОбзвоне.Регистратор КАК Регистратор,
        |    СведенияОбОбзвоне.НомерСтроки КАК НомерСтроки,
        |    СведенияОбОбзвоне.Активность КАК Активность,
        |    СведенияОбОбзвоне.Менеджер КАК Менеджер,
        |    СведенияОбОбзвоне.Контрагент КАК Контрагент,
        |    СведенияОбОбзвоне.КонтактноеЛицо КАК КонтактноеЛицо,
        |    СведенияОбОбзвоне.РезультатОбзвона КАК РезультатОбзвона,
        |    СведенияОбОбзвоне.ДатаПерезвона КАК ДатаПерезвона,
        |    СведенияОбОбзвоне.ТипЗвонка КАК ТипЗвонка
        |ИЗ
        |    РегистрСведений.СведенияОбОбзвоне КАК СведенияОбОбзвоне
        |ГДЕ
        |    (СведенияОбОбзвоне.РезультатОбзвона = ЗНАЧЕНИЕ(Перечисление.РезультатыОбзвона.ЗапланированЗвонок)
        |            ИЛИ СведенияОбОбзвоне.РезультатОбзвона = ЗНАЧЕНИЕ(Перечисление.РезультатыОбзвона.ОтправленоКП))
        |    И СведенияОбОбзвоне.ДатаПерезвона = &ДатаПерезвона";
    
    Запрос.УстановитьПараметр("ДатаПерезвона", Объект.Дата);
    Запрос.УстановитьПараметр("Менеджер", Объект.Менеджер);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
        Объект.ТабличнаяЧасть.Записать();
    КонецЦикла;


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


______________________________________________________
при нажатии кнопки на форме, для для действия которой был выполнен этот запрос, не появляется новая строка
_______________________________________________________
заранее спасибо за подсказки
1 DrWatson
 
17.07.18
13:36
(0) А в выборе вообще строки есть?
У табличной части вроде как нет метода Записать. Выполнение должно падать.
2 stg008
 
17.07.18
13:38
(0)
https://d.radikal.ru/d33/1807/4d/32317762d993.png
табличная часть в документе, при нажатии кнопки заполнить, должна выполнить результат запроса
извините если неправильно поясняю
3 Гипервизор
 
17.07.18
13:40
(2) Вам уже ответили в (1). Что осталось непонятным?
4 stg008
 
17.07.18
14:02
(3)
&НаСервере
Процедура ПолучитьНеОбработанныхКонтрагентовНаСервере()
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    СведенияОбОбзвоне.Период КАК Период,
        |    СведенияОбОбзвоне.Регистратор КАК Регистратор,
        |    СведенияОбОбзвоне.НомерСтроки КАК НомерСтроки,
        |    СведенияОбОбзвоне.Активность КАК Активность,
        |    СведенияОбОбзвоне.Менеджер КАК Менеджер,
        |    СведенияОбОбзвоне.Контрагент КАК Контрагент,
        |    СведенияОбОбзвоне.КонтактноеЛицо КАК КонтактноеЛицо,
        |    СведенияОбОбзвоне.РезультатОбзвона КАК РезультатОбзвона,
        |    СведенияОбОбзвоне.ДатаПерезвона КАК ДатаПерезвона,
        |    СведенияОбОбзвоне.ТипЗвонка КАК ТипЗвонка
        |ИЗ
        |    РегистрСведений.СведенияОбОбзвоне КАК СведенияОбОбзвоне
        |ГДЕ
        |    (СведенияОбОбзвоне.РезультатОбзвона = ЗНАЧЕНИЕ(Перечисление.РезультатыОбзвона.ЗапланированЗвонок)
        |            ИЛИ СведенияОбОбзвоне.РезультатОбзвона = ЗНАЧЕНИЕ(Перечисление.РезультатыОбзвона.ОтправленоКП))
        |    И СведенияОбОбзвоне.ДатаПерезвона = &ДатаПерезвона";
    
    Запрос.УстановитьПараметр("ДатаПерезвона", Объект.Дата);
    Запрос.УстановитьПараметр("Менеджер", Объект.Менеджер);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
        Объект.ТабличнаяЧасть.Выполнить();
    КонецЦикла;
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

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


&НаКлиенте
Процедура ПолучитьНеОбработанныхКонтрагентов(Команда)
    ПолучитьНеОбработанныхКонтрагентовНаСервере();
КонецПроцедуры

_____________________________________
Заменил на "выполнить", не заполняется
5 DrWatson
 
17.07.18
14:12
(4) А Выполнить откуда взялось у табличной части? Это не то что не заполняется, это падать должно.
В первую очередь ответте на (1). Во вторую - заполнять строку таб. части нужно так:
НоваяСтрока.ТакойТоРеквизит = ВыборкаДетальныеЗаписи.ТакойТоРеквизит;
И так со всеми колонками которые нужно заполнить.
Небольшой лайф хак. Если имена реквизитов одинаковые, то можно обойтись одной строкой:
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаДетальныеЗаписи);
6 Михаил Козлов
 
17.07.18
14:13
(4) У табличной части есть метод Выполнить()?
7 lubitelxml
 
17.07.18
14:14
и Объект.Записать() - после цикла, хотя я вообще не уверен что тебе записывать надо
8 BobCat
 
17.07.18
14:15
Игра угадай что хочет сделать автор началась
9 Катя2504
 
17.07.18
14:23
(0) У меня волосы на голове шевелятся от вашего поста.
Программист всегда исправляет последнюю ошибку.