Имя: Пароль:
1C
1С v8
Результат запроса в табличную часть реквизита формы)) 8.3
,
0 sirbure
 
12.02.15
23:14
Собственно в реквизите формы есть табличная часть ДоговорыКлиентов
Имеет колонки: номер строки, дата начала, дата конца, тип договора, номер договора, хочу что бы при открытии формы она заполнялась. Никак не могу передать результат запроса в эту таблицу.
Код такой:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
            
    Договорыснами();
    ЭтаФорма.Записать();

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

&НаСервере
Функция Договорыснами();
    Запрос = Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ДоговорыКлиентов.ДатаНачала,
                 |    ДоговорыКлиентов.ДатаКонца,  
                 |    ДоговорыКлиентов.НомерДоговора,
                 |    ДоговорыКлиентов.Тип  
                 |ИЗ
                 |    Справочник.ДоговорыКлиентов КАК ДоговорыКлиентов
                 |ГДЕ
                 |    ДоговорыКлиентов.ВладелецДоговора = &Клиент";
    Кл=Объект.Наименование;            
    Запрос.УстановитьПараметр("Клиент", Кл);
    Результат=Запрос.Выполнить().Выгрузить();
    Объект.ДоговорыКлиентов.Загрузить(Результат);    
КонецФункции
1 hhhh
 
12.02.15
23:20
Кл=Объект.Наименование;  это что за бред? Владелец не может быть наименованием. Никогда.
2 hhhh
 
12.02.15
23:21
потом есть процедура ПриСозданииНаСервере. Что за ПриОткрытии? откуда взялась? На 77  что ли пишете и в восьмерку вставили?
3 sirbure
 
12.02.15
23:25
(1) Кл=Объект.Наименование Это я из реквизита формы получаю наименование контрагента, что бы задать параметр запроса, т.е. ищу владельца договора в справочнике по наименованию, запрос 100% рабочий.
Процедура при открытии, это при открытии формы, т.е. я тыкаю на форму справочника Контрагенты и эта таблица должна заполняться.
Пишу в 8.3
4 hhhh
 
12.02.15
23:31
(3) поле владелец это как раз ссылка на контрагента. Зачем искать его по наименованию? За это ведь сразу расстрелять надо, потом тело сжечь, а пепел утопить в реке.
5 sirbure
 
12.02.15
23:38
(4) эм, тут как бы не совсем в этом дело)) просто в реквизитах справочника договоры контрагентов нет других реквизитов от владельца кроме наименования
6 sirbure
 
12.02.15
23:41
(4) Видимо нужно было упомянуть про то что это, не стандартная конфа, а пустая)
7 alle68
 
13.02.15
02:20
(5) Дело в том, что ты пока плохо различаешь ссылку и наименование.
(3) А как ты 100% насчитал, "Результат" имеет строки?
8 Web00001
 
13.02.15
03:21
(3)В запросе у тебя написано не это. В запросе у тебя написано дословно:
ГДЕ ДоговорыКлиентов.ВладелецДоговора = &Клиент
То есть если у тебя реквизит "ВладелецДоговора" имеет тип "Строка" то ок, такой код код, хоть и кривой но имеет смысл. Но для начала да, надо ответить на вопрос в (7)
9 sirbure
 
13.02.15
13:49
(7) в консоли запрососв выводит 3 строки))
10 alle68
 
13.02.15
13:56
(9) Когда ты вводишь наименование, система ищет ссылку и подставляет её, поэтому что-то находится. А в коде у тебя строка.
11 hhhh
 
13.02.15
13:58
ну может и правда ВладелецДоговора - строка?
12 sirbure
 
13.02.15
14:02
(8) блин извините. я слепошарый, (11)  Тип справочник ссылка, протуканил когда собирал запрос в конфигураторе, добавил Наименование, ну да бог с ним, вопрос остался открытым))
13 vicof
 
13.02.15
14:04
При открытии запись вообще феерично
14 alle68
 
13.02.15
14:19
(11) Строка... но это невозможно!
(12) Открытый? Что же ещё сказать!?
15 sirbure
 
13.02.15
14:21
Кстати как при отладке посмотреть результат запроса ? точку останова ставлю, но именно то что находится в ячейках посмотреть не могу, выводит только описание данных
16 Molinor
 
13.02.15
14:25
Смотри, что у тебя в Результат лежит. Выделить переменную, Shift+F9, затем F2.
17 sirbure
 
13.02.15
14:29
в результате лежит вот что:
Свойство    Значение    Тип
Запрос.Выполнить().Выгрузить()    ТаблицаЗначений    ТаблицаЗначений
Индексы    ИндексыКоллекции    ИндексыКоллекции
Колонки    КоллекцияКолонокТаблицыЗначений    КоллекцияКолонокТаблицыЗначений
ДатаКонца    КолонкаТаблицыЗначений    КолонкаТаблицыЗначений
Заголовок    "ДатаКонца"    Строка
Имя    "ДатаКонца"    Строка
ТипЗначения    Дата, Null    ОписаниеТипов
Ширина    10    Число
ДатаНачала    КолонкаТаблицыЗначений    КолонкаТаблицыЗначений
Заголовок    "ДатаНачала"    Строка
Имя    "ДатаНачала"    Строка
ТипЗначения    Дата, Null    ОписаниеТипов
КвалификаторыДаты    КвалификаторыДаты    КвалификаторыДаты
ЧастиДаты    Дата    ЧастиДаты
КвалификаторыДвоичныхДанных    КвалификаторыДвоичныхДанных    КвалификаторыДвоичныхДанных
Длина    0    Число
ДопустимаяДлина    Переменная    ДопустимаяДлина
КвалификаторыСтроки    КвалификаторыСтроки    КвалификаторыСтроки
Длина    0    Число
ДопустимаяДлина    Переменная    ДопустимаяДлина
КвалификаторыЧисла    КвалификаторыЧисла    КвалификаторыЧисла
ДопустимыйЗнак    Любой    ДопустимыйЗнак
Разрядность    0    Число
РазрядностьДробнойЧасти    0    Число
Ширина    10    Число
НомерДоговора    КолонкаТаблицыЗначений    КолонкаТаблицыЗначений
Заголовок    "НомерДоговора"    Строка
Имя    "НомерДоговора"    Строка
ТипЗначения    Строка, Null    ОписаниеТипов
Ширина    32    Число
Тип    КолонкаТаблицыЗначений    КолонкаТаблицыЗначений
Заголовок    "Тип"    Строка
Имя    "Тип"    Строка
ТипЗначения    Null, Типы договоров с клиентами    ОписаниеТипов
Ширина    25    Число

Но самих значений Нет
18 Mankubus
 
13.02.15
14:31
может вы программиста позовете?
19 Mankubus
 
13.02.15
14:32
при открытии формы не надо ничего записывать
20 sirbure
 
13.02.15
14:38
(18) да это я для себя балуюсь))
Как я понял без цикла тут не обойтись)
21 Demetres
 
13.02.15
14:46
(20) Конечно обойтись
22 Demetres
 
13.02.15
14:47
(20) В отладчике после того как получили Результат, нажмите на карандаш, и тогда увидите что в таблице значений
23 Demetres
 
13.02.15
14:52
(20) Или хотябы посмотри сколько строк в табл. знач. Результат.Количество()
24 sirbure
 
13.02.15
14:55
(21) Как? (23) 3 строки, циклом все заносится в таблицу
цикл может быть дебильный))) но как могу :
Шаг= 0;
    Для каждого Строка Из Результат Цикл
                Объект.ДоговорыКлиентов.Добавить();;
                Объект.ДоговорыКлиентов[Шаг].ТипДоговора=Строка.Тип;    
                Шаг=Шаг+1;
                КонецЦикла;
25 sirbure
 
13.02.15
15:01
(22) Большое спасибо за карандашь)) Гадал бы оч долго как посмотреть))
26 Demetres
 
13.02.15
15:04
(24) Все поля таблицы значений которыми заполняете элемент формы с типом ДанныеФормыКоллекция должны совпадать по имени.

|    ДоговорыКлиентов.Тип КАК ТипДоговора

У вас просто опыта пока мало в 1С, если тут говорят что можно заполнить то значит можно :)
27 Demetres
 
13.02.15
15:05
не элемент формы а реквизит с типом ДанныеФормыКоллекция
28 sirbure
 
13.02.15
15:07
(26) тык а механизм то какой ?)) переделать рекизиты  не проблема) как их заполнять то из запроса ?
29 sirbure
 
13.02.15
15:08
(27) типа ЗначениеВДанныеФормы что ли?
30 Demetres
 
13.02.15
15:13
(28) Все очень просто умеете пользователя синтаксис помошником? Смотрите описание типа "ДанныеФормыКоллекция" у него есть метод Загрузить(<Таблица>)
31 Demetres
 
13.02.15
15:16
(28) Реквизиты трогать не надо, а в запросе так надо написать
|    ДоговорыКлиентов.Тип КАК ТипДоговора