![]() |
![]() |
![]() |
|
На сервере получить реквизиты формы takefive, tir654, Группа неравнодушных, Дмитрий, kubik_live, pasha_d, Has, rittchie, DiMel_77, Dен, stix2010, runuts, mikecool, Redag, boozin, DemonShinji2, Hawk_1c, Михаил_, Lazy Stranger, MWWRuza, Мультук, Доминошник, Fish, piter3, Гипервизор, rozer76, DimVad, KJlag, Климов Сергей, 1Снеговик, программистище, butterbean, Crusher, okmail, Silgis, X Leshiy, sxfoxi, ptiz, Somebody, Terrixus, OldCondom, Shurjk, Fregat
| ☑ | ||
---|---|---|---|---|
0
Chameleon1980
30.07.25
✎
15:32
|
Приветствую всех!
А нельзя как-то получить реквизиты формы (не объекта) на сервере? Есть реквизиты добавленные (не программно) на форму и их нужно получить Метаданные.Документы.ЗаказКлиента.Формы.ФормаДокумента не дает информации о реквизитах только основные данные, а мне бы узнать, что вытащили на форму еще. |
|||
1
mikecool
30.07.25
✎
15:41
|
так уйди в серверный метод формы и читай ЭтаФорма.Реквизит
|
|||
2
Chameleon1980
30.07.25
✎
15:44
|
поправка - я не в форме, я вообще в РЗ, например. мне нужно по имени формы документа получить ее реквизиты (не путать с метаданные документа).
|
|||
3
Chameleon1980
30.07.25
✎
15:45
|
у меня нет формы - мне нужны реквизиты, которые натыкали мышкой и не только от объекта
|
|||
4
Fish
гуру
30.07.25
✎
15:47
|
(3) Если реквизиты формы не сохраняются в БД, то они тебе не нужны.
|
|||
5
Fish
гуру
30.07.25
✎
15:49
|
(3) Если нет формы, то где тогда натыкали мышкой?
|
|||
6
Chameleon1980
30.07.25
✎
15:49
|
вот это мне как получить без формы, но форма в составе документа в конфигурации
|
|||
7
maxab72
30.07.25
✎
15:50
|
(3) ну... можно влезть в сохраненные настройки пользователя и начать их разгребать.
|
|||
8
Fish
гуру
30.07.25
✎
15:50
|
(6) Зачем тебе они нужны? Что ты хочешь от них получить?
|
|||
9
RomanYS
30.07.25
✎
15:51
|
(3)
Отмена, на сервере конечно работать не будет |
|||
10
Chameleon1980
30.07.25
✎
15:50
|
(5) на руках у меня нет формы. я на сервере вне формы.
(4) мне нужны - в тч документа есть реквизиты, которые считаются динамически, но мне нужно их знать в другой обработке для заполнения формул расчета, например. |
|||
11
Chameleon1980
30.07.25
✎
15:51
|
(9) где создай форму? на сервере?
|
|||
12
Chameleon1980
30.07.25
✎
15:51
|
(8) читай (10)
|
|||
13
Fish
гуру
30.07.25
✎
15:52
|
+(8) Если по тупому, то как-то так:
Форма = ПолучитьФорму(Твояформа); РеквизитФормы = Форма.ТвойЛевыйРеквизит. Только это тебе ничего не даст. |
|||
14
Fish
гуру
30.07.25
✎
15:53
|
(10) Ну так и читай данные из ТЧ документа по ссылке.
|
|||
15
Chameleon1980
30.07.25
✎
15:53
|
(13) да нельзя Форма = ПолучитьФорму(Твояформа);
интерактивные ... бла бла |
|||
16
Fish
гуру
30.07.25
✎
15:55
|
(15) Ты так и не ответил на вопрос зачем.
В (10) написан бред. |
|||
17
Chameleon1980
30.07.25
✎
15:56
|
(14) там только реквизиты объекта блин, мне нужны сверх реквизитов объекта
|
|||
18
Chameleon1980
30.07.25
✎
15:58
|
(16) просто ты не додумал.
смотри. мне во вне нужно знать, какие колонки будут потом в форме для написания формул расчета строки ТЧ. вот есть у тебя добавленная в тч колонка, которая считается другим механизмом в форме (не хранится в документе) мне нужно, условно в справочнике хранить формулу, ссылающуюся на эту "не родную" колонку, для своих расчетов. короче не важно зачем. я задал вопрос и вижу демагогию. спасибо. |
|||
19
Fish
гуру
30.07.25
✎
15:58
|
(17) Зачем они нужны? Когда ты сможешь ответить на этот вопрос, ты поймешь, что тебе не нужны реквизиты формы.
|
|||
20
Chameleon1980
30.07.25
✎
15:59
|
(19) решу по-другому. пропишу, как сейчас есть.
Спасибо всем за участие. |
|||
21
craxx
30.07.25
✎
16:01
|
(0) ЗУП? кадровый блок?
|
|||
22
Fish
гуру
30.07.25
✎
16:01
|
(18) Ну и кто тебе мешает рассчитать эти данные так же, как это считается в форме?
Данные, существующие только на форме, для сервера не имеют смысла. Представь, ты выполняешь своё РЗ, в этот момент у 10-ти пользователей открыта твоя форма и у каждого в ней свои данные. И что ты собираешься получать? |
|||
23
Chameleon1980
30.07.25
✎
16:06
|
(22) да мне просто имена реквизитов ТЧ на текущий момент нужны.
да - имена реквизитов можно взять через метаданные тч документа, но там не все - там нет добавленных вне объета. для написания формул в другом месте. а потом эти формулы будут использоваться уже в форме так понятней? |
|||
24
Fish
гуру
30.07.25
✎
16:06
|
(23) Ничего не понял. Кто мешает эти имена реквизитов посмотреть в конфигураторе и прописать в коде?
|
|||
25
Chameleon1980
30.07.25
✎
16:08
|
(24) да никто. так и сделаю. но завтра добавят еще реквизит.
пока я узнаю, пока я допишу. да? хотел хитрее. ну ок |
|||
26
Chameleon1980
30.07.25
✎
16:09
|
нахера нам метаданные то тогда
а в метаданных ведь не только то, что хранится в бд верно? а тут вот форма есть, но инфы - кот наплакал ФормаДокумента = Метаданные.Документы.ЗаказКлиента.Формы.ФормаДокумента; |
|||
27
Fish
гуру
30.07.25
✎
16:17
|
(26) Можешь написать свой РС, и при первом открытии формы (инициализации) писать туда имена всех реквизитов формы.
|
|||
28
Chameleon1980
30.07.25
✎
16:24
|
(27) да - уже делаю
|
|||
29
Ненавижу 1С
гуру
30.07.25
✎
16:31
|
Как можно не имея объекта формы узнать значения свойств этого объекта?
|
|||
30
RomanYS
30.07.25
✎
16:33
|
(29) ему значения не нужны
|
|||
32
DiMel_77
31.07.25
✎
01:07
|
(0) Задача теоретически решаемая, но навряд ли вы будете заморачиваться...
Вам необходимо прочитать таблицы метаданных конфигурации напрямую из БД. Сложный вариант: 1) Читаем файл "1a621f0f-5568-4183-bd9f-f6ef670e7090.si" из таблицы "Params". (распаковываем deflate). В нем содержатся имена записей в таблице "Config" (метаданных и GUID типа объекта метаданных, например 061d872a-5787-460e-95ac-ed74ea3a3e84 - Документы). 2) Делаете соответствие полного имени объекта метаданного и имя записи в таблице "Config". (Формы в этой таблице имеют постфикс ".0".) 3)Читаете файл хранения формы во внутреннем скобко-файле. Разбираете этот скобко файл на форму и модуль формы. Получаете все реквизиты, которые вам нужны. (разбор формата можно посмотреть в https://infostart.ru/1c/tools/106310/) Это если вы не хотите привязываться к конфигуратору и пакетному запуску. (у меня так работает анализ модулей форм на наличие подключения к подсистеме подключаемых команд). Простой вариант: Если не надо постоянно, а достаточно разово, то пакетный запуск конфигуратора и анализ выгрузки конфигурации в XML, с последующей записью результата анализа в регистр сведений. Либо вообще заполнить этот регистр создавая формы на клиенте через "ПолучитьФорму", а потом записывать результат в регистр сведений и в фоновом задании оперировать уже записанными в регистр данными. |
|||
33
Chameleon1980
31.07.25
✎
05:23
|
(32) спасибо большое.
|
|||
34
1Снеговик
гуру
31.07.25
✎
09:36
|
"мне во вне нужно знать, какие колонки будут потом в форме" "которые натыкали мышкой"
Что за бред? Если реквизиты нарисованы мышкой в конфигураторе, смотришь глазами и используешь в коде. Если пользователь натыкал что-то и сохранил, то это лежит где-то в данных объекта, при чем тут форма?. |
|||
35
Мультук
гуру
31.07.25
✎
09:40
|
Допустим я иду в "Заказ покупателя", нажимаю "Изменить форму"
и на таб.часть товары вытаскиваю реквизит "Код" из "Номенклатура" Это считается "натыкал мышкой" ? Вы это пытаетесь найти ? |
|||
36
программистище
31.07.25
✎
09:51
|
такие реквизиты обычно заполняются алгоритмом в модуле формы или вызывается серверный метод, значит надо проделать теже действия и получить данные для них, имея данные контекста формы
а если они заполняются вручную, то и смысла нет |
|||
37
butterbean
31.07.25
✎
09:53
|
я все равно не понял - зачем нужны реквизиты формы, что с ними можно сделать, если нет рядом самой формы? какая польза от этого? а если форма все таки есть, то почему из нее не надергать всего что надо?
|
|||
38
Fish
гуру
31.07.25
✎
10:12
|
(37) Видимо, нетленка какая-то.
|
|||
39
1Снеговик
гуру
31.07.25
✎
11:00
|
(37) это признак того, что изначально решение с какими-то формулами пошло не туда, а теперь приходится изобретать велосипеды и спрашивать на форумах.
Сам вопрос в таком ключе должен заставить задуматься переделать все нафиг с нуля. |
|||
40
rozer76
31.07.25
✎
11:08
|
если БСП то ОбщегоНазначенияУТКлиентСервер.ДанныеПоПути
Подробности// Возвращает значение реквизита формы или объекта по пути, заданному в виде строки. // // Параметры: // Объект - ДокументОбъект, СправочникОбъект, ФормаКлиентскогоПриложения - Объект или форма, из которой необходимо получить данные // ПутьКДанным - Строка - Путь к данным, например "Объект.Контрагент" // ИдентификаторСтроки - Строка - Уникальный идентификатор строки для случая получения данных из таблицы таблицы. // ЗначениеОтсутствия - Произвольный - Если путь к данным пустой, то возвращается данное значение // // Возвращаемое значение: // Произвольный - Значение реквизита // Функция ДанныеПоПути(Объект, Знач ПутьКДанным, Знач ИдентификаторСтроки = Неопределено, ЗначениеОтсутствия = Неопределено) Экспорт Если ПутьКДанным = "" Тогда Возврат ЗначениеОтсутствия; ИначеЕсли ТипЗнч(ПутьКДанным) <> Тип("Строка") Тогда Возврат ПутьКДанным; КонецЕсли; ЧастиПутиКДанным = СтрРазделить(ПутьКДанным, ".", Ложь); Данные = ДанныеПоЧастямПути(Объект, ЧастиПутиКДанным, ИдентификаторСтроки); Возврат Данные; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |