Имя: Пароль:
1C
1С v8
Вопрос по УФ
0 Azverin
 
23.01.14
15:04
Пишу обработку - заполнить справочник по данным из регистра сведений.
Делаю запрос по регистру сведений. В выборке получаю объект справочника и хочу заполнить реквизиты формы. Как это сделать?

&НаСервере
Процедура Сформировать()
Запрос.Текст = ...

ТЗ = Запрос.Выполнить().Выгрузить();
    Если ТЗ.Количество()>0 Тогда
        Для каждого Стр из ТЗ Цикл
            Контр = Справочники.Контрагенты.НайтиПоНаименованию(стр.объект).ПолучитьОбъект();
???
1 Адский плющ
 
23.01.14
15:05
Хочешь заполнить реквизиты формы, а надо хотеть заполнить реквизиты объекта.
2 Azverin
 
23.01.14
15:06
(1) в реквизитах объекта нет реквизитов формы)
3 Адский плющ
 
23.01.14
15:11
ХЗ как так можно программировать.
4 Azverin
 
23.01.14
15:13
(3) с УФ раньше не сталкивался. что делаю не так?
5 kosts
 
23.01.14
15:20
(4) Можно подумать, что с обычными формами такой код прокатил бы...

Зачем выгрузка в ТЗ? Зачем получение объекта? Зачем поиск по наименованию? Зачем присвоение переменной в цикле?
Зачем ТЗ.Количество()>0 если цикл и так в цикл не попадешь если в тз нет строк?

Для исправления проблемы нажми ctrl+a,del
6 Кир Пластелинин
 
23.01.14
15:25
мать моя женщина...
7 Azverin
 
23.01.14
15:26
(5) да, зря я выложил обрывки кода. выглядит удручающе...

хорошо, как мне заполнить элементы справочника по данным РС?
8 Кир Пластелинин
 
23.01.14
15:29
(7) мне кажется полный код картину не улучшил бы) неплохо бы для начала услышать конечную цель
9 Azverin
 
23.01.14
15:30
(8) элементы справочника Контрагентов (табличная часть и реквизиты формы) заполнены по данным РС
10 НЕА123
 
23.01.14
15:32
1986
11 Кир Пластелинин
 
23.01.14
15:34
(9) ну если заполнены, то что нужно делать то тогда?) все и так в шоколаде)
12 Azverin
 
23.01.14
15:35
(11) давай по существу.
13 EvgeniuXP
 
23.01.14
15:36
(7) читаешь данные из РС, создаешь элементы справочника, заполняешь реквизиты и записываешь каждый элемент.
14 EvgeniuXP
 
23.01.14
15:38
НаборЗаписей = РегистрыСведений.ИмяРегистраСведений.СоздатьНабор();
НаборЗаписей.Отбор.ИмяИзмерения.Установить(ЗначениеИзмерения);
НаборЗаписей.Прочитать();

Для Каждого СтрокаНЗ Из НаборЗаписей Цикл
    НовыйЭлемент = Справочники.МойСправочник.СоздатьЭлемент();
    НовыйЭлемент.Код = СтрокаНЗ.Код;
    и т.д.
    НовыйЭлемент.Записать();
КонецЦикла;
15 Infsams654
 
23.01.14
15:39
(4) тут УФ не при чем, тут либо (5), либо подумать...
16 Кир Пластелинин
 
23.01.14
15:40
(12) а мы с Вами на "ты" не переходили) грамотно поставленный вопрос - половина успеха.
(13) дык тут хотелка в реквизиты формы запихать
17 Azverin
 
23.01.14
15:41
(14) элементы справочника уже есть.
короче, РС - Адрессный классификатор. Справочник - Контрагенты.
18 EvgeniuXP
 
23.01.14
15:42
ЭлементыФормы.ТвояТаблицаЗначений.Значение = РезультатЗапроса.Выгрузить();
19 EvgeniuXP
 
23.01.14
15:43
(17) ты сам не знаешь, что хошь :)
20 Azverin
 
23.01.14
15:43
(18) На сервере не могу обратиться к ЭлементыФормы
21 EvgeniuXP
 
23.01.14
15:44
(2) используй директиву &НаСервере - сегодня тема пробегала.
22 EvgeniuXP
 
23.01.14
15:46
(20) т.е. Элементы, блин. код взял из обычной формы, для уф:

        тзСписокДокументов.Загрузить(РезультатЗапроса.Выгрузить());
23 Infsams654
 
23.01.14
15:48
Ничего не понял. Тут речь идет про УФ.
Этот про элемнеты формы талдычит
EvgeniuXP (18)

вы уж, определитесь
24 EvgeniuXP
 
23.01.14
15:49
ИмяТЗРеквизитаФормы.Загрузить(РезультатЗапроса.Выгрузить());
25 EvgeniuXP
 
23.01.14
15:50
ТаблицуЗначений выкинь на форму, создай колонки такие же как в запросе их тип определи, потом на сервере загрузи ТЗ из запроса - данные увидишь.
26 Tempest
 
23.01.14
15:50
(20) Сделай функцию на сервере которая по регистру сведений сформирует ТЗ, вызови ее с клиента, и потом уже в клиентской процедуре загрузи в элемент формы
27 Ksandr
 
23.01.14
15:50
Структура = Новый Структура("ИмяРеквизита1...", ЗначениеРеквизита2...);
Объект = ПолучитьОбъект()/СоздатьЭлемент();
Объект.Заполнить(Структура);
28 Tempest
 
23.01.14
15:51
Если тебе редактировать не надо, то Динамический список в руки, там вообще код не нужен, только запрос написать.
29 Azverin
 
23.01.14
15:52
(25) типовая конфа
30 EvgeniuXP
 
23.01.14
15:52
(23) спутался, а автор сам не знает что хочет.
31 Infsams654
 
23.01.14
15:53
Всем по неуду. Вы прочитаете что надо или копья ломать ?
32 EvgeniuXP
 
23.01.14
15:55
(29) и что? внешнюю обработку запретили?
пиши что надо.
33 Azverin
 
23.01.14
15:55
(26) "в клиентской процедуре загрузи в элемент формы" - можно по-подробнее здесь
34 Azverin
 
23.01.14
15:56
(32) не понимаю вас
35 EvgeniuXP
 
23.01.14
15:57
(34) а я вас :), то создать элементы справочника, то что-то там отобразить на форме - тип то какой? что отображать? контрагента? адреса? в таблице? в одном реквизите?
36 Tempest
 
23.01.14
15:58
(33) Я правильно понял что тебе на форме надо отобразить данные из РС "Контактные данные"?
37 Azverin
 
23.01.14
16:01
(35) например, у существующего контрагента на форме элемента есть реквизит Телефон (Строка). Его надо заполнить из регистра сведений. Одно из измерений РС - справочник контрагенты
38 EvgeniuXP
 
23.01.14
16:02
(34) на учебу шагом марш: http://www.spec8.ru - для расширения кругозора.
39 Azverin
 
23.01.14
16:02
(36) да
40 Trotter
 
23.01.14
16:03
(38) А вы случайно не автор этих курсов ?)
41 EvgeniuXP
 
23.01.14
16:04
(40) нет, я покупатель, который прошел и очень довольным остался :)
42 Tempest
 
23.01.14
16:05
(37) Ну значит в процедуре при открытии вызывай серверную функцию (не процедуру), которая вернет структуру, тз, или то что тебе удобно но типизируемое(объекты, например, возвращать нельзя), а потом заполняй свои реквизиты. В клиентской процедуре можно обращаться к ним через Коллекцию Элементы.
43 Trotter
 
23.01.14
16:05
(41) с нулевыми знаниями в 1С смотрели ?
44 Infsams654
 
23.01.14
16:06
Еще раз читайте
"Пишу обработку - заполнить справочник по данным из регистра сведений."

Как может быть справочник не заполнен ?

В РС уже есть ссылки
45 EvgeniuXP
 
23.01.14
16:06
(43) еще хуже - мне дедушка такие вколотил, от которых потом долго избавлялся :)
46 Azverin
 
23.01.14
16:10
(42) красиво говоришь, но вот "потом заполняй свои реквизиты" - тут непонимание((
приведи пример
47 Trotter
 
23.01.14
16:11
(45) что вам девушка "вколотил" ?
Девушка "обучала" вас с начало ?
48 Infsams654
 
23.01.14
16:12
(0) Azverin, что есть такого в регистре, чего нет в справочнике?
В РС специально и записываются какие-то периодические данные по элементам справочника
49 Azverin
 
23.01.14
16:12
(44) РС независимый. Справочник частично заполнен.
50 Azverin
 
23.01.14
16:13
извините, что так тупо объясняю
51 Infsams654
 
23.01.14
16:17
(49) с этого пункта поподробнее. Что есть в РС чего нет в справочнике
52 Azverin
 
23.01.14
16:19
(51) какое дело, что есть?

есть в РС "Вася" с номером "555", надо чтобы у Контрагента "Вася" реквизит на форме Номер тоже стал "555"...
53 Адский плющ
 
23.01.14
16:23
А откуда он на форме берется религия не позволяет узнать. Только не говорите, что он там хранится, это будет уже не смешно.
54 Infsams654
 
23.01.14
16:25
(52) понял что сказал ?
Вася - это контрагент?
Так этот контрагент будет контрагентом хоть на любой форме контрагентом (в отчете, в документе и т.д.)
55 Серго62
 
23.01.14
16:25
(52) А в справочнике Вася есть?
56 Infsams654
 
23.01.14
16:26
(55) как его не может быть, если в регистре есть на него ссылка
57 Tempest
 
23.01.14
16:28
(56) У него в регистре есть данные, которых в реквизитах справочника нет. По аналогии с контактной информации в любой типовой конфе.
58 Tempest
 
23.01.14
16:29
(46) Элементы.ТвойЭлемент.Значение = ПолученнаяИзСервернойФункцииТаблица.ТвояКолонка. Как то так. Синтаксис помощник должен при наборе.
59 Серго62
 
23.01.14
16:30
(56) Согласен, туплю...
Тогда такой вопрос, какой код у Васи в справочнике?
60 Серго62
 
23.01.14
16:31
+ (59) и для чего нужно его отображать на форме?
61 Infsams654
 
23.01.14
16:32
(57) не в тему. Если в регистре есть ссылка на контрагента, то в справочнике он должен быть. Иначе, <объект не найден>.
Другое дело, если в РС не ссылка, а код контрагента - тогда, пошли всех на фиг - это неправильное решение, и не стоит тратить время на эту тему
62 Zamestas
 
23.01.14
16:36
(52) Структуру РС в студию.
63 Tempest
 
23.01.14
16:36
(61) Если реквизит периодический, то приемлемое решение.  Иначе понятно, что проще в реквизиты самого объекта эти данные добавить.
64 Infsams654
 
23.01.14
16:41
(63) опять не про то, еще раз прочитай (0).
Как можно из РС заполнить то, что уже есть ?
65 Tempest
 
23.01.14
16:48
(64) Я думаю, ТС не то имел ввиду, что в 0.
66 Infsams654
 
23.01.14
16:49
может действительно как в (57)
"У него в регистре есть данные, которых в реквизитах справочника нет. По аналогии с контактной информации в любой типовой конфе."

Так бы надо и сразу сказать.
А то
"заполнить справочник по данным из регистра сведений"
этак крыша съедет
67 Tempest
 
23.01.14
16:52
(66) Молодых пообучаешь, научишься подобное телепатировать :)
68 Drac0
 
23.01.14
16:54
(26) в реквизит  формы. Не в Элемент.
69 Infsams654
 
23.01.14
16:56
(67) да, уж :)
а то не въезжал, сначала
70 Infsams654
 
23.01.14
17:01
(67) тем не менее, стаж > 2 года, так что можно было яснее высказаться, и не при чем тут (4) "с УФ раньше не сталкивался. что делаю не так?"
71 КРТЩ
 
23.01.14
17:03
(7) код выглядит удручающе, я бы сказал что удручающе бессмысленно
72 КРТЩ
 
23.01.14
17:06
(0) тебе просто данные из РС надо на форму вытянуть? или в элементы справочника записать?
73 Infsams654
 
23.01.14
17:08
(71) (7) хорошо, как мне заполнить элементы справочника по данным РС?

Ответьте, пожалуйста, кто сможет
74 Azverin
 
23.01.14
17:08
(72) в реквизит формы.
75 Infsams654
 
23.01.14
17:10
во, это уже кое-что
76 Azverin
 
23.01.14
17:11
задача отвалилась - перегрузка не требуется)
но вопрос остаётся открытым...
77 КРТЩ
 
23.01.14
17:16
(74) реквизит формы какой? списка? элемента?
78 Сисой
 
23.01.14
17:20
(76) Если тебе не нужно каждый раз менять справочник, то кидаешь на форму реквизиты нужных типов, в серверной процедуре считываешь их из РС и вызываешь для каждого реквизита ЗначениеВРеквизитФормы()
79 EvgeniuXP
 
23.01.14
19:35
(47) 1C-программист, заклятый семерочник, пользовался методами Clipper-а, т.е. ни документы не проводили, ни с регистрами не работали они на предприятии - только справочники и куча в них реквизитов до 90 штук и более, при этом поля (реквизиты) все примитивного типа - ссылку осуждали за тормознутость ее :), цех и табельный в каждом справочнике как реквизиты были - короче, тебе такие знания не нужны - учись сразу у Специалиста :)