Имя: Пароль:
1C
1C 7.7
v7: Быстро обойти элементы формы одного типа. Можно циклом. Как ?
0 raykom
 
26.07.14
16:28
Нужно пробежать по форме обработки (из модуля обработки) и программно поменять значения реквизитов типа "флажок"

Как сделать ? В СП - не соображу методов таких.
Спасибо.
1 КонецЦикла
 
26.07.14
16:30
Кури формекс если сам запутался что там у тебя...
2 raykom
 
26.07.14
16:31
Емае, с формексом понятно. Стандартно можно ?
3 КонецЦикла
 
26.07.14
16:31
Флаг1 = 1;
Флаг2 = 1;

... или я не вкурил тему?
4 ДенисЧ
 
26.07.14
16:33
5 raykom
 
26.07.14
16:48
(3)Не, с этим все понятно. Я имею в виду что то типа
Для по Элементы формы ...
Как по метаданным типа
Не ?

(4)Етить ... Дослужился ? Инвентарь новый подгоняют ...
6 ДенисЧ
 
26.07.14
16:50
(5) Новая должность - новый инвентарь...
7 m-serg74
 
26.07.14
16:51
(5) мож Шаблон поможет?
8 raykom
 
26.07.14
17:03
ПОнятно. Однозначный ответ - нет. Варианты я и сам покурить могу.
Ладно, вопрос закрыт. Забрал новый струмент, побрел на участок ...
9 m-serg74
 
26.07.14
17:03
или даже
ПолучитьАтрибут(<?>);
Синтаксис:
Форма.ПолучитьАтрибут(ИмяРеквизита)
Назначение:
Возвращает ссылку на элемент формы.

потом с им и воевать
10 m-serg74
 
26.07.14
17:04
(8) как то ты быстро сдался:)
11 raykom
 
26.07.14
17:07
(9)Так то КАЖДОГО реквизита. А я хотел
типа

Для поз=1 По Форма.ЭлементыФормы() Цикл
12 raykom
 
26.07.14
17:08
(10)Так начинают путать )) Я про кнопку "СделатьВсеОК", а они мне про метлу, лопату и от забора до закаьа ..
13 m-serg74
 
26.07.14
17:08
(11) ага установить = 1, типа пох Надпись это или флажок?
14 ДенисЧ
 
26.07.14
17:08
formex
а потом (4)
15 oslokot
 
26.07.14
17:17
(0)Красиво-никак. Даже в снеговике это делается через зад
16 Эмбеддер
 
26.07.14
17:21
(0) если делать выборку и в выборке же запись, то запишется всего 1 элемент и выборка остановится. надо сначала делать выборку элементов и записывать их в список значений или таблицу, и уже в другом цикле из таблицы находить объекты, менять и записывать
17 raykom
 
26.07.14
17:33
(13)Сначала обойти надо, потом будем разбираться, кто есть кто
(14)Ну это то я даже после понижения в должности понимаю.
(15)Похоже на то ... Вот и нач ОК с метлой опять тут тусит.
(16)Какую выборку ? Выборку чего ? Как вообще выборку элементов формы сделать, об том и вопрос
18 m-serg74
 
26.07.14
17:37
(17) /(16)Какую выборку ? Выборку чего ?/

не обламывай кайф, мож приход только пошёл
19 Злопчинский
 
26.07.14
17:54
флажок - это по сути то же самое число... как отличить флажок на форме от числовых реквизитов в общем случае - хщз
20 m-serg74
 
26.07.14
17:56
(19) если только реквизитам типа Флажок не присвоить названия типа флРеквизитКакойТо
21 raykom
 
26.07.14
18:00
опять за рыбу деньги ... КАК ОБОЙТИ ? Потом отличать будем
22 m-serg74
 
26.07.14
18:11
(21) Для Сч = 1 По 100500 Цикл, не?
:)
23 m-serg74
 
26.07.14
18:12
ИмяРеквизита = "ЧтоТоТам" + Строка(Сч);
мАтрибут = Форма.ПолучитьАтрибут(ИмяРеквизита);
Потом отличай что за реквизит
24 raykom
 
26.07.14
18:16
(23)Ааааа ... Вот я ... дворник )))
Цикл то не обязательно по чему то ))).
Точно. Но список реквизитов всеравно надо где то держать ...
Как их собрать то ?
25 m-serg74
 
26.07.14
18:18
(24)
СпРеквизитов = СоздатьОбъект("СписокЗначений");
СпРеквизитов.ДобавитьЗначение("РеквизитОсновной");
СпРеквизитов.ДобавитьЗначение("РеквизитДополнительный");

это в самом низу, вне процедур формы, а потом в нужном месте
Для Сч = 1 По СпРеквизитов.РазмерСписка...

ну ты понял, да?
26 raykom
 
26.07.14
18:19
ладно ... собрать никак, так хотя бы изменять обходом. Ходить будем по списку значений.

Имею строку с именами реквизитов через запятую. Как ее в список значений засунуть быстро ? Или Может сразу по строке ? ))
27 m-serg74
 
26.07.14
18:19
не поверю что реквизиты программно добавляются, а имена присваиваются как попало не однотипно
28 raykom
 
26.07.14
18:19
(25)>СпРеквизитов.ДобавитьЗначение("РеквизитОсновной");
СпРеквизитов.ДобавитьЗначение("РеквизитДополнительный");

Вот от этого то и хотел уйти.
29 m-serg74
 
26.07.14
18:21
(26) СтрЗаменить(Список, ",", РазделительСтрок);
Для Сч = 1 По СтрКоличествоСтрок(Списко) Цикл
имярекв = СтрПолучитьСтроку(Список, Сч)....
30 raykom
 
26.07.14
18:24
(29)>Список, ",", РазделительСтрок
Какой то параметр лишний. Не ?
31 m-serg74
 
26.07.14
18:26
(30) не, в твоей строкесписке, вместо запятой зафигачит РазделительСтрок, и сможешь элементы искать не через Найти запятую а по количеству строк в многосторчной строке
32 raykom
 
26.07.14
18:28
Список - где ищем
первая "" - что ищем
вторая " - на что меняем

Так ?

РазделительСтрок - лишний параметр ? Или кавычки какие то ?
33 m-serg74
 
26.07.14
18:28
(32)
    СтрокаРекв = "Фирма, Номенклатура, Склад";
    СтрокаСписком = СтрЗаменить(СтрокаРекв, "," , РазделительСтрок);
    Для Сч = 1 По СтрКоличествоСтрок(СтрокаСписком) Цикл
        Сообщить(СокрЛП(СтрПолучитьСтроку(СтрокаСписком, Сч)));
    КонецЦикла;
34 m-serg74
 
26.07.14
18:30
(32) и ничего "лишнего" :)
35 raykom
 
26.07.14
18:30
(33)Ну тебя я понял уже.
Просто в СП этот метод  с тремя параметрами всего
36 m-serg74
 
26.07.14
18:31
(35) так там три и есть
Где, Что, наЧто
37 m-serg74
 
26.07.14
18:32
(36) просто в твоем случае что выглядит как "," ибо разделитель у тебя запятая
38 m-serg74
 
26.07.14
18:32
(37) тип строка
39 raykom
 
26.07.14
18:35
(37)Тьху ... В глазах троится от кавычек )) Понял
40 m-serg74
 
26.07.14
18:36
удачного использования)))
41 raykom
 
26.07.14
18:37
(40)Все пучком. РАботает )
42 raykom
 
26.07.14
18:37
Спасибо.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс