|
Переименование названия поля и изменение его расположения в очередности полей | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
08.06.22
✎
12:20
|
Есть документ. У него две табличных части (те которые касаются данной задачи). Состав полей этих табличных частей такой http://joxi.ru/12MyVQligxaZv2 .
Интересуют поля ДатаСклад. КоличествоСклад . Их нужно переименовать в ДатаСклада -> Дата отгрузки . КоличествоСклад -> Количество отгружено . И перенести поле Количество склад после поля Дата отгрузки . Этот документ добавлен в расширение. Я пробую менять у этих полей синоним в основной конфигурации. Но так как он добавлен в расширение, в предприятии синоним поля не меняется. Причем, и в основной конфигурации и в расширении, визуально на форме все названо и расположено как нужно. Так же есть код из расширения, в котором что то формируется программно. http://joxi.ru/D2PN6BGHw4KpBr Я вижу 2 возможных решения. Взять переименовать поля в основной конфигурации. Не отразится ли это на существующих данных? Я же не тип меняю. И изменить их положение в конфигураторе. Или это нужно как то менять в коде что я показываю. когда это формируется программно? http://joxi.ru/D2PN6BGHw4KpBr Понимания причины расхождения, и что где изменять пока нет. |
|||
1
Масянька
08.06.22
✎
12:24
|
Кто с ним рядом - вырубите инет.
|
|||
2
vicof
08.06.22
✎
12:26
|
"Этот документ добавлен в расширение. Я пробую менять у этих полей синоним в основной конфигурации. Но так как он добавлен в расширение, в предприятии синоним поля не меняется."
Поменять в расширении не предлагать?) |
|||
3
1Сергей
08.06.22
✎
12:26
|
тут не инет, тут надо от компа отганять ссаными тряпками
|
|||
4
vicof
08.06.22
✎
12:27
|
(3) Бесполезно
|
|||
5
NIGHTHUNTER
08.06.22
✎
12:34
|
(2) Ну или в самом расширении менять названия полей?
Дело в том что в расширении и в основной конфигурации в названиях полей и их расположении все нормально. А в предприятии нет. И то в разных местах, то да то нет. Мне не явен пока этот момент. Я вот и думаю что делать. Переименовать то не долго. Но обычно переименовывают синонимы. А тут получается все нужно. Почему тогда в конфигураторе на формах правильно? А в предприятии в некоторых местах нет. И показали вот этот код. Что это за код? В нем не нужно ничего на лету отлавливать? Если я переименую идентификаторы полей не слетят имеющиеся данные? |
|||
6
NIGHTHUNTER
08.06.22
✎
12:38
|
Я в расширении поменяю, а сам оригинал будет с другим именем поля? Я не могу это все уловить.
(1)(3) Задача реально сложная и не понятная. С чего такие высказывания ? Я стал когда ее смотреть на прошлой неделе. то ничего не понял, в конфигураторе на формах все было нормально. Видно что сами реквизиты называются так, как нужно их исправить, и их расположение не то. Но от чего это не понял. |
|||
7
NIGHTHUNTER
08.06.22
✎
12:39
|
(2) На эти поля завязаны отчеты. Если я их поменяю то не будет работать выборки. нужно будет менять не известно в каких ещё местах.
|
|||
8
Масянька
08.06.22
✎
12:42
|
(6) А у тебя были не сложные и понятные задачи?
|
|||
9
vicof
08.06.22
✎
12:43
|
(8) тадададам
|
|||
10
NIGHTHUNTER
08.06.22
✎
12:48
|
везде изменены только синонимы, но в моем случае, изменение синонима не помогло, я и бумаю что делать, что бы не манять имя
|
|||
11
NIGHTHUNTER
08.06.22
✎
12:50
|
в расширении синоним не изменить (
|
|||
12
VoditelKobyly
08.06.22
✎
13:08
|
Если в конфигураторе вид нормальный, а в предприятии не так и только у некоторых пользователей, то может в настройки формы в предприятии заглянуть?
|
|||
13
АгентБезопасной Нацио
08.06.22
✎
13:10
|
(8) аплодирую!
|
|||
14
NIGHTHUNTER
08.06.22
✎
13:36
|
(13) Это где, Ещё -> Изменить форму?
Да, я сейчас открыл и увидел, что вроде как я там могу изменять синоним поля и его расположение. Но вот, я в конфигураторе, в основной конфигурации и расширении пока попробовал изменить расположение поля, в составе таблицы. Но при запуске предприятия, же. там все без изменений. Получается это не влияет ни на что. А форма эта только в расширении. И там все в порядке ((((. Но в предприятии опять же в одном месте нет. то есть я вижу как вариант (13) совет. Или же в коде, вот тут Или это нужно как то менять в коде что я показываю. когда это формируется программно? http://joxi.ru/D2PN6BGHw4KpBr . Отлавливать поле, пытаться задать ему нужный синоним. И расположение. нужно ли это делать? |
|||
15
NIGHTHUNTER
08.06.22
✎
13:37
|
(14) Не туда.
(12) Я вам писал. (14) -> (12) . |
|||
16
VoditelKobyly
08.06.22
✎
13:44
|
в коде, который ты показал
|
|||
17
VoditelKobyly
08.06.22
✎
13:46
|
Метаданные_НарядЗадание.ТабличныеЧасти что за коллекция? Можно при ее заполнении.
|
|||
18
NIGHTHUNTER
08.06.22
✎
13:53
|
(16) Если менять через Еще, то это нужно делать у каждого пользователя? А их больше 10. И эти настройки могут слетать ((.
Получается это нужно делать программно, в отрезке кода который я показал. Раньше я такого не знал. Что нужно менять синоним и расположение колонки в коде. Потому что что я не поправил в конфигураторе, ничего не обновилось в предприятии. |
|||
19
VoditelKobyly
08.06.22
✎
13:56
|
(18) Я просто сразу не понял поток твоих мыслей.
|
|||
20
DrZombi
гуру
08.06.22
✎
13:58
|
(0) >>> И перенести поле Количество склад после поля Дата отгрузки .
Это глупо и ненужно, в расширении порядок чисто - "ваша прихоть", и на работу никак не влияет :) >>> Я пробую менять у этих полей синоним в основной конфигурации Зачем вам расширение? А так, после игр с основной конфигурацией, начинайте переписывать диалоги расширений. Поигравшись пару лет с расширением, мы пришли к выводу, что создавать элементы, в диалогах расширений, это самый лучший способ :) Код писать лучше в отдельном общем модуле, диалоги в расширении, частенько убиваются, и что бы 1000- срок не писать каждый раз все что можем, перемещаем в общие модуля расширения :) |
|||
21
VoditelKobyly
08.06.22
✎
13:58
|
Скорее всего лучше найти где коллекция заполняется и менять при заполнении (может это еще где-то используется, но нужно знать задачу целиком)
|
|||
22
DrZombi
гуру
08.06.22
✎
13:59
|
(20) >>> создавать элементы, в диалогах расширений
Создавать программной, элементы в диалога... Поспешил я :) |
|||
23
NIGHTHUNTER
08.06.22
✎
14:47
|
(20) Так что вы подсказываете по решению?
Я как понимаю решение (13) хорошее. но может слететь?! И делать это нужно большому количеству пользователей если, то не сильно как то. А програмно делать? Я ещё не знаю как. но нужно подбираться будет. А что вы посоветуете7 (22) То есть все делать в коде? Где я показал? http://joxi.ru/D2PN6BGHw4KpBr Мне это не совсем знакомо. но буду делать. |
|||
24
NIGHTHUNTER
15.06.22
✎
07:24
|
Подскажите пожалуйста далее по теме, заголовок у поля я постарался изменить.
Как сейчас в этом случае менять расположение полей? Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл НовыйЭлемент = Элементы.Добавить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент); НовыйЭлемент.ПутьКДанным = "ХХХ_" + ТабличнаяЧасть.Имя + "." + Реквизит.Имя; Если Реквизит.Имя = "ДатаСклада" Тогда НовыйЭлемент.Заголовок = "Дата отгрузки"; ИначеЕсли Реквизит.Имя = "КоличествоСклад" Тогда НовыйЭлемент.Заголовок = "Количество отгружено"; Иначе НовыйЭлемент.Заголовок = Реквизит.Синоним; КонецЕсли; Если Реквизит.Тип.СодержитТип(Тип("Булево")) Тогда НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; КонецЕсли; НовыйЭлемент.УстановитьДействие("ПриИзменении", "ПриИзмененииПолейНарядЗадания"); КонецЦикла; Необходимо, перенести поле «Количество отгружено» после поля «Дата отгрузки». |
|||
25
NIGHTHUNTER
15.06.22
✎
07:27
|
||||
26
NIGHTHUNTER
15.06.22
✎
08:23
|
Где думаю, менять очередность этих полей. И где задается ее последовательность.
Отловил открытие формы в процедуре &НаКлиенте Процедура Закупки_ПриОткрытииПеред(Отказ) они не понятно там в какой последовательности, но вроде рядом http://joxi.ru/Y2L18qBCxg5q1A |
|||
27
hhhh
15.06.22
✎
08:24
|
(24) создайте группу элементов ГруппаОтгружено, и в нее поместите требуемые элементы в нужном вам порядке.
|
|||
28
NIGHTHUNTER
15.06.22
✎
08:26
|
(27) Это же поля табличной части, или частей. В двух, идут не вверном порядке.
|
|||
29
NIGHTHUNTER
15.06.22
✎
08:31
|
Можно ли как то тут устанавливать очередность полей?
Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл НовыйЭлемент = Элементы.Добавить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент); НовыйЭлемент.ПутьКДанным = "ХХХ_" + ТабличнаяЧасть.Имя + "." + Реквизит.Имя; |
|||
30
Kigo_Kigo
15.06.22
✎
08:33
|
ТС так отладчик не освоил, я так понимаю?
|
|||
31
NIGHTHUNTER
15.06.22
✎
08:44
|
(30) Я сейчас в нем просматриваю все. Я сути не пойму, где мне менять очередность колонок этих (((( Сижу, и что смотреть не знаю.
Перебираю разные свойства. Бестолку. |
|||
32
NIGHTHUNTER
15.06.22
✎
08:49
|
как программно задать расположение вот этих полей ?
http://joxi.ru/nAyleXoi95zNe2 на форме они рядом, но в предприятии нет. Где задать их правильное расположение и как? |
|||
33
hhhh
15.06.22
✎
08:57
|
(32) ну, поменяй их местами. тут же у тебя на этой картинке есть кнопки передвинуть вверх и вниз. Такие стрелочки синего цвета.
|
|||
34
NIGHTHUNTER
15.06.22
✎
09:46
|
(33) Так я их и так уже сдвинул как нужно. Но в предприятии не так как нужно.
В этом проблема. Что форма есть одна, потом ещё какая то создается ещё и программно, вот менять местоположение нужно там. http://joxi.ru/V2V0GeEUBeo63r Как я понял это нужно так же как и с заголовком полей, делать где то программно. но где не понял ещё. |
|||
35
NIGHTHUNTER
15.06.22
✎
09:50
|
Если я сделал вот эту доработку на изменение заголовков http://joxi.ru/1A5ER9vU4WjgnA .
Где сейчас и как мне можно сделать изменение следования этих полей? Пересмотрел все свойства формы. и особо ничего не понял. Запутался только. Там ещё видно в этом коде. что к названию табличной части добавляют 1 . |
|||
36
Мимохожий Однако
15.06.22
✎
09:53
|
По мере добавления полей на форму определяется порядок следования. Если сможешь изменить порядок следования реквизитов в процессе перебора, то и сможешь получить нужный порядок.
|
|||
37
NIGHTHUNTER
15.06.22
✎
10:01
|
(38) В конфигураторе у них на форме нужный порядок .
В предприятии другой. Я пока не нашел места где я могу влиять на это. Переместить нужно только одно поле. Где я могу его переместить что бы увидеть что это работает? |
|||
38
Ёпрст
15.06.22
✎
10:01
|
(35) ёпт, да подвинь ты уже свой реквизит в самой табличной части ( не в реквизитах формы, а в дереве метаданных, в табличной части). Если не можешь кодом это родить.
|
|||
39
NIGHTHUNTER
15.06.22
✎
10:13
|
(38) Вот поменял в основной конфигурации http://joxi.ru/eAO854GCvb5plr
в предприятии ничего не изменилось !!!! Там какая то таблица с единицей создается, она есть только на форме кажется. Вот ее как мне поменять? http://joxi.ru/V2V0GeEUBe5KEr |
|||
40
NIGHTHUNTER
15.06.22
✎
10:17
|
поменял везде в расширении http://joxi.ru/52aWJQEuln7gor
|
|||
41
NIGHTHUNTER
15.06.22
✎
10:22
|
В режиме предприятия как было поле не перенесенным так и остается ((((.
Как и где его перенести, что бы увидеть что оно меняет свое местоположение , я не знаю. |
|||
42
NIGHTHUNTER
15.06.22
✎
10:22
|
||||
43
Ёпрст
15.06.22
✎
10:25
|
(41) кеш очисти
|
|||
44
NIGHTHUNTER
15.06.22
✎
10:29
|
(43) Такое наблюдается в разных базах. Табличная часть эта, делается программно. И менять как то ее нужно программно.
|
|||
45
Ёпрст
15.06.22
✎
10:35
|
(44) см (36)
у тебя всего лишь цикл по метаданным для получения реквизитов таб части и создание элементов формы в этом цикле. если нужен другой порядок, то или поменять порядок в самих метаданных (что ты ужо сделал) или, поместить сперва в табличку значений, например, там отсортировать/подвигать строки как надо и потом уже создать атрибуты формы. |
|||
46
Ёпрст
15.06.22
✎
10:39
|
Ну или запоминать первый нужный добавленный реквизит в переменной и потом, заместо Добавить, использовать метод Вставить для второго нужного реквизита, в котором указывать реквизит из переменной, перед которым нужно вставить.
|
|||
47
hhhh
15.06.22
✎
12:07
|
(44) Вставить (Insert)
Синтаксис: Вставить(<Имя>, <ТипЭлемента>, <Родитель>, <Элемент>) Параметры: <Имя> (обязательный) Тип: Строка. Уникальное имя добавляемого элемента. <ТипЭлемента> (обязательный) Тип: Тип. Тип добавляемого элемента. <Родитель> (необязательный) Тип: ГруппаФормы, ТаблицаФормы, ФормаКлиентскогоПриложения. Родитель для добавляемого элемента. Если не указан, то вставляется на верхний уровень. <Элемент> (необязательный) Тип: ДекорацияФормы, ГруппаФормы, КнопкаФормы, ТаблицаФормы, ПолеФормы. Элемент, перед которым должен быть вставлен новый элемент. Если не указан, то элемент будет вставлен в конец. Возвращаемое значение: Тип: ДекорацияФормы, ГруппаФормы, КнопкаФормы, ТаблицаФормы, ПолеФормы. Описание: Вставляет элемент в коллекцию элементов. |
|||
48
NIGHTHUNTER
15.06.22
✎
12:55
|
(45) - (47) Понятно чт оесть всякие методы, вставить, сдвинуть и тд. Где это и с чем делать то?
|
|||
49
Ёпрст
15.06.22
✎
15:45
|
(48) у тебя есть всего 1 цикл в коде, в котором ты сам поменял имя колонки, вот в нем, по условию и вставляй, а не добавляй. Или запоминай и вставляй после цикла..фирш ейн?
|
|||
50
hhhh
15.06.22
✎
15:45
|
(48) ну где ты добавляешь элемент. там и указывай куда его вставить.
|
|||
51
Масянька
15.06.22
✎
15:50
|
(49) Нихт фирштейн!
|
|||
52
vicof
15.06.22
✎
16:02
|
Йайа, зер гуд. Дастиш фантастиш.
|
|||
53
Масянька
15.06.22
✎
17:22
|
(52) А Вас, Штирлиц, я попрошу остаться. (С)
|
|||
54
Ёпрст
15.06.22
✎
17:29
|
(53) дарю,©
или Alt+0169 |
|||
55
NIGHTHUNTER
16.06.22
✎
02:34
|
(49) И как будет правильно ?
Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл НовыйЭлемент = Элементы.Добавить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент); НовыйЭлемент.ПутьКДанным = "ХХХ_" + ТабличнаяЧасть.Имя + "." + Реквизит.Имя; // 2022_06_15 -> Если Реквизит.Имя = "ДатаСклада" Тогда НовыйЭлемент.Заголовок = "Дата отгрузки"; ИначеЕсли Реквизит.Имя = "КоличествоСклад" Тогда НовыйЭлемент.Заголовок = "Количество отгружено"; Иначе НовыйЭлемент.Заголовок = Реквизит.Синоним; КонецЕсли; // <- Если Реквизит.Тип.СодержитТип(Тип("Булево")) Тогда НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; КонецЕсли; НовыйЭлемент.УстановитьДействие("ПриИзменении", "ПриИзмененииПолейНарядЗадания"); КонецЦикла; |
|||
56
NIGHTHUNTER
16.06.22
✎
02:39
|
(47) Что то до меня это не дойдет. В моем случае Элемент это таблица значений, а не поле.
НовыйЭлемент = Элементы.Добавить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент); Тут Элемент это ТаблицаФормы . |
|||
57
NIGHTHUNTER
16.06.22
✎
02:40
|
(47) Почему нет метода сдвинуть ?
|
|||
58
NIGHTHUNTER
16.06.22
✎
02:56
|
Как я ему тогда заголовок поменяю е6сли я его втавляю?
|
|||
59
NIGHTHUNTER
16.06.22
✎
02:58
|
(46) Я меняю заголовок у добавляемого, а у вставленного как я поменяю заголовок ?
|
|||
60
NIGHTHUNTER
16.06.22
✎
03:54
|
Сделал, я вот так. И на сколько я вижу, поле вставляется до нужного мне поля, а не после.
Понимаю, что дальше придется крутить, что бы вставить его после. // 2022_06_16 -> ЭлементДатаСклада = Неопределено; // <- Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл // 2022_06_16 -> Если Реквизит.Имя = "КоличествоСклад" Тогда Элементы.Вставить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент, ЭлементДатаСклада); НовыйЭлемент = Элементы.Найти("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1"); // <- Иначе НовыйЭлемент = Элементы.Добавить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент); КонецЕсли; НовыйЭлемент.ПутьКДанным = "ХХХ_" + ТабличнаяЧасть.Имя + "." + Реквизит.Имя; // 2022_06_15 -> Если Реквизит.Имя = "ДатаСклада" Тогда НовыйЭлемент.Заголовок = "Дата отгрузки"; ЭлементДатаСклада = НовыйЭлемент; ИначеЕсли Реквизит.Имя = "КоличествоСклад" Тогда НовыйЭлемент.Заголовок = "Количество отгружено"; Иначе НовыйЭлемент.Заголовок = Реквизит.Синоним; КонецЕсли; // <- Если Реквизит.Тип.СодержитТип(Тип("Булево")) Тогда НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка; Иначе НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; КонецЕсли; НовыйЭлемент.УстановитьДействие("ПриИзменении", "ПриИзмененииПолейНарядЗадания"); КонецЦикла; |
|||
61
NIGHTHUNTER
16.06.22
✎
03:56
|
Как сейчас мне рассчитать, получить поле перед которым нужно вставить нужное?
|
|||
62
NIGHTHUNTER
16.06.22
✎
04:09
|
Визуально нашел перед которыми полями нужно вставить, сейчас буду делать.
|
|||
63
Масянька
16.06.22
✎
09:03
|
(54) Спасибо ©
|
|||
64
hhhh
16.06.22
✎
09:15
|
(59) также
|
|||
65
hhhh
16.06.22
✎
09:20
|
(60) всё-таки ты юморист
пиши НовыйЭлемент = Элементы.Вставить("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1", Тип("ПолеФормы"), Элемент, ЭлементДатаСклада); а НовыйЭлемент = Элементы.Найти("ХХХ_" + ТабличнаяЧасть.Имя + Реквизит.Имя + "1"); выкинь. |
|||
66
Ёпрст
16.06.22
✎
10:33
|
(60) Не, это не излечимо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |